@deloraprotocol/widget 1.0.12 → 1.0.15

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 (128) hide show
  1. package/README.md +66 -12
  2. package/dist/PhArrowCircleDown-lsK25DCk.js +74 -0
  3. package/dist/PhArrowCircleDown-lsK25DCk.js.map +1 -0
  4. package/dist/PhArrowClockwise-NeKHZ1co.js +74 -0
  5. package/dist/PhArrowClockwise-NeKHZ1co.js.map +1 -0
  6. package/dist/PhArrowDown-C9AkNvLs.js +74 -0
  7. package/dist/PhArrowDown-C9AkNvLs.js.map +1 -0
  8. package/dist/PhArrowLeft-RNfIQP1X.js +74 -0
  9. package/dist/PhArrowLeft-RNfIQP1X.js.map +1 -0
  10. package/dist/PhArrowRight-DM1tna0G.js +74 -0
  11. package/dist/PhArrowRight-DM1tna0G.js.map +1 -0
  12. package/dist/PhArrowSquareOut-S5XYbAZj.js +74 -0
  13. package/dist/PhArrowSquareOut-S5XYbAZj.js.map +1 -0
  14. package/dist/PhArrowUp-DmktzOWy.js +74 -0
  15. package/dist/PhArrowUp-DmktzOWy.js.map +1 -0
  16. package/dist/PhArrowUpRight-BkNeW_5i.js +74 -0
  17. package/dist/PhArrowUpRight-BkNeW_5i.js.map +1 -0
  18. package/dist/PhArrowsClockwise-CQ4pG76b.js +74 -0
  19. package/dist/PhArrowsClockwise-CQ4pG76b.js.map +1 -0
  20. package/dist/PhArrowsDownUp-H6gxaNM6.js +74 -0
  21. package/dist/PhArrowsDownUp-H6gxaNM6.js.map +1 -0
  22. package/dist/PhArrowsLeftRight-DZSsfMR6.js +74 -0
  23. package/dist/PhArrowsLeftRight-DZSsfMR6.js.map +1 -0
  24. package/dist/PhBank-4_9QzqIB.js +74 -0
  25. package/dist/PhBank-4_9QzqIB.js.map +1 -0
  26. package/dist/PhBrowser-B-JSznId.js +74 -0
  27. package/dist/PhBrowser-B-JSznId.js.map +1 -0
  28. package/dist/PhCaretDown-vV5oHMNi.js +74 -0
  29. package/dist/PhCaretDown-vV5oHMNi.js.map +1 -0
  30. package/dist/PhCaretLeft-BLo6Y_f4.js +74 -0
  31. package/dist/PhCaretLeft-BLo6Y_f4.js.map +1 -0
  32. package/dist/PhCaretRight-CqQN4TT3.js +74 -0
  33. package/dist/PhCaretRight-CqQN4TT3.js.map +1 -0
  34. package/dist/PhCaretUp-Df7UCAHy.js +74 -0
  35. package/dist/PhCaretUp-Df7UCAHy.js.map +1 -0
  36. package/dist/PhCheck-gtpfK4ed.js +74 -0
  37. package/dist/PhCheck-gtpfK4ed.js.map +1 -0
  38. package/dist/PhCircleHalf-Uq7dwDYw.js +74 -0
  39. package/dist/PhCircleHalf-Uq7dwDYw.js.map +1 -0
  40. package/dist/PhClock-SDCW-NmF.js +74 -0
  41. package/dist/PhClock-SDCW-NmF.js.map +1 -0
  42. package/dist/PhCompass-B7hgtdx-.js +74 -0
  43. package/dist/PhCompass-B7hgtdx-.js.map +1 -0
  44. package/dist/PhCopy-BcnhyXCy.js +74 -0
  45. package/dist/PhCopy-BcnhyXCy.js.map +1 -0
  46. package/dist/PhCreditCard-BJjByVgu.js +74 -0
  47. package/dist/PhCreditCard-BJjByVgu.js.map +1 -0
  48. package/dist/PhCurrencyDollar-B7ZXqXBy.js +74 -0
  49. package/dist/PhCurrencyDollar-B7ZXqXBy.js.map +1 -0
  50. package/dist/PhDesktop-B3VKPuJx.js +74 -0
  51. package/dist/PhDesktop-B3VKPuJx.js.map +1 -0
  52. package/dist/PhDeviceMobile-Bnd0TYEH.js +74 -0
  53. package/dist/PhDeviceMobile-Bnd0TYEH.js.map +1 -0
  54. package/dist/PhDotsThree-yyMWyZ-R.js +74 -0
  55. package/dist/PhDotsThree-yyMWyZ-R.js.map +1 -0
  56. package/dist/PhEnvelope-67uzHbI9.js +74 -0
  57. package/dist/PhEnvelope-67uzHbI9.js.map +1 -0
  58. package/dist/PhFunnelSimple-B-DCsloI.js +74 -0
  59. package/dist/PhFunnelSimple-B-DCsloI.js.map +1 -0
  60. package/dist/PhGlobe-TMm_6qGk.js +74 -0
  61. package/dist/PhGlobe-TMm_6qGk.js.map +1 -0
  62. package/dist/PhIdentificationCard-CePPD2xc.js +74 -0
  63. package/dist/PhIdentificationCard-CePPD2xc.js.map +1 -0
  64. package/dist/PhImage-gY96WtHR.js +74 -0
  65. package/dist/PhImage-gY96WtHR.js.map +1 -0
  66. package/dist/PhInfo-DRQM_ZDP.js +74 -0
  67. package/dist/PhInfo-DRQM_ZDP.js.map +1 -0
  68. package/dist/PhLightbulb-B0TxPfZ1.js +74 -0
  69. package/dist/PhLightbulb-B0TxPfZ1.js.map +1 -0
  70. package/dist/PhMagnifyingGlass-B8si5_6W.js +74 -0
  71. package/dist/PhMagnifyingGlass-B8si5_6W.js.map +1 -0
  72. package/dist/PhPaperPlaneRight-DVu5PLYd.js +74 -0
  73. package/dist/PhPaperPlaneRight-DVu5PLYd.js.map +1 -0
  74. package/dist/PhPlus-BfTsQnUz.js +74 -0
  75. package/dist/PhPlus-BfTsQnUz.js.map +1 -0
  76. package/dist/PhPower-CxYUGOWn.js +74 -0
  77. package/dist/PhPower-CxYUGOWn.js.map +1 -0
  78. package/dist/PhPuzzlePiece-CQ4wh0gV.js +74 -0
  79. package/dist/PhPuzzlePiece-CQ4wh0gV.js.map +1 -0
  80. package/dist/PhQrCode-BuJ97NYJ.js +74 -0
  81. package/dist/PhQrCode-BuJ97NYJ.js.map +1 -0
  82. package/dist/PhQuestion-kJoP8Mja.js +74 -0
  83. package/dist/PhQuestion-kJoP8Mja.js.map +1 -0
  84. package/dist/PhQuestionMark-C46ZkFpu.js +74 -0
  85. package/dist/PhQuestionMark-C46ZkFpu.js.map +1 -0
  86. package/dist/PhSealCheck-Eh8jVqSN.js +74 -0
  87. package/dist/PhSealCheck-Eh8jVqSN.js.map +1 -0
  88. package/dist/PhSignOut-jk97OSVt.js +74 -0
  89. package/dist/PhSignOut-jk97OSVt.js.map +1 -0
  90. package/dist/PhSpinner-CiYOhwMg.js +74 -0
  91. package/dist/PhSpinner-CiYOhwMg.js.map +1 -0
  92. package/dist/PhTrash-pxerMqzd.js +74 -0
  93. package/dist/PhTrash-pxerMqzd.js.map +1 -0
  94. package/dist/PhUser-BMg0VV4A.js +74 -0
  95. package/dist/PhUser-BMg0VV4A.js.map +1 -0
  96. package/dist/PhVault-DYQvx5A-.js +74 -0
  97. package/dist/PhVault-DYQvx5A-.js.map +1 -0
  98. package/dist/PhWallet-uTRV6YNK.js +74 -0
  99. package/dist/PhWallet-uTRV6YNK.js.map +1 -0
  100. package/dist/PhWarning-NLC5Mj87.js +74 -0
  101. package/dist/PhWarning-NLC5Mj87.js.map +1 -0
  102. package/dist/PhWarningCircle-Ch2jU9fA.js +74 -0
  103. package/dist/PhWarningCircle-Ch2jU9fA.js.map +1 -0
  104. package/dist/PhX-Bx4wpwm3.js +74 -0
  105. package/dist/PhX-Bx4wpwm3.js.map +1 -0
  106. package/dist/basic-DnbZIXNv.js +4454 -0
  107. package/dist/basic-DnbZIXNv.js.map +1 -0
  108. package/dist/core-BJbRYjpA.js +23617 -0
  109. package/dist/core-BJbRYjpA.js.map +1 -0
  110. package/dist/features-CLDSyjhj.js +275 -0
  111. package/dist/features-CLDSyjhj.js.map +1 -0
  112. package/dist/index-CRoLJyUl.js +32642 -0
  113. package/dist/index-CRoLJyUl.js.map +1 -0
  114. package/dist/index-CuaRapFw.js +9670 -0
  115. package/dist/index-CuaRapFw.js.map +1 -0
  116. package/dist/index-DNOgT607.js +15873 -0
  117. package/dist/index-DNOgT607.js.map +1 -0
  118. package/dist/index-yOQrbpOR.js +2540 -0
  119. package/dist/index-yOQrbpOR.js.map +1 -0
  120. package/dist/index.d.ts +167 -9
  121. package/dist/index.js +5 -98494
  122. package/dist/index.js.map +1 -1
  123. package/dist/property-Bd8U3_QP.js +619 -0
  124. package/dist/property-Bd8U3_QP.js.map +1 -0
  125. package/dist/styles.css +1 -1
  126. package/dist/w3m-modal-C2bO0YW4.js +6015 -0
  127. package/dist/w3m-modal-C2bO0YW4.js.map +1 -0
  128. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"w3m-modal-C2bO0YW4.js","sources":["../node_modules/@reown/appkit-controllers/dist/esm/src/utils/SwapCalculationUtil.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/SwapController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/controllers/TooltipController.js","../node_modules/@reown/appkit-controllers/dist/esm/src/utils/ModalUtil.js","../node_modules/@reown/appkit-ui/dist/esm/src/utils/MathUtil.js","../node_modules/@reown/appkit-ui/dist/esm/src/components/wui-card/styles.js","../node_modules/@reown/appkit-ui/dist/esm/src/components/wui-card/index.js","../node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-alertbar/styles.js","../node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-alertbar/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-alertbar/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-alertbar/index.js","../node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-icon-button/styles.js","../node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-icon-button/index.js","../node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-select/styles.js","../node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-select/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/utils/ConstantsUtil.js","../node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-icon-link/styles.js","../node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-icon-link/index.js","../node_modules/@reown/appkit-ui/dist/esm/src/assets/svg/networkLg.js","../node_modules/@reown/appkit-ui/dist/esm/src/assets/svg/networkSm.js","../node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-network-image/styles.js","../node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-network-image/index.js","../node_modules/@reown/appkit-ui/dist/esm/src/layout/wui-separator/styles.js","../node_modules/@reown/appkit-ui/dist/esm/src/layout/wui-separator/index.js","../node_modules/@reown/appkit-pay/dist/esm/src/types/errors.js","../node_modules/@reown/appkit-pay/dist/esm/src/utils/ConstantsUtil.js","../node_modules/@reown/appkit-pay/dist/esm/src/utils/PaymentUtil.js","../node_modules/@reown/appkit-pay/dist/esm/src/utils/ApiUtil.js","../node_modules/@reown/appkit-pay/dist/esm/src/utils/AssetUtil.js","../node_modules/@reown/appkit-pay/dist/esm/src/controllers/PayController.js","../node_modules/@reown/appkit-pay/dist/esm/src/ui/w3m-pay-view/styles.js","../node_modules/@reown/appkit-pay/dist/esm/src/ui/w3m-pay-view/index.js","../node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-pulse/styles.js","../node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-pulse/index.js","../node_modules/@reown/appkit-pay/dist/esm/src/ui/w3m-pay-loading-view/constants.js","../node_modules/@reown/appkit-pay/dist/esm/src/ui/w3m-pay-loading-view/styles.js","../node_modules/@reown/appkit-pay/dist/esm/src/ui/w3m-pay-loading-view/index.js","../node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-wallet-switch/styles.js","../node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-wallet-switch/index.js","../node_modules/@reown/appkit-pay/dist/esm/src/partials/w3m-pay-fees-skeleton/styles.js","../node_modules/@reown/appkit-pay/dist/esm/src/partials/w3m-pay-fees-skeleton/index.js","../node_modules/@reown/appkit-pay/dist/esm/src/partials/w3m-pay-fees/styles.js","../node_modules/@reown/appkit-pay/dist/esm/src/partials/w3m-pay-fees/index.js","../node_modules/@reown/appkit-pay/dist/esm/src/partials/w3m-pay-options-empty/styles.js","../node_modules/@reown/appkit-pay/dist/esm/src/partials/w3m-pay-options-empty/index.js","../node_modules/@reown/appkit-pay/dist/esm/src/partials/w3m-pay-options-skeleton/styles.js","../node_modules/@reown/appkit-pay/dist/esm/src/partials/w3m-pay-options-skeleton/index.js","../node_modules/@reown/appkit-pay/dist/esm/src/partials/w3m-pay-options/styles.js","../node_modules/@reown/appkit-pay/dist/esm/src/partials/w3m-pay-options/index.js","../node_modules/@reown/appkit-pay/dist/esm/src/ui/w3m-pay-quote-view/styles.js","../node_modules/@reown/appkit-pay/dist/esm/src/ui/w3m-pay-quote-view/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-pay-header/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-pay-header/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-header/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-header/index.js","../node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-snackbar/styles.js","../node_modules/@reown/appkit-ui/dist/esm/src/composites/wui-snackbar/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-snackbar/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-snackbar/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-tooltip-trigger/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-tooltip-trigger/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-tooltip/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-tooltip/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/utils/HelpersUtil.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-legal-footer/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-legal-footer/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-onramp-providers-footer/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-onramp-providers-footer/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/modal/w3m-footer/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/modal/w3m-footer/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/modal/w3m-router/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/modal/w3m-router/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/modal/w3m-modal/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/modal/w3m-modal/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/views/w3m-usage-exceeded-view/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/views/w3m-usage-exceeded-view/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-list-wallet/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-list-wallet/index.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-router-container/styles.js","../node_modules/@reown/appkit-scaffold-ui/dist/esm/src/partials/w3m-router-container/index.js"],"sourcesContent":["// -- Types --------------------------------------------- //\nimport { NumberUtil } from '@reown/appkit-common';\n// -- Util ---------------------------------------- //\nexport const SwapCalculationUtil = {\n getGasPriceInEther(gas, gasPrice) {\n const totalGasCostInWei = gasPrice * gas;\n const totalGasCostInEther = Number(totalGasCostInWei) / 1e18;\n return totalGasCostInEther;\n },\n getGasPriceInUSD(networkPrice, gas, gasPrice) {\n const totalGasCostInEther = SwapCalculationUtil.getGasPriceInEther(gas, gasPrice);\n const networkPriceInUSD = NumberUtil.bigNumber(networkPrice);\n const gasCostInUSD = networkPriceInUSD.times(totalGasCostInEther);\n return gasCostInUSD.toNumber();\n },\n getPriceImpact({ sourceTokenAmount, sourceTokenPriceInUSD, toTokenPriceInUSD, toTokenAmount }) {\n const inputValue = NumberUtil.bigNumber(sourceTokenAmount).times(sourceTokenPriceInUSD);\n const outputValue = NumberUtil.bigNumber(toTokenAmount).times(toTokenPriceInUSD);\n const priceImpact = inputValue.minus(outputValue).div(inputValue).times(100);\n return priceImpact.toNumber();\n },\n getMaxSlippage(slippage, toTokenAmount) {\n const slippageToleranceDecimal = NumberUtil.bigNumber(slippage).div(100);\n const maxSlippageAmount = NumberUtil.multiply(toTokenAmount, slippageToleranceDecimal);\n return maxSlippageAmount.toNumber();\n },\n getProviderFee(sourceTokenAmount, feePercentage = 0.0085) {\n const providerFee = NumberUtil.bigNumber(sourceTokenAmount).times(feePercentage);\n return providerFee.toString();\n },\n isInsufficientNetworkTokenForGas(networkBalanceInUSD, gasPriceInUSD) {\n const gasPrice = gasPriceInUSD || '0';\n if (NumberUtil.bigNumber(networkBalanceInUSD).eq(0)) {\n return true;\n }\n return NumberUtil.bigNumber(NumberUtil.bigNumber(gasPrice)).gt(networkBalanceInUSD);\n },\n isInsufficientSourceTokenForSwap(sourceTokenAmount, sourceTokenAddress, balance) {\n const sourceTokenBalance = balance?.find(token => token.address === sourceTokenAddress)\n ?.quantity?.numeric;\n const isInSufficientBalance = NumberUtil.bigNumber(sourceTokenBalance || '0').lt(sourceTokenAmount);\n return isInSufficientBalance;\n }\n};\n//# sourceMappingURL=SwapCalculationUtil.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { NumberUtil } from '@reown/appkit-common';\nimport { ConstantsUtil as CommonConstantsUtil } from '@reown/appkit-common';\nimport { W3mFrameRpcConstants } from '@reown/appkit-wallet/utils';\nimport { BalanceUtil } from '../utils/BalanceUtil.js';\nimport { getActiveNetworkTokenAddress, getPreferredAccountType } from '../utils/ChainControllerUtil.js';\nimport { ConstantsUtil } from '../utils/ConstantsUtil.js';\nimport { CoreHelperUtil } from '../utils/CoreHelperUtil.js';\nimport { SwapApiUtil } from '../utils/SwapApiUtil.js';\nimport { SwapCalculationUtil } from '../utils/SwapCalculationUtil.js';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\nimport { AlertController } from './AlertController.js';\nimport { BlockchainApiController } from './BlockchainApiController.js';\nimport { ChainController } from './ChainController.js';\nimport { ConnectionController } from './ConnectionController.js';\nimport { ConnectorController } from './ConnectorController.js';\nimport { EventsController } from './EventsController.js';\nimport { RouterController } from './RouterController.js';\nimport { SnackController } from './SnackController.js';\n// -- Constants ---------------------------------------- //\nexport const INITIAL_GAS_LIMIT = 150000;\nexport const TO_AMOUNT_DECIMALS = 6;\nclass TransactionError extends Error {\n constructor(message, displayMessage) {\n super(message);\n this.name = 'TransactionError';\n this.displayMessage = displayMessage;\n }\n}\n// -- State --------------------------------------------- //\nconst initialState = {\n // Loading states\n initializing: false,\n initialized: false,\n loadingPrices: false,\n loadingQuote: false,\n loadingApprovalTransaction: false,\n loadingBuildTransaction: false,\n loadingTransaction: false,\n // Control states\n switchingTokens: false,\n // Error states\n fetchError: false,\n // Approval & Swap transaction states\n approvalTransaction: undefined,\n swapTransaction: undefined,\n transactionError: undefined,\n // Input values\n sourceToken: undefined,\n sourceTokenAmount: '',\n sourceTokenPriceInUSD: 0,\n toToken: undefined,\n toTokenAmount: '',\n toTokenPriceInUSD: 0,\n networkPrice: '0',\n networkBalanceInUSD: '0',\n networkTokenSymbol: '',\n inputError: undefined,\n // Request values\n slippage: ConstantsUtil.CONVERT_SLIPPAGE_TOLERANCE,\n // Tokens\n tokens: undefined,\n popularTokens: undefined,\n suggestedTokens: undefined,\n foundTokens: undefined,\n myTokensWithBalance: undefined,\n tokensPriceMap: {},\n // Calculations\n gasFee: '0',\n gasPriceInUSD: 0,\n priceImpact: undefined,\n maxSlippage: undefined,\n providerFee: undefined\n};\nconst state = proxy({ ...initialState });\n// -- Controller ---------------------------------------- //\nconst controller = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n getParams() {\n const namespace = ChainController.state.activeChain;\n const caipAddress = ChainController.getAccountData(namespace)?.caipAddress ??\n ChainController.state.activeCaipAddress;\n const address = CoreHelperUtil.getPlainAddress(caipAddress);\n const networkAddress = getActiveNetworkTokenAddress();\n const connectorId = ConnectorController.getConnectorId(ChainController.state.activeChain);\n if (!address) {\n throw new Error('No address found to swap the tokens from.');\n }\n const invalidToToken = !state.toToken?.address || !state.toToken?.decimals;\n const invalidSourceToken = !state.sourceToken?.address ||\n !state.sourceToken?.decimals ||\n !NumberUtil.bigNumber(state.sourceTokenAmount).gt(0);\n const invalidSourceTokenAmount = !state.sourceTokenAmount;\n return {\n networkAddress,\n fromAddress: address,\n fromCaipAddress: caipAddress,\n sourceTokenAddress: state.sourceToken?.address,\n toTokenAddress: state.toToken?.address,\n toTokenAmount: state.toTokenAmount,\n toTokenDecimals: state.toToken?.decimals,\n sourceTokenAmount: state.sourceTokenAmount,\n sourceTokenDecimals: state.sourceToken?.decimals,\n invalidToToken,\n invalidSourceToken,\n invalidSourceTokenAmount,\n availableToSwap: caipAddress && !invalidToToken && !invalidSourceToken && !invalidSourceTokenAmount,\n isAuthConnector: connectorId === CommonConstantsUtil.CONNECTOR_ID.AUTH\n };\n },\n async setSourceToken(sourceToken) {\n if (!sourceToken) {\n state.sourceToken = sourceToken;\n state.sourceTokenAmount = '';\n state.sourceTokenPriceInUSD = 0;\n return;\n }\n state.sourceToken = sourceToken;\n await SwapController.setTokenPrice(sourceToken.address, 'sourceToken');\n },\n setSourceTokenAmount(amount) {\n state.sourceTokenAmount = amount;\n },\n async setToToken(toToken) {\n if (!toToken) {\n state.toToken = toToken;\n state.toTokenAmount = '';\n state.toTokenPriceInUSD = 0;\n return;\n }\n state.toToken = toToken;\n await SwapController.setTokenPrice(toToken.address, 'toToken');\n },\n setToTokenAmount(amount) {\n state.toTokenAmount = amount ? NumberUtil.toFixed(amount, TO_AMOUNT_DECIMALS) : '';\n },\n async setTokenPrice(address, target) {\n let price = state.tokensPriceMap[address] || 0;\n if (!price) {\n state.loadingPrices = true;\n price = await SwapController.getAddressPrice(address);\n }\n if (target === 'sourceToken') {\n state.sourceTokenPriceInUSD = price;\n }\n else if (target === 'toToken') {\n state.toTokenPriceInUSD = price;\n }\n if (state.loadingPrices) {\n state.loadingPrices = false;\n }\n if (SwapController.getParams().availableToSwap && !state.switchingTokens) {\n SwapController.swapTokens();\n }\n },\n async switchTokens() {\n if (state.initializing || !state.initialized || state.switchingTokens) {\n return;\n }\n state.switchingTokens = true;\n try {\n const newSourceToken = state.toToken ? { ...state.toToken } : undefined;\n const newToToken = state.sourceToken ? { ...state.sourceToken } : undefined;\n const newSourceTokenAmount = newSourceToken && state.toTokenAmount === '' ? '1' : state.toTokenAmount;\n SwapController.setSourceTokenAmount(newSourceTokenAmount);\n SwapController.setToTokenAmount('');\n await SwapController.setSourceToken(newSourceToken);\n await SwapController.setToToken(newToToken);\n state.switchingTokens = false;\n SwapController.swapTokens();\n }\n catch (error) {\n state.switchingTokens = false;\n throw error;\n }\n },\n resetState() {\n state.myTokensWithBalance = initialState.myTokensWithBalance;\n state.tokensPriceMap = initialState.tokensPriceMap;\n state.initialized = initialState.initialized;\n state.initializing = initialState.initializing;\n state.switchingTokens = initialState.switchingTokens;\n state.sourceToken = initialState.sourceToken;\n state.sourceTokenAmount = initialState.sourceTokenAmount;\n state.sourceTokenPriceInUSD = initialState.sourceTokenPriceInUSD;\n state.toToken = initialState.toToken;\n state.toTokenAmount = initialState.toTokenAmount;\n state.toTokenPriceInUSD = initialState.toTokenPriceInUSD;\n state.networkPrice = initialState.networkPrice;\n state.networkTokenSymbol = initialState.networkTokenSymbol;\n state.networkBalanceInUSD = initialState.networkBalanceInUSD;\n state.inputError = initialState.inputError;\n },\n resetValues() {\n const { networkAddress } = SwapController.getParams();\n const networkToken = state.tokens?.find(token => token.address === networkAddress);\n SwapController.setSourceToken(networkToken);\n SwapController.setToToken(undefined);\n },\n getApprovalLoadingState() {\n return state.loadingApprovalTransaction;\n },\n clearError() {\n state.transactionError = undefined;\n },\n async initializeState() {\n if (state.initializing) {\n return;\n }\n state.initializing = true;\n if (!state.initialized) {\n try {\n await SwapController.fetchTokens();\n state.initialized = true;\n }\n catch (error) {\n state.initialized = false;\n SnackController.showError('Failed to initialize swap');\n RouterController.goBack();\n }\n }\n state.initializing = false;\n },\n async fetchTokens() {\n const { networkAddress } = SwapController.getParams();\n await SwapController.getNetworkTokenPrice();\n await SwapController.getMyTokensWithBalance();\n const networkToken = state.myTokensWithBalance?.find(token => token.address === networkAddress);\n if (networkToken) {\n state.networkTokenSymbol = networkToken.symbol;\n SwapController.setSourceToken(networkToken);\n SwapController.setSourceTokenAmount('0');\n }\n },\n async getTokenList() {\n const activeCaipNetworkId = ChainController.state.activeCaipNetwork?.caipNetworkId;\n if (state.caipNetworkId === activeCaipNetworkId && state.tokens) {\n return;\n }\n try {\n state.tokensLoading = true;\n const tokens = await SwapApiUtil.getTokenList(activeCaipNetworkId);\n state.tokens = tokens;\n state.caipNetworkId = activeCaipNetworkId;\n state.popularTokens = tokens.sort((aTokenInfo, bTokenInfo) => {\n if (aTokenInfo.symbol < bTokenInfo.symbol) {\n return -1;\n }\n if (aTokenInfo.symbol > bTokenInfo.symbol) {\n return 1;\n }\n return 0;\n });\n const suggestedTokensByChain = (activeCaipNetworkId &&\n ConstantsUtil.SUGGESTED_TOKENS_BY_CHAIN?.[activeCaipNetworkId]) ||\n [];\n const suggestedTokenObjects = suggestedTokensByChain\n .map(symbol => tokens.find(t => t.symbol === symbol))\n .filter((t) => Boolean(t));\n const allSuggestedTokens = ConstantsUtil.SWAP_SUGGESTED_TOKENS || [];\n const allSuggestedTokenObjects = allSuggestedTokens\n .map(symbol => tokens.find(t => t.symbol === symbol))\n .filter((t) => Boolean(t))\n .filter(t => !suggestedTokenObjects.some(ct => ct.address === t.address));\n state.suggestedTokens = [...suggestedTokenObjects, ...allSuggestedTokenObjects];\n }\n catch (error) {\n state.tokens = [];\n state.popularTokens = [];\n state.suggestedTokens = [];\n }\n finally {\n state.tokensLoading = false;\n }\n },\n async getAddressPrice(address) {\n const existPrice = state.tokensPriceMap[address];\n if (existPrice) {\n return existPrice;\n }\n const response = await BlockchainApiController.fetchTokenPrice({\n addresses: [address]\n });\n const fungibles = response?.fungibles || [];\n const allTokens = [...(state.tokens || []), ...(state.myTokensWithBalance || [])];\n const symbol = allTokens?.find(token => token.address === address)?.symbol;\n const price = fungibles.find(p => p.symbol.toLowerCase() === symbol?.toLowerCase())?.price || 0;\n const priceAsFloat = parseFloat(price.toString());\n state.tokensPriceMap[address] = priceAsFloat;\n return priceAsFloat;\n },\n async getNetworkTokenPrice() {\n const { networkAddress } = SwapController.getParams();\n const response = await BlockchainApiController.fetchTokenPrice({\n addresses: [networkAddress]\n }).catch(() => {\n SnackController.showError('Failed to fetch network token price');\n return { fungibles: [] };\n });\n const token = response.fungibles?.[0];\n const price = token?.price.toString() || '0';\n state.tokensPriceMap[networkAddress] = parseFloat(price);\n state.networkTokenSymbol = token?.symbol || '';\n state.networkPrice = price;\n },\n async getMyTokensWithBalance(forceUpdate) {\n const balances = await BalanceUtil.getMyTokensWithBalance({\n forceUpdate,\n caipNetwork: ChainController.state.activeCaipNetwork,\n address: ChainController.getAccountData()?.address\n });\n const swapBalances = SwapApiUtil.mapBalancesToSwapTokens(balances);\n if (!swapBalances) {\n return;\n }\n await SwapController.getInitialGasPrice();\n SwapController.setBalances(swapBalances);\n },\n setBalances(balances) {\n const { networkAddress } = SwapController.getParams();\n const caipNetwork = ChainController.state.activeCaipNetwork;\n if (!caipNetwork) {\n return;\n }\n const networkToken = balances.find(token => token.address === networkAddress);\n balances.forEach(token => {\n state.tokensPriceMap[token.address] = token.price || 0;\n });\n state.myTokensWithBalance = balances.filter(token => token.address.startsWith(caipNetwork.caipNetworkId));\n state.networkBalanceInUSD = networkToken\n ? NumberUtil.multiply(networkToken.quantity.numeric, networkToken.price).toString()\n : '0';\n },\n async getInitialGasPrice() {\n const res = await SwapApiUtil.fetchGasPrice();\n if (!res) {\n return { gasPrice: null, gasPriceInUSD: null };\n }\n switch (ChainController.state?.activeCaipNetwork?.chainNamespace) {\n case CommonConstantsUtil.CHAIN.SOLANA:\n state.gasFee = res.standard ?? '0';\n state.gasPriceInUSD = NumberUtil.multiply(res.standard, state.networkPrice)\n .div(1e9)\n .toNumber();\n return {\n gasPrice: BigInt(state.gasFee),\n gasPriceInUSD: Number(state.gasPriceInUSD)\n };\n case CommonConstantsUtil.CHAIN.EVM:\n default:\n // eslint-disable-next-line no-case-declarations\n const value = res.standard ?? '0';\n // eslint-disable-next-line no-case-declarations\n const gasFee = BigInt(value);\n // eslint-disable-next-line no-case-declarations\n const gasLimit = BigInt(INITIAL_GAS_LIMIT);\n // eslint-disable-next-line no-case-declarations\n const gasPrice = SwapCalculationUtil.getGasPriceInUSD(state.networkPrice, gasLimit, gasFee);\n state.gasFee = value;\n state.gasPriceInUSD = gasPrice;\n return { gasPrice: gasFee, gasPriceInUSD: gasPrice };\n }\n },\n // -- Swap -------------------------------------- //\n async swapTokens() {\n const address = ChainController.getAccountData()?.address;\n const sourceToken = state.sourceToken;\n const toToken = state.toToken;\n const haveSourceTokenAmount = NumberUtil.bigNumber(state.sourceTokenAmount).gt(0);\n if (!haveSourceTokenAmount) {\n SwapController.setToTokenAmount('');\n }\n if (!toToken || !sourceToken || state.loadingPrices || !haveSourceTokenAmount || !address) {\n return;\n }\n state.loadingQuote = true;\n const amountDecimal = NumberUtil.bigNumber(state.sourceTokenAmount)\n .times(10 ** sourceToken.decimals)\n .round(0)\n .toFixed(0);\n try {\n const quoteResponse = await BlockchainApiController.fetchSwapQuote({\n userAddress: address,\n from: sourceToken.address,\n to: toToken.address,\n gasPrice: state.gasFee,\n amount: amountDecimal.toString()\n });\n state.loadingQuote = false;\n const quoteToAmount = quoteResponse?.quotes?.[0]?.toAmount;\n if (!quoteToAmount) {\n AlertController.open({\n displayMessage: 'Incorrect amount',\n debugMessage: 'Please enter a valid amount'\n }, 'error');\n return;\n }\n const toTokenAmount = NumberUtil.bigNumber(quoteToAmount)\n .div(10 ** toToken.decimals)\n .toString();\n SwapController.setToTokenAmount(toTokenAmount);\n const isInsufficientToken = SwapController.hasInsufficientToken(state.sourceTokenAmount, sourceToken.address);\n if (isInsufficientToken) {\n state.inputError = 'Insufficient balance';\n }\n else {\n state.inputError = undefined;\n SwapController.setTransactionDetails();\n }\n }\n catch (error) {\n const response = await SwapApiUtil.handleSwapError(error);\n state.loadingQuote = false;\n state.inputError = response || 'Insufficient balance';\n }\n },\n // -- Create Transactions -------------------------------------- //\n async getTransaction() {\n const { fromCaipAddress, availableToSwap } = SwapController.getParams();\n const sourceToken = state.sourceToken;\n const toToken = state.toToken;\n if (!fromCaipAddress || !availableToSwap || !sourceToken || !toToken || state.loadingQuote) {\n return undefined;\n }\n try {\n state.loadingBuildTransaction = true;\n const hasAllowance = await SwapApiUtil.fetchSwapAllowance({\n userAddress: fromCaipAddress,\n tokenAddress: sourceToken.address,\n sourceTokenAmount: state.sourceTokenAmount,\n sourceTokenDecimals: sourceToken.decimals\n });\n let transaction = undefined;\n if (hasAllowance) {\n transaction = await SwapController.createSwapTransaction();\n }\n else {\n transaction = await SwapController.createAllowanceTransaction();\n }\n state.loadingBuildTransaction = false;\n state.fetchError = false;\n return transaction;\n }\n catch (error) {\n RouterController.goBack();\n SnackController.showError('Failed to check allowance');\n state.loadingBuildTransaction = false;\n state.approvalTransaction = undefined;\n state.swapTransaction = undefined;\n state.fetchError = true;\n return undefined;\n }\n },\n async createAllowanceTransaction() {\n const { fromCaipAddress, sourceTokenAddress, toTokenAddress } = SwapController.getParams();\n if (!fromCaipAddress || !toTokenAddress) {\n return undefined;\n }\n if (!sourceTokenAddress) {\n throw new Error('createAllowanceTransaction - No source token address found.');\n }\n try {\n const response = await BlockchainApiController.generateApproveCalldata({\n from: sourceTokenAddress,\n to: toTokenAddress,\n userAddress: fromCaipAddress\n });\n const address = CoreHelperUtil.getPlainAddress(response.tx.from);\n if (!address) {\n throw new Error('SwapController:createAllowanceTransaction - address is required');\n }\n const transaction = {\n data: response.tx.data,\n to: address,\n gasPrice: BigInt(response.tx.eip155.gasPrice),\n value: BigInt(response.tx.value),\n toAmount: state.toTokenAmount\n };\n state.swapTransaction = undefined;\n state.approvalTransaction = {\n data: transaction.data,\n to: transaction.to,\n gasPrice: transaction.gasPrice,\n value: transaction.value,\n toAmount: transaction.toAmount\n };\n return {\n data: transaction.data,\n to: transaction.to,\n gasPrice: transaction.gasPrice,\n value: transaction.value,\n toAmount: transaction.toAmount\n };\n }\n catch (error) {\n RouterController.goBack();\n SnackController.showError('Failed to create approval transaction');\n state.approvalTransaction = undefined;\n state.swapTransaction = undefined;\n state.fetchError = true;\n return undefined;\n }\n },\n async createSwapTransaction() {\n const { networkAddress, fromCaipAddress, sourceTokenAmount } = SwapController.getParams();\n const sourceToken = state.sourceToken;\n const toToken = state.toToken;\n if (!fromCaipAddress || !sourceTokenAmount || !sourceToken || !toToken) {\n return undefined;\n }\n const amount = ConnectionController.parseUnits(sourceTokenAmount, sourceToken.decimals)?.toString();\n try {\n const response = await BlockchainApiController.generateSwapCalldata({\n userAddress: fromCaipAddress,\n from: sourceToken.address,\n to: toToken.address,\n amount: amount,\n disableEstimate: true\n });\n const isSourceTokenIsNetworkToken = sourceToken.address === networkAddress;\n const gas = BigInt(response.tx.eip155.gas);\n const gasPrice = BigInt(response.tx.eip155.gasPrice);\n const address = CoreHelperUtil.getPlainAddress(response.tx.to);\n if (!address) {\n throw new Error('SwapController:createSwapTransaction - address is required');\n }\n const transaction = {\n data: response.tx.data,\n to: address,\n gas,\n gasPrice,\n value: isSourceTokenIsNetworkToken ? BigInt(amount ?? '0') : BigInt('0'),\n toAmount: state.toTokenAmount\n };\n state.gasPriceInUSD = SwapCalculationUtil.getGasPriceInUSD(state.networkPrice, gas, gasPrice);\n state.approvalTransaction = undefined;\n state.swapTransaction = transaction;\n return transaction;\n }\n catch (error) {\n RouterController.goBack();\n SnackController.showError('Failed to create transaction');\n state.approvalTransaction = undefined;\n state.swapTransaction = undefined;\n state.fetchError = true;\n return undefined;\n }\n },\n onEmbeddedWalletApprovalSuccess() {\n SnackController.showLoading('Approve limit increase in your wallet');\n RouterController.replace('SwapPreview');\n },\n // -- Send Transactions --------------------------------- //\n async sendTransactionForApproval(data) {\n const { fromAddress, isAuthConnector } = SwapController.getParams();\n state.loadingApprovalTransaction = true;\n const approveLimitMessage = `Approve limit increase in your wallet`;\n if (isAuthConnector) {\n RouterController.pushTransactionStack({\n onSuccess: SwapController.onEmbeddedWalletApprovalSuccess\n });\n }\n else {\n SnackController.showLoading(approveLimitMessage);\n }\n try {\n await ConnectionController.sendTransaction({\n address: fromAddress,\n to: data.to,\n data: data.data,\n value: data.value,\n chainNamespace: CommonConstantsUtil.CHAIN.EVM\n });\n await SwapController.swapTokens();\n await SwapController.getTransaction();\n state.approvalTransaction = undefined;\n state.loadingApprovalTransaction = false;\n }\n catch (err) {\n const error = err;\n state.transactionError = error?.displayMessage;\n state.loadingApprovalTransaction = false;\n SnackController.showError(error?.displayMessage || 'Transaction error');\n EventsController.sendEvent({\n type: 'track',\n event: 'SWAP_APPROVAL_ERROR',\n properties: {\n message: error?.displayMessage || error?.message || 'Unknown',\n network: ChainController.state.activeCaipNetwork?.caipNetworkId || '',\n swapFromToken: SwapController.state.sourceToken?.symbol || '',\n swapToToken: SwapController.state.toToken?.symbol || '',\n swapFromAmount: SwapController.state.sourceTokenAmount || '',\n swapToAmount: SwapController.state.toTokenAmount || '',\n isSmartAccount: getPreferredAccountType(CommonConstantsUtil.CHAIN.EVM) ===\n W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT\n }\n });\n }\n },\n async sendTransactionForSwap(data) {\n if (!data) {\n return undefined;\n }\n const { fromAddress, toTokenAmount, isAuthConnector } = SwapController.getParams();\n state.loadingTransaction = true;\n const snackbarPendingMessage = `Swapping ${state.sourceToken?.symbol} to ${NumberUtil.formatNumberToLocalString(toTokenAmount, 3)} ${state.toToken?.symbol}`;\n const snackbarSuccessMessage = `Swapped ${state.sourceToken?.symbol} to ${NumberUtil.formatNumberToLocalString(toTokenAmount, 3)} ${state.toToken?.symbol}`;\n if (isAuthConnector) {\n RouterController.pushTransactionStack({\n onSuccess() {\n RouterController.replace('Account');\n SnackController.showLoading(snackbarPendingMessage);\n controller.resetState();\n }\n });\n }\n else {\n SnackController.showLoading('Confirm transaction in your wallet');\n }\n try {\n const forceUpdateAddresses = [state.sourceToken?.address, state.toToken?.address].join(',');\n const transactionHash = await ConnectionController.sendTransaction({\n address: fromAddress,\n to: data.to,\n data: data.data,\n value: data.value,\n chainNamespace: CommonConstantsUtil.CHAIN.EVM\n });\n state.loadingTransaction = false;\n SnackController.showSuccess(snackbarSuccessMessage);\n EventsController.sendEvent({\n type: 'track',\n event: 'SWAP_SUCCESS',\n properties: {\n network: ChainController.state.activeCaipNetwork?.caipNetworkId || '',\n swapFromToken: SwapController.state.sourceToken?.symbol || '',\n swapToToken: SwapController.state.toToken?.symbol || '',\n swapFromAmount: SwapController.state.sourceTokenAmount || '',\n swapToAmount: SwapController.state.toTokenAmount || '',\n isSmartAccount: getPreferredAccountType(CommonConstantsUtil.CHAIN.EVM) ===\n W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT\n }\n });\n controller.resetState();\n if (!isAuthConnector) {\n RouterController.replace('Account');\n }\n controller.getMyTokensWithBalance(forceUpdateAddresses);\n return transactionHash;\n }\n catch (err) {\n const error = err;\n state.transactionError = error?.displayMessage;\n state.loadingTransaction = false;\n SnackController.showError(error?.displayMessage || 'Transaction error');\n EventsController.sendEvent({\n type: 'track',\n event: 'SWAP_ERROR',\n properties: {\n message: error?.displayMessage || error?.message || 'Unknown',\n network: ChainController.state.activeCaipNetwork?.caipNetworkId || '',\n swapFromToken: SwapController.state.sourceToken?.symbol || '',\n swapToToken: SwapController.state.toToken?.symbol || '',\n swapFromAmount: SwapController.state.sourceTokenAmount || '',\n swapToAmount: SwapController.state.toTokenAmount || '',\n isSmartAccount: getPreferredAccountType(CommonConstantsUtil.CHAIN.EVM) ===\n W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT\n }\n });\n return undefined;\n }\n },\n // -- Checks -------------------------------------------- //\n hasInsufficientToken(sourceTokenAmount, sourceTokenAddress) {\n const isInsufficientSourceTokenForSwap = SwapCalculationUtil.isInsufficientSourceTokenForSwap(sourceTokenAmount, sourceTokenAddress, state.myTokensWithBalance);\n return isInsufficientSourceTokenForSwap;\n },\n // -- Calculations -------------------------------------- //\n setTransactionDetails() {\n const { toTokenAddress, toTokenDecimals } = SwapController.getParams();\n if (!toTokenAddress || !toTokenDecimals) {\n return;\n }\n state.gasPriceInUSD = SwapCalculationUtil.getGasPriceInUSD(state.networkPrice, BigInt(state.gasFee), BigInt(INITIAL_GAS_LIMIT));\n state.priceImpact = SwapCalculationUtil.getPriceImpact({\n sourceTokenAmount: state.sourceTokenAmount,\n sourceTokenPriceInUSD: state.sourceTokenPriceInUSD,\n toTokenPriceInUSD: state.toTokenPriceInUSD,\n toTokenAmount: state.toTokenAmount\n });\n state.maxSlippage = SwapCalculationUtil.getMaxSlippage(state.slippage, state.toTokenAmount);\n state.providerFee = SwapCalculationUtil.getProviderFee(state.sourceTokenAmount);\n }\n};\n// Export the controller wrapped with our error boundary\nexport const SwapController = withErrorBoundary(controller);\n//# sourceMappingURL=SwapController.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { withErrorBoundary } from '../utils/withErrorBoundary.js';\n// -- State --------------------------------------------- //\nconst state = proxy({\n message: '',\n open: false,\n triggerRect: {\n width: 0,\n height: 0,\n top: 0,\n left: 0\n },\n variant: 'shade'\n});\n// -- Controller ---------------------------------------- //\nconst controller = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n showTooltip({ message, triggerRect, variant }) {\n state.open = true;\n state.message = message;\n state.triggerRect = triggerRect;\n state.variant = variant;\n },\n hide() {\n state.open = false;\n state.message = '';\n state.triggerRect = {\n width: 0,\n height: 0,\n top: 0,\n left: 0\n };\n }\n};\n// Export the controller wrapped with our error boundary\nexport const TooltipController = withErrorBoundary(controller);\n//# sourceMappingURL=TooltipController.js.map","import { ConnectionController } from '../controllers/ConnectionController.js';\nimport { ModalController } from '../controllers/ModalController.js';\nimport { RouterController } from '../controllers/RouterController.js';\nimport { SIWXUtil } from './SIWXUtil.js';\nexport const ModalUtil = {\n isUnsupportedChainView() {\n return (RouterController.state.view === 'UnsupportedChain' ||\n (RouterController.state.view === 'SwitchNetwork' &&\n RouterController.state.history.includes('UnsupportedChain')));\n },\n async safeClose() {\n if (this.isUnsupportedChainView()) {\n ModalController.shake();\n return;\n }\n const isSIWXCloseDisabled = await SIWXUtil.isSIWXCloseDisabled();\n if (isSIWXCloseDisabled) {\n ModalController.shake();\n return;\n }\n if (RouterController.state.view === 'DataCapture' ||\n RouterController.state.view === 'DataCaptureOtpConfirm') {\n ConnectionController.disconnect();\n }\n ModalController.close();\n }\n};\n//# sourceMappingURL=ModalUtil.js.map","export const MathUtil = {\n interpolate(inputRange, outputRange, value) {\n if (inputRange.length !== 2 || outputRange.length !== 2) {\n throw new Error('inputRange and outputRange must be an array of length 2');\n }\n const originalRangeMin = inputRange[0] || 0;\n const originalRangeMax = inputRange[1] || 0;\n const newRangeMin = outputRange[0] || 0;\n const newRangeMax = outputRange[1] || 0;\n if (value < originalRangeMin) {\n return newRangeMin;\n }\n if (value > originalRangeMax) {\n return newRangeMax;\n }\n return (((newRangeMax - newRangeMin) / (originalRangeMax - originalRangeMin)) *\n (value - originalRangeMin) +\n newRangeMin);\n }\n};\n//# sourceMappingURL=MathUtil.js.map","import { css } from '../../utils/ThemeHelperUtil.js';\nexport default css `\n :host {\n display: block;\n border-radius: clamp(0px, ${({ borderRadius }) => borderRadius['8']}, 44px);\n box-shadow: 0 0 0 1px ${({ tokens }) => tokens.theme.foregroundPrimary};\n overflow: hidden;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiCard = class WuiCard extends LitElement {\n render() {\n return html `<slot></slot>`;\n }\n};\nWuiCard.styles = [resetStyles, styles];\nWuiCard = __decorate([\n customElement('wui-card')\n], WuiCard);\nexport { WuiCard };\n//# sourceMappingURL=index.js.map","import { css } from '../../utils/ThemeHelperUtil.js';\nexport default css `\n :host {\n width: 100%;\n }\n\n :host > wui-flex {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: ${({ spacing }) => spacing[2]};\n padding: ${({ spacing }) => spacing[3]};\n border-radius: ${({ borderRadius }) => borderRadius[6]};\n border: 1px solid ${({ tokens }) => tokens.theme.borderPrimary};\n box-sizing: border-box;\n background-color: ${({ tokens }) => tokens.theme.foregroundPrimary};\n box-shadow: 0px 0px 16px 0px rgba(0, 0, 0, 0.25);\n color: ${({ tokens }) => tokens.theme.textPrimary};\n }\n\n :host > wui-flex[data-type='info'] {\n .icon-box {\n background-color: ${({ tokens }) => tokens.theme.foregroundSecondary};\n\n wui-icon {\n color: ${({ tokens }) => tokens.theme.iconDefault};\n }\n }\n }\n :host > wui-flex[data-type='success'] {\n .icon-box {\n background-color: ${({ tokens }) => tokens.core.backgroundSuccess};\n\n wui-icon {\n color: ${({ tokens }) => tokens.core.borderSuccess};\n }\n }\n }\n :host > wui-flex[data-type='warning'] {\n .icon-box {\n background-color: ${({ tokens }) => tokens.core.backgroundWarning};\n\n wui-icon {\n color: ${({ tokens }) => tokens.core.borderWarning};\n }\n }\n }\n :host > wui-flex[data-type='error'] {\n .icon-box {\n background-color: ${({ tokens }) => tokens.core.backgroundError};\n\n wui-icon {\n color: ${({ tokens }) => tokens.core.borderError};\n }\n }\n }\n\n wui-flex {\n width: 100%;\n }\n\n wui-text {\n word-break: break-word;\n flex: 1;\n }\n\n .close {\n cursor: pointer;\n color: ${({ tokens }) => tokens.theme.iconDefault};\n }\n\n .icon-box {\n height: 40px;\n width: 40px;\n border-radius: ${({ borderRadius }) => borderRadius['2']};\n background-color: var(--local-icon-bg-value);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { AlertController } from '@reown/appkit-controllers';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-text/index.js';\nimport '../../layout/wui-flex/index.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nconst TYPE_ICON_NAME = {\n info: 'info',\n success: 'checkmark',\n warning: 'warningCircle',\n error: 'warning'\n};\nlet WuiAlertBar = class WuiAlertBar extends LitElement {\n constructor() {\n super(...arguments);\n this.message = '';\n this.type = 'info';\n }\n render() {\n return html `\n <wui-flex\n data-type=${ifDefined(this.type)}\n flexDirection=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n gap=\"2\"\n >\n <wui-flex columnGap=\"2\" flexDirection=\"row\" alignItems=\"center\">\n <wui-flex\n flexDirection=\"row\"\n alignItems=\"center\"\n justifyContent=\"center\"\n class=\"icon-box\"\n >\n <wui-icon color=\"inherit\" size=\"md\" name=${TYPE_ICON_NAME[this.type]}></wui-icon>\n </wui-flex>\n <wui-text variant=\"md-medium\" color=\"inherit\" data-testid=\"wui-alertbar-text\"\n >${this.message}</wui-text\n >\n </wui-flex>\n <wui-icon\n class=\"close\"\n color=\"inherit\"\n size=\"sm\"\n name=\"close\"\n @click=${this.onClose}\n ></wui-icon>\n </wui-flex>\n `;\n }\n onClose() {\n AlertController.close();\n }\n};\nWuiAlertBar.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiAlertBar.prototype, \"message\", void 0);\n__decorate([\n property()\n], WuiAlertBar.prototype, \"type\", void 0);\nWuiAlertBar = __decorate([\n customElement('wui-alertbar')\n], WuiAlertBar);\nexport { WuiAlertBar };\n//# sourceMappingURL=index.js.map","import { css } from '@reown/appkit-ui';\nexport default css `\n :host {\n display: block;\n position: absolute;\n top: ${({ spacing }) => spacing['3']};\n left: ${({ spacing }) => spacing['4']};\n right: ${({ spacing }) => spacing['4']};\n opacity: 0;\n pointer-events: none;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { AlertController } from '@reown/appkit-controllers';\nimport { customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-alertbar';\nimport styles from './styles.js';\nexport const presets = {\n info: {\n backgroundColor: 'fg-350',\n iconColor: 'fg-325',\n icon: 'info'\n },\n success: {\n backgroundColor: 'success-glass-reown-020',\n iconColor: 'success-125',\n icon: 'checkmark'\n },\n warning: {\n backgroundColor: 'warning-glass-reown-020',\n iconColor: 'warning-100',\n icon: 'warningCircle'\n },\n error: {\n backgroundColor: 'error-glass-reown-020',\n iconColor: 'error-125',\n icon: 'warning'\n }\n};\nlet W3mAlertBar = class W3mAlertBar extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.open = AlertController.state.open;\n this.onOpen(true);\n this.unsubscribe.push(AlertController.subscribeKey('open', val => {\n this.open = val;\n this.onOpen(false);\n }));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const { message, variant } = AlertController.state;\n const preset = presets[variant];\n return html `\n <wui-alertbar\n message=${message}\n backgroundColor=${preset?.backgroundColor}\n iconColor=${preset?.iconColor}\n icon=${preset?.icon}\n type=${variant}\n ></wui-alertbar>\n `;\n }\n onOpen(isMounted) {\n if (this.open) {\n this.animate([\n { opacity: 0, transform: 'scale(0.85)' },\n { opacity: 1, transform: 'scale(1)' }\n ], {\n duration: 150,\n fill: 'forwards',\n easing: 'ease'\n });\n this.style.cssText = `pointer-events: auto`;\n }\n else if (!isMounted) {\n this.animate([\n { opacity: 1, transform: 'scale(1)' },\n { opacity: 0, transform: 'scale(0.85)' }\n ], {\n duration: 150,\n fill: 'forwards',\n easing: 'ease'\n });\n this.style.cssText = `pointer-events: none`;\n }\n }\n};\nW3mAlertBar.styles = styles;\n__decorate([\n state()\n], W3mAlertBar.prototype, \"open\", void 0);\nW3mAlertBar = __decorate([\n customElement('w3m-alertbar')\n], W3mAlertBar);\nexport { W3mAlertBar };\n//# sourceMappingURL=index.js.map","import { css } from '../../utils/ThemeHelperUtil.js';\nexport default css `\n :host {\n position: relative;\n }\n\n button {\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: transparent;\n padding: ${({ spacing }) => spacing[1]};\n }\n\n /* -- Colors --------------------------------------------------- */\n button[data-type='accent'] wui-icon {\n color: ${({ tokens }) => tokens.core.iconAccentPrimary};\n }\n\n button[data-type='neutral'][data-variant='primary'] wui-icon {\n color: ${({ tokens }) => tokens.theme.iconInverse};\n }\n\n button[data-type='neutral'][data-variant='secondary'] wui-icon {\n color: ${({ tokens }) => tokens.theme.iconDefault};\n }\n\n button[data-type='success'] wui-icon {\n color: ${({ tokens }) => tokens.core.iconSuccess};\n }\n\n button[data-type='error'] wui-icon {\n color: ${({ tokens }) => tokens.core.iconError};\n }\n\n /* -- Sizes --------------------------------------------------- */\n button[data-size='xs'] {\n width: 16px;\n height: 16px;\n\n border-radius: ${({ borderRadius }) => borderRadius[1]};\n }\n\n button[data-size='sm'] {\n width: 20px;\n height: 20px;\n border-radius: ${({ borderRadius }) => borderRadius[1]};\n }\n\n button[data-size='md'] {\n width: 24px;\n height: 24px;\n border-radius: ${({ borderRadius }) => borderRadius[2]};\n }\n\n button[data-size='lg'] {\n width: 28px;\n height: 28px;\n border-radius: ${({ borderRadius }) => borderRadius[2]};\n }\n\n button[data-size='xs'] wui-icon {\n width: 8px;\n height: 8px;\n }\n\n button[data-size='sm'] wui-icon {\n width: 12px;\n height: 12px;\n }\n\n button[data-size='md'] wui-icon {\n width: 16px;\n height: 16px;\n }\n\n button[data-size='lg'] wui-icon {\n width: 20px;\n height: 20px;\n }\n\n /* -- Hover --------------------------------------------------- */\n @media (hover: hover) {\n button[data-type='accent']:hover:enabled {\n background-color: ${({ tokens }) => tokens.core.foregroundAccent010};\n }\n\n button[data-variant='primary'][data-type='neutral']:hover:enabled {\n background-color: ${({ tokens }) => tokens.theme.foregroundSecondary};\n }\n\n button[data-variant='secondary'][data-type='neutral']:hover:enabled {\n background-color: ${({ tokens }) => tokens.theme.foregroundSecondary};\n }\n\n button[data-type='success']:hover:enabled {\n background-color: ${({ tokens }) => tokens.core.backgroundSuccess};\n }\n\n button[data-type='error']:hover:enabled {\n background-color: ${({ tokens }) => tokens.core.backgroundError};\n }\n }\n\n /* -- Focus --------------------------------------------------- */\n button:focus-visible {\n box-shadow: 0 0 0 4px ${({ tokens }) => tokens.core.foregroundAccent020};\n }\n\n /* -- Properties --------------------------------------------------- */\n button[data-full-width='true'] {\n width: 100%;\n }\n\n :host([fullWidth]) {\n width: 100%;\n }\n\n button[disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport '../../components/wui-icon/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiIconButton = class WuiIconButton extends LitElement {\n constructor() {\n super(...arguments);\n this.icon = 'card';\n this.variant = 'primary';\n this.type = 'accent';\n this.size = 'md';\n this.iconSize = undefined;\n this.fullWidth = false;\n this.disabled = false;\n }\n render() {\n return html `<button\n data-variant=${this.variant}\n data-type=${this.type}\n data-size=${this.size}\n data-full-width=${this.fullWidth}\n ?disabled=${this.disabled}\n >\n <wui-icon color=\"inherit\" name=${this.icon} size=${ifDefined(this.iconSize)}></wui-icon>\n </button>`;\n }\n};\nWuiIconButton.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiIconButton.prototype, \"icon\", void 0);\n__decorate([\n property()\n], WuiIconButton.prototype, \"variant\", void 0);\n__decorate([\n property()\n], WuiIconButton.prototype, \"type\", void 0);\n__decorate([\n property()\n], WuiIconButton.prototype, \"size\", void 0);\n__decorate([\n property()\n], WuiIconButton.prototype, \"iconSize\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiIconButton.prototype, \"fullWidth\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiIconButton.prototype, \"disabled\", void 0);\nWuiIconButton = __decorate([\n customElement('wui-icon-button')\n], WuiIconButton);\nexport { WuiIconButton };\n//# sourceMappingURL=index.js.map","import { css } from '../../utils/ThemeHelperUtil.js';\nexport default css `\n button {\n display: block;\n display: flex;\n align-items: center;\n padding: ${({ spacing }) => spacing[1]};\n transition: background-color ${({ durations }) => durations['lg']}\n ${({ easings }) => easings['ease-out-power-2']};\n will-change: background-color;\n border-radius: ${({ borderRadius }) => borderRadius[32]};\n }\n\n wui-image {\n border-radius: 100%;\n }\n\n wui-text {\n padding-left: ${({ spacing }) => spacing[1]};\n }\n\n .left-icon-container,\n .right-icon-container {\n width: 24px;\n height: 24px;\n justify-content: center;\n align-items: center;\n }\n\n wui-icon {\n color: ${({ tokens }) => tokens.theme.iconDefault};\n }\n\n /* -- Sizes --------------------------------------------------- */\n button[data-size='lg'] {\n height: 32px;\n }\n\n button[data-size='md'] {\n height: 28px;\n }\n\n button[data-size='sm'] {\n height: 24px;\n }\n\n button[data-size='lg'] wui-image {\n width: 24px;\n height: 24px;\n }\n\n button[data-size='md'] wui-image {\n width: 20px;\n height: 20px;\n }\n\n button[data-size='sm'] wui-image {\n width: 16px;\n height: 16px;\n }\n\n button[data-size='lg'] .left-icon-container {\n width: 24px;\n height: 24px;\n }\n\n button[data-size='md'] .left-icon-container {\n width: 20px;\n height: 20px;\n }\n\n button[data-size='sm'] .left-icon-container {\n width: 16px;\n height: 16px;\n }\n\n /* -- Variants --------------------------------------------------------- */\n button[data-type='filled-dropdown'] {\n background-color: ${({ tokens }) => tokens.theme.foregroundPrimary};\n }\n\n button[data-type='text-dropdown'] {\n background-color: transparent;\n }\n\n /* -- Focus states --------------------------------------------------- */\n button:focus-visible:enabled {\n background-color: ${({ tokens }) => tokens.theme.foregroundSecondary};\n box-shadow: 0 0 0 4px ${({ tokens }) => tokens.core.foregroundAccent040};\n }\n\n /* -- Hover & Active states ----------------------------------------------------------- */\n @media (hover: hover) and (pointer: fine) {\n button:hover:enabled,\n button:active:enabled {\n background-color: ${({ tokens }) => tokens.theme.foregroundSecondary};\n }\n }\n\n /* -- Disabled states --------------------------------------------------- */\n button:disabled {\n background-color: ${({ tokens }) => tokens.theme.foregroundSecondary};\n opacity: 0.5;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-image/index.js';\nimport '../../components/wui-text/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nconst TEXT_VARIANT_BY_SIZE = {\n lg: 'lg-regular',\n md: 'md-regular',\n sm: 'sm-regular'\n};\nconst ICON_SIZE_BY_SIZE = {\n lg: 'lg',\n md: 'md',\n sm: 'sm'\n};\nlet WuiSelect = class WuiSelect extends LitElement {\n constructor() {\n super(...arguments);\n this.imageSrc = '';\n this.text = '';\n this.size = 'lg';\n this.type = 'text-dropdown';\n this.disabled = false;\n }\n render() {\n return html `<button ?disabled=${this.disabled} data-size=${this.size} data-type=${this.type}>\n ${this.imageTemplate()} ${this.textTemplate()}\n <wui-flex class=\"right-icon-container\">\n <wui-icon name=\"chevronBottom\"></wui-icon>\n </wui-flex>\n </button>`;\n }\n textTemplate() {\n const textSize = TEXT_VARIANT_BY_SIZE[this.size];\n if (this.text) {\n return html `<wui-text color=\"primary\" variant=${textSize}>${this.text}</wui-text>`;\n }\n return null;\n }\n imageTemplate() {\n if (this.imageSrc) {\n return html `<wui-image src=${this.imageSrc} alt=\"select visual\"></wui-image>`;\n }\n const iconSize = ICON_SIZE_BY_SIZE[this.size];\n return html ` <wui-flex class=\"left-icon-container\">\n <wui-icon size=${iconSize} name=\"networkPlaceholder\"></wui-icon>\n </wui-flex>`;\n }\n};\nWuiSelect.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiSelect.prototype, \"imageSrc\", void 0);\n__decorate([\n property()\n], WuiSelect.prototype, \"text\", void 0);\n__decorate([\n property()\n], WuiSelect.prototype, \"size\", void 0);\n__decorate([\n property()\n], WuiSelect.prototype, \"type\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiSelect.prototype, \"disabled\", void 0);\nWuiSelect = __decorate([\n customElement('wui-select')\n], WuiSelect);\nexport { WuiSelect };\n//# sourceMappingURL=index.js.map","export const ConstantsUtil = {\n ACCOUNT_TABS: [{ label: 'Tokens' }, { label: 'Activity' }],\n SECURE_SITE_ORIGIN: (typeof process !== 'undefined' && typeof process.env !== 'undefined'\n ? process.env['NEXT_PUBLIC_SECURE_SITE_ORIGIN']\n : undefined) || 'https://secure.walletconnect.org',\n VIEW_DIRECTION: {\n Next: 'next',\n Prev: 'prev'\n },\n ANIMATION_DURATIONS: {\n HeaderText: 120,\n ModalHeight: 150,\n ViewTransition: 150\n },\n VIEWS_WITH_LEGAL_FOOTER: [\n 'Connect',\n 'ConnectWallets',\n 'OnRampTokenSelect',\n 'OnRampFiatSelect',\n 'OnRampProviders'\n ],\n VIEWS_WITH_DEFAULT_FOOTER: ['Networks']\n};\n//# sourceMappingURL=ConstantsUtil.js.map","import { css } from '../../utils/ThemeHelperUtil.js';\nexport default css `\n button {\n background-color: transparent;\n padding: ${({ spacing }) => spacing[1]};\n }\n\n button:focus-visible {\n box-shadow: 0 0 0 4px ${({ tokens }) => tokens.core.foregroundAccent020};\n }\n\n button[data-variant='accent']:hover:enabled,\n button[data-variant='accent']:focus-visible {\n background-color: ${({ tokens }) => tokens.core.foregroundAccent010};\n }\n\n button[data-variant='primary']:hover:enabled,\n button[data-variant='primary']:focus-visible,\n button[data-variant='secondary']:hover:enabled,\n button[data-variant='secondary']:focus-visible {\n background-color: ${({ tokens }) => tokens.theme.foregroundSecondary};\n }\n\n button[data-size='xs'] > wui-icon {\n width: 8px;\n height: 8px;\n }\n\n button[data-size='sm'] > wui-icon {\n width: 12px;\n height: 12px;\n }\n\n button[data-size='xs'],\n button[data-size='sm'] {\n border-radius: ${({ borderRadius }) => borderRadius[1]};\n }\n\n button[data-size='md'],\n button[data-size='lg'] {\n border-radius: ${({ borderRadius }) => borderRadius[2]};\n }\n\n button[data-size='md'] > wui-icon {\n width: 16px;\n height: 16px;\n }\n\n button[data-size='lg'] > wui-icon {\n width: 20px;\n height: 20px;\n }\n\n button:disabled {\n background-color: transparent;\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n button:hover:not(:disabled) {\n background-color: var(--wui-color-accent-glass-015);\n }\n\n button:focus-visible:not(:disabled) {\n background-color: var(--wui-color-accent-glass-015);\n box-shadow:\n inset 0 0 0 1px var(--wui-color-accent-100),\n 0 0 0 4px var(--wui-color-accent-glass-020);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-icon/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiIconLink = class WuiIconLink extends LitElement {\n constructor() {\n super(...arguments);\n this.size = 'md';\n this.disabled = false;\n this.icon = 'copy';\n this.iconColor = 'default';\n this.variant = 'accent';\n }\n render() {\n const iconColors = {\n accent: 'accent-primary',\n primary: 'inverse',\n secondary: 'default'\n };\n return html `\n <button data-variant=${this.variant} ?disabled=${this.disabled} data-size=${this.size}>\n <wui-icon\n color=${iconColors[this.variant] || this.iconColor}\n size=${this.size}\n name=${this.icon}\n ></wui-icon>\n </button>\n `;\n }\n};\nWuiIconLink.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiIconLink.prototype, \"size\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiIconLink.prototype, \"disabled\", void 0);\n__decorate([\n property()\n], WuiIconLink.prototype, \"icon\", void 0);\n__decorate([\n property()\n], WuiIconLink.prototype, \"iconColor\", void 0);\n__decorate([\n property()\n], WuiIconLink.prototype, \"variant\", void 0);\nWuiIconLink = __decorate([\n customElement('wui-icon-link')\n], WuiIconLink);\nexport { WuiIconLink };\n//# sourceMappingURL=index.js.map","import { svg } from 'lit';\nexport const networkSvgLg = svg `<svg width=\"86\" height=\"96\" fill=\"none\">\n <path\n d=\"M78.3244 18.926L50.1808 2.45078C45.7376 -0.150261 40.2624 -0.150262 35.8192 2.45078L7.6756 18.926C3.23322 21.5266 0.5 26.3301 0.5 31.5248V64.4752C0.5 69.6699 3.23322 74.4734 7.6756 77.074L35.8192 93.5492C40.2624 96.1503 45.7376 96.1503 50.1808 93.5492L78.3244 77.074C82.7668 74.4734 85.5 69.6699 85.5 64.4752V31.5248C85.5 26.3301 82.7668 21.5266 78.3244 18.926Z\"\n />\n</svg>`;\n//# sourceMappingURL=networkLg.js.map","import { svg } from 'lit';\nexport const networkSvgSm = svg `\n <svg fill=\"none\" viewBox=\"0 0 36 40\">\n <path\n d=\"M15.4 2.1a5.21 5.21 0 0 1 5.2 0l11.61 6.7a5.21 5.21 0 0 1 2.61 4.52v13.4c0 1.87-1 3.59-2.6 4.52l-11.61 6.7c-1.62.93-3.6.93-5.22 0l-11.6-6.7a5.21 5.21 0 0 1-2.61-4.51v-13.4c0-1.87 1-3.6 2.6-4.52L15.4 2.1Z\"\n />\n </svg>\n`;\n//# sourceMappingURL=networkSm.js.map","import { css } from '../../utils/ThemeHelperUtil.js';\nexport default css `\n :host {\n position: relative;\n border-radius: inherit;\n display: flex;\n justify-content: center;\n align-items: center;\n width: var(--local-width);\n height: var(--local-height);\n }\n\n :host([data-round='true']) {\n background: ${({ tokens }) => tokens.theme.foregroundPrimary};\n border-radius: 100%;\n outline: 1px solid ${({ tokens }) => tokens.core.glass010};\n }\n\n svg {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1;\n }\n\n svg > path {\n stroke: var(--local-stroke);\n }\n\n wui-image {\n width: 100%;\n height: 100%;\n -webkit-clip-path: var(--local-path);\n clip-path: var(--local-path);\n background: ${({ tokens }) => tokens.theme.foregroundPrimary};\n }\n\n wui-icon {\n transform: translateY(-5%);\n width: var(--local-icon-size);\n height: var(--local-icon-size);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { networkSvgLg } from '../../assets/svg/networkLg.js';\nimport { networkSvgMd } from '../../assets/svg/networkMd.js';\nimport { networkSvgSm } from '../../assets/svg/networkSm.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-image/index.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiNetworkImage = class WuiNetworkImage extends LitElement {\n constructor() {\n super(...arguments);\n this.size = 'md';\n this.name = 'uknown';\n this.networkImagesBySize = {\n sm: networkSvgSm,\n md: networkSvgMd,\n lg: networkSvgLg\n };\n this.selected = false;\n this.round = false;\n }\n render() {\n const getSize = {\n sm: '4',\n md: '6',\n lg: '10'\n };\n if (this.round) {\n this.dataset['round'] = 'true';\n this.style.cssText = `\n --local-width: var(--apkt-spacing-10);\n --local-height: var(--apkt-spacing-10);\n --local-icon-size: var(--apkt-spacing-4);\n `;\n }\n else {\n this.style.cssText = `\n\n --local-path: var(--apkt-path-network-${this.size});\n --local-width: var(--apkt-width-network-${this.size});\n --local-height: var(--apkt-height-network-${this.size});\n --local-icon-size: var(--apkt-spacing-${getSize[this.size]});\n `;\n }\n return html `${this.templateVisual()} ${this.svgTemplate()} `;\n }\n svgTemplate() {\n if (this.round) {\n return null;\n }\n return this.networkImagesBySize[this.size];\n }\n templateVisual() {\n if (this.imageSrc) {\n return html `<wui-image src=${this.imageSrc} alt=${this.name}></wui-image>`;\n }\n return html `<wui-icon size=\"inherit\" color=\"default\" name=\"networkPlaceholder\"></wui-icon>`;\n }\n};\nWuiNetworkImage.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiNetworkImage.prototype, \"size\", void 0);\n__decorate([\n property()\n], WuiNetworkImage.prototype, \"name\", void 0);\n__decorate([\n property({ type: Object })\n], WuiNetworkImage.prototype, \"networkImagesBySize\", void 0);\n__decorate([\n property()\n], WuiNetworkImage.prototype, \"imageSrc\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiNetworkImage.prototype, \"selected\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiNetworkImage.prototype, \"round\", void 0);\nWuiNetworkImage = __decorate([\n customElement('wui-network-image')\n], WuiNetworkImage);\nexport { WuiNetworkImage };\n//# sourceMappingURL=index.js.map","import { css } from '../../utils/ThemeHelperUtil.js';\nexport default css `\n :host {\n position: relative;\n display: flex;\n width: 100%;\n height: 1px;\n background-color: ${({ tokens }) => tokens.theme.borderPrimary};\n justify-content: center;\n align-items: center;\n }\n\n :host > wui-text {\n position: absolute;\n padding: 0px 8px;\n transition: background-color ${({ durations }) => durations['lg']}\n ${({ easings }) => easings['ease-out-power-2']};\n will-change: background-color;\n }\n\n :host([data-bg-color='primary']) > wui-text {\n background-color: ${({ tokens }) => tokens.theme.backgroundPrimary};\n }\n\n :host([data-bg-color='secondary']) > wui-text {\n background-color: ${({ tokens }) => tokens.theme.foregroundPrimary};\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-text/index.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiSeparator = class WuiSeparator extends LitElement {\n constructor() {\n super(...arguments);\n this.text = '';\n this.bgColor = 'primary';\n }\n render() {\n this.dataset['bgColor'] = this.bgColor;\n return html `${this.template()}`;\n }\n template() {\n if (this.text) {\n return html `<wui-text variant=\"md-regular\" color=\"secondary\">${this.text}</wui-text>`;\n }\n return null;\n }\n};\nWuiSeparator.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiSeparator.prototype, \"text\", void 0);\n__decorate([\n property()\n], WuiSeparator.prototype, \"bgColor\", void 0);\nWuiSeparator = __decorate([\n customElement('wui-separator')\n], WuiSeparator);\nexport { WuiSeparator };\n//# sourceMappingURL=index.js.map","export const AppKitPayErrorCodes = {\n INVALID_PAYMENT_CONFIG: 'INVALID_PAYMENT_CONFIG',\n INVALID_RECIPIENT: 'INVALID_RECIPIENT',\n INVALID_ASSET: 'INVALID_ASSET',\n INVALID_AMOUNT: 'INVALID_AMOUNT',\n UNKNOWN_ERROR: 'UNKNOWN_ERROR',\n UNABLE_TO_INITIATE_PAYMENT: 'UNABLE_TO_INITIATE_PAYMENT',\n INVALID_CHAIN_NAMESPACE: 'INVALID_CHAIN_NAMESPACE',\n GENERIC_PAYMENT_ERROR: 'GENERIC_PAYMENT_ERROR',\n UNABLE_TO_GET_EXCHANGES: 'UNABLE_TO_GET_EXCHANGES',\n ASSET_NOT_SUPPORTED: 'ASSET_NOT_SUPPORTED',\n UNABLE_TO_GET_PAY_URL: 'UNABLE_TO_GET_PAY_URL',\n UNABLE_TO_GET_BUY_STATUS: 'UNABLE_TO_GET_BUY_STATUS',\n UNABLE_TO_GET_TOKEN_BALANCES: 'UNABLE_TO_GET_TOKEN_BALANCES',\n UNABLE_TO_GET_QUOTE: 'UNABLE_TO_GET_QUOTE',\n UNABLE_TO_GET_QUOTE_STATUS: 'UNABLE_TO_GET_QUOTE_STATUS',\n INVALID_RECIPIENT_ADDRESS_FOR_ASSET: 'INVALID_RECIPIENT_ADDRESS_FOR_ASSET'\n};\nexport const AppKitPayErrorMessages = {\n [AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG]: 'Invalid payment configuration',\n [AppKitPayErrorCodes.INVALID_RECIPIENT]: 'Invalid recipient address',\n [AppKitPayErrorCodes.INVALID_ASSET]: 'Invalid asset specified',\n [AppKitPayErrorCodes.INVALID_AMOUNT]: 'Invalid payment amount',\n [AppKitPayErrorCodes.INVALID_RECIPIENT_ADDRESS_FOR_ASSET]: 'Invalid recipient address for the asset selected',\n [AppKitPayErrorCodes.UNKNOWN_ERROR]: 'Unknown payment error occurred',\n [AppKitPayErrorCodes.UNABLE_TO_INITIATE_PAYMENT]: 'Unable to initiate payment',\n [AppKitPayErrorCodes.INVALID_CHAIN_NAMESPACE]: 'Invalid chain namespace',\n [AppKitPayErrorCodes.GENERIC_PAYMENT_ERROR]: 'Unable to process payment',\n [AppKitPayErrorCodes.UNABLE_TO_GET_EXCHANGES]: 'Unable to get exchanges',\n [AppKitPayErrorCodes.ASSET_NOT_SUPPORTED]: 'Asset not supported by the selected exchange',\n [AppKitPayErrorCodes.UNABLE_TO_GET_PAY_URL]: 'Unable to get payment URL',\n [AppKitPayErrorCodes.UNABLE_TO_GET_BUY_STATUS]: 'Unable to get buy status',\n [AppKitPayErrorCodes.UNABLE_TO_GET_TOKEN_BALANCES]: 'Unable to get token balances',\n [AppKitPayErrorCodes.UNABLE_TO_GET_QUOTE]: 'Unable to get quote. Please choose a different token',\n [AppKitPayErrorCodes.UNABLE_TO_GET_QUOTE_STATUS]: 'Unable to get quote status'\n};\nexport class AppKitPayError extends Error {\n get message() {\n return AppKitPayErrorMessages[this.code];\n }\n constructor(code, details) {\n super(AppKitPayErrorMessages[code]);\n this.name = 'AppKitPayError';\n this.code = code;\n this.details = details;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, AppKitPayError);\n }\n }\n}\nexport function createAppKitPayError(code, details) {\n const errorCode = code || AppKitPayErrorCodes.UNKNOWN_ERROR;\n return new AppKitPayError(errorCode, details);\n}\n//# sourceMappingURL=errors.js.map","export const API_URL = 'https://rpc.walletconnect.org/v1/json-rpc';\nexport const REOWN_TEST_EXCHANGE_ID = 'reown_test';\n//# sourceMappingURL=ConstantsUtil.js.map","import { ConstantsUtil, ContractUtil, ParseUtil } from '@reown/appkit-common';\nimport { ChainController, ConnectionController, CoreHelperUtil, ProviderController } from '@reown/appkit-controllers';\nimport { DIRECT_TRANSFER_DEPOSIT_TYPE, DIRECT_TRANSFER_REQUEST_ID, DIRECT_TRANSFER_TRANSACTION_TYPE, PayController } from '../controllers/PayController.js';\nimport { AppKitPayError } from '../types/errors.js';\nimport { AppKitPayErrorCodes } from '../types/errors.js';\nexport async function ensureCorrectNetwork(options) {\n const { paymentAssetNetwork, activeCaipNetwork, approvedCaipNetworkIds, requestedCaipNetworks } = options;\n const sortedNetworks = CoreHelperUtil.sortRequestedNetworks(approvedCaipNetworkIds, requestedCaipNetworks);\n const assetCaipNetwork = sortedNetworks.find(network => network.caipNetworkId === paymentAssetNetwork);\n if (!assetCaipNetwork) {\n throw new AppKitPayError(AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG);\n }\n if (assetCaipNetwork.caipNetworkId === activeCaipNetwork.caipNetworkId) {\n return;\n }\n const isSupportingAllNetworks = ChainController.getNetworkProp('supportsAllNetworks', assetCaipNetwork.chainNamespace);\n const isSwitchAllowed = approvedCaipNetworkIds?.includes(assetCaipNetwork.caipNetworkId) || isSupportingAllNetworks;\n if (!isSwitchAllowed) {\n throw new AppKitPayError(AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG);\n }\n try {\n await ChainController.switchActiveNetwork(assetCaipNetwork);\n }\n catch (error) {\n throw new AppKitPayError(AppKitPayErrorCodes.GENERIC_PAYMENT_ERROR, error);\n }\n}\nexport function ensureCorrectAddress() {\n const { chainNamespace } = ParseUtil.parseCaipNetworkId(PayController.state.paymentAsset.network);\n const isAddress = CoreHelperUtil.isAddress(PayController.state.recipient, chainNamespace);\n if (!isAddress) {\n throw new AppKitPayError(AppKitPayErrorCodes.INVALID_RECIPIENT_ADDRESS_FOR_ASSET, `Provide valid recipient address for namespace \"${chainNamespace}\"`);\n }\n}\nexport async function processEvmNativePayment(paymentAsset, chainNamespace, params) {\n if (chainNamespace !== ConstantsUtil.CHAIN.EVM) {\n throw new AppKitPayError(AppKitPayErrorCodes.INVALID_CHAIN_NAMESPACE);\n }\n if (!params.fromAddress) {\n throw new AppKitPayError(AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG, 'fromAddress is required for native EVM payments.');\n }\n const amountValue = typeof params.amount === 'string' ? parseFloat(params.amount) : params.amount;\n if (isNaN(amountValue)) {\n throw new AppKitPayError(AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG);\n }\n const decimals = paymentAsset.metadata?.decimals ?? 18;\n const amountBigInt = ConnectionController.parseUnits(amountValue.toString(), decimals);\n if (typeof amountBigInt !== 'bigint') {\n throw new AppKitPayError(AppKitPayErrorCodes.GENERIC_PAYMENT_ERROR);\n }\n const txResponse = await ConnectionController.sendTransaction({\n chainNamespace,\n to: params.recipient,\n address: params.fromAddress,\n value: amountBigInt,\n data: '0x'\n });\n return txResponse ?? undefined;\n}\nexport async function processEvmErc20Payment(paymentAsset, params) {\n if (!params.fromAddress) {\n throw new AppKitPayError(AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG, 'fromAddress is required for ERC20 EVM payments.');\n }\n const tokenAddress = paymentAsset.asset;\n const recipientAddress = params.recipient;\n const decimals = Number(paymentAsset.metadata.decimals);\n const amountBigInt = ConnectionController.parseUnits(params.amount.toString(), decimals);\n if (amountBigInt === undefined) {\n throw new AppKitPayError(AppKitPayErrorCodes.GENERIC_PAYMENT_ERROR);\n }\n const txResponse = await ConnectionController.writeContract({\n fromAddress: params.fromAddress,\n tokenAddress,\n args: [recipientAddress, amountBigInt],\n method: 'transfer',\n abi: ContractUtil.getERC20Abi(tokenAddress),\n chainNamespace: ConstantsUtil.CHAIN.EVM\n });\n return txResponse ?? undefined;\n}\nexport async function processSolanaPayment(chainNamespace, params) {\n if (chainNamespace !== ConstantsUtil.CHAIN.SOLANA) {\n throw new AppKitPayError(AppKitPayErrorCodes.INVALID_CHAIN_NAMESPACE);\n }\n if (!params.fromAddress) {\n throw new AppKitPayError(AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG, 'fromAddress is required for Solana payments.');\n }\n const amountValue = typeof params.amount === 'string' ? parseFloat(params.amount) : params.amount;\n if (isNaN(amountValue) || amountValue <= 0) {\n throw new AppKitPayError(AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG, 'Invalid payment amount.');\n }\n try {\n const provider = ProviderController.getProvider(chainNamespace);\n if (!provider) {\n throw new AppKitPayError(AppKitPayErrorCodes.GENERIC_PAYMENT_ERROR, 'No Solana provider available.');\n }\n const txResponse = await ConnectionController.sendTransaction({\n chainNamespace: ConstantsUtil.CHAIN.SOLANA,\n to: params.recipient,\n value: amountValue,\n tokenMint: params.tokenMint\n });\n if (!txResponse) {\n throw new AppKitPayError(AppKitPayErrorCodes.GENERIC_PAYMENT_ERROR, 'Transaction failed.');\n }\n return txResponse;\n }\n catch (error) {\n if (error instanceof AppKitPayError) {\n throw error;\n }\n throw new AppKitPayError(AppKitPayErrorCodes.GENERIC_PAYMENT_ERROR, `Solana payment failed: ${error}`);\n }\n}\nexport async function getDirectTransferQuote({ sourceToken, toToken, amount, recipient }) {\n const originalAmount = ConnectionController.parseUnits(amount, sourceToken.metadata.decimals);\n const destinationAmount = ConnectionController.parseUnits(amount, toToken.metadata.decimals);\n return Promise.resolve({\n type: DIRECT_TRANSFER_REQUEST_ID,\n origin: {\n amount: originalAmount?.toString() ?? '0',\n currency: sourceToken\n },\n destination: {\n amount: destinationAmount?.toString() ?? '0',\n currency: toToken\n },\n fees: [\n {\n id: 'service',\n label: 'Service Fee',\n amount: '0',\n currency: toToken\n }\n ],\n steps: [\n {\n requestId: DIRECT_TRANSFER_REQUEST_ID,\n type: 'deposit',\n deposit: {\n amount: originalAmount?.toString() ?? '0',\n currency: sourceToken.asset,\n receiver: recipient\n }\n }\n ],\n timeInSeconds: 6\n });\n}\nexport function getTransferStep(quote) {\n if (!quote) {\n return null;\n }\n const step = quote.steps[0];\n if (!step || step.type !== DIRECT_TRANSFER_DEPOSIT_TYPE) {\n return null;\n }\n return step;\n}\nexport function getTransactionsSteps(quote, completedTransactionsCount = 0) {\n if (!quote) {\n return [];\n }\n const steps = quote.steps.filter(step => step.type === DIRECT_TRANSFER_TRANSACTION_TYPE);\n const stepsToShow = steps.filter((_, idx) => {\n const incrementedIdx = idx + 1;\n return incrementedIdx > completedTransactionsCount;\n });\n return steps.length > 0 && steps.length < 3 ? stepsToShow : [];\n}\n//# sourceMappingURL=PaymentUtil.js.map","import { NumberUtil, ParseUtil } from '@reown/appkit-common';\nimport { CoreHelperUtil, FetchUtil, OptionsController, getNativeTokenAddress } from '@reown/appkit-controllers';\nimport { HelpersUtil } from '@reown/appkit-utils';\nimport { API_URL } from './ConstantsUtil.js';\nimport { getDirectTransferQuote } from './PaymentUtil.js';\nconst api = new FetchUtil({ baseUrl: CoreHelperUtil.getApiUrl(), clientId: null });\nclass JsonRpcError extends Error {\n}\nexport function getApiUrl() {\n const projectId = OptionsController.getSnapshot().projectId;\n return `${API_URL}?projectId=${projectId}`;\n}\nfunction getSdkProperties() {\n const { projectId, sdkType, sdkVersion } = OptionsController.state;\n return {\n projectId,\n st: sdkType || 'appkit',\n sv: sdkVersion || 'html-wagmi-4.2.2'\n };\n}\nasync function sendRequest(method, params) {\n const url = getApiUrl();\n const { sdkType: st, sdkVersion: sv, projectId } = OptionsController.getSnapshot();\n const requestBody = {\n jsonrpc: '2.0',\n id: 1,\n method,\n params: {\n ...(params || {}),\n st,\n sv,\n projectId\n }\n };\n const response = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(requestBody),\n headers: { 'Content-Type': 'application/json' }\n });\n const json = await response.json();\n if (json.error) {\n throw new JsonRpcError(json.error.message);\n }\n return json;\n}\nexport async function getExchanges(params) {\n const response = await sendRequest('reown_getExchanges', params);\n return response.result;\n}\nexport async function getPayUrl(params) {\n const response = await sendRequest('reown_getExchangePayUrl', params);\n return response.result;\n}\nexport async function getBuyStatus(params) {\n const response = await sendRequest('reown_getExchangeBuyStatus', params);\n return response.result;\n}\nexport async function getTransfersQuote(params) {\n const amount = NumberUtil.bigNumber(params.amount)\n .times(10 ** params.toToken.metadata.decimals)\n .toString();\n const { chainId: originChainId, chainNamespace: originChainNamespace } = ParseUtil.parseCaipNetworkId(params.sourceToken.network);\n const { chainId: destinationChainId, chainNamespace: destinationChainNamespace } = ParseUtil.parseCaipNetworkId(params.toToken.network);\n const originCurrency = params.sourceToken.asset === 'native'\n ? getNativeTokenAddress(originChainNamespace)\n : params.sourceToken.asset;\n const destinationCurrency = params.toToken.asset === 'native'\n ? getNativeTokenAddress(destinationChainNamespace)\n : params.toToken.asset;\n const response = await api.post({\n path: '/appkit/v1/transfers/quote',\n body: {\n user: params.address,\n originChainId: originChainId.toString(),\n originCurrency,\n destinationChainId: destinationChainId.toString(),\n destinationCurrency,\n recipient: params.recipient,\n amount\n },\n params: getSdkProperties()\n });\n return response;\n}\nexport async function getQuote(params) {\n const isSameChain = HelpersUtil.isLowerCaseMatch(params.sourceToken.network, params.toToken.network);\n const isSameAsset = HelpersUtil.isLowerCaseMatch(params.sourceToken.asset, params.toToken.asset);\n if (isSameChain && isSameAsset) {\n return getDirectTransferQuote(params);\n }\n return getTransfersQuote(params);\n}\nexport async function getQuoteStatus(params) {\n const response = await api.get({\n path: '/appkit/v1/transfers/status',\n params: {\n requestId: params.requestId,\n ...getSdkProperties()\n }\n });\n return response;\n}\nexport async function getAssetsForExchange(exchangeId) {\n const response = await api.get({\n path: `/appkit/v1/transfers/assets/exchanges/${exchangeId}`,\n params: getSdkProperties()\n });\n return response;\n}\n//# sourceMappingURL=ApiUtil.js.map","import { NumberUtil, ParseUtil } from '@reown/appkit-common';\nimport { ChainController, CoreHelperUtil } from '@reown/appkit-controllers';\nimport { HelpersUtil } from '@reown/appkit-utils';\nconst SUPPORT_PAY_WITH_WALLET_CHAIN_NAMESPACES = ['eip155', 'solana'];\nconst CHAIN_ASSET_INFO_MAP = {\n eip155: {\n native: { assetNamespace: 'slip44', assetReference: '60' },\n defaultTokenNamespace: 'erc20'\n },\n solana: {\n native: { assetNamespace: 'slip44', assetReference: '501' },\n defaultTokenNamespace: 'token'\n }\n};\nexport function formatCaip19Asset(caipNetworkId, asset) {\n const { chainNamespace, chainId } = ParseUtil.parseCaipNetworkId(caipNetworkId);\n const chainInfo = CHAIN_ASSET_INFO_MAP[chainNamespace];\n if (!chainInfo) {\n throw new Error(`Unsupported chain namespace for CAIP-19 formatting: ${chainNamespace}`);\n }\n let assetNamespace = chainInfo.native.assetNamespace;\n let assetReference = chainInfo.native.assetReference;\n if (asset !== 'native') {\n assetNamespace = chainInfo.defaultTokenNamespace;\n assetReference = asset;\n }\n const networkPart = `${chainNamespace}:${chainId}`;\n return `${networkPart}/${assetNamespace}:${assetReference}`;\n}\nexport function isPayWithWalletSupported(networkId) {\n const { chainNamespace } = ParseUtil.parseCaipNetworkId(networkId);\n return SUPPORT_PAY_WITH_WALLET_CHAIN_NAMESPACES.includes(chainNamespace);\n}\nexport function formatBalanceToPaymentAsset(balance) {\n const allNetworks = ChainController.getAllRequestedCaipNetworks();\n const targetNetwork = allNetworks.find(net => net.caipNetworkId === balance.chainId);\n let asset = balance.address;\n if (!targetNetwork) {\n throw new Error(`Target network not found for balance chainId \"${balance.chainId}\"`);\n }\n if (HelpersUtil.isLowerCaseMatch(balance.symbol, targetNetwork.nativeCurrency.symbol)) {\n asset = 'native';\n }\n else if (CoreHelperUtil.isCaipAddress(asset)) {\n const { address } = ParseUtil.parseCaipAddress(asset);\n asset = address;\n }\n else if (!asset) {\n throw new Error(`Balance address not found for balance symbol \"${balance.symbol}\"`);\n }\n return {\n network: targetNetwork.caipNetworkId,\n asset,\n metadata: {\n name: balance.name,\n symbol: balance.symbol,\n decimals: Number(balance.quantity.decimals),\n logoURI: balance.iconUrl\n },\n amount: balance.quantity.numeric\n };\n}\nexport function formatPaymentAssetToBalance(paymentAsset) {\n return {\n chainId: paymentAsset.network,\n address: `${paymentAsset.network}:${paymentAsset.asset}`,\n symbol: paymentAsset.metadata.symbol,\n name: paymentAsset.metadata.name,\n iconUrl: paymentAsset.metadata.logoURI || '',\n price: 0,\n quantity: {\n numeric: '0',\n decimals: paymentAsset.metadata.decimals.toString()\n }\n };\n}\nexport function formatAmount(amount) {\n const num = NumberUtil.bigNumber(amount, { safe: true });\n if (num.lt(0.001)) {\n return '<0.001';\n }\n return num.round(4).toString();\n}\nexport function isTestnetAsset(paymentAsset) {\n const allNetworks = ChainController.getAllRequestedCaipNetworks();\n const targetNetwork = allNetworks.find(net => net.caipNetworkId === paymentAsset.network);\n if (!targetNetwork) {\n return false;\n }\n return Boolean(targetNetwork.testnet);\n}\n//# sourceMappingURL=AssetUtil.js.map","import { proxy, subscribe as sub } from 'valtio/vanilla';\nimport { subscribeKey as subKey } from 'valtio/vanilla/utils';\nimport { ConstantsUtil, NumberUtil, ParseUtil } from '@reown/appkit-common';\nimport { AssetUtil, ChainController, ConnectionController, CoreHelperUtil, EventsController, ModalController, SnackController } from '@reown/appkit-controllers';\nimport { BalanceUtil } from '@reown/appkit-controllers/utils';\nimport { HelpersUtil } from '@reown/appkit-utils';\nimport { AppKitPayErrorCodes, AppKitPayErrorMessages } from '../types/errors.js';\nimport { AppKitPayError } from '../types/errors.js';\nimport { getAssetsForExchange, getBuyStatus, getExchanges, getPayUrl, getQuote, getQuoteStatus } from '../utils/ApiUtil.js';\nimport { formatCaip19Asset, formatPaymentAssetToBalance } from '../utils/AssetUtil.js';\nimport { ensureCorrectAddress, getTransferStep, processEvmErc20Payment, processEvmNativePayment, processSolanaPayment } from '../utils/PaymentUtil.js';\nconst DEFAULT_PAGE = 0;\nconst DEFAULT_PAYMENT_ID = 'unknown';\nexport const DIRECT_TRANSFER_REQUEST_ID = 'direct-transfer';\nexport const DIRECT_TRANSFER_DEPOSIT_TYPE = 'deposit';\nexport const DIRECT_TRANSFER_TRANSACTION_TYPE = 'transaction';\nconst state = proxy({\n paymentAsset: {\n network: 'eip155:1',\n asset: '0x0',\n metadata: {\n name: '0x0',\n symbol: '0x0',\n decimals: 0\n }\n },\n recipient: '0x0',\n amount: 0,\n isConfigured: false,\n error: null,\n isPaymentInProgress: false,\n exchanges: [],\n isLoading: false,\n openInNewTab: true,\n redirectUrl: undefined,\n payWithExchange: undefined,\n currentPayment: undefined,\n analyticsSet: false,\n paymentId: undefined,\n choice: 'pay',\n tokenBalances: {\n [ConstantsUtil.CHAIN.EVM]: [],\n [ConstantsUtil.CHAIN.SOLANA]: []\n },\n isFetchingTokenBalances: false,\n selectedPaymentAsset: null,\n quote: undefined,\n quoteStatus: 'waiting',\n quoteError: null,\n isFetchingQuote: false,\n selectedExchange: undefined,\n exchangeUrlForQuote: undefined,\n requestId: undefined\n});\nexport const PayController = {\n state,\n subscribe(callback) {\n return sub(state, () => callback(state));\n },\n subscribeKey(key, callback) {\n return subKey(state, key, callback);\n },\n async handleOpenPay(options) {\n this.resetState();\n this.setPaymentConfig(options);\n this.initializeAnalytics();\n ensureCorrectAddress();\n await this.prepareTokenLogo();\n state.isConfigured = true;\n EventsController.sendEvent({\n type: 'track',\n event: 'PAY_MODAL_OPEN',\n properties: {\n exchanges: state.exchanges,\n configuration: {\n network: state.paymentAsset.network,\n asset: state.paymentAsset.asset,\n recipient: state.recipient,\n amount: state.amount\n }\n }\n });\n await ModalController.open({\n view: 'Pay'\n });\n },\n resetState() {\n state.paymentAsset = {\n network: 'eip155:1',\n asset: '0x0',\n metadata: { name: '0x0', symbol: '0x0', decimals: 0 }\n };\n state.recipient = '0x0';\n state.amount = 0;\n state.isConfigured = false;\n state.error = null;\n state.isPaymentInProgress = false;\n state.isLoading = false;\n state.currentPayment = undefined;\n state.selectedExchange = undefined;\n state.exchangeUrlForQuote = undefined;\n state.requestId = undefined;\n },\n resetQuoteState() {\n state.quote = undefined;\n state.quoteStatus = 'waiting';\n state.quoteError = null;\n state.isFetchingQuote = false;\n state.requestId = undefined;\n },\n setPaymentConfig(config) {\n if (!config.paymentAsset) {\n throw new AppKitPayError(AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG);\n }\n try {\n state.choice = config.choice ?? 'pay';\n state.paymentAsset = config.paymentAsset;\n state.recipient = config.recipient;\n state.amount = config.amount;\n state.openInNewTab = config.openInNewTab ?? true;\n state.redirectUrl = config.redirectUrl;\n state.payWithExchange = config.payWithExchange;\n state.error = null;\n }\n catch (error) {\n throw new AppKitPayError(AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG, error.message);\n }\n },\n setSelectedPaymentAsset(paymentAsset) {\n state.selectedPaymentAsset = paymentAsset;\n },\n setSelectedExchange(exchange) {\n state.selectedExchange = exchange;\n },\n setRequestId(requestId) {\n state.requestId = requestId;\n },\n setPaymentInProgress(isPaymentInProgress) {\n state.isPaymentInProgress = isPaymentInProgress;\n },\n getPaymentAsset() {\n return state.paymentAsset;\n },\n getExchanges() {\n return state.exchanges;\n },\n async fetchExchanges() {\n try {\n state.isLoading = true;\n const response = await getExchanges({\n page: DEFAULT_PAGE\n });\n state.exchanges = response.exchanges.slice(0, 2);\n }\n catch (error) {\n SnackController.showError(AppKitPayErrorMessages.UNABLE_TO_GET_EXCHANGES);\n throw new AppKitPayError(AppKitPayErrorCodes.UNABLE_TO_GET_EXCHANGES);\n }\n finally {\n state.isLoading = false;\n }\n },\n async getAvailableExchanges(params) {\n try {\n const asset = params?.asset && params?.network\n ? formatCaip19Asset(params.network, params.asset)\n : undefined;\n const response = await getExchanges({\n page: params?.page ?? DEFAULT_PAGE,\n asset,\n amount: params?.amount?.toString()\n });\n return response;\n }\n catch (error) {\n throw new AppKitPayError(AppKitPayErrorCodes.UNABLE_TO_GET_EXCHANGES);\n }\n },\n async getPayUrl(exchangeId, params, headless = false) {\n try {\n const numericAmount = Number(params.amount);\n const response = await getPayUrl({\n exchangeId,\n asset: formatCaip19Asset(params.network, params.asset),\n amount: numericAmount.toString(),\n recipient: `${params.network}:${params.recipient}`\n });\n EventsController.sendEvent({\n type: 'track',\n event: 'PAY_EXCHANGE_SELECTED',\n properties: {\n source: 'pay',\n exchange: {\n id: exchangeId\n },\n configuration: {\n network: params.network,\n asset: params.asset,\n recipient: params.recipient,\n amount: numericAmount\n },\n currentPayment: {\n type: 'exchange',\n exchangeId\n },\n headless\n }\n });\n if (headless) {\n this.initiatePayment();\n EventsController.sendEvent({\n type: 'track',\n event: 'PAY_INITIATED',\n properties: {\n source: 'pay',\n paymentId: state.paymentId || DEFAULT_PAYMENT_ID,\n configuration: {\n network: params.network,\n asset: params.asset,\n recipient: params.recipient,\n amount: numericAmount\n },\n currentPayment: {\n type: 'exchange',\n exchangeId\n }\n }\n });\n }\n return response;\n }\n catch (error) {\n if (error instanceof Error && error.message.includes('is not supported')) {\n throw new AppKitPayError(AppKitPayErrorCodes.ASSET_NOT_SUPPORTED);\n }\n throw new Error(error.message);\n }\n },\n async generateExchangeUrlForQuote({ exchangeId, paymentAsset, amount, recipient }) {\n const response = await getPayUrl({\n exchangeId,\n asset: formatCaip19Asset(paymentAsset.network, paymentAsset.asset),\n amount: amount.toString(),\n recipient\n });\n state.exchangeSessionId = response.sessionId;\n state.exchangeUrlForQuote = response.url;\n },\n async openPayUrl(openParams, params, headless = false) {\n try {\n const payUrl = await this.getPayUrl(openParams.exchangeId, params, headless);\n if (!payUrl) {\n throw new AppKitPayError(AppKitPayErrorCodes.UNABLE_TO_GET_PAY_URL);\n }\n const shouldOpenInNewTab = openParams.openInNewTab ?? true;\n const target = shouldOpenInNewTab ? '_blank' : '_self';\n CoreHelperUtil.openHref(payUrl.url, target);\n return payUrl;\n }\n catch (error) {\n if (error instanceof AppKitPayError) {\n state.error = error.message;\n }\n else {\n state.error = AppKitPayErrorMessages.GENERIC_PAYMENT_ERROR;\n }\n throw new AppKitPayError(AppKitPayErrorCodes.UNABLE_TO_GET_PAY_URL);\n }\n },\n async onTransfer({ chainNamespace, fromAddress, toAddress, amount, paymentAsset }) {\n state.currentPayment = {\n type: 'wallet',\n status: 'IN_PROGRESS'\n };\n if (state.isPaymentInProgress) {\n return;\n }\n try {\n this.initiatePayment();\n const allNetworks = ChainController.getAllRequestedCaipNetworks();\n const targetNetwork = allNetworks.find(net => net.caipNetworkId === paymentAsset.network);\n if (!targetNetwork) {\n throw new Error('Target network not found');\n }\n const caipNetwork = ChainController.state.activeCaipNetwork;\n if (!HelpersUtil.isLowerCaseMatch(caipNetwork?.caipNetworkId, targetNetwork.caipNetworkId)) {\n await ChainController.switchActiveNetwork(targetNetwork);\n }\n switch (chainNamespace) {\n case ConstantsUtil.CHAIN.EVM:\n if (paymentAsset.asset === 'native') {\n state.currentPayment.result = await processEvmNativePayment(paymentAsset, chainNamespace, {\n recipient: toAddress,\n amount,\n fromAddress: fromAddress\n });\n }\n if (paymentAsset.asset.startsWith('0x')) {\n state.currentPayment.result = await processEvmErc20Payment(paymentAsset, {\n recipient: toAddress,\n amount,\n fromAddress: fromAddress\n });\n }\n state.currentPayment.status = 'SUCCESS';\n break;\n case ConstantsUtil.CHAIN.SOLANA:\n state.currentPayment.result = await processSolanaPayment(chainNamespace, {\n recipient: toAddress,\n amount,\n fromAddress,\n tokenMint: paymentAsset.asset === 'native' ? undefined : paymentAsset.asset\n });\n state.currentPayment.status = 'SUCCESS';\n break;\n default:\n throw new AppKitPayError(AppKitPayErrorCodes.INVALID_CHAIN_NAMESPACE);\n }\n }\n catch (error) {\n if (error instanceof AppKitPayError) {\n state.error = error.message;\n }\n else {\n state.error = AppKitPayErrorMessages.GENERIC_PAYMENT_ERROR;\n }\n state.currentPayment.status = 'FAILED';\n SnackController.showError(state.error);\n throw error;\n }\n finally {\n state.isPaymentInProgress = false;\n }\n },\n async onSendTransaction(params) {\n try {\n const { namespace, transactionStep } = params;\n PayController.initiatePayment();\n const allNetworks = ChainController.getAllRequestedCaipNetworks();\n const targetNetwork = allNetworks.find(net => net.caipNetworkId === state.paymentAsset?.network);\n if (!targetNetwork) {\n throw new Error('Target network not found');\n }\n const caipNetwork = ChainController.state.activeCaipNetwork;\n if (!HelpersUtil.isLowerCaseMatch(caipNetwork?.caipNetworkId, targetNetwork.caipNetworkId)) {\n await ChainController.switchActiveNetwork(targetNetwork);\n }\n if (namespace === ConstantsUtil.CHAIN.EVM) {\n const { from, to, data, value } = transactionStep.transaction;\n await ConnectionController.sendTransaction({\n address: from,\n to,\n data,\n value: BigInt(value),\n chainNamespace: namespace\n });\n }\n else if (namespace === ConstantsUtil.CHAIN.SOLANA) {\n const { instructions } = transactionStep.transaction;\n await ConnectionController.writeSolanaTransaction({\n instructions\n });\n }\n }\n catch (error) {\n if (error instanceof AppKitPayError) {\n state.error = error.message;\n }\n else {\n state.error = AppKitPayErrorMessages.GENERIC_PAYMENT_ERROR;\n }\n SnackController.showError(state.error);\n throw error;\n }\n finally {\n state.isPaymentInProgress = false;\n }\n },\n getExchangeById(exchangeId) {\n return state.exchanges.find(exchange => exchange.id === exchangeId);\n },\n validatePayConfig(config) {\n const { paymentAsset, recipient, amount } = config;\n if (!paymentAsset) {\n throw new AppKitPayError(AppKitPayErrorCodes.INVALID_PAYMENT_CONFIG);\n }\n if (!recipient) {\n throw new AppKitPayError(AppKitPayErrorCodes.INVALID_RECIPIENT);\n }\n if (!paymentAsset.asset) {\n throw new AppKitPayError(AppKitPayErrorCodes.INVALID_ASSET);\n }\n if (amount === undefined || amount === null || amount <= 0) {\n throw new AppKitPayError(AppKitPayErrorCodes.INVALID_AMOUNT);\n }\n },\n async handlePayWithExchange(exchangeId) {\n try {\n state.currentPayment = {\n type: 'exchange',\n exchangeId\n };\n const { network, asset } = state.paymentAsset;\n const payUrlParams = {\n network,\n asset,\n amount: state.amount,\n recipient: state.recipient\n };\n const payUrl = await this.getPayUrl(exchangeId, payUrlParams);\n if (!payUrl) {\n throw new AppKitPayError(AppKitPayErrorCodes.UNABLE_TO_INITIATE_PAYMENT);\n }\n state.currentPayment.sessionId = payUrl.sessionId;\n state.currentPayment.status = 'IN_PROGRESS';\n state.currentPayment.exchangeId = exchangeId;\n this.initiatePayment();\n return {\n url: payUrl.url,\n openInNewTab: state.openInNewTab\n };\n }\n catch (error) {\n if (error instanceof AppKitPayError) {\n state.error = error.message;\n }\n else {\n state.error = AppKitPayErrorMessages.GENERIC_PAYMENT_ERROR;\n }\n state.isPaymentInProgress = false;\n SnackController.showError(state.error);\n return null;\n }\n },\n async getBuyStatus(exchangeId, sessionId) {\n try {\n const status = await getBuyStatus({ sessionId, exchangeId });\n if (status.status === 'SUCCESS' || status.status === 'FAILED') {\n EventsController.sendEvent({\n type: 'track',\n event: status.status === 'SUCCESS' ? 'PAY_SUCCESS' : 'PAY_ERROR',\n properties: {\n message: status.status === 'FAILED' ? CoreHelperUtil.parseError(state.error) : undefined,\n source: 'pay',\n paymentId: state.paymentId || DEFAULT_PAYMENT_ID,\n configuration: {\n network: state.paymentAsset.network,\n asset: state.paymentAsset.asset,\n recipient: state.recipient,\n amount: state.amount\n },\n currentPayment: {\n type: 'exchange',\n exchangeId: state.currentPayment?.exchangeId,\n sessionId: state.currentPayment?.sessionId,\n result: status.txHash\n }\n }\n });\n }\n return status;\n }\n catch (error) {\n throw new AppKitPayError(AppKitPayErrorCodes.UNABLE_TO_GET_BUY_STATUS);\n }\n },\n async fetchTokensFromEOA({ caipAddress, caipNetwork, namespace }) {\n if (!caipAddress) {\n return [];\n }\n const { address } = ParseUtil.parseCaipAddress(caipAddress);\n let overideCaipNetwork = caipNetwork;\n if (namespace === ConstantsUtil.CHAIN.EVM) {\n overideCaipNetwork = undefined;\n }\n const balances = await BalanceUtil.getMyTokensWithBalance({\n address,\n caipNetwork: overideCaipNetwork\n });\n return balances;\n },\n async fetchTokensFromExchange() {\n if (!state.selectedExchange) {\n return [];\n }\n const assets = await getAssetsForExchange(state.selectedExchange.id);\n const allAssets = Object.values(assets.assets).flat();\n const balanceWithImages = await Promise.all(allAssets.map(async (token) => {\n const balance = formatPaymentAssetToBalance(token);\n const { chainNamespace } = ParseUtil.parseCaipNetworkId(balance.chainId);\n let address = balance.address;\n if (CoreHelperUtil.isCaipAddress(address)) {\n const { address: parsedAddress } = ParseUtil.parseCaipAddress(address);\n address = parsedAddress;\n }\n const image = await AssetUtil.getImageByToken(address ?? '', chainNamespace).catch(() => undefined);\n balance.iconUrl = image ?? '';\n return balance;\n }));\n return balanceWithImages;\n },\n async fetchTokens({ caipAddress, caipNetwork, namespace }) {\n try {\n state.isFetchingTokenBalances = true;\n const isUsingExchange = Boolean(state.selectedExchange);\n const balancesFnPromise = isUsingExchange\n ? this.fetchTokensFromExchange()\n : this.fetchTokensFromEOA({ caipAddress, caipNetwork, namespace });\n const balances = await balancesFnPromise;\n state.tokenBalances = { ...state.tokenBalances, [namespace]: balances };\n }\n catch (err) {\n const message = err instanceof Error ? err.message : 'Unable to get token balances';\n SnackController.showError(message);\n }\n finally {\n state.isFetchingTokenBalances = false;\n }\n },\n async fetchQuote({ amount, address, sourceToken, toToken, recipient }) {\n try {\n PayController.resetQuoteState();\n state.isFetchingQuote = true;\n const quote = await getQuote({\n amount,\n address: state.selectedExchange ? undefined : address,\n sourceToken,\n toToken,\n recipient\n });\n if (state.selectedExchange) {\n const transferStep = getTransferStep(quote);\n if (transferStep) {\n const caipDepositAddress = `${sourceToken.network}:${transferStep.deposit.receiver}`;\n const depositAmount = NumberUtil.formatNumber(transferStep.deposit.amount, {\n decimals: sourceToken.metadata.decimals ?? 0,\n round: 8\n });\n await PayController.generateExchangeUrlForQuote({\n exchangeId: state.selectedExchange.id,\n paymentAsset: sourceToken,\n amount: depositAmount.toString(),\n recipient: caipDepositAddress\n });\n }\n }\n state.quote = quote;\n }\n catch (err) {\n let errMessage = AppKitPayErrorMessages.UNABLE_TO_GET_QUOTE;\n if (err instanceof Error && err.cause && err.cause instanceof Response) {\n try {\n const errorData = await err.cause.json();\n if (errorData.error && typeof errorData.error === 'string') {\n errMessage = errorData.error;\n }\n }\n catch {\n }\n }\n state.quoteError = errMessage;\n SnackController.showError(errMessage);\n throw new AppKitPayError(AppKitPayErrorCodes.UNABLE_TO_GET_QUOTE);\n }\n finally {\n state.isFetchingQuote = false;\n }\n },\n async fetchQuoteStatus({ requestId }) {\n try {\n if (requestId === DIRECT_TRANSFER_REQUEST_ID) {\n const selectedExchange = state.selectedExchange;\n const sessionId = state.exchangeSessionId;\n if (selectedExchange && sessionId) {\n const status = await this.getBuyStatus(selectedExchange.id, sessionId);\n switch (status.status) {\n case 'IN_PROGRESS':\n state.quoteStatus = 'waiting';\n break;\n case 'SUCCESS':\n state.quoteStatus = 'success';\n state.isPaymentInProgress = false;\n break;\n case 'FAILED':\n state.quoteStatus = 'failure';\n state.isPaymentInProgress = false;\n break;\n case 'UNKNOWN':\n state.quoteStatus = 'waiting';\n break;\n default:\n state.quoteStatus = 'waiting';\n break;\n }\n return;\n }\n state.quoteStatus = 'success';\n return;\n }\n const { status } = await getQuoteStatus({ requestId });\n state.quoteStatus = status;\n }\n catch {\n state.quoteStatus = 'failure';\n throw new AppKitPayError(AppKitPayErrorCodes.UNABLE_TO_GET_QUOTE_STATUS);\n }\n },\n initiatePayment() {\n state.isPaymentInProgress = true;\n state.paymentId = crypto.randomUUID();\n },\n initializeAnalytics() {\n if (state.analyticsSet) {\n return;\n }\n state.analyticsSet = true;\n this.subscribeKey('isPaymentInProgress', _ => {\n if (state.currentPayment?.status && state.currentPayment.status !== 'UNKNOWN') {\n const eventType = {\n IN_PROGRESS: 'PAY_INITIATED',\n SUCCESS: 'PAY_SUCCESS',\n FAILED: 'PAY_ERROR'\n }[state.currentPayment.status];\n EventsController.sendEvent({\n type: 'track',\n event: eventType,\n properties: {\n message: state.currentPayment.status === 'FAILED'\n ? CoreHelperUtil.parseError(state.error)\n : undefined,\n source: 'pay',\n paymentId: state.paymentId || DEFAULT_PAYMENT_ID,\n configuration: {\n network: state.paymentAsset.network,\n asset: state.paymentAsset.asset,\n recipient: state.recipient,\n amount: state.amount\n },\n currentPayment: {\n type: state.currentPayment.type,\n exchangeId: state.currentPayment.exchangeId,\n sessionId: state.currentPayment.sessionId,\n result: state.currentPayment.result\n }\n }\n });\n }\n });\n },\n async prepareTokenLogo() {\n if (!state.paymentAsset.metadata.logoURI) {\n try {\n const { chainNamespace } = ParseUtil.parseCaipNetworkId(state.paymentAsset.network);\n const imageUrl = await AssetUtil.getImageByToken(state.paymentAsset.asset, chainNamespace);\n state.paymentAsset.metadata.logoURI = imageUrl;\n }\n catch {\n }\n }\n }\n};\n//# sourceMappingURL=PayController.js.map","import { css } from '@reown/appkit-ui';\nexport default css `\n wui-separator {\n margin: var(--apkt-spacing-3) calc(var(--apkt-spacing-3) * -1) var(--apkt-spacing-2)\n calc(var(--apkt-spacing-3) * -1);\n width: calc(100% + var(--apkt-spacing-3) * 2);\n }\n\n .token-display {\n padding: var(--apkt-spacing-3) var(--apkt-spacing-3);\n border-radius: var(--apkt-borderRadius-5);\n background-color: var(--apkt-tokens-theme-backgroundPrimary);\n margin-top: var(--apkt-spacing-3);\n margin-bottom: var(--apkt-spacing-3);\n }\n\n .token-display wui-text {\n text-transform: none;\n }\n\n wui-loading-spinner {\n padding: var(--apkt-spacing-2);\n }\n\n .left-image-container {\n position: relative;\n justify-content: center;\n align-items: center;\n }\n\n .token-image {\n border-radius: ${({ borderRadius }) => borderRadius.round};\n width: 40px;\n height: 40px;\n }\n\n .chain-image {\n position: absolute;\n width: 20px;\n height: 20px;\n bottom: -3px;\n right: -5px;\n border-radius: ${({ borderRadius }) => borderRadius.round};\n border: 2px solid ${({ tokens }) => tokens.theme.backgroundPrimary};\n }\n\n .payment-methods-container {\n background-color: ${({ tokens }) => tokens.theme.foregroundPrimary};\n border-top-right-radius: ${({ borderRadius }) => borderRadius[8]};\n border-top-left-radius: ${({ borderRadius }) => borderRadius[8]};\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport {} from '@reown/appkit-common';\nimport { AssetUtil, ChainController, ConnectionController, ConnectorController, ModalController, RouterController, SnackController } from '@reown/appkit-controllers';\nimport { customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-button';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-icon';\nimport '@reown/appkit-ui/wui-icon-button';\nimport '@reown/appkit-ui/wui-icon-link';\nimport '@reown/appkit-ui/wui-image';\nimport '@reown/appkit-ui/wui-list-item';\nimport '@reown/appkit-ui/wui-loading-spinner';\nimport '@reown/appkit-ui/wui-loading-spinner';\nimport '@reown/appkit-ui/wui-network-image';\nimport '@reown/appkit-ui/wui-separator';\nimport '@reown/appkit-ui/wui-text';\nimport '@reown/appkit-ui/wui-wallet-image';\nimport { PayController } from '../../controllers/PayController.js';\nimport { formatAmount, isPayWithWalletSupported, isTestnetAsset } from '../../utils/AssetUtil.js';\nimport { REOWN_TEST_EXCHANGE_ID } from '../../utils/ConstantsUtil.js';\nimport styles from './styles.js';\nlet W3mPayView = class W3mPayView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.amount = PayController.state.amount;\n this.namespace = undefined;\n this.paymentAsset = PayController.state.paymentAsset;\n this.activeConnectorIds = ConnectorController.state.activeConnectorIds;\n this.caipAddress = undefined;\n this.exchanges = PayController.state.exchanges;\n this.isLoading = PayController.state.isLoading;\n this.initializeNamespace();\n this.unsubscribe.push(PayController.subscribeKey('amount', val => (this.amount = val)));\n this.unsubscribe.push(ConnectorController.subscribeKey('activeConnectorIds', ids => (this.activeConnectorIds = ids)));\n this.unsubscribe.push(PayController.subscribeKey('exchanges', val => (this.exchanges = val)));\n this.unsubscribe.push(PayController.subscribeKey('isLoading', val => (this.isLoading = val)));\n PayController.fetchExchanges();\n PayController.setSelectedExchange(undefined);\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return html `\n <wui-flex flexDirection=\"column\">\n ${this.paymentDetailsTemplate()} ${this.paymentMethodsTemplate()}\n </wui-flex>\n `;\n }\n paymentMethodsTemplate() {\n return html `\n <wui-flex flexDirection=\"column\" padding=\"3\" gap=\"2\" class=\"payment-methods-container\">\n ${this.payWithWalletTemplate()} ${this.templateSeparator()}\n ${this.templateExchangeOptions()}\n </wui-flex>\n `;\n }\n initializeNamespace() {\n const namespace = ChainController.state.activeChain;\n this.namespace = namespace;\n this.caipAddress = ChainController.getAccountData(namespace)?.caipAddress;\n this.unsubscribe.push(ChainController.subscribeChainProp('accountState', accountState => {\n this.caipAddress = accountState?.caipAddress;\n }, namespace));\n }\n paymentDetailsTemplate() {\n const allNetworks = ChainController.getAllRequestedCaipNetworks();\n const targetNetwork = allNetworks.find(net => net.caipNetworkId === this.paymentAsset.network);\n return html `\n <wui-flex\n alignItems=\"center\"\n justifyContent=\"space-between\"\n .padding=${['6', '8', '6', '8']}\n gap=\"2\"\n >\n <wui-flex alignItems=\"center\" gap=\"1\">\n <wui-text variant=\"h1-regular\" color=\"primary\">\n ${formatAmount(this.amount || '0')}\n </wui-text>\n\n <wui-flex flexDirection=\"column\">\n <wui-text variant=\"h6-regular\" color=\"secondary\">\n ${this.paymentAsset.metadata.symbol || 'Unknown'}\n </wui-text>\n <wui-text variant=\"md-medium\" color=\"secondary\"\n >on ${targetNetwork?.name || 'Unknown'}</wui-text\n >\n </wui-flex>\n </wui-flex>\n\n <wui-flex class=\"left-image-container\">\n <wui-image\n src=${ifDefined(this.paymentAsset.metadata.logoURI)}\n class=\"token-image\"\n ></wui-image>\n <wui-image\n src=${ifDefined(AssetUtil.getNetworkImage(targetNetwork))}\n class=\"chain-image\"\n ></wui-image>\n </wui-flex>\n </wui-flex>\n `;\n }\n payWithWalletTemplate() {\n if (!isPayWithWalletSupported(this.paymentAsset.network)) {\n return html ``;\n }\n return this.caipAddress ? this.connectedWalletTemplate() : this.disconnectedWalletTemplate();\n }\n connectedWalletTemplate() {\n const { name, image } = this.getWalletProperties({\n namespace: this.namespace\n });\n return html `\n <wui-flex flexDirection=\"column\" gap=\"3\">\n <wui-list-item\n type=\"secondary\"\n boxColor=\"foregroundSecondary\"\n @click=${this.onWalletPayment}\n .boxed=${false}\n ?chevron=${true}\n ?fullSize=${false}\n ?rounded=${true}\n data-testid=\"wallet-payment-option\"\n imageSrc=${ifDefined(image)}\n imageSize=\"3xl\"\n >\n <wui-text variant=\"lg-regular\" color=\"primary\">Pay with ${name}</wui-text>\n </wui-list-item>\n\n <wui-list-item\n type=\"secondary\"\n icon=\"power\"\n iconColor=\"error\"\n @click=${this.onDisconnect}\n data-testid=\"disconnect-button\"\n ?chevron=${false}\n boxColor=\"foregroundSecondary\"\n >\n <wui-text variant=\"lg-regular\" color=\"secondary\">Disconnect</wui-text>\n </wui-list-item>\n </wui-flex>\n `;\n }\n disconnectedWalletTemplate() {\n return html `<wui-list-item\n type=\"secondary\"\n boxColor=\"foregroundSecondary\"\n variant=\"icon\"\n iconColor=\"default\"\n iconVariant=\"overlay\"\n icon=\"wallet\"\n @click=${this.onWalletPayment}\n ?chevron=${true}\n data-testid=\"wallet-payment-option\"\n >\n <wui-text variant=\"lg-regular\" color=\"primary\">Pay with wallet</wui-text>\n </wui-list-item>`;\n }\n templateExchangeOptions() {\n if (this.isLoading) {\n return html `<wui-flex justifyContent=\"center\" alignItems=\"center\">\n <wui-loading-spinner size=\"md\"></wui-loading-spinner>\n </wui-flex>`;\n }\n const exchangesToShow = this.exchanges.filter(exchange => {\n if (isTestnetAsset(this.paymentAsset)) {\n return exchange.id === REOWN_TEST_EXCHANGE_ID;\n }\n return exchange.id !== REOWN_TEST_EXCHANGE_ID;\n });\n if (exchangesToShow.length === 0) {\n return html `<wui-flex justifyContent=\"center\" alignItems=\"center\">\n <wui-text variant=\"md-medium\" color=\"primary\">No exchanges available</wui-text>\n </wui-flex>`;\n }\n return exchangesToShow.map(exchange => html `\n <wui-list-item\n type=\"secondary\"\n boxColor=\"foregroundSecondary\"\n @click=${() => this.onExchangePayment(exchange)}\n data-testid=\"exchange-option-${exchange.id}\"\n ?chevron=${true}\n imageSrc=${ifDefined(exchange.imageUrl)}\n >\n <wui-text flexGrow=\"1\" variant=\"lg-regular\" color=\"primary\">\n Pay with ${exchange.name}\n </wui-text>\n </wui-list-item>\n `);\n }\n templateSeparator() {\n return html `<wui-separator text=\"or\" bgColor=\"secondary\"></wui-separator>`;\n }\n async onWalletPayment() {\n if (!this.namespace) {\n throw new Error('Namespace not found');\n }\n if (this.caipAddress) {\n RouterController.push('PayQuote');\n }\n else {\n await ConnectorController.connect();\n await ModalController.open({ view: 'PayQuote' });\n }\n }\n onExchangePayment(exchange) {\n PayController.setSelectedExchange(exchange);\n RouterController.push('PayQuote');\n }\n async onDisconnect() {\n try {\n await ConnectionController.disconnect();\n await ModalController.open({ view: 'Pay' });\n }\n catch {\n console.error('Failed to disconnect');\n SnackController.showError('Failed to disconnect');\n }\n }\n getWalletProperties({ namespace }) {\n if (!namespace) {\n return {\n name: undefined,\n image: undefined\n };\n }\n const connectorId = this.activeConnectorIds[namespace];\n if (!connectorId) {\n return {\n name: undefined,\n image: undefined\n };\n }\n const connector = ConnectorController.getConnector({ id: connectorId, namespace });\n if (!connector) {\n return {\n name: undefined,\n image: undefined\n };\n }\n const connectorImage = AssetUtil.getConnectorImage(connector);\n return {\n name: connector.name,\n image: connectorImage\n };\n }\n};\nW3mPayView.styles = styles;\n__decorate([\n state()\n], W3mPayView.prototype, \"amount\", void 0);\n__decorate([\n state()\n], W3mPayView.prototype, \"namespace\", void 0);\n__decorate([\n state()\n], W3mPayView.prototype, \"paymentAsset\", void 0);\n__decorate([\n state()\n], W3mPayView.prototype, \"activeConnectorIds\", void 0);\n__decorate([\n state()\n], W3mPayView.prototype, \"caipAddress\", void 0);\n__decorate([\n state()\n], W3mPayView.prototype, \"exchanges\", void 0);\n__decorate([\n state()\n], W3mPayView.prototype, \"isLoading\", void 0);\nW3mPayView = __decorate([\n customElement('w3m-pay-view')\n], W3mPayView);\nexport { W3mPayView };\n//# sourceMappingURL=index.js.map","import { css } from '../../utils/ThemeHelperUtil.js';\nexport default css `\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n .pulse-container {\n position: relative;\n width: var(--pulse-size);\n height: var(--pulse-size);\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .pulse-rings {\n position: absolute;\n inset: 0;\n pointer-events: none;\n }\n\n .pulse-ring {\n position: absolute;\n inset: 0;\n border-radius: 50%;\n border: 2px solid var(--pulse-color);\n opacity: 0;\n animation: pulse var(--pulse-duration, 2s) ease-out infinite;\n }\n\n .pulse-content {\n position: relative;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n @keyframes pulse {\n 0% {\n transform: scale(0.5);\n opacity: var(--pulse-opacity, 0.3);\n }\n 50% {\n opacity: calc(var(--pulse-opacity, 0.3) * 0.5);\n }\n 100% {\n transform: scale(1.2);\n opacity: 0;\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { vars } from '../../utils/ThemeHelperUtil.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nconst DEFAULT_RINGS = 3;\nconst DEFAULT_DURATION = 2;\nconst DEFAULT_OPACITY = 0.3;\nconst DEFAULT_SIZE = '200px';\nconst COLOR_BY_VARIANT = {\n 'accent-primary': vars.tokens.core.backgroundAccentPrimary\n};\nlet WuiPulse = class WuiPulse extends LitElement {\n constructor() {\n super(...arguments);\n this.rings = DEFAULT_RINGS;\n this.duration = DEFAULT_DURATION;\n this.opacity = DEFAULT_OPACITY;\n this.size = DEFAULT_SIZE;\n this.variant = 'accent-primary';\n }\n render() {\n const color = COLOR_BY_VARIANT[this.variant];\n this.style.cssText = `\n --pulse-size: ${this.size};\n --pulse-duration: ${this.duration}s;\n --pulse-color: ${color};\n --pulse-opacity: ${this.opacity};\n `;\n const ringElements = Array.from({ length: this.rings }, (_, i) => this.renderRing(i, this.rings));\n return html `\n <div class=\"pulse-container\">\n <div class=\"pulse-rings\">${ringElements}</div>\n <div class=\"pulse-content\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n renderRing(index, total) {\n const delay = (index / total) * this.duration;\n const style = `animation-delay: ${delay}s;`;\n return html `<div class=\"pulse-ring\" style=${style}></div>`;\n }\n};\nWuiPulse.styles = [resetStyles, styles];\n__decorate([\n property({ type: Number })\n], WuiPulse.prototype, \"rings\", void 0);\n__decorate([\n property({ type: Number })\n], WuiPulse.prototype, \"duration\", void 0);\n__decorate([\n property({ type: Number })\n], WuiPulse.prototype, \"opacity\", void 0);\n__decorate([\n property()\n], WuiPulse.prototype, \"size\", void 0);\n__decorate([\n property()\n], WuiPulse.prototype, \"variant\", void 0);\nWuiPulse = __decorate([\n customElement('wui-pulse')\n], WuiPulse);\nexport { WuiPulse };\n//# sourceMappingURL=index.js.map","export const STEPS = [\n {\n id: 'received',\n title: 'Receiving funds',\n icon: 'dollar'\n },\n {\n id: 'processing',\n title: 'Swapping asset',\n icon: 'recycleHorizontal'\n },\n {\n id: 'sending',\n title: 'Sending asset to the recipient address',\n icon: 'send'\n }\n];\nexport const TERMINAL_STATES = [\n 'success',\n 'submitted',\n 'failure',\n 'timeout',\n 'refund'\n];\n//# sourceMappingURL=constants.js.map","import { css } from '@reown/appkit-ui';\nexport default css `\n :host {\n display: block;\n height: 100%;\n width: 100%;\n }\n\n wui-image {\n border-radius: ${({ borderRadius }) => borderRadius.round};\n }\n\n .token-badge-container {\n position: absolute;\n bottom: 6px;\n left: 50%;\n transform: translateX(-50%);\n border-radius: ${({ borderRadius }) => borderRadius[4]};\n z-index: 3;\n min-width: 105px;\n }\n\n .token-badge-container.loading {\n background-color: ${({ tokens }) => tokens.theme.backgroundPrimary};\n border: 3px solid ${({ tokens }) => tokens.theme.backgroundPrimary};\n }\n\n .token-badge-container.success {\n background-color: ${({ tokens }) => tokens.theme.backgroundPrimary};\n border: 3px solid ${({ tokens }) => tokens.theme.backgroundPrimary};\n }\n\n .token-image-container {\n position: relative;\n }\n\n .token-image {\n border-radius: ${({ borderRadius }) => borderRadius.round};\n width: 64px;\n height: 64px;\n }\n\n .token-image.success {\n background-color: ${({ tokens }) => tokens.theme.foregroundPrimary};\n }\n\n .token-image.error {\n background-color: ${({ tokens }) => tokens.theme.foregroundPrimary};\n }\n\n .token-image.loading {\n background: ${({ colors }) => colors.accent010};\n }\n\n .token-image wui-icon {\n width: 32px;\n height: 32px;\n }\n\n .token-badge {\n background-color: ${({ tokens }) => tokens.theme.foregroundPrimary};\n border: 1px solid ${({ tokens }) => tokens.theme.foregroundSecondary};\n border-radius: ${({ borderRadius }) => borderRadius[4]};\n }\n\n .token-badge wui-text {\n white-space: nowrap;\n }\n\n .payment-lifecycle-container {\n background-color: ${({ tokens }) => tokens.theme.foregroundPrimary};\n border-top-right-radius: ${({ borderRadius }) => borderRadius[6]};\n border-top-left-radius: ${({ borderRadius }) => borderRadius[6]};\n }\n\n .payment-step-badge {\n padding: ${({ spacing }) => spacing[1]} ${({ spacing }) => spacing[2]};\n border-radius: ${({ borderRadius }) => borderRadius[1]};\n }\n\n .payment-step-badge.loading {\n background-color: ${({ tokens }) => tokens.theme.foregroundSecondary};\n }\n\n .payment-step-badge.error {\n background-color: ${({ tokens }) => tokens.core.backgroundError};\n }\n\n .payment-step-badge.success {\n background-color: ${({ tokens }) => tokens.core.backgroundSuccess};\n }\n\n .step-icon-container {\n position: relative;\n height: 40px;\n width: 40px;\n border-radius: ${({ borderRadius }) => borderRadius.round};\n background-color: ${({ tokens }) => tokens.theme.foregroundSecondary};\n }\n\n .step-icon-box {\n position: absolute;\n right: -4px;\n bottom: -1px;\n padding: 2px;\n border-radius: ${({ borderRadius }) => borderRadius.round};\n border: 2px solid ${({ tokens }) => tokens.theme.backgroundPrimary};\n background-color: ${({ tokens }) => tokens.theme.foregroundPrimary};\n }\n\n .step-icon-box.success {\n background-color: ${({ tokens }) => tokens.core.backgroundSuccess};\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { NumberUtil, ParseUtil } from '@reown/appkit-common';\nimport { AssetUtil, ChainController, ConnectorController } from '@reown/appkit-controllers';\nimport { UiHelperUtil, customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-image';\nimport '@reown/appkit-ui/wui-loading-spinner';\nimport '@reown/appkit-ui/wui-pulse';\nimport '@reown/appkit-ui/wui-separator';\nimport '@reown/appkit-ui/wui-text';\nimport { HelpersUtil } from '@reown/appkit-utils';\nimport { PayController } from '../../controllers/PayController.js';\nimport { formatAmount } from '../../utils/AssetUtil.js';\nimport { STEPS, TERMINAL_STATES } from './constants.js';\nimport styles from './styles.js';\nconst STEP_COMPLETED_STATUSES = {\n received: ['pending', 'success', 'submitted'],\n processing: ['success', 'submitted'],\n sending: ['success', 'submitted']\n};\nconst POLLING_INTERVAL_MS = 3000;\nlet W3mPayLoadingView = class W3mPayLoadingView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.pollingInterval = null;\n this.paymentAsset = PayController.state.paymentAsset;\n this.quoteStatus = PayController.state.quoteStatus;\n this.quote = PayController.state.quote;\n this.amount = PayController.state.amount;\n this.namespace = undefined;\n this.caipAddress = undefined;\n this.profileName = null;\n this.activeConnectorIds = ConnectorController.state.activeConnectorIds;\n this.selectedExchange = PayController.state.selectedExchange;\n this.initializeNamespace();\n this.unsubscribe.push(...[\n PayController.subscribeKey('quoteStatus', val => (this.quoteStatus = val)),\n PayController.subscribeKey('quote', val => (this.quote = val)),\n ConnectorController.subscribeKey('activeConnectorIds', ids => (this.activeConnectorIds = ids)),\n PayController.subscribeKey('selectedExchange', val => (this.selectedExchange = val))\n ]);\n }\n connectedCallback() {\n super.connectedCallback();\n this.startPolling();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.stopPolling();\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return html `\n <wui-flex flexDirection=\"column\" .padding=${['3', '0', '0', '0']} gap=\"2\">\n ${this.tokenTemplate()} ${this.paymentTemplate()} ${this.paymentLifecycleTemplate()}\n </wui-flex>\n `;\n }\n tokenTemplate() {\n const amount = formatAmount(this.amount || '0');\n const symbol = this.paymentAsset.metadata.symbol ?? 'Unknown';\n const allNetworks = ChainController.getAllRequestedCaipNetworks();\n const targetNetwork = allNetworks.find(net => net.caipNetworkId === this.paymentAsset.network);\n const hasTransactionFailed = this.quoteStatus === 'failure' ||\n this.quoteStatus === 'timeout' ||\n this.quoteStatus === 'refund';\n const hasTransactionSucceeded = this.quoteStatus === 'success' || this.quoteStatus === 'submitted';\n if (hasTransactionSucceeded) {\n return html `<wui-flex alignItems=\"center\" justifyContent=\"center\">\n <wui-flex justifyContent=\"center\" alignItems=\"center\" class=\"token-image success\">\n <wui-icon name=\"checkmark\" color=\"success\" size=\"inherit\"></wui-icon>\n </wui-flex>\n </wui-flex>`;\n }\n if (hasTransactionFailed) {\n return html `<wui-flex alignItems=\"center\" justifyContent=\"center\">\n <wui-flex justifyContent=\"center\" alignItems=\"center\" class=\"token-image error\">\n <wui-icon name=\"close\" color=\"error\" size=\"inherit\"></wui-icon>\n </wui-flex>\n </wui-flex>`;\n }\n return html `\n <wui-flex alignItems=\"center\" justifyContent=\"center\">\n <wui-flex class=\"token-image-container\">\n <wui-pulse size=\"125px\" rings=\"3\" duration=\"4\" opacity=\"0.5\" variant=\"accent-primary\">\n <wui-flex justifyContent=\"center\" alignItems=\"center\" class=\"token-image loading\">\n <wui-icon name=\"paperPlaneTitle\" color=\"accent-primary\" size=\"inherit\"></wui-icon>\n </wui-flex>\n </wui-pulse>\n\n <wui-flex\n justifyContent=\"center\"\n alignItems=\"center\"\n class=\"token-badge-container loading\"\n >\n <wui-flex\n alignItems=\"center\"\n justifyContent=\"center\"\n gap=\"01\"\n padding=\"1\"\n class=\"token-badge\"\n >\n <wui-image\n src=${ifDefined(AssetUtil.getNetworkImage(targetNetwork))}\n class=\"chain-image\"\n size=\"mdl\"\n ></wui-image>\n\n <wui-text variant=\"lg-regular\" color=\"primary\">${amount} ${symbol}</wui-text>\n </wui-flex>\n </wui-flex>\n </wui-flex>\n </wui-flex>\n `;\n }\n paymentTemplate() {\n return html `\n <wui-flex flexDirection=\"column\" gap=\"2\" .padding=${['0', '6', '0', '6']}>\n ${this.renderPayment()}\n <wui-separator></wui-separator>\n ${this.renderWallet()}\n </wui-flex>\n `;\n }\n paymentLifecycleTemplate() {\n const stepsWithStatus = this.getStepsWithStatus();\n return html `\n <wui-flex flexDirection=\"column\" padding=\"4\" gap=\"2\" class=\"payment-lifecycle-container\">\n <wui-flex alignItems=\"center\" justifyContent=\"space-between\">\n <wui-text variant=\"md-regular\" color=\"secondary\">PAYMENT CYCLE</wui-text>\n\n ${this.renderPaymentCycleBadge()}\n </wui-flex>\n\n <wui-flex flexDirection=\"column\" gap=\"5\" .padding=${['2', '0', '2', '0']}>\n ${stepsWithStatus.map(step => this.renderStep(step))}\n </wui-flex>\n </wui-flex>\n `;\n }\n renderPaymentCycleBadge() {\n const hasTransactionFailed = this.quoteStatus === 'failure' ||\n this.quoteStatus === 'timeout' ||\n this.quoteStatus === 'refund';\n const hasTransactionSucceeded = this.quoteStatus === 'success' || this.quoteStatus === 'submitted';\n if (hasTransactionFailed) {\n return html `\n <wui-flex\n justifyContent=\"center\"\n alignItems=\"center\"\n class=\"payment-step-badge error\"\n gap=\"1\"\n >\n <wui-icon name=\"close\" color=\"error\" size=\"xs\"></wui-icon>\n <wui-text variant=\"sm-regular\" color=\"error\">Failed</wui-text>\n </wui-flex>\n `;\n }\n if (hasTransactionSucceeded) {\n return html `\n <wui-flex\n justifyContent=\"center\"\n alignItems=\"center\"\n class=\"payment-step-badge success\"\n gap=\"1\"\n >\n <wui-icon name=\"checkmark\" color=\"success\" size=\"xs\"></wui-icon>\n <wui-text variant=\"sm-regular\" color=\"success\">Completed</wui-text>\n </wui-flex>\n `;\n }\n const timeEstimate = this.quote?.timeInSeconds ?? 0;\n return html `\n <wui-flex alignItems=\"center\" justifyContent=\"space-between\" gap=\"3\">\n <wui-flex\n justifyContent=\"center\"\n alignItems=\"center\"\n class=\"payment-step-badge loading\"\n gap=\"1\"\n >\n <wui-icon name=\"clock\" color=\"default\" size=\"xs\"></wui-icon>\n <wui-text variant=\"sm-regular\" color=\"primary\">Est. ${timeEstimate} sec</wui-text>\n </wui-flex>\n\n <wui-icon name=\"chevronBottom\" color=\"default\" size=\"xxs\"></wui-icon>\n </wui-flex>\n `;\n }\n renderPayment() {\n const allNetworks = ChainController.getAllRequestedCaipNetworks();\n const targetNetwork = allNetworks.find(net => {\n const network = this.quote?.origin.currency.network;\n if (!network) {\n return false;\n }\n const { chainId } = ParseUtil.parseCaipNetworkId(network);\n return HelpersUtil.isLowerCaseMatch(net.id.toString(), chainId.toString());\n });\n const formatBigNumber = NumberUtil.formatNumber(this.quote?.origin.amount || '0', {\n decimals: this.quote?.origin.currency.metadata.decimals ?? 0\n }).toString();\n const formattedAmount = formatAmount(formatBigNumber);\n const symbol = this.quote?.origin.currency.metadata.symbol ?? 'Unknown';\n return html `\n <wui-flex\n alignItems=\"flex-start\"\n justifyContent=\"space-between\"\n .padding=${['3', '0', '3', '0']}\n >\n <wui-text variant=\"lg-regular\" color=\"secondary\">Payment Method</wui-text>\n\n <wui-flex flexDirection=\"column\" alignItems=\"flex-end\" gap=\"1\">\n <wui-flex alignItems=\"center\" gap=\"01\">\n <wui-text variant=\"lg-regular\" color=\"primary\">${formattedAmount}</wui-text>\n <wui-text variant=\"lg-regular\" color=\"secondary\">${symbol}</wui-text>\n </wui-flex>\n\n <wui-flex alignItems=\"center\" gap=\"1\">\n <wui-text variant=\"md-regular\" color=\"secondary\">on</wui-text>\n <wui-image\n src=${ifDefined(AssetUtil.getNetworkImage(targetNetwork))}\n size=\"xs\"\n ></wui-image>\n <wui-text variant=\"md-regular\" color=\"secondary\">${targetNetwork?.name}</wui-text>\n </wui-flex>\n </wui-flex>\n </wui-flex>\n `;\n }\n renderWallet() {\n return html `\n <wui-flex\n alignItems=\"flex-start\"\n justifyContent=\"space-between\"\n .padding=${['3', '0', '3', '0']}\n >\n <wui-text variant=\"lg-regular\" color=\"secondary\">Wallet</wui-text>\n\n ${this.renderWalletText()}\n </wui-flex>\n `;\n }\n renderWalletText() {\n const { image } = this.getWalletProperties({ namespace: this.namespace });\n const { address } = this.caipAddress ? ParseUtil.parseCaipAddress(this.caipAddress) : {};\n const exchangeName = this.selectedExchange?.name;\n if (this.selectedExchange) {\n return html `\n <wui-flex alignItems=\"center\" justifyContent=\"flex-end\" gap=\"1\">\n <wui-text variant=\"lg-regular\" color=\"primary\">${exchangeName}</wui-text>\n <wui-image src=${ifDefined(this.selectedExchange.imageUrl)} size=\"mdl\"></wui-image>\n </wui-flex>\n `;\n }\n return html `\n <wui-flex alignItems=\"center\" justifyContent=\"flex-end\" gap=\"1\">\n <wui-text variant=\"lg-regular\" color=\"primary\">\n ${UiHelperUtil.getTruncateString({\n string: this.profileName || address || exchangeName || '',\n charsStart: this.profileName ? 16 : 4,\n charsEnd: this.profileName ? 0 : 6,\n truncate: this.profileName ? 'end' : 'middle'\n })}\n </wui-text>\n\n <wui-image src=${ifDefined(image)} size=\"mdl\"></wui-image>\n </wui-flex>\n `;\n }\n getStepsWithStatus() {\n const hasTransactionFailed = this.quoteStatus === 'failure' ||\n this.quoteStatus === 'timeout' ||\n this.quoteStatus === 'refund';\n if (hasTransactionFailed) {\n return STEPS.map(step => ({ ...step, status: 'failed' }));\n }\n return STEPS.map(step => {\n const completedStatuses = STEP_COMPLETED_STATUSES[step.id] ?? [];\n const status = completedStatuses.includes(this.quoteStatus) ? 'completed' : 'pending';\n return { ...step, status };\n });\n }\n renderStep({ title, icon, status }) {\n const classes = {\n 'step-icon-box': true,\n success: status === 'completed'\n };\n return html `\n <wui-flex alignItems=\"center\" gap=\"3\">\n <wui-flex justifyContent=\"center\" alignItems=\"center\" class=\"step-icon-container\">\n <wui-icon name=${icon} color=\"default\" size=\"mdl\"></wui-icon>\n\n <wui-flex alignItems=\"center\" justifyContent=\"center\" class=${classMap(classes)}>\n ${this.renderStatusIndicator(status)}\n </wui-flex>\n </wui-flex>\n\n <wui-text variant=\"md-regular\" color=\"primary\">${title}</wui-text>\n </wui-flex>\n `;\n }\n renderStatusIndicator(status) {\n if (status === 'completed') {\n return html `<wui-icon size=\"sm\" color=\"success\" name=\"checkmark\"></wui-icon>`;\n }\n if (status === 'failed') {\n return html `<wui-icon size=\"sm\" color=\"error\" name=\"close\"></wui-icon>`;\n }\n if (status === 'pending') {\n return html `<wui-loading-spinner color=\"accent-primary\" size=\"sm\"></wui-loading-spinner>`;\n }\n return null;\n }\n startPolling() {\n if (!this.pollingInterval) {\n this.fetchQuoteStatus();\n this.pollingInterval = setInterval(() => {\n this.fetchQuoteStatus();\n }, POLLING_INTERVAL_MS);\n }\n }\n stopPolling() {\n if (this.pollingInterval) {\n clearInterval(this.pollingInterval);\n this.pollingInterval = null;\n }\n }\n async fetchQuoteStatus() {\n const requestId = PayController.state.requestId;\n if (!requestId || TERMINAL_STATES.includes(this.quoteStatus)) {\n this.stopPolling();\n }\n else {\n try {\n await PayController.fetchQuoteStatus({ requestId });\n if (TERMINAL_STATES.includes(this.quoteStatus)) {\n this.stopPolling();\n }\n }\n catch {\n this.stopPolling();\n }\n }\n }\n initializeNamespace() {\n const namespace = ChainController.state.activeChain;\n this.namespace = namespace;\n this.caipAddress = ChainController.getAccountData(namespace)?.caipAddress;\n this.profileName = ChainController.getAccountData(namespace)?.profileName ?? null;\n this.unsubscribe.push(ChainController.subscribeChainProp('accountState', accountState => {\n this.caipAddress = accountState?.caipAddress;\n this.profileName = accountState?.profileName ?? null;\n }, namespace));\n }\n getWalletProperties({ namespace }) {\n if (!namespace) {\n return {\n name: undefined,\n image: undefined\n };\n }\n const connectorId = this.activeConnectorIds[namespace];\n if (!connectorId) {\n return {\n name: undefined,\n image: undefined\n };\n }\n const connector = ConnectorController.getConnector({ id: connectorId, namespace });\n if (!connector) {\n return {\n name: undefined,\n image: undefined\n };\n }\n const connectorImage = AssetUtil.getConnectorImage(connector);\n return {\n name: connector.name,\n image: connectorImage\n };\n }\n};\nW3mPayLoadingView.styles = styles;\n__decorate([\n state()\n], W3mPayLoadingView.prototype, \"paymentAsset\", void 0);\n__decorate([\n state()\n], W3mPayLoadingView.prototype, \"quoteStatus\", void 0);\n__decorate([\n state()\n], W3mPayLoadingView.prototype, \"quote\", void 0);\n__decorate([\n state()\n], W3mPayLoadingView.prototype, \"amount\", void 0);\n__decorate([\n state()\n], W3mPayLoadingView.prototype, \"namespace\", void 0);\n__decorate([\n state()\n], W3mPayLoadingView.prototype, \"caipAddress\", void 0);\n__decorate([\n state()\n], W3mPayLoadingView.prototype, \"profileName\", void 0);\n__decorate([\n state()\n], W3mPayLoadingView.prototype, \"activeConnectorIds\", void 0);\n__decorate([\n state()\n], W3mPayLoadingView.prototype, \"selectedExchange\", void 0);\nW3mPayLoadingView = __decorate([\n customElement('w3m-pay-loading-view')\n], W3mPayLoadingView);\nexport { W3mPayLoadingView };\n//# sourceMappingURL=index.js.map","import { css } from '../../utils/ThemeHelperUtil.js';\nexport default css `\n button {\n display: flex;\n align-items: center;\n height: 40px;\n padding: ${({ spacing }) => spacing[2]};\n border-radius: ${({ borderRadius }) => borderRadius[4]};\n column-gap: ${({ spacing }) => spacing[1]};\n background-color: transparent;\n transition: background-color ${({ durations }) => durations['lg']}\n ${({ easings }) => easings['ease-out-power-2']};\n will-change: background-color;\n }\n\n wui-image,\n .icon-box {\n width: ${({ spacing }) => spacing[6]};\n height: ${({ spacing }) => spacing[6]};\n border-radius: ${({ borderRadius }) => borderRadius[4]};\n }\n\n wui-text {\n flex: 1;\n }\n\n .icon-box {\n position: relative;\n }\n\n .icon-box[data-active='true'] {\n background-color: ${({ tokens }) => tokens.theme.foregroundSecondary};\n }\n\n .circle {\n position: absolute;\n left: 16px;\n top: 15px;\n width: 8px;\n height: 8px;\n background-color: ${({ tokens }) => tokens.core.textSuccess};\n box-shadow: 0 0 0 2px ${({ tokens }) => tokens.theme.foregroundPrimary};\n border-radius: 50%;\n }\n\n /* -- Hover & Active states ----------------------------------------------------------- */\n @media (hover: hover) {\n button:hover:enabled,\n button:active:enabled {\n background-color: ${({ tokens }) => tokens.theme.foregroundPrimary};\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport '../../components/wui-icon/index.js';\nimport '../../components/wui-image/index.js';\nimport '../../components/wui-text/index.js';\nimport '../../layout/wui-flex/index.js';\nimport { elementStyles, resetStyles } from '../../utils/ThemeUtil.js';\nimport { UiHelperUtil } from '../../utils/UiHelperUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport styles from './styles.js';\nlet WuiWalletSwitch = class WuiWalletSwitch extends LitElement {\n constructor() {\n super(...arguments);\n this.address = '';\n this.profileName = '';\n this.alt = '';\n this.imageSrc = '';\n this.icon = undefined;\n this.iconSize = 'md';\n this.enableGreenCircle = true;\n this.loading = false;\n this.charsStart = 4;\n this.charsEnd = 6;\n }\n render() {\n return html `\n <button>\n ${this.leftImageTemplate()} ${this.textTemplate()} ${this.rightImageTemplate()}\n </button>\n `;\n }\n leftImageTemplate() {\n const imageOrIconContent = this.icon\n ? html `<wui-icon\n size=${ifDefined(this.iconSize)}\n color=\"default\"\n name=${this.icon}\n class=\"icon\"\n ></wui-icon>`\n : html `<wui-image src=${this.imageSrc} alt=${this.alt}></wui-image>`;\n return html `\n <wui-flex\n alignItems=\"center\"\n justifyContent=\"center\"\n class=\"icon-box\"\n data-active=${Boolean(this.icon)}\n >\n ${imageOrIconContent}\n ${this.enableGreenCircle ? html `<wui-flex class=\"circle\"></wui-flex>` : null}\n </wui-flex>\n `;\n }\n textTemplate() {\n return html `\n <wui-text variant=\"lg-regular\" color=\"primary\">\n ${UiHelperUtil.getTruncateString({\n string: this.profileName || this.address,\n charsStart: this.profileName ? 16 : this.charsStart,\n charsEnd: this.profileName ? 0 : this.charsEnd,\n truncate: this.profileName ? 'end' : 'middle'\n })}\n </wui-text>\n `;\n }\n rightImageTemplate() {\n return html `<wui-icon name=\"chevronBottom\" size=\"sm\" color=\"default\"></wui-icon>`;\n }\n};\nWuiWalletSwitch.styles = [resetStyles, elementStyles, styles];\n__decorate([\n property()\n], WuiWalletSwitch.prototype, \"address\", void 0);\n__decorate([\n property()\n], WuiWalletSwitch.prototype, \"profileName\", void 0);\n__decorate([\n property()\n], WuiWalletSwitch.prototype, \"alt\", void 0);\n__decorate([\n property()\n], WuiWalletSwitch.prototype, \"imageSrc\", void 0);\n__decorate([\n property()\n], WuiWalletSwitch.prototype, \"icon\", void 0);\n__decorate([\n property()\n], WuiWalletSwitch.prototype, \"iconSize\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiWalletSwitch.prototype, \"enableGreenCircle\", void 0);\n__decorate([\n property({ type: Boolean })\n], WuiWalletSwitch.prototype, \"loading\", void 0);\n__decorate([\n property({ type: Number })\n], WuiWalletSwitch.prototype, \"charsStart\", void 0);\n__decorate([\n property({ type: Number })\n], WuiWalletSwitch.prototype, \"charsEnd\", void 0);\nWuiWalletSwitch = __decorate([\n customElement('wui-wallet-switch')\n], WuiWalletSwitch);\nexport { WuiWalletSwitch };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-shimmer';\nimport '@reown/appkit-ui/wui-text';\nimport styles from './styles.js';\nlet W3mPayFeesSkeleton = class W3mPayFeesSkeleton extends LitElement {\n render() {\n return html `\n <wui-flex flexDirection=\"column\" gap=\"4\">\n <wui-flex alignItems=\"center\" justifyContent=\"space-between\">\n <wui-text variant=\"md-regular\" color=\"secondary\">Pay</wui-text>\n <wui-shimmer width=\"60px\" height=\"16px\" borderRadius=\"4xs\" variant=\"light\"></wui-shimmer>\n </wui-flex>\n\n <wui-flex alignItems=\"center\" justifyContent=\"space-between\">\n <wui-text variant=\"md-regular\" color=\"secondary\">Network Fee</wui-text>\n\n <wui-flex flexDirection=\"column\" alignItems=\"flex-end\" gap=\"2\">\n <wui-shimmer\n width=\"75px\"\n height=\"16px\"\n borderRadius=\"4xs\"\n variant=\"light\"\n ></wui-shimmer>\n\n <wui-flex alignItems=\"center\" gap=\"01\">\n <wui-shimmer width=\"14px\" height=\"14px\" rounded variant=\"light\"></wui-shimmer>\n <wui-shimmer\n width=\"49px\"\n height=\"14px\"\n borderRadius=\"4xs\"\n variant=\"light\"\n ></wui-shimmer>\n </wui-flex>\n </wui-flex>\n </wui-flex>\n\n <wui-flex alignItems=\"center\" justifyContent=\"space-between\">\n <wui-text variant=\"md-regular\" color=\"secondary\">Service Fee</wui-text>\n <wui-shimmer width=\"75px\" height=\"16px\" borderRadius=\"4xs\" variant=\"light\"></wui-shimmer>\n </wui-flex>\n </wui-flex>\n `;\n }\n};\nW3mPayFeesSkeleton.styles = [styles];\nW3mPayFeesSkeleton = __decorate([\n customElement('w3m-pay-fees-skeleton')\n], W3mPayFeesSkeleton);\nexport { W3mPayFeesSkeleton };\n//# sourceMappingURL=index.js.map","import { css } from '@reown/appkit-ui';\nexport default css `\n :host {\n display: block;\n }\n\n wui-image {\n border-radius: ${({ borderRadius }) => borderRadius.round};\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { NumberUtil } from '@reown/appkit-common';\nimport { AssetUtil, ChainController } from '@reown/appkit-controllers';\nimport { customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-image';\nimport '@reown/appkit-ui/wui-text';\nimport { HelpersUtil } from '@reown/appkit-utils';\nimport { PayController } from '../../controllers/PayController.js';\nimport styles from './styles.js';\nlet W3mPayFees = class W3mPayFees extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.quote = PayController.state.quote;\n this.unsubscribe.push(PayController.subscribeKey('quote', val => (this.quote = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const amount = NumberUtil.formatNumber(this.quote?.origin.amount || '0', {\n decimals: this.quote?.origin.currency.metadata.decimals ?? 0,\n round: 6\n }).toString();\n return html `\n <wui-flex flexDirection=\"column\" gap=\"4\">\n <wui-flex alignItems=\"center\" justifyContent=\"space-between\">\n <wui-text variant=\"md-regular\" color=\"secondary\">Pay</wui-text>\n <wui-text variant=\"md-regular\" color=\"primary\">\n ${amount} ${this.quote?.origin.currency.metadata.symbol || 'Unknown'}\n </wui-text>\n </wui-flex>\n\n ${this.quote && this.quote.fees.length > 0\n ? this.quote.fees.map(fee => this.renderFee(fee))\n : null}\n </wui-flex>\n `;\n }\n renderFee(fee) {\n const isNetworkFee = fee.id === 'network';\n const feeAmount = NumberUtil.formatNumber(fee.amount || '0', {\n decimals: fee.currency.metadata.decimals ?? 0,\n round: 6\n }).toString();\n if (isNetworkFee) {\n const allNetworks = ChainController.getAllRequestedCaipNetworks();\n const targetNetwork = allNetworks.find(net => HelpersUtil.isLowerCaseMatch(net.caipNetworkId, fee.currency.network));\n return html `\n <wui-flex alignItems=\"center\" justifyContent=\"space-between\">\n <wui-text variant=\"md-regular\" color=\"secondary\">${fee.label}</wui-text>\n\n <wui-flex flexDirection=\"column\" alignItems=\"flex-end\" gap=\"2\">\n <wui-text variant=\"md-regular\" color=\"primary\">\n ${feeAmount} ${fee.currency.metadata.symbol || 'Unknown'}\n </wui-text>\n\n <wui-flex alignItems=\"center\" gap=\"01\">\n <wui-image\n src=${ifDefined(AssetUtil.getNetworkImage(targetNetwork))}\n size=\"xs\"\n ></wui-image>\n <wui-text variant=\"sm-regular\" color=\"secondary\">\n ${targetNetwork?.name || 'Unknown'}\n </wui-text>\n </wui-flex>\n </wui-flex>\n </wui-flex>\n `;\n }\n return html `\n <wui-flex alignItems=\"center\" justifyContent=\"space-between\">\n <wui-text variant=\"md-regular\" color=\"secondary\">${fee.label}</wui-text>\n <wui-text variant=\"md-regular\" color=\"primary\">\n ${feeAmount} ${fee.currency.metadata.symbol || 'Unknown'}\n </wui-text>\n </wui-flex>\n `;\n }\n};\nW3mPayFees.styles = [styles];\n__decorate([\n state()\n], W3mPayFees.prototype, \"quote\", void 0);\nW3mPayFees = __decorate([\n customElement('w3m-pay-fees')\n], W3mPayFees);\nexport { W3mPayFees };\n//# sourceMappingURL=index.js.map","import { css } from '@reown/appkit-ui';\nexport default css `\n :host {\n display: block;\n width: 100%;\n }\n\n .disabled-container {\n padding: ${({ spacing }) => spacing[2]};\n min-height: 168px;\n }\n\n wui-icon {\n width: ${({ spacing }) => spacing[8]};\n height: ${({ spacing }) => spacing[8]};\n }\n\n wui-flex > wui-text {\n max-width: 273px;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-button';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-icon';\nimport '@reown/appkit-ui/wui-text';\nimport { PayController } from '../../controllers/PayController.js';\nimport styles from './styles.js';\nlet W3mPayOptionsEmpty = class W3mPayOptionsEmpty extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.selectedExchange = PayController.state.selectedExchange;\n this.unsubscribe.push(PayController.subscribeKey('selectedExchange', val => (this.selectedExchange = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const isUsingExchange = Boolean(this.selectedExchange);\n return html `\n <wui-flex\n flexDirection=\"column\"\n alignItems=\"center\"\n justifyContent=\"center\"\n gap=\"3\"\n class=\"disabled-container\"\n >\n <wui-icon name=\"coins\" color=\"default\" size=\"inherit\"></wui-icon>\n\n <wui-text variant=\"md-regular\" color=\"primary\" align=\"center\">\n You don't have enough funds to complete this transaction\n </wui-text>\n\n ${isUsingExchange\n ? null\n : html `<wui-button\n size=\"md\"\n variant=\"neutral-secondary\"\n @click=${this.dispatchConnectOtherWalletEvent.bind(this)}\n >Connect other wallet</wui-button\n >`}\n </wui-flex>\n `;\n }\n dispatchConnectOtherWalletEvent() {\n this.dispatchEvent(new CustomEvent('connectOtherWallet', {\n detail: true,\n bubbles: true,\n composed: true\n }));\n }\n};\nW3mPayOptionsEmpty.styles = [styles];\n__decorate([\n property({ type: Array })\n], W3mPayOptionsEmpty.prototype, \"selectedExchange\", void 0);\nW3mPayOptionsEmpty = __decorate([\n customElement('w3m-pay-options-empty')\n], W3mPayOptionsEmpty);\nexport { W3mPayOptionsEmpty };\n//# sourceMappingURL=index.js.map","import { css } from '@reown/appkit-ui';\nexport default css `\n :host {\n display: block;\n width: 100%;\n }\n\n .pay-options-container {\n max-height: 196px;\n overflow-y: auto;\n overflow-x: hidden;\n scrollbar-width: none;\n }\n\n .pay-options-container::-webkit-scrollbar {\n display: none;\n }\n\n .pay-option-container {\n border-radius: ${({ borderRadius }) => borderRadius[4]};\n padding: ${({ spacing }) => spacing[3]};\n min-height: 60px;\n }\n\n .token-images-container {\n position: relative;\n justify-content: center;\n align-items: center;\n }\n\n .chain-image {\n position: absolute;\n bottom: -3px;\n right: -5px;\n border: 2px solid ${({ tokens }) => tokens.theme.foregroundSecondary};\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-shimmer';\nimport styles from './styles.js';\nlet W3mPayOptionsSkeleton = class W3mPayOptionsSkeleton extends LitElement {\n render() {\n return html `\n <wui-flex flexDirection=\"column\" gap=\"2\" class=\"pay-options-container\">\n ${this.renderOptionEntry()} ${this.renderOptionEntry()} ${this.renderOptionEntry()}\n </wui-flex>\n `;\n }\n renderOptionEntry() {\n return html `\n <wui-flex\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap=\"2\"\n class=\"pay-option-container\"\n >\n <wui-flex alignItems=\"center\" gap=\"2\">\n <wui-flex class=\"token-images-container\">\n <wui-shimmer\n width=\"32px\"\n height=\"32px\"\n rounded\n variant=\"light\"\n class=\"token-image\"\n ></wui-shimmer>\n <wui-shimmer\n width=\"16px\"\n height=\"16px\"\n rounded\n variant=\"light\"\n class=\"chain-image\"\n ></wui-shimmer>\n </wui-flex>\n\n <wui-flex flexDirection=\"column\" gap=\"1\">\n <wui-shimmer\n width=\"74px\"\n height=\"16px\"\n borderRadius=\"4xs\"\n variant=\"light\"\n ></wui-shimmer>\n <wui-shimmer\n width=\"46px\"\n height=\"14px\"\n borderRadius=\"4xs\"\n variant=\"light\"\n ></wui-shimmer>\n </wui-flex>\n </wui-flex>\n </wui-flex>\n `;\n }\n};\nW3mPayOptionsSkeleton.styles = [styles];\nW3mPayOptionsSkeleton = __decorate([\n customElement('w3m-pay-options-skeleton')\n], W3mPayOptionsSkeleton);\nexport { W3mPayOptionsSkeleton };\n//# sourceMappingURL=index.js.map","import { css } from '@reown/appkit-ui';\nexport default css `\n :host {\n display: block;\n width: 100%;\n }\n\n .pay-options-container {\n max-height: 196px;\n overflow-y: auto;\n overflow-x: hidden;\n scrollbar-width: none;\n mask-image: var(--options-mask-image);\n -webkit-mask-image: var(--options-mask-image);\n }\n\n .pay-options-container::-webkit-scrollbar {\n display: none;\n }\n\n .pay-option-container {\n cursor: pointer;\n border-radius: ${({ borderRadius }) => borderRadius[4]};\n padding: ${({ spacing }) => spacing[3]};\n transition: background-color ${({ durations }) => durations['lg']}\n ${({ easings }) => easings['ease-out-power-1']};\n will-change: background-color;\n }\n\n .token-images-container {\n position: relative;\n justify-content: center;\n align-items: center;\n }\n\n .token-image {\n border-radius: ${({ borderRadius }) => borderRadius.round};\n width: 32px;\n height: 32px;\n }\n\n .chain-image {\n position: absolute;\n width: 16px;\n height: 16px;\n bottom: -3px;\n right: -5px;\n border-radius: ${({ borderRadius }) => borderRadius.round};\n border: 2px solid ${({ tokens }) => tokens.theme.backgroundPrimary};\n }\n\n @media (hover: hover) and (pointer: fine) {\n .pay-option-container:hover {\n background-color: ${({ tokens }) => tokens.theme.foregroundPrimary};\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { NumberUtil } from '@reown/appkit-common';\nimport { AssetUtil, ChainController } from '@reown/appkit-controllers';\nimport { MathUtil, customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-text';\nimport styles from './styles.js';\nconst SCROLL_THRESHOLD = 300;\nlet W3mPayOptions = class W3mPayOptions extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.options = [];\n this.selectedPaymentAsset = null;\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n this.resizeObserver?.disconnect();\n const optionsEl = this.shadowRoot?.querySelector('.pay-options-container');\n optionsEl?.removeEventListener('scroll', this.handleOptionsListScroll.bind(this));\n }\n firstUpdated() {\n const optionsEl = this.shadowRoot?.querySelector('.pay-options-container');\n if (optionsEl) {\n requestAnimationFrame(this.handleOptionsListScroll.bind(this));\n optionsEl?.addEventListener('scroll', this.handleOptionsListScroll.bind(this));\n this.resizeObserver = new ResizeObserver(() => {\n this.handleOptionsListScroll();\n });\n this.resizeObserver?.observe(optionsEl);\n this.handleOptionsListScroll();\n }\n }\n render() {\n return html `\n <wui-flex flexDirection=\"column\" gap=\"2\" class=\"pay-options-container\">\n ${this.options.map(option => this.payOptionTemplate(option))}\n </wui-flex>\n `;\n }\n payOptionTemplate(paymentAsset) {\n const { network, metadata, asset, amount = '0' } = paymentAsset;\n const allNetworks = ChainController.getAllRequestedCaipNetworks();\n const targetNetwork = allNetworks.find(net => net.caipNetworkId === network);\n const paymentCaipAddress = `${network}:${asset}`;\n const selectedPaymentCaipAddress = `${this.selectedPaymentAsset?.network}:${this.selectedPaymentAsset?.asset}`;\n const isSelected = paymentCaipAddress === selectedPaymentCaipAddress;\n const bigAmount = NumberUtil.bigNumber(amount, { safe: true });\n const hasEnoughBalance = bigAmount.gt(0);\n return html `\n <wui-flex\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap=\"2\"\n @click=${() => this.onSelect?.(paymentAsset)}\n class=\"pay-option-container\"\n >\n <wui-flex alignItems=\"center\" gap=\"2\">\n <wui-flex class=\"token-images-container\">\n <wui-image\n src=${ifDefined(metadata.logoURI)}\n class=\"token-image\"\n size=\"3xl\"\n ></wui-image>\n <wui-image\n src=${ifDefined(AssetUtil.getNetworkImage(targetNetwork))}\n class=\"chain-image\"\n size=\"md\"\n ></wui-image>\n </wui-flex>\n\n <wui-flex flexDirection=\"column\" gap=\"1\">\n <wui-text variant=\"lg-regular\" color=\"primary\">${metadata.symbol}</wui-text>\n ${hasEnoughBalance\n ? html `<wui-text variant=\"sm-regular\" color=\"secondary\">\n ${bigAmount.round(6).toString()} ${metadata.symbol}\n </wui-text>`\n : null}\n </wui-flex>\n </wui-flex>\n\n ${isSelected\n ? html `<wui-icon name=\"checkmark\" size=\"md\" color=\"success\"></wui-icon>`\n : null}\n </wui-flex>\n `;\n }\n handleOptionsListScroll() {\n const optionsEl = this.shadowRoot?.querySelector('.pay-options-container');\n if (!optionsEl) {\n return;\n }\n const shouldApplyMask = optionsEl.scrollHeight > SCROLL_THRESHOLD;\n if (shouldApplyMask) {\n optionsEl.style.setProperty('--options-mask-image', `linear-gradient(\n to bottom,\n rgba(0, 0, 0, calc(1 - var(--options-scroll--top-opacity))) 0px,\n rgba(200, 200, 200, calc(1 - var(--options-scroll--top-opacity))) 1px,\n black 50px,\n black calc(100% - 50px),\n rgba(155, 155, 155, calc(1 - var(--options-scroll--bottom-opacity))) calc(100% - 1px),\n rgba(0, 0, 0, calc(1 - var(--options-scroll--bottom-opacity))) 100%\n )`);\n optionsEl.style.setProperty('--options-scroll--top-opacity', MathUtil.interpolate([0, 50], [0, 1], optionsEl.scrollTop).toString());\n optionsEl.style.setProperty('--options-scroll--bottom-opacity', MathUtil.interpolate([0, 50], [0, 1], optionsEl.scrollHeight - optionsEl.scrollTop - optionsEl.offsetHeight).toString());\n }\n else {\n optionsEl.style.setProperty('--options-mask-image', 'none');\n optionsEl.style.setProperty('--options-scroll--top-opacity', '0');\n optionsEl.style.setProperty('--options-scroll--bottom-opacity', '0');\n }\n }\n};\nW3mPayOptions.styles = [styles];\n__decorate([\n property({ type: Array })\n], W3mPayOptions.prototype, \"options\", void 0);\n__decorate([\n property()\n], W3mPayOptions.prototype, \"selectedPaymentAsset\", void 0);\n__decorate([\n property()\n], W3mPayOptions.prototype, \"onSelect\", void 0);\nW3mPayOptions = __decorate([\n customElement('w3m-pay-options')\n], W3mPayOptions);\nexport { W3mPayOptions };\n//# sourceMappingURL=index.js.map","import { css } from '@reown/appkit-ui';\nexport default css `\n .payment-methods-container {\n background-color: ${({ tokens }) => tokens.theme.foregroundPrimary};\n border-top-right-radius: ${({ borderRadius }) => borderRadius[5]};\n border-top-left-radius: ${({ borderRadius }) => borderRadius[5]};\n }\n\n .pay-options-container {\n background-color: ${({ tokens }) => tokens.theme.foregroundSecondary};\n border-radius: ${({ borderRadius }) => borderRadius[5]};\n padding: ${({ spacing }) => spacing[1]};\n }\n\n w3m-tooltip-trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n max-width: fit-content;\n }\n\n wui-image {\n border-radius: ${({ borderRadius }) => borderRadius.round};\n }\n\n w3m-pay-options.disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { NumberUtil, ParseUtil } from '@reown/appkit-common';\nimport { AssetUtil, ChainController, ConnectorController, CoreHelperUtil, ModalController, RouterController, SnackController } from '@reown/appkit-controllers';\nimport { customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-text';\nimport '@reown/appkit-ui/wui-wallet-switch';\nimport { HelpersUtil } from '@reown/appkit-utils';\nimport { PayController } from '../../controllers/PayController.js';\nimport '../../partials/w3m-pay-fees-skeleton/index.js';\nimport '../../partials/w3m-pay-fees/index.js';\nimport '../../partials/w3m-pay-options-empty/index.js';\nimport '../../partials/w3m-pay-options-skeleton/index.js';\nimport '../../partials/w3m-pay-options/index.js';\nimport { formatAmount, formatBalanceToPaymentAsset } from '../../utils/AssetUtil.js';\nimport { getTransactionsSteps, getTransferStep } from '../../utils/PaymentUtil.js';\nimport styles from './styles.js';\nconst NAMESPACE_ICONS = {\n eip155: 'ethereum',\n solana: 'solana',\n bip122: 'bitcoin',\n ton: 'ton'\n};\nconst NAMESPACE_LABELS = {\n eip155: { icon: NAMESPACE_ICONS.eip155, label: 'EVM' },\n solana: { icon: NAMESPACE_ICONS.solana, label: 'Solana' },\n bip122: { icon: NAMESPACE_ICONS.bip122, label: 'Bitcoin' },\n ton: { icon: NAMESPACE_ICONS.ton, label: 'Ton' }\n};\nlet W3mPayQuoteView = class W3mPayQuoteView extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.profileName = null;\n this.paymentAsset = PayController.state.paymentAsset;\n this.namespace = undefined;\n this.caipAddress = undefined;\n this.amount = PayController.state.amount;\n this.recipient = PayController.state.recipient;\n this.activeConnectorIds = ConnectorController.state.activeConnectorIds;\n this.selectedPaymentAsset = PayController.state.selectedPaymentAsset;\n this.selectedExchange = PayController.state.selectedExchange;\n this.isFetchingQuote = PayController.state.isFetchingQuote;\n this.quoteError = PayController.state.quoteError;\n this.quote = PayController.state.quote;\n this.isFetchingTokenBalances = PayController.state.isFetchingTokenBalances;\n this.tokenBalances = PayController.state.tokenBalances;\n this.isPaymentInProgress = PayController.state.isPaymentInProgress;\n this.exchangeUrlForQuote = PayController.state.exchangeUrlForQuote;\n this.completedTransactionsCount = 0;\n this.unsubscribe.push(PayController.subscribeKey('paymentAsset', val => (this.paymentAsset = val)));\n this.unsubscribe.push(PayController.subscribeKey('tokenBalances', val => this.onTokenBalancesChanged(val)));\n this.unsubscribe.push(PayController.subscribeKey('isFetchingTokenBalances', val => (this.isFetchingTokenBalances = val)));\n this.unsubscribe.push(ConnectorController.subscribeKey('activeConnectorIds', newActiveConnectorIds => (this.activeConnectorIds = newActiveConnectorIds)));\n this.unsubscribe.push(PayController.subscribeKey('selectedPaymentAsset', val => (this.selectedPaymentAsset = val)));\n this.unsubscribe.push(PayController.subscribeKey('isFetchingQuote', val => (this.isFetchingQuote = val)));\n this.unsubscribe.push(PayController.subscribeKey('quoteError', val => (this.quoteError = val)));\n this.unsubscribe.push(PayController.subscribeKey('quote', val => (this.quote = val)));\n this.unsubscribe.push(PayController.subscribeKey('amount', val => (this.amount = val)));\n this.unsubscribe.push(PayController.subscribeKey('recipient', val => (this.recipient = val)));\n this.unsubscribe.push(PayController.subscribeKey('isPaymentInProgress', val => (this.isPaymentInProgress = val)));\n this.unsubscribe.push(PayController.subscribeKey('selectedExchange', val => (this.selectedExchange = val)));\n this.unsubscribe.push(PayController.subscribeKey('exchangeUrlForQuote', val => (this.exchangeUrlForQuote = val)));\n this.resetQuoteState();\n this.initializeNamespace();\n this.fetchTokens();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.resetAssetsState();\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n updated(changedProperties) {\n super.updated(changedProperties);\n const shouldFetchQuote = changedProperties.has('selectedPaymentAsset');\n if (shouldFetchQuote) {\n this.fetchQuote();\n }\n }\n render() {\n return html `\n <wui-flex flexDirection=\"column\">\n ${this.profileTemplate()}\n\n <wui-flex\n flexDirection=\"column\"\n gap=\"4\"\n class=\"payment-methods-container\"\n .padding=${['4', '4', '5', '4']}\n >\n ${this.paymentOptionsViewTemplate()} ${this.amountWithFeeTemplate()}\n\n <wui-flex\n alignItems=\"center\"\n justifyContent=\"space-between\"\n .padding=${['1', '0', '1', '0']}\n >\n <wui-separator></wui-separator>\n </wui-flex>\n\n ${this.paymentActionsTemplate()}\n </wui-flex>\n </wui-flex>\n `;\n }\n profileTemplate() {\n if (this.selectedExchange) {\n const amount = NumberUtil.formatNumber(this.quote?.origin.amount, {\n decimals: this.quote?.origin.currency.metadata.decimals ?? 0\n }).toString();\n return html `\n <wui-flex\n .padding=${['4', '3', '4', '3']}\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap=\"2\"\n >\n <wui-text variant=\"lg-regular\" color=\"secondary\">Paying with</wui-text>\n\n ${this.quote\n ? html `<wui-text variant=\"lg-regular\" color=\"primary\">\n ${NumberUtil.bigNumber(amount, { safe: true }).round(6).toString()}\n ${this.quote.origin.currency.metadata.symbol}\n </wui-text>`\n : html `<wui-shimmer width=\"80px\" height=\"18px\" variant=\"light\"></wui-shimmer>`}\n </wui-flex>\n `;\n }\n const address = CoreHelperUtil.getPlainAddress(this.caipAddress) ?? '';\n const { name, image } = this.getWalletProperties({ namespace: this.namespace });\n const { icon: chainIcon, label: chainLabel } = NAMESPACE_LABELS[this.namespace] ?? {};\n return html `\n <wui-flex\n .padding=${['4', '3', '4', '3']}\n alignItems=\"center\"\n justifyContent=\"space-between\"\n gap=\"2\"\n >\n <wui-wallet-switch\n profileName=${ifDefined(this.profileName)}\n address=${ifDefined(address)}\n imageSrc=${ifDefined(image)}\n alt=${ifDefined(name)}\n @click=${this.onConnectOtherWallet.bind(this)}\n data-testid=\"wui-wallet-switch\"\n ></wui-wallet-switch>\n\n <wui-wallet-switch\n profileName=${ifDefined(chainLabel)}\n address=${ifDefined(address)}\n icon=${ifDefined(chainIcon)}\n iconSize=\"xs\"\n .enableGreenCircle=${false}\n alt=${ifDefined(chainLabel)}\n @click=${this.onConnectOtherWallet.bind(this)}\n data-testid=\"wui-wallet-switch\"\n ></wui-wallet-switch>\n </wui-flex>\n `;\n }\n initializeNamespace() {\n const namespace = ChainController.state.activeChain;\n this.namespace = namespace;\n this.caipAddress = ChainController.getAccountData(namespace)?.caipAddress;\n this.profileName = ChainController.getAccountData(namespace)?.profileName ?? null;\n this.unsubscribe.push(ChainController.subscribeChainProp('accountState', accountState => this.onAccountStateChanged(accountState), namespace));\n }\n async fetchTokens() {\n if (this.namespace) {\n let caipNetwork = undefined;\n if (this.caipAddress) {\n const { chainId, chainNamespace } = ParseUtil.parseCaipAddress(this.caipAddress);\n const caipNetworkId = `${chainNamespace}:${chainId}`;\n const allNetworks = ChainController.getAllRequestedCaipNetworks();\n caipNetwork = allNetworks.find(net => net.caipNetworkId === caipNetworkId);\n }\n await PayController.fetchTokens({\n caipAddress: this.caipAddress,\n caipNetwork,\n namespace: this.namespace\n });\n }\n }\n fetchQuote() {\n if (this.amount && this.recipient && this.selectedPaymentAsset && this.paymentAsset) {\n const { address } = this.caipAddress ? ParseUtil.parseCaipAddress(this.caipAddress) : {};\n PayController.fetchQuote({\n amount: this.amount.toString(),\n address,\n sourceToken: this.selectedPaymentAsset,\n toToken: this.paymentAsset,\n recipient: this.recipient\n });\n }\n }\n getWalletProperties({ namespace }) {\n if (!namespace) {\n return {\n name: undefined,\n image: undefined\n };\n }\n const connectorId = this.activeConnectorIds[namespace];\n if (!connectorId) {\n return {\n name: undefined,\n image: undefined\n };\n }\n const connector = ConnectorController.getConnector({ id: connectorId, namespace });\n if (!connector) {\n return {\n name: undefined,\n image: undefined\n };\n }\n const connectorImage = AssetUtil.getConnectorImage(connector);\n return {\n name: connector.name,\n image: connectorImage\n };\n }\n paymentOptionsViewTemplate() {\n return html `\n <wui-flex flexDirection=\"column\" gap=\"2\">\n <wui-text variant=\"sm-regular\" color=\"secondary\">CHOOSE PAYMENT OPTION</wui-text>\n <wui-flex class=\"pay-options-container\">${this.paymentOptionsTemplate()}</wui-flex>\n </wui-flex>\n `;\n }\n paymentOptionsTemplate() {\n const paymentAssets = this.getPaymentAssetFromTokenBalances();\n if (this.isFetchingTokenBalances) {\n return html `<w3m-pay-options-skeleton></w3m-pay-options-skeleton>`;\n }\n if (paymentAssets.length === 0) {\n return html `<w3m-pay-options-empty\n @connectOtherWallet=${this.onConnectOtherWallet.bind(this)}\n ></w3m-pay-options-empty>`;\n }\n const classes = {\n disabled: this.isFetchingQuote\n };\n return html `<w3m-pay-options\n class=${classMap(classes)}\n .options=${paymentAssets}\n .selectedPaymentAsset=${ifDefined(this.selectedPaymentAsset)}\n .onSelect=${this.onSelectedPaymentAssetChanged.bind(this)}\n ></w3m-pay-options>`;\n }\n amountWithFeeTemplate() {\n if (this.isFetchingQuote || !this.selectedPaymentAsset || this.quoteError) {\n return html `<w3m-pay-fees-skeleton></w3m-pay-fees-skeleton>`;\n }\n return html `<w3m-pay-fees></w3m-pay-fees>`;\n }\n paymentActionsTemplate() {\n const isLoading = this.isFetchingQuote || this.isFetchingTokenBalances;\n const isDisabled = this.isFetchingQuote ||\n this.isFetchingTokenBalances ||\n !this.selectedPaymentAsset ||\n Boolean(this.quoteError);\n const amount = NumberUtil.formatNumber(this.quote?.origin.amount ?? 0, {\n decimals: this.quote?.origin.currency.metadata.decimals ?? 0\n }).toString();\n if (this.selectedExchange) {\n if (isLoading || isDisabled) {\n return html `\n <wui-shimmer width=\"100%\" height=\"48px\" variant=\"light\" ?rounded=${true}></wui-shimmer>\n `;\n }\n return html `<wui-button\n size=\"lg\"\n fullWidth\n variant=\"accent-secondary\"\n @click=${this.onPayWithExchange.bind(this)}\n >\n ${`Continue in ${this.selectedExchange.name}`}\n\n <wui-icon name=\"arrowRight\" color=\"inherit\" size=\"sm\" slot=\"iconRight\"></wui-icon>\n </wui-button>`;\n }\n return html `\n <wui-flex alignItems=\"center\" justifyContent=\"space-between\">\n <wui-flex flexDirection=\"column\" gap=\"1\">\n <wui-text variant=\"md-regular\" color=\"secondary\">Order Total</wui-text>\n\n ${isLoading || isDisabled\n ? html `<wui-shimmer width=\"58px\" height=\"32px\" variant=\"light\"></wui-shimmer>`\n : html `<wui-flex alignItems=\"center\" gap=\"01\">\n <wui-text variant=\"h4-regular\" color=\"primary\">${formatAmount(amount)}</wui-text>\n\n <wui-text variant=\"lg-regular\" color=\"secondary\">\n ${this.quote?.origin.currency.metadata.symbol || 'Unknown'}\n </wui-text>\n </wui-flex>`}\n </wui-flex>\n\n ${this.actionButtonTemplate({ isLoading, isDisabled })}\n </wui-flex>\n `;\n }\n actionButtonTemplate(params) {\n const allTransactionSteps = getTransactionsSteps(this.quote);\n const { isLoading, isDisabled } = params;\n let label = 'Pay';\n const isApprovalRequired = allTransactionSteps.length > 1 && this.completedTransactionsCount === 0;\n if (isApprovalRequired) {\n label = 'Approve';\n }\n return html `\n <wui-button\n size=\"lg\"\n variant=\"accent-primary\"\n ?loading=${isLoading || this.isPaymentInProgress}\n ?disabled=${isDisabled || this.isPaymentInProgress}\n @click=${() => {\n if (allTransactionSteps.length > 0) {\n this.onSendTransactions();\n }\n else {\n this.onTransfer();\n }\n }}\n >\n ${label}\n ${isLoading\n ? null\n : html `<wui-icon\n name=\"arrowRight\"\n color=\"inherit\"\n size=\"sm\"\n slot=\"iconRight\"\n ></wui-icon>`}\n </wui-button>\n `;\n }\n getPaymentAssetFromTokenBalances() {\n if (!this.namespace) {\n return [];\n }\n const balances = this.tokenBalances[this.namespace] ?? [];\n const paymentOptionsWithFormattedBalances = balances\n .map(balance => {\n try {\n return formatBalanceToPaymentAsset(balance);\n }\n catch (err) {\n return null;\n }\n })\n .filter((option) => Boolean(option));\n const paymentOptionsToShow = paymentOptionsWithFormattedBalances.filter(option => {\n const { chainId: optionChainId } = ParseUtil.parseCaipNetworkId(option.network);\n const { chainId: paymentAssetChainId } = ParseUtil.parseCaipNetworkId(this.paymentAsset.network);\n if (HelpersUtil.isLowerCaseMatch(option.asset, this.paymentAsset.asset)) {\n return true;\n }\n if (this.selectedExchange) {\n return !HelpersUtil.isLowerCaseMatch(optionChainId.toString(), paymentAssetChainId.toString());\n }\n return true;\n });\n return paymentOptionsToShow;\n }\n onTokenBalancesChanged(tokenBalances) {\n this.tokenBalances = tokenBalances;\n const [paymentAsset] = this.getPaymentAssetFromTokenBalances();\n if (paymentAsset) {\n PayController.setSelectedPaymentAsset(paymentAsset);\n }\n }\n async onConnectOtherWallet() {\n await ConnectorController.connect();\n await ModalController.open({ view: 'PayQuote' });\n }\n onAccountStateChanged(accountState) {\n const { address: oldAddress } = this.caipAddress\n ? ParseUtil.parseCaipAddress(this.caipAddress)\n : {};\n this.caipAddress = accountState?.caipAddress;\n this.profileName = accountState?.profileName ?? null;\n if (oldAddress) {\n const { address: newAddress } = this.caipAddress\n ? ParseUtil.parseCaipAddress(this.caipAddress)\n : {};\n if (!newAddress) {\n ModalController.close();\n }\n else if (!HelpersUtil.isLowerCaseMatch(newAddress, oldAddress)) {\n this.resetAssetsState();\n this.resetQuoteState();\n this.fetchTokens();\n }\n }\n }\n onSelectedPaymentAssetChanged(paymentAsset) {\n if (!this.isFetchingQuote) {\n PayController.setSelectedPaymentAsset(paymentAsset);\n }\n }\n async onTransfer() {\n const transferStep = getTransferStep(this.quote);\n if (transferStep) {\n const isQuoteAssetSameAsSelectedPaymentAsset = HelpersUtil.isLowerCaseMatch(this.selectedPaymentAsset?.asset, transferStep.deposit.currency);\n if (!isQuoteAssetSameAsSelectedPaymentAsset) {\n throw new Error('Quote asset is not the same as the selected payment asset');\n }\n const currentAmount = this.selectedPaymentAsset?.amount ?? '0';\n const amountToTransfer = NumberUtil.formatNumber(transferStep.deposit.amount, {\n decimals: this.selectedPaymentAsset?.metadata.decimals ?? 0\n }).toString();\n const hasEnoughFunds = NumberUtil.bigNumber(currentAmount).gte(amountToTransfer);\n if (!hasEnoughFunds) {\n SnackController.showError('Insufficient funds');\n return;\n }\n if (this.quote && this.selectedPaymentAsset && this.caipAddress && this.namespace) {\n const { address: fromAddress } = ParseUtil.parseCaipAddress(this.caipAddress);\n await PayController.onTransfer({\n chainNamespace: this.namespace,\n fromAddress,\n toAddress: transferStep.deposit.receiver,\n amount: amountToTransfer,\n paymentAsset: this.selectedPaymentAsset\n });\n PayController.setRequestId(transferStep.requestId);\n RouterController.push('PayLoading');\n }\n }\n }\n async onSendTransactions() {\n const currentAmount = this.selectedPaymentAsset?.amount ?? '0';\n const amountToSwap = NumberUtil.formatNumber(this.quote?.origin.amount ?? 0, {\n decimals: this.selectedPaymentAsset?.metadata.decimals ?? 0\n }).toString();\n const hasEnoughFunds = NumberUtil.bigNumber(currentAmount).gte(amountToSwap);\n if (!hasEnoughFunds) {\n SnackController.showError('Insufficient funds');\n return;\n }\n const allTransactionSteps = getTransactionsSteps(this.quote);\n const [transactionStep] = getTransactionsSteps(this.quote, this.completedTransactionsCount);\n if (transactionStep && this.namespace) {\n await PayController.onSendTransaction({\n namespace: this.namespace,\n transactionStep\n });\n this.completedTransactionsCount += 1;\n const hasCompletedAllTransactions = this.completedTransactionsCount === allTransactionSteps.length;\n if (hasCompletedAllTransactions) {\n PayController.setRequestId(transactionStep.requestId);\n RouterController.push('PayLoading');\n }\n }\n }\n onPayWithExchange() {\n if (this.exchangeUrlForQuote) {\n const popupWindow = CoreHelperUtil.returnOpenHref('', 'popupWindow', 'scrollbar=yes,width=480,height=720');\n if (!popupWindow) {\n throw new Error('Could not create popup window');\n }\n popupWindow.location.href = this.exchangeUrlForQuote;\n const transactionStep = getTransferStep(this.quote);\n if (transactionStep) {\n PayController.setRequestId(transactionStep.requestId);\n }\n PayController.initiatePayment();\n RouterController.push('PayLoading');\n }\n }\n resetAssetsState() {\n PayController.setSelectedPaymentAsset(null);\n }\n resetQuoteState() {\n PayController.resetQuoteState();\n }\n};\nW3mPayQuoteView.styles = styles;\n__decorate([\n state()\n], W3mPayQuoteView.prototype, \"profileName\", void 0);\n__decorate([\n state()\n], W3mPayQuoteView.prototype, \"paymentAsset\", void 0);\n__decorate([\n state()\n], W3mPayQuoteView.prototype, \"namespace\", void 0);\n__decorate([\n state()\n], W3mPayQuoteView.prototype, \"caipAddress\", void 0);\n__decorate([\n state()\n], W3mPayQuoteView.prototype, \"amount\", void 0);\n__decorate([\n state()\n], W3mPayQuoteView.prototype, \"recipient\", void 0);\n__decorate([\n state()\n], W3mPayQuoteView.prototype, \"activeConnectorIds\", void 0);\n__decorate([\n state()\n], W3mPayQuoteView.prototype, \"selectedPaymentAsset\", void 0);\n__decorate([\n state()\n], W3mPayQuoteView.prototype, \"selectedExchange\", void 0);\n__decorate([\n state()\n], W3mPayQuoteView.prototype, \"isFetchingQuote\", void 0);\n__decorate([\n state()\n], W3mPayQuoteView.prototype, \"quoteError\", void 0);\n__decorate([\n state()\n], W3mPayQuoteView.prototype, \"quote\", void 0);\n__decorate([\n state()\n], W3mPayQuoteView.prototype, \"isFetchingTokenBalances\", void 0);\n__decorate([\n state()\n], W3mPayQuoteView.prototype, \"tokenBalances\", void 0);\n__decorate([\n state()\n], W3mPayQuoteView.prototype, \"isPaymentInProgress\", void 0);\n__decorate([\n state()\n], W3mPayQuoteView.prototype, \"exchangeUrlForQuote\", void 0);\n__decorate([\n state()\n], W3mPayQuoteView.prototype, \"completedTransactionsCount\", void 0);\nW3mPayQuoteView = __decorate([\n customElement('w3m-pay-quote-view')\n], W3mPayQuoteView);\nexport { W3mPayQuoteView };\n//# sourceMappingURL=index.js.map","import { css } from '@reown/appkit-ui';\nexport default css `\n wui-image {\n border-radius: ${({ borderRadius }) => borderRadius.round};\n }\n\n .transfers-badge {\n background-color: ${({ tokens }) => tokens.theme.foregroundPrimary};\n border: 1px solid ${({ tokens }) => tokens.theme.foregroundSecondary};\n border-radius: ${({ borderRadius }) => borderRadius[4]};\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { ChainController } from '@reown/appkit-controllers';\nimport { PayController } from '@reown/appkit-pay';\nimport { customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-text';\nimport styles from './styles.js';\nlet W3mPayHeader = class W3mPayHeader extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.paymentAsset = PayController.state.paymentAsset;\n this.amount = PayController.state.amount;\n this.unsubscribe.push(PayController.subscribeKey('paymentAsset', val => {\n this.paymentAsset = val;\n }), PayController.subscribeKey('amount', val => {\n this.amount = val;\n }));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const allNetworks = ChainController.getAllRequestedCaipNetworks();\n const targetNetwork = allNetworks.find(net => net.caipNetworkId === this.paymentAsset.network);\n return html `<wui-flex\n alignItems=\"center\"\n gap=\"1\"\n .padding=${['1', '2', '1', '1']}\n class=\"transfers-badge\"\n >\n <wui-image src=${ifDefined(this.paymentAsset.metadata.logoURI)} size=\"xl\"></wui-image>\n <wui-text variant=\"lg-regular\" color=\"primary\">\n ${this.amount} ${this.paymentAsset.metadata.symbol}\n </wui-text>\n <wui-text variant=\"sm-regular\" color=\"secondary\">\n on ${targetNetwork?.name ?? 'Unknown'}\n </wui-text>\n </wui-flex>`;\n }\n};\nW3mPayHeader.styles = [styles];\n__decorate([\n property()\n], W3mPayHeader.prototype, \"paymentAsset\", void 0);\n__decorate([\n property()\n], W3mPayHeader.prototype, \"amount\", void 0);\nW3mPayHeader = __decorate([\n customElement('w3m-pay-header')\n], W3mPayHeader);\nexport { W3mPayHeader };\n//# sourceMappingURL=index.js.map","import { css } from '@reown/appkit-ui';\nexport default css `\n :host {\n height: 60px;\n }\n\n :host > wui-flex {\n box-sizing: border-box;\n background-color: var(--local-header-background-color);\n }\n\n wui-text {\n background-color: var(--local-header-background-color);\n }\n\n wui-flex.w3m-header-title {\n transform: translateY(0);\n opacity: 1;\n }\n\n wui-flex.w3m-header-title[view-direction='prev'] {\n animation:\n slide-down-out 120ms forwards ${({ easings }) => easings['ease-out-power-2']},\n slide-down-in 120ms forwards ${({ easings }) => easings['ease-out-power-2']};\n animation-delay: 0ms, 200ms;\n }\n\n wui-flex.w3m-header-title[view-direction='next'] {\n animation:\n slide-up-out 120ms forwards ${({ easings }) => easings['ease-out-power-2']},\n slide-up-in 120ms forwards ${({ easings }) => easings['ease-out-power-2']};\n animation-delay: 0ms, 200ms;\n }\n\n wui-icon-button[data-hidden='true'] {\n opacity: 0 !important;\n pointer-events: none;\n }\n\n @keyframes slide-up-out {\n from {\n transform: translateY(0px);\n opacity: 1;\n }\n to {\n transform: translateY(3px);\n opacity: 0;\n }\n }\n\n @keyframes slide-up-in {\n from {\n transform: translateY(-3px);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n }\n\n @keyframes slide-down-out {\n from {\n transform: translateY(0px);\n opacity: 1;\n }\n to {\n transform: translateY(-3px);\n opacity: 0;\n }\n }\n\n @keyframes slide-down-in {\n from {\n transform: translateY(3px);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { AssetController, AssetUtil, ChainController, ConnectorController, EventsController, ModalUtil, OptionsController, RouterController } from '@reown/appkit-controllers';\nimport { customElement, vars } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-icon-button';\nimport '@reown/appkit-ui/wui-select';\nimport '@reown/appkit-ui/wui-tag';\nimport '@reown/appkit-ui/wui-text';\nimport { ConstantsUtil } from '../../utils/ConstantsUtil.js';\nimport '../w3m-pay-header/index.js';\nimport styles from './styles.js';\nconst BETA_SCREENS = ['SmartSessionList'];\nconst BACKGROUND_OVERRIDES = {\n PayWithExchange: vars.tokens.theme.foregroundPrimary\n};\nfunction headings() {\n const connectorName = RouterController.state.data?.connector?.name;\n const walletName = RouterController.state.data?.wallet?.name;\n const networkName = RouterController.state.data?.network?.name;\n const name = walletName ?? connectorName;\n const connectors = ConnectorController.getConnectors();\n const isEmail = connectors.length === 1 && connectors[0]?.id === 'w3m-email';\n const socialProvider = ChainController.getAccountData()?.socialProvider;\n const socialTitle = socialProvider\n ? socialProvider.charAt(0).toUpperCase() + socialProvider.slice(1)\n : 'Connect Social';\n return {\n Connect: `Connect ${isEmail ? 'Email' : ''} Wallet`,\n Create: 'Create Wallet',\n ChooseAccountName: undefined,\n Account: undefined,\n AccountSettings: undefined,\n AllWallets: 'All Wallets',\n ApproveTransaction: 'Approve Transaction',\n BuyInProgress: 'Buy',\n UsageExceeded: 'Usage Exceeded',\n ConnectingExternal: name ?? 'Connect Wallet',\n ConnectingWalletConnect: name ?? 'WalletConnect',\n ConnectingWalletConnectBasic: 'WalletConnect',\n ConnectingSiwe: 'Sign In',\n Convert: 'Convert',\n ConvertSelectToken: 'Select token',\n ConvertPreview: 'Preview Convert',\n Downloads: name ? `Get ${name}` : 'Downloads',\n EmailLogin: 'Email Login',\n EmailVerifyOtp: 'Confirm Email',\n EmailVerifyDevice: 'Register Device',\n GetWallet: 'Get a Wallet',\n Networks: 'Choose Network',\n OnRampProviders: 'Choose Provider',\n OnRampActivity: 'Activity',\n OnRampTokenSelect: 'Select Token',\n OnRampFiatSelect: 'Select Currency',\n Pay: 'How you pay',\n ProfileWallets: 'Wallets',\n SwitchNetwork: networkName ?? 'Switch Network',\n Transactions: 'Activity',\n UnsupportedChain: 'Switch Network',\n UpgradeEmailWallet: 'Upgrade Your Wallet',\n UpdateEmailWallet: 'Edit Email',\n UpdateEmailPrimaryOtp: 'Confirm Current Email',\n UpdateEmailSecondaryOtp: 'Confirm New Email',\n WhatIsABuy: 'What is Buy?',\n RegisterAccountName: 'Choose Name',\n RegisterAccountNameSuccess: '',\n WalletReceive: 'Receive',\n WalletCompatibleNetworks: 'Compatible Networks',\n Swap: 'Swap',\n SwapSelectToken: 'Select Token',\n SwapPreview: 'Preview Swap',\n WalletSend: 'Send',\n WalletSendPreview: 'Review Send',\n WalletSendSelectToken: 'Select Token',\n WalletSendConfirmed: 'Confirmed',\n WhatIsANetwork: 'What is a network?',\n WhatIsAWallet: 'What is a Wallet?',\n ConnectWallets: 'Connect Wallet',\n ConnectSocials: 'All Socials',\n ConnectingSocial: socialTitle,\n ConnectingMultiChain: 'Select Chain',\n ConnectingFarcaster: 'Farcaster',\n SwitchActiveChain: 'Switch Chain',\n SmartSessionCreated: undefined,\n SmartSessionList: 'Smart Sessions',\n SIWXSignMessage: 'Sign In',\n PayLoading: 'Processing payment...',\n PayQuote: 'Payment Quote',\n DataCapture: 'Profile',\n DataCaptureOtpConfirm: 'Confirm Email',\n FundWallet: 'Fund Wallet',\n PayWithExchange: 'Deposit from Exchange',\n PayWithExchangeSelectAsset: 'Select Asset',\n SmartAccountSettings: 'Smart Account Settings'\n };\n}\nlet W3mHeader = class W3mHeader extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.heading = headings()[RouterController.state.view];\n this.network = ChainController.state.activeCaipNetwork;\n this.networkImage = AssetUtil.getNetworkImage(this.network);\n this.showBack = false;\n this.prevHistoryLength = 1;\n this.view = RouterController.state.view;\n this.viewDirection = '';\n this.unsubscribe.push(AssetController.subscribeNetworkImages(() => {\n this.networkImage = AssetUtil.getNetworkImage(this.network);\n }), RouterController.subscribeKey('view', val => {\n setTimeout(() => {\n this.view = val;\n this.heading = headings()[val];\n }, ConstantsUtil.ANIMATION_DURATIONS.HeaderText);\n this.onViewChange();\n this.onHistoryChange();\n }), ChainController.subscribeKey('activeCaipNetwork', val => {\n this.network = val;\n this.networkImage = AssetUtil.getNetworkImage(this.network);\n }));\n }\n disconnectCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const backgroundColor = BACKGROUND_OVERRIDES[RouterController.state.view] ?? vars.tokens.theme.backgroundPrimary;\n this.style.setProperty('--local-header-background-color', backgroundColor);\n return html `\n <wui-flex\n .padding=${['0', '4', '0', '4']}\n justifyContent=\"space-between\"\n alignItems=\"center\"\n >\n ${this.leftHeaderTemplate()} ${this.titleTemplate()} ${this.rightHeaderTemplate()}\n </wui-flex>\n `;\n }\n onWalletHelp() {\n EventsController.sendEvent({ type: 'track', event: 'CLICK_WALLET_HELP' });\n RouterController.push('WhatIsAWallet');\n }\n async onClose() {\n await ModalUtil.safeClose();\n }\n rightHeaderTemplate() {\n const isSmartSessionsEnabled = OptionsController?.state?.features?.smartSessions;\n if (RouterController.state.view !== 'Account' || !isSmartSessionsEnabled) {\n return this.closeButtonTemplate();\n }\n return html `<wui-flex>\n <wui-icon-button\n icon=\"clock\"\n size=\"lg\"\n iconSize=\"lg\"\n type=\"neutral\"\n variant=\"primary\"\n @click=${() => RouterController.push('SmartSessionList')}\n data-testid=\"w3m-header-smart-sessions\"\n ></wui-icon-button>\n ${this.closeButtonTemplate()}\n </wui-flex> `;\n }\n closeButtonTemplate() {\n return html `\n <wui-icon-button\n icon=\"close\"\n size=\"lg\"\n type=\"neutral\"\n variant=\"primary\"\n iconSize=\"lg\"\n @click=${this.onClose.bind(this)}\n data-testid=\"w3m-header-close\"\n ></wui-icon-button>\n `;\n }\n titleTemplate() {\n if (this.view === 'PayQuote') {\n return html `<w3m-pay-header></w3m-pay-header>`;\n }\n const isBeta = BETA_SCREENS.includes(this.view);\n return html `\n <wui-flex\n view-direction=\"${this.viewDirection}\"\n class=\"w3m-header-title\"\n alignItems=\"center\"\n gap=\"2\"\n >\n <wui-text\n display=\"inline\"\n variant=\"lg-regular\"\n color=\"primary\"\n data-testid=\"w3m-header-text\"\n >\n ${this.heading}\n </wui-text>\n ${isBeta ? html `<wui-tag variant=\"accent\" size=\"md\">Beta</wui-tag>` : null}\n </wui-flex>\n `;\n }\n leftHeaderTemplate() {\n const { view } = RouterController.state;\n const isConnectHelp = view === 'Connect';\n const isEmbeddedEnable = OptionsController.state.enableEmbedded;\n const isApproveTransaction = view === 'ApproveTransaction';\n const isConnectingSIWEView = view === 'ConnectingSiwe';\n const isAccountView = view === 'Account';\n const enableNetworkSwitch = OptionsController.state.enableNetworkSwitch;\n const shouldHideBack = isApproveTransaction || isConnectingSIWEView || (isConnectHelp && isEmbeddedEnable);\n if (isAccountView && enableNetworkSwitch) {\n return html `<wui-select\n id=\"dynamic\"\n data-testid=\"w3m-account-select-network\"\n active-network=${ifDefined(this.network?.name)}\n @click=${this.onNetworks.bind(this)}\n imageSrc=${ifDefined(this.networkImage)}\n ></wui-select>`;\n }\n if (this.showBack && !shouldHideBack) {\n return html `<wui-icon-button\n data-testid=\"header-back\"\n id=\"dynamic\"\n icon=\"chevronLeft\"\n size=\"lg\"\n iconSize=\"lg\"\n type=\"neutral\"\n variant=\"primary\"\n @click=${this.onGoBack.bind(this)}\n ></wui-icon-button>`;\n }\n return html `<wui-icon-button\n data-hidden=${!isConnectHelp}\n id=\"dynamic\"\n icon=\"helpCircle\"\n size=\"lg\"\n iconSize=\"lg\"\n type=\"neutral\"\n variant=\"primary\"\n @click=${this.onWalletHelp.bind(this)}\n ></wui-icon-button>`;\n }\n onNetworks() {\n if (this.isAllowedNetworkSwitch()) {\n EventsController.sendEvent({ type: 'track', event: 'CLICK_NETWORKS' });\n RouterController.push('Networks');\n }\n }\n isAllowedNetworkSwitch() {\n const requestedCaipNetworks = ChainController.getAllRequestedCaipNetworks();\n const isMultiNetwork = requestedCaipNetworks ? requestedCaipNetworks.length > 1 : false;\n const isValidNetwork = requestedCaipNetworks?.find(({ id }) => id === this.network?.id);\n return isMultiNetwork || !isValidNetwork;\n }\n onViewChange() {\n const { history } = RouterController.state;\n let direction = ConstantsUtil.VIEW_DIRECTION.Next;\n if (history.length < this.prevHistoryLength) {\n direction = ConstantsUtil.VIEW_DIRECTION.Prev;\n }\n this.prevHistoryLength = history.length;\n this.viewDirection = direction;\n }\n async onHistoryChange() {\n const { history } = RouterController.state;\n const buttonEl = this.shadowRoot?.querySelector('#dynamic');\n if (history.length > 1 && !this.showBack && buttonEl) {\n await buttonEl.animate([{ opacity: 1 }, { opacity: 0 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n }).finished;\n this.showBack = true;\n buttonEl.animate([{ opacity: 0 }, { opacity: 1 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n else if (history.length <= 1 && this.showBack && buttonEl) {\n await buttonEl.animate([{ opacity: 1 }, { opacity: 0 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n }).finished;\n this.showBack = false;\n buttonEl.animate([{ opacity: 0 }, { opacity: 1 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n }\n onGoBack() {\n RouterController.goBack();\n }\n};\nW3mHeader.styles = styles;\n__decorate([\n state()\n], W3mHeader.prototype, \"heading\", void 0);\n__decorate([\n state()\n], W3mHeader.prototype, \"network\", void 0);\n__decorate([\n state()\n], W3mHeader.prototype, \"networkImage\", void 0);\n__decorate([\n state()\n], W3mHeader.prototype, \"showBack\", void 0);\n__decorate([\n state()\n], W3mHeader.prototype, \"prevHistoryLength\", void 0);\n__decorate([\n state()\n], W3mHeader.prototype, \"view\", void 0);\n__decorate([\n state()\n], W3mHeader.prototype, \"viewDirection\", void 0);\nW3mHeader = __decorate([\n customElement('w3m-header')\n], W3mHeader);\nexport { W3mHeader };\n//# sourceMappingURL=index.js.map","import { css } from '../../utils/ThemeHelperUtil.js';\nexport default css `\n :host {\n display: flex;\n align-items: center;\n gap: ${({ spacing }) => spacing[1]};\n padding: ${({ spacing }) => spacing[2]} ${({ spacing }) => spacing[3]}\n ${({ spacing }) => spacing[2]} ${({ spacing }) => spacing[2]};\n border-radius: ${({ borderRadius }) => borderRadius[20]};\n background-color: ${({ tokens }) => tokens.theme.foregroundPrimary};\n box-shadow:\n 0px 0px 8px 0px rgba(0, 0, 0, 0.1),\n inset 0 0 0 1px ${({ tokens }) => tokens.theme.borderPrimary};\n max-width: 320px;\n }\n\n wui-icon-box {\n border-radius: ${({ borderRadius }) => borderRadius.round} !important;\n overflow: hidden;\n }\n\n wui-loading-spinner {\n padding: ${({ spacing }) => spacing[1]};\n background-color: ${({ tokens }) => tokens.core.foregroundAccent010};\n border-radius: ${({ borderRadius }) => borderRadius.round} !important;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../../components/wui-loading-spinner/index.js';\nimport '../../components/wui-text/index.js';\nimport { resetStyles } from '../../utils/ThemeUtil.js';\nimport { customElement } from '../../utils/WebComponentsUtil.js';\nimport '../wui-icon-box/index.js';\nimport styles from './styles.js';\nlet WuiSnackbar = class WuiSnackbar extends LitElement {\n constructor() {\n super(...arguments);\n this.message = '';\n this.variant = 'success';\n }\n render() {\n return html `\n ${this.templateIcon()}\n <wui-text variant=\"lg-regular\" color=\"primary\" data-testid=\"wui-snackbar-message\"\n >${this.message}</wui-text\n >\n `;\n }\n templateIcon() {\n const COLOR = {\n success: 'success',\n error: 'error',\n warning: 'warning',\n info: 'default'\n };\n const ICON = {\n success: 'checkmark',\n error: 'warning',\n warning: 'warningCircle',\n info: 'info'\n };\n if (this.variant === 'loading') {\n return html `<wui-loading-spinner size=\"md\" color=\"accent-primary\"></wui-loading-spinner>`;\n }\n return html `<wui-icon-box\n size=\"md\"\n color=${COLOR[this.variant]}\n icon=${ICON[this.variant]}\n ></wui-icon-box>`;\n }\n};\nWuiSnackbar.styles = [resetStyles, styles];\n__decorate([\n property()\n], WuiSnackbar.prototype, \"message\", void 0);\n__decorate([\n property()\n], WuiSnackbar.prototype, \"variant\", void 0);\nWuiSnackbar = __decorate([\n customElement('wui-snackbar')\n], WuiSnackbar);\nexport { WuiSnackbar };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n position: absolute;\n opacity: 0;\n pointer-events: none;\n top: 11px;\n left: 50%;\n width: max-content;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { SnackController } from '@reown/appkit-controllers';\nimport { customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-snackbar';\nimport styles from './styles.js';\nlet W3mSnackBar = class W3mSnackBar extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.timeout = undefined;\n this.open = SnackController.state.open;\n this.unsubscribe.push(SnackController.subscribeKey('open', val => {\n this.open = val;\n this.onOpen();\n }));\n }\n disconnectedCallback() {\n clearTimeout(this.timeout);\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const { message, variant } = SnackController.state;\n return html ` <wui-snackbar message=${message} variant=${variant}></wui-snackbar> `;\n }\n onOpen() {\n clearTimeout(this.timeout);\n if (this.open) {\n this.animate([\n { opacity: 0, transform: 'translateX(-50%) scale(0.85)' },\n { opacity: 1, transform: 'translateX(-50%) scale(1)' }\n ], {\n duration: 150,\n fill: 'forwards',\n easing: 'ease'\n });\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n if (SnackController.state.autoClose) {\n this.timeout = setTimeout(() => SnackController.hide(), 2500);\n }\n }\n else {\n this.animate([\n { opacity: 1, transform: 'translateX(-50%) scale(1)' },\n { opacity: 0, transform: 'translateX(-50%) scale(0.85)' }\n ], {\n duration: 150,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n }\n};\nW3mSnackBar.styles = styles;\n__decorate([\n state()\n], W3mSnackBar.prototype, \"open\", void 0);\nW3mSnackBar = __decorate([\n customElement('w3m-snackbar')\n], W3mSnackBar);\nexport { W3mSnackBar };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n width: 100%;\n display: block;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ModalController, RouterController, TooltipController } from '@reown/appkit-controllers';\nimport { customElement } from '@reown/appkit-ui';\nimport styles from './styles.js';\nlet WuiTooltipTrigger = class WuiTooltipTrigger extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.text = '';\n this.open = TooltipController.state.open;\n this.unsubscribe.push(RouterController.subscribeKey('view', () => {\n TooltipController.hide();\n }), ModalController.subscribeKey('open', modalOpen => {\n if (!modalOpen) {\n TooltipController.hide();\n }\n }), TooltipController.subscribeKey('open', tooltipOpen => {\n this.open = tooltipOpen;\n }));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n TooltipController.hide();\n }\n render() {\n return html `\n <div\n @pointermove=${this.onMouseEnter.bind(this)}\n @pointerleave=${this.onMouseLeave.bind(this)}\n >\n ${this.renderChildren()}\n </div>\n `;\n }\n renderChildren() {\n return html `<slot></slot> `;\n }\n onMouseEnter() {\n const rect = this.getBoundingClientRect();\n if (!this.open) {\n const modalContainer = document.querySelector('w3m-modal');\n const triggerRect = {\n width: rect.width,\n height: rect.height,\n left: rect.left,\n top: rect.top\n };\n if (modalContainer) {\n const containerRect = modalContainer.getBoundingClientRect();\n triggerRect.left = rect.left - (window.innerWidth - containerRect.width) / 2;\n triggerRect.top = rect.top - (window.innerHeight - containerRect.height) / 2;\n }\n TooltipController.showTooltip({\n message: this.text,\n triggerRect,\n variant: 'shade'\n });\n }\n }\n onMouseLeave(event) {\n if (!this.contains(event.relatedTarget)) {\n TooltipController.hide();\n }\n }\n};\nWuiTooltipTrigger.styles = [styles];\n__decorate([\n property()\n], WuiTooltipTrigger.prototype, \"text\", void 0);\n__decorate([\n state()\n], WuiTooltipTrigger.prototype, \"open\", void 0);\nWuiTooltipTrigger = __decorate([\n customElement('w3m-tooltip-trigger')\n], WuiTooltipTrigger);\nexport { WuiTooltipTrigger };\n//# sourceMappingURL=index.js.map","import { css } from '@reown/appkit-ui';\nexport default css `\n :host {\n pointer-events: none;\n }\n\n :host > wui-flex {\n display: var(--w3m-tooltip-display);\n opacity: var(--w3m-tooltip-opacity);\n padding: 9px ${({ spacing }) => spacing['3']} 10px ${({ spacing }) => spacing['3']};\n border-radius: ${({ borderRadius }) => borderRadius['3']};\n color: ${({ tokens }) => tokens.theme.backgroundPrimary};\n position: absolute;\n top: var(--w3m-tooltip-top);\n left: var(--w3m-tooltip-left);\n transform: translate(calc(-50% + var(--w3m-tooltip-parent-width)), calc(-100% - 8px));\n max-width: calc(var(--apkt-modal-width) - ${({ spacing }) => spacing['5']});\n transition: opacity ${({ durations }) => durations['lg']}\n ${({ easings }) => easings['ease-out-power-2']};\n will-change: opacity;\n opacity: 0;\n animation-duration: ${({ durations }) => durations['xl']};\n animation-timing-function: ${({ easings }) => easings['ease-out-power-2']};\n animation-name: fade-in;\n animation-fill-mode: forwards;\n }\n\n :host([data-variant='shade']) > wui-flex {\n background-color: ${({ tokens }) => tokens.theme.foregroundPrimary};\n }\n\n :host([data-variant='shade']) > wui-flex > wui-text {\n color: ${({ tokens }) => tokens.theme.textSecondary};\n }\n\n :host([data-variant='fill']) > wui-flex {\n background-color: ${({ tokens }) => tokens.theme.backgroundPrimary};\n border: 1px solid ${({ tokens }) => tokens.theme.borderPrimary};\n }\n\n wui-icon {\n position: absolute;\n width: 12px !important;\n height: 4px !important;\n color: ${({ tokens }) => tokens.theme.foregroundPrimary};\n }\n\n wui-icon[data-placement='top'] {\n bottom: 0px;\n left: 50%;\n transform: translate(-50%, 95%);\n }\n\n wui-icon[data-placement='bottom'] {\n top: 0;\n left: 50%;\n transform: translate(-50%, -95%) rotate(180deg);\n }\n\n wui-icon[data-placement='right'] {\n top: 50%;\n left: 0;\n transform: translate(-65%, -50%) rotate(90deg);\n }\n\n wui-icon[data-placement='left'] {\n top: 50%;\n right: 0%;\n transform: translate(65%, -50%) rotate(270deg);\n }\n\n @keyframes fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { TooltipController } from '@reown/appkit-controllers';\nimport { customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-icon';\nimport '@reown/appkit-ui/wui-text';\nimport styles from './styles.js';\nlet W3mTooltip = class W3mTooltip extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.open = TooltipController.state.open;\n this.message = TooltipController.state.message;\n this.triggerRect = TooltipController.state.triggerRect;\n this.variant = TooltipController.state.variant;\n this.unsubscribe.push(...[\n TooltipController.subscribe(newState => {\n this.open = newState.open;\n this.message = newState.message;\n this.triggerRect = newState.triggerRect;\n this.variant = newState.variant;\n })\n ]);\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n this.dataset['variant'] = this.variant;\n const topValue = this.triggerRect.top;\n const leftValue = this.triggerRect.left;\n this.style.cssText = `\n --w3m-tooltip-top: ${topValue}px;\n --w3m-tooltip-left: ${leftValue}px;\n --w3m-tooltip-parent-width: ${this.triggerRect.width / 2}px;\n --w3m-tooltip-display: ${this.open ? 'flex' : 'none'};\n --w3m-tooltip-opacity: ${this.open ? 1 : 0};\n `;\n return html `<wui-flex>\n <wui-icon data-placement=\"top\" size=\"inherit\" name=\"cursor\"></wui-icon>\n <wui-text color=\"primary\" variant=\"sm-regular\">${this.message}</wui-text>\n </wui-flex>`;\n }\n};\nW3mTooltip.styles = [styles];\n__decorate([\n state()\n], W3mTooltip.prototype, \"open\", void 0);\n__decorate([\n state()\n], W3mTooltip.prototype, \"message\", void 0);\n__decorate([\n state()\n], W3mTooltip.prototype, \"triggerRect\", void 0);\n__decorate([\n state()\n], W3mTooltip.prototype, \"variant\", void 0);\nW3mTooltip = __decorate([\n customElement('w3m-tooltip')\n], W3mTooltip);\nexport { W3mTooltip };\n//# sourceMappingURL=index.js.map","import { ConstantsUtil as CommonConstantsUtil } from '@reown/appkit-common';\nimport { OptionsController, RouterController } from '@reown/appkit-controllers';\nimport { ConstantsUtil } from './ConstantsUtil.js';\nexport const HelpersUtil = {\n getTabsByNamespace(namespace) {\n const isEVM = Boolean(namespace) && namespace === CommonConstantsUtil.CHAIN.EVM;\n if (!isEVM) {\n return [];\n }\n if (OptionsController.state.remoteFeatures?.activity === false) {\n return ConstantsUtil.ACCOUNT_TABS.filter(tab => tab.label !== 'Activity');\n }\n return ConstantsUtil.ACCOUNT_TABS;\n },\n isValidReownName(name) {\n return /^[a-zA-Z0-9]+$/gu.test(name);\n },\n isValidEmail(email) {\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/gu.test(email);\n },\n validateReownName(name) {\n const sanitizedName = name.replace(/\\^/gu, '').toLowerCase();\n return sanitizedName.replace(/[^a-zA-Z0-9]/gu, '');\n },\n hasFooter() {\n const view = RouterController.state.view;\n if (ConstantsUtil.VIEWS_WITH_LEGAL_FOOTER.includes(view)) {\n const { termsConditionsUrl, privacyPolicyUrl } = OptionsController.state;\n const legalCheckbox = OptionsController.state.features?.legalCheckbox;\n const showOnlyBranding = (!termsConditionsUrl && !privacyPolicyUrl) || legalCheckbox;\n if (showOnlyBranding) {\n return false;\n }\n return true;\n }\n return ConstantsUtil.VIEWS_WITH_DEFAULT_FOOTER.includes(view);\n }\n};\n//# sourceMappingURL=HelpersUtil.js.map","import { css } from '@reown/appkit-ui';\nexport default css `\n :host wui-ux-by-reown {\n padding-top: 0;\n }\n\n :host wui-ux-by-reown.branding-only {\n padding-top: ${({ spacing }) => spacing['3']};\n }\n\n a {\n text-decoration: none;\n color: ${({ tokens }) => tokens.core.textAccentPrimary};\n font-weight: 500;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { OptionsController } from '@reown/appkit-controllers';\nimport { customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-text';\nimport '@reown/appkit-ui/wui-ux-by-reown';\nimport styles from './styles.js';\nlet W3mLegalFooter = class W3mLegalFooter extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.remoteFeatures = OptionsController.state.remoteFeatures;\n this.unsubscribe.push(OptionsController.subscribeKey('remoteFeatures', val => (this.remoteFeatures = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const { termsConditionsUrl, privacyPolicyUrl } = OptionsController.state;\n const legalCheckbox = OptionsController.state.features?.legalCheckbox;\n const showOnlyBranding = (!termsConditionsUrl && !privacyPolicyUrl) || legalCheckbox;\n if (showOnlyBranding) {\n return html `\n <wui-flex flexDirection=\"column\"> ${this.reownBrandingTemplate(true)} </wui-flex>\n `;\n }\n return html `\n <wui-flex flexDirection=\"column\">\n <wui-flex .padding=${['4', '3', '3', '3']} justifyContent=\"center\">\n <wui-text color=\"secondary\" variant=\"md-regular\" align=\"center\">\n By connecting your wallet, you agree to our <br />\n ${this.termsTemplate()} ${this.andTemplate()} ${this.privacyTemplate()}\n </wui-text>\n </wui-flex>\n ${this.reownBrandingTemplate()}\n </wui-flex>\n `;\n }\n andTemplate() {\n const { termsConditionsUrl, privacyPolicyUrl } = OptionsController.state;\n return termsConditionsUrl && privacyPolicyUrl ? 'and' : '';\n }\n termsTemplate() {\n const { termsConditionsUrl } = OptionsController.state;\n if (!termsConditionsUrl) {\n return null;\n }\n return html `<a href=${termsConditionsUrl} target=\"_blank\" rel=\"noopener noreferrer\"\n >Terms of Service</a\n >`;\n }\n privacyTemplate() {\n const { privacyPolicyUrl } = OptionsController.state;\n if (!privacyPolicyUrl) {\n return null;\n }\n return html `<a href=${privacyPolicyUrl} target=\"_blank\" rel=\"noopener noreferrer\"\n >Privacy Policy</a\n >`;\n }\n reownBrandingTemplate(showOnlyBranding = false) {\n if (!this.remoteFeatures?.reownBranding) {\n return null;\n }\n if (showOnlyBranding) {\n return html `<wui-ux-by-reown class=\"branding-only\"></wui-ux-by-reown>`;\n }\n return html `<wui-ux-by-reown></wui-ux-by-reown>`;\n }\n};\nW3mLegalFooter.styles = [styles];\n__decorate([\n state()\n], W3mLegalFooter.prototype, \"remoteFeatures\", void 0);\nW3mLegalFooter = __decorate([\n customElement('w3m-legal-footer')\n], W3mLegalFooter);\nexport { W3mLegalFooter };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css ``;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { ChainController, EventsController, OptionsController, RouterController, getPreferredAccountType } from '@reown/appkit-controllers';\nimport { customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-icon';\nimport '@reown/appkit-ui/wui-link';\nimport '@reown/appkit-ui/wui-text';\nimport { W3mFrameRpcConstants } from '@reown/appkit-wallet/utils';\nimport styles from './styles.js';\nlet W3mOnRampProvidersFooter = class W3mOnRampProvidersFooter extends LitElement {\n render() {\n const { termsConditionsUrl, privacyPolicyUrl } = OptionsController.state;\n if (!termsConditionsUrl && !privacyPolicyUrl) {\n return null;\n }\n return html `\n <wui-flex\n .padding=${['4', '3', '3', '3']}\n flexDirection=\"column\"\n alignItems=\"center\"\n justifyContent=\"center\"\n gap=\"3\"\n >\n <wui-text color=\"secondary\" variant=\"md-regular\" align=\"center\">\n We work with the best providers to give you the lowest fees and best support. More options\n coming soon!\n </wui-text>\n\n ${this.howDoesItWorkTemplate()}\n </wui-flex>\n `;\n }\n howDoesItWorkTemplate() {\n return html ` <wui-link @click=${this.onWhatIsBuy.bind(this)}>\n <wui-icon size=\"xs\" color=\"accent-primary\" slot=\"iconLeft\" name=\"helpCircle\"></wui-icon>\n How does it work?\n </wui-link>`;\n }\n onWhatIsBuy() {\n EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WHAT_IS_A_BUY',\n properties: {\n isSmartAccount: getPreferredAccountType(ChainController.state.activeChain) ===\n W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT\n }\n });\n RouterController.push('WhatIsABuy');\n }\n};\nW3mOnRampProvidersFooter.styles = [styles];\nW3mOnRampProvidersFooter = __decorate([\n customElement('w3m-onramp-providers-footer')\n], W3mOnRampProvidersFooter);\nexport { W3mOnRampProvidersFooter };\n//# sourceMappingURL=index.js.map","import { css } from '@reown/appkit-ui';\nexport default css `\n :host {\n display: block;\n }\n\n div.container {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n overflow: hidden;\n height: auto;\n display: block;\n }\n\n div.container[status='hide'] {\n animation: fade-out;\n animation-duration: var(--apkt-duration-dynamic);\n animation-timing-function: ${({ easings }) => easings['ease-out-power-2']};\n animation-fill-mode: both;\n animation-delay: 0s;\n }\n\n div.container[status='show'] {\n animation: fade-in;\n animation-duration: var(--apkt-duration-dynamic);\n animation-timing-function: ${({ easings }) => easings['ease-out-power-2']};\n animation-fill-mode: both;\n animation-delay: var(--apkt-duration-dynamic);\n }\n\n @keyframes fade-in {\n from {\n opacity: 0;\n filter: blur(6px);\n }\n to {\n opacity: 1;\n filter: blur(0px);\n }\n }\n\n @keyframes fade-out {\n from {\n opacity: 1;\n filter: blur(0px);\n }\n to {\n opacity: 0;\n filter: blur(6px);\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { EventsController, RouterController } from '@reown/appkit-controllers';\nimport { customElement } from '@reown/appkit-ui';\nimport '../../partials/w3m-legal-footer/index.js';\nimport '../../partials/w3m-onramp-providers-footer/index.js';\nimport { HelpersUtil } from '../../utils/HelpersUtil.js';\nimport styles from './styles.js';\nlet W3mFooter = class W3mFooter extends LitElement {\n constructor() {\n super(...arguments);\n this.resizeObserver = undefined;\n this.unsubscribe = [];\n this.status = 'hide';\n this.view = RouterController.state.view;\n }\n firstUpdated() {\n this.status = HelpersUtil.hasFooter() ? 'show' : 'hide';\n this.unsubscribe.push(RouterController.subscribeKey('view', val => {\n this.view = val;\n this.status = HelpersUtil.hasFooter() ? 'show' : 'hide';\n if (this.status === 'hide') {\n const globalStyles = document.documentElement.style;\n globalStyles.setProperty('--apkt-footer-height', '0px');\n }\n }));\n this.resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n if (entry.target === this.getWrapper()) {\n const newHeight = `${entry.contentRect.height}px`;\n const globalStyles = document.documentElement.style;\n globalStyles.setProperty('--apkt-footer-height', newHeight);\n }\n }\n });\n this.resizeObserver.observe(this.getWrapper());\n }\n render() {\n return html `\n <div class=\"container\" status=${this.status}>${this.templatePageContainer()}</div>\n `;\n }\n templatePageContainer() {\n if (HelpersUtil.hasFooter()) {\n return html ` ${this.templateFooter()}`;\n }\n return null;\n }\n templateFooter() {\n switch (this.view) {\n case 'Networks':\n return this.templateNetworksFooter();\n case 'Connect':\n case 'ConnectWallets':\n case 'OnRampFiatSelect':\n case 'OnRampTokenSelect':\n return html `<w3m-legal-footer></w3m-legal-footer>`;\n case 'OnRampProviders':\n return html `<w3m-onramp-providers-footer></w3m-onramp-providers-footer>`;\n default:\n return null;\n }\n }\n templateNetworksFooter() {\n return html ` <wui-flex\n class=\"footer-in\"\n padding=\"3\"\n flexDirection=\"column\"\n gap=\"3\"\n alignItems=\"center\"\n >\n <wui-text variant=\"md-regular\" color=\"secondary\" align=\"center\">\n Your connected wallet may not support some of the networks available for this dApp\n </wui-text>\n <wui-link @click=${this.onNetworkHelp.bind(this)}>\n <wui-icon size=\"sm\" color=\"accent-primary\" slot=\"iconLeft\" name=\"helpCircle\"></wui-icon>\n What is a network\n </wui-link>\n </wui-flex>`;\n }\n onNetworkHelp() {\n EventsController.sendEvent({ type: 'track', event: 'CLICK_NETWORK_HELP' });\n RouterController.push('WhatIsANetwork');\n }\n getWrapper() {\n return this.shadowRoot?.querySelector('div.container');\n }\n};\nW3mFooter.styles = [styles];\n__decorate([\n state()\n], W3mFooter.prototype, \"status\", void 0);\n__decorate([\n state()\n], W3mFooter.prototype, \"view\", void 0);\nW3mFooter = __decorate([\n customElement('w3m-footer')\n], W3mFooter);\nexport { W3mFooter };\n//# sourceMappingURL=index.js.map","import { css } from '@reown/appkit-ui';\nexport default css `\n :host {\n display: block;\n width: inherit;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { RouterController } from '@reown/appkit-controllers';\nimport { customElement } from '@reown/appkit-ui';\nimport '../w3m-footer/index.js';\nimport styles from './styles.js';\nlet W3mRouter = class W3mRouter extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.viewState = RouterController.state.view;\n this.history = RouterController.state.history.join(',');\n this.unsubscribe.push(RouterController.subscribeKey('view', () => {\n this.history = RouterController.state.history.join(',');\n document.documentElement.style.setProperty('--apkt-duration-dynamic', 'var(--apkt-durations-lg)');\n }));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n document.documentElement.style.setProperty('--apkt-duration-dynamic', '0s');\n }\n render() {\n return html `${this.templatePageContainer()}`;\n }\n templatePageContainer() {\n return html `<w3m-router-container\n history=${this.history}\n .setView=${() => {\n this.viewState = RouterController.state.view;\n }}\n >\n ${this.viewTemplate(this.viewState)}\n </w3m-router-container>`;\n }\n viewTemplate(view) {\n switch (view) {\n case 'AccountSettings':\n return html `<w3m-account-settings-view></w3m-account-settings-view>`;\n case 'Account':\n return html `<w3m-account-view></w3m-account-view>`;\n case 'AllWallets':\n return html `<w3m-all-wallets-view></w3m-all-wallets-view>`;\n case 'ApproveTransaction':\n return html `<w3m-approve-transaction-view></w3m-approve-transaction-view>`;\n case 'BuyInProgress':\n return html `<w3m-buy-in-progress-view></w3m-buy-in-progress-view>`;\n case 'ChooseAccountName':\n return html `<w3m-choose-account-name-view></w3m-choose-account-name-view>`;\n case 'Connect':\n return html `<w3m-connect-view></w3m-connect-view>`;\n case 'Create':\n return html `<w3m-connect-view walletGuide=\"explore\"></w3m-connect-view>`;\n case 'ConnectingWalletConnect':\n return html `<w3m-connecting-wc-view></w3m-connecting-wc-view>`;\n case 'ConnectingWalletConnectBasic':\n return html `<w3m-connecting-wc-basic-view></w3m-connecting-wc-basic-view>`;\n case 'ConnectingExternal':\n return html `<w3m-connecting-external-view></w3m-connecting-external-view>`;\n case 'ConnectingSiwe':\n return html `<w3m-connecting-siwe-view></w3m-connecting-siwe-view>`;\n case 'ConnectWallets':\n return html `<w3m-connect-wallets-view></w3m-connect-wallets-view>`;\n case 'ConnectSocials':\n return html `<w3m-connect-socials-view></w3m-connect-socials-view>`;\n case 'ConnectingSocial':\n return html `<w3m-connecting-social-view></w3m-connecting-social-view>`;\n case 'DataCapture':\n return html `<w3m-data-capture-view></w3m-data-capture-view>`;\n case 'DataCaptureOtpConfirm':\n return html `<w3m-data-capture-otp-confirm-view></w3m-data-capture-otp-confirm-view>`;\n case 'Downloads':\n return html `<w3m-downloads-view></w3m-downloads-view>`;\n case 'EmailLogin':\n return html `<w3m-email-login-view></w3m-email-login-view>`;\n case 'EmailVerifyOtp':\n return html `<w3m-email-verify-otp-view></w3m-email-verify-otp-view>`;\n case 'EmailVerifyDevice':\n return html `<w3m-email-verify-device-view></w3m-email-verify-device-view>`;\n case 'GetWallet':\n return html `<w3m-get-wallet-view></w3m-get-wallet-view>`;\n case 'Networks':\n return html `<w3m-networks-view></w3m-networks-view>`;\n case 'SwitchNetwork':\n return html `<w3m-network-switch-view></w3m-network-switch-view>`;\n case 'ProfileWallets':\n return html `<w3m-profile-wallets-view></w3m-profile-wallets-view>`;\n case 'Transactions':\n return html `<w3m-transactions-view></w3m-transactions-view>`;\n case 'OnRampProviders':\n return html `<w3m-onramp-providers-view></w3m-onramp-providers-view>`;\n case 'OnRampTokenSelect':\n return html `<w3m-onramp-token-select-view></w3m-onramp-token-select-view>`;\n case 'OnRampFiatSelect':\n return html `<w3m-onramp-fiat-select-view></w3m-onramp-fiat-select-view>`;\n case 'UpgradeEmailWallet':\n return html `<w3m-upgrade-wallet-view></w3m-upgrade-wallet-view>`;\n case 'UpdateEmailWallet':\n return html `<w3m-update-email-wallet-view></w3m-update-email-wallet-view>`;\n case 'UpdateEmailPrimaryOtp':\n return html `<w3m-update-email-primary-otp-view></w3m-update-email-primary-otp-view>`;\n case 'UpdateEmailSecondaryOtp':\n return html `<w3m-update-email-secondary-otp-view></w3m-update-email-secondary-otp-view>`;\n case 'UnsupportedChain':\n return html `<w3m-unsupported-chain-view></w3m-unsupported-chain-view>`;\n case 'Swap':\n return html `<w3m-swap-view></w3m-swap-view>`;\n case 'SwapSelectToken':\n return html `<w3m-swap-select-token-view></w3m-swap-select-token-view>`;\n case 'SwapPreview':\n return html `<w3m-swap-preview-view></w3m-swap-preview-view>`;\n case 'WalletSend':\n return html `<w3m-wallet-send-view></w3m-wallet-send-view>`;\n case 'WalletSendSelectToken':\n return html `<w3m-wallet-send-select-token-view></w3m-wallet-send-select-token-view>`;\n case 'WalletSendPreview':\n return html `<w3m-wallet-send-preview-view></w3m-wallet-send-preview-view>`;\n case 'WalletSendConfirmed':\n return html `<w3m-send-confirmed-view></w3m-send-confirmed-view>`;\n case 'WhatIsABuy':\n return html `<w3m-what-is-a-buy-view></w3m-what-is-a-buy-view>`;\n case 'WalletReceive':\n return html `<w3m-wallet-receive-view></w3m-wallet-receive-view>`;\n case 'WalletCompatibleNetworks':\n return html `<w3m-wallet-compatible-networks-view></w3m-wallet-compatible-networks-view>`;\n case 'WhatIsAWallet':\n return html `<w3m-what-is-a-wallet-view></w3m-what-is-a-wallet-view>`;\n case 'ConnectingMultiChain':\n return html `<w3m-connecting-multi-chain-view></w3m-connecting-multi-chain-view>`;\n case 'WhatIsANetwork':\n return html `<w3m-what-is-a-network-view></w3m-what-is-a-network-view>`;\n case 'ConnectingFarcaster':\n return html `<w3m-connecting-farcaster-view></w3m-connecting-farcaster-view>`;\n case 'SwitchActiveChain':\n return html `<w3m-switch-active-chain-view></w3m-switch-active-chain-view>`;\n case 'RegisterAccountName':\n return html `<w3m-register-account-name-view></w3m-register-account-name-view>`;\n case 'RegisterAccountNameSuccess':\n return html `<w3m-register-account-name-success-view></w3m-register-account-name-success-view>`;\n case 'SmartSessionCreated':\n return html `<w3m-smart-session-created-view></w3m-smart-session-created-view>`;\n case 'SmartSessionList':\n return html `<w3m-smart-session-list-view></w3m-smart-session-list-view>`;\n case 'SIWXSignMessage':\n return html `<w3m-siwx-sign-message-view></w3m-siwx-sign-message-view>`;\n case 'Pay':\n return html `<w3m-pay-view></w3m-pay-view>`;\n case 'PayLoading':\n return html `<w3m-pay-loading-view></w3m-pay-loading-view>`;\n case 'PayQuote':\n return html `<w3m-pay-quote-view></w3m-pay-quote-view>`;\n case 'FundWallet':\n return html `<w3m-fund-wallet-view></w3m-fund-wallet-view>`;\n case 'PayWithExchange':\n return html `<w3m-deposit-from-exchange-view></w3m-deposit-from-exchange-view>`;\n case 'PayWithExchangeSelectAsset':\n return html `<w3m-deposit-from-exchange-select-asset-view></w3m-deposit-from-exchange-select-asset-view>`;\n case 'UsageExceeded':\n return html `<w3m-usage-exceeded-view></w3m-usage-exceeded-view>`;\n case 'SmartAccountSettings':\n return html `<w3m-smart-account-settings-view></w3m-smart-account-settings-view>`;\n default:\n return html `<w3m-connect-view></w3m-connect-view>`;\n }\n }\n};\nW3mRouter.styles = [styles];\n__decorate([\n state()\n], W3mRouter.prototype, \"viewState\", void 0);\n__decorate([\n state()\n], W3mRouter.prototype, \"history\", void 0);\nW3mRouter = __decorate([\n customElement('w3m-router')\n], W3mRouter);\nexport { W3mRouter };\n//# sourceMappingURL=index.js.map","import { css } from '@reown/appkit-ui';\nexport default css `\n :host {\n z-index: ${({ tokens }) => tokens.core.zIndex};\n display: block;\n backface-visibility: hidden;\n will-change: opacity;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n opacity: 0;\n background-color: ${({ tokens }) => tokens.theme.overlay};\n backdrop-filter: blur(0px);\n transition:\n opacity ${({ durations }) => durations['lg']} ${({ easings }) => easings['ease-out-power-2']},\n backdrop-filter ${({ durations }) => durations['lg']}\n ${({ easings }) => easings['ease-out-power-2']};\n will-change: opacity;\n }\n\n :host(.open) {\n opacity: 1;\n backdrop-filter: blur(8px);\n }\n\n :host(.appkit-modal) {\n position: relative;\n pointer-events: unset;\n background: none;\n width: 100%;\n opacity: 1;\n }\n\n wui-card {\n max-width: var(--apkt-modal-width);\n width: 100%;\n position: relative;\n outline: none;\n transform: translateY(4px);\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.05);\n transition:\n transform ${({ durations }) => durations['lg']}\n ${({ easings }) => easings['ease-out-power-2']},\n border-radius ${({ durations }) => durations['lg']}\n ${({ easings }) => easings['ease-out-power-1']},\n background-color ${({ durations }) => durations['lg']}\n ${({ easings }) => easings['ease-out-power-1']},\n box-shadow ${({ durations }) => durations['lg']}\n ${({ easings }) => easings['ease-out-power-1']};\n will-change: border-radius, background-color, transform, box-shadow;\n background-color: ${({ tokens }) => tokens.theme.backgroundPrimary};\n padding: var(--local-modal-padding);\n box-sizing: border-box;\n }\n\n :host(.open) wui-card {\n transform: translateY(0px);\n }\n\n wui-card::before {\n z-index: 1;\n pointer-events: none;\n content: '';\n position: absolute;\n inset: 0;\n border-radius: clamp(0px, var(--apkt-borderRadius-8), 44px);\n transition: box-shadow ${({ durations }) => durations['lg']}\n ${({ easings }) => easings['ease-out-power-2']};\n transition-delay: ${({ durations }) => durations['md']};\n will-change: box-shadow;\n }\n\n :host([data-mobile-fullscreen='true']) wui-card::before {\n border-radius: 0px;\n }\n\n :host([data-border='true']) wui-card::before {\n box-shadow: inset 0px 0px 0px 4px ${({ tokens }) => tokens.theme.foregroundSecondary};\n }\n\n :host([data-border='false']) wui-card::before {\n box-shadow: inset 0px 0px 0px 1px ${({ tokens }) => tokens.theme.borderPrimaryDark};\n }\n\n :host([data-border='true']) wui-card {\n animation:\n fade-in ${({ durations }) => durations['lg']} ${({ easings }) => easings['ease-out-power-2']},\n card-background-border var(--apkt-duration-dynamic)\n ${({ easings }) => easings['ease-out-power-2']};\n animation-fill-mode: backwards, both;\n animation-delay: var(--apkt-duration-dynamic);\n }\n\n :host([data-border='false']) wui-card {\n animation:\n fade-in ${({ durations }) => durations['lg']} ${({ easings }) => easings['ease-out-power-2']},\n card-background-default var(--apkt-duration-dynamic)\n ${({ easings }) => easings['ease-out-power-2']};\n animation-fill-mode: backwards, both;\n animation-delay: 0s;\n }\n\n :host(.appkit-modal) wui-card {\n max-width: var(--apkt-modal-width);\n }\n\n wui-card[shake='true'] {\n animation:\n fade-in ${({ durations }) => durations['lg']} ${({ easings }) => easings['ease-out-power-2']},\n w3m-shake ${({ durations }) => durations['xl']}\n ${({ easings }) => easings['ease-out-power-2']};\n }\n\n wui-flex {\n overflow-x: hidden;\n overflow-y: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n }\n\n @media (max-height: 700px) and (min-width: 431px) {\n wui-flex {\n align-items: flex-start;\n }\n\n wui-card {\n margin: var(--apkt-spacing-6) 0px;\n }\n }\n\n @media (max-width: 430px) {\n :host([data-mobile-fullscreen='true']) {\n height: 100dvh;\n }\n :host([data-mobile-fullscreen='true']) wui-flex {\n align-items: stretch;\n }\n :host([data-mobile-fullscreen='true']) wui-card {\n max-width: 100%;\n height: 100%;\n border-radius: 0;\n border: none;\n }\n :host(:not([data-mobile-fullscreen='true'])) wui-flex {\n align-items: flex-end;\n }\n\n :host(:not([data-mobile-fullscreen='true'])) wui-card {\n max-width: 100%;\n border-bottom: none;\n }\n\n :host(:not([data-mobile-fullscreen='true'])) wui-card[data-embedded='true'] {\n border-bottom-left-radius: clamp(0px, var(--apkt-borderRadius-8), 44px);\n border-bottom-right-radius: clamp(0px, var(--apkt-borderRadius-8), 44px);\n }\n\n :host(:not([data-mobile-fullscreen='true'])) wui-card:not([data-embedded='true']) {\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n }\n\n wui-card[shake='true'] {\n animation: w3m-shake 0.5s ${({ easings }) => easings['ease-out-power-2']};\n }\n }\n\n @keyframes fade-in {\n 0% {\n transform: scale(0.99) translateY(4px);\n }\n 100% {\n transform: scale(1) translateY(0);\n }\n }\n\n @keyframes w3m-shake {\n 0% {\n transform: scale(1) rotate(0deg);\n }\n 20% {\n transform: scale(1) rotate(-1deg);\n }\n 40% {\n transform: scale(1) rotate(1.5deg);\n }\n 60% {\n transform: scale(1) rotate(-1.5deg);\n }\n 80% {\n transform: scale(1) rotate(1deg);\n }\n 100% {\n transform: scale(1) rotate(0deg);\n }\n }\n\n @keyframes card-background-border {\n from {\n background-color: ${({ tokens }) => tokens.theme.backgroundPrimary};\n }\n to {\n background-color: ${({ tokens }) => tokens.theme.foregroundSecondary};\n }\n }\n\n @keyframes card-background-default {\n from {\n background-color: ${({ tokens }) => tokens.theme.foregroundSecondary};\n }\n to {\n background-color: ${({ tokens }) => tokens.theme.backgroundPrimary};\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport {} from '@reown/appkit-common';\nimport { ApiController, ChainController, ConnectorController, ModalController, ModalUtil, OptionsController, RouterController, SIWXUtil, SnackController, SwapController, ThemeController } from '@reown/appkit-controllers';\nimport { UiHelperUtil, customElement, initializeTheming, vars } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-card';\nimport '@reown/appkit-ui/wui-flex';\nimport '../../partials/w3m-alertbar/index.js';\nimport '../../partials/w3m-header/index.js';\nimport '../../partials/w3m-snackbar/index.js';\nimport '../../partials/w3m-tooltip-trigger/index.js';\nimport '../../partials/w3m-tooltip/index.js';\nimport { HelpersUtil } from '../../utils/HelpersUtil.js';\nimport '../w3m-footer/index.js';\nimport '../w3m-router/index.js';\nimport styles from './styles.js';\nconst SCROLL_LOCK = 'scroll-lock';\nconst PADDING_OVERRIDES = {\n PayWithExchange: '0',\n PayWithExchangeSelectAsset: '0',\n Pay: '0',\n PayQuote: '0',\n PayLoading: '0'\n};\nexport class W3mModalBase extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.abortController = undefined;\n this.hasPrefetched = false;\n this.enableEmbedded = OptionsController.state.enableEmbedded;\n this.open = ModalController.state.open;\n this.caipAddress = ChainController.state.activeCaipAddress;\n this.caipNetwork = ChainController.state.activeCaipNetwork;\n this.shake = ModalController.state.shake;\n this.filterByNamespace = ConnectorController.state.filterByNamespace;\n this.padding = vars.spacing[1];\n this.mobileFullScreen = OptionsController.state.enableMobileFullScreen;\n this.initializeTheming();\n ApiController.prefetchAnalyticsConfig();\n this.unsubscribe.push(...[\n ModalController.subscribeKey('open', val => (val ? this.onOpen() : this.onClose())),\n ModalController.subscribeKey('shake', val => (this.shake = val)),\n ChainController.subscribeKey('activeCaipNetwork', val => this.onNewNetwork(val)),\n ChainController.subscribeKey('activeCaipAddress', val => this.onNewAddress(val)),\n OptionsController.subscribeKey('enableEmbedded', val => (this.enableEmbedded = val)),\n ConnectorController.subscribeKey('filterByNamespace', val => {\n if (this.filterByNamespace !== val && !ChainController.getAccountData(val)?.caipAddress) {\n ApiController.fetchRecommendedWallets();\n this.filterByNamespace = val;\n }\n }),\n RouterController.subscribeKey('view', () => {\n this.dataset['border'] = HelpersUtil.hasFooter() ? 'true' : 'false';\n this.padding = PADDING_OVERRIDES[RouterController.state.view] ?? vars.spacing[1];\n })\n ]);\n }\n firstUpdated() {\n this.dataset['border'] = HelpersUtil.hasFooter() ? 'true' : 'false';\n if (this.mobileFullScreen) {\n this.setAttribute('data-mobile-fullscreen', 'true');\n }\n if (this.caipAddress) {\n if (this.enableEmbedded) {\n ModalController.close();\n this.prefetch();\n return;\n }\n this.onNewAddress(this.caipAddress);\n }\n if (this.open) {\n this.onOpen();\n }\n if (this.enableEmbedded) {\n this.prefetch();\n }\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n this.onRemoveKeyboardListener();\n }\n render() {\n this.style.setProperty('--local-modal-padding', this.padding);\n if (this.enableEmbedded) {\n return html `${this.contentTemplate()}\n <w3m-tooltip></w3m-tooltip> `;\n }\n return this.open\n ? html `\n <wui-flex @click=${this.onOverlayClick.bind(this)} data-testid=\"w3m-modal-overlay\">\n ${this.contentTemplate()}\n </wui-flex>\n <w3m-tooltip></w3m-tooltip>\n `\n : null;\n }\n contentTemplate() {\n return html ` <wui-card\n shake=\"${this.shake}\"\n data-embedded=\"${ifDefined(this.enableEmbedded)}\"\n role=\"alertdialog\"\n aria-modal=\"true\"\n tabindex=\"0\"\n data-testid=\"w3m-modal-card\"\n >\n <w3m-header></w3m-header>\n <w3m-router></w3m-router>\n <w3m-footer></w3m-footer>\n <w3m-snackbar></w3m-snackbar>\n <w3m-alertbar></w3m-alertbar>\n </wui-card>`;\n }\n async onOverlayClick(event) {\n if (event.target === event.currentTarget) {\n if (this.mobileFullScreen) {\n return;\n }\n await this.handleClose();\n }\n }\n async handleClose() {\n await ModalUtil.safeClose();\n }\n initializeTheming() {\n const { themeVariables, themeMode } = ThemeController.state;\n const defaultThemeMode = UiHelperUtil.getColorTheme(themeMode);\n initializeTheming(themeVariables, defaultThemeMode);\n }\n onClose() {\n this.open = false;\n this.classList.remove('open');\n this.onScrollUnlock();\n SnackController.hide();\n this.onRemoveKeyboardListener();\n }\n onOpen() {\n this.open = true;\n this.classList.add('open');\n this.onScrollLock();\n this.onAddKeyboardListener();\n }\n onScrollLock() {\n const styleTag = document.createElement('style');\n styleTag.dataset['w3m'] = SCROLL_LOCK;\n styleTag.textContent = `\n body {\n touch-action: none;\n overflow: hidden;\n overscroll-behavior: contain;\n }\n w3m-modal {\n pointer-events: auto;\n }\n `;\n document.head.appendChild(styleTag);\n }\n onScrollUnlock() {\n const styleTag = document.head.querySelector(`style[data-w3m=\"${SCROLL_LOCK}\"]`);\n if (styleTag) {\n styleTag.remove();\n }\n }\n onAddKeyboardListener() {\n this.abortController = new AbortController();\n const card = this.shadowRoot?.querySelector('wui-card');\n card?.focus();\n window.addEventListener('keydown', event => {\n if (event.key === 'Escape') {\n this.handleClose();\n }\n else if (event.key === 'Tab') {\n const { tagName } = event.target;\n if (tagName && !tagName.includes('W3M-') && !tagName.includes('WUI-')) {\n card?.focus();\n }\n }\n }, this.abortController);\n }\n onRemoveKeyboardListener() {\n this.abortController?.abort();\n this.abortController = undefined;\n }\n async onNewAddress(caipAddress) {\n const isSwitchingNamespace = ChainController.state.isSwitchingNamespace;\n const isInProfileView = RouterController.state.view === 'ProfileWallets';\n const shouldClose = !caipAddress && !isSwitchingNamespace && !isInProfileView;\n if (shouldClose) {\n ModalController.close();\n }\n await SIWXUtil.initializeIfEnabled(caipAddress);\n this.caipAddress = caipAddress;\n ChainController.setIsSwitchingNamespace(false);\n }\n onNewNetwork(nextCaipNetwork) {\n const prevCaipNetwork = this.caipNetwork;\n const prevCaipNetworkId = prevCaipNetwork?.caipNetworkId?.toString();\n const nextNetworkId = nextCaipNetwork?.caipNetworkId?.toString();\n const didNetworkChange = prevCaipNetworkId !== nextNetworkId;\n const isUnsupportedNetworkScreen = RouterController.state.view === 'UnsupportedChain';\n const isModalOpen = ModalController.state.open;\n let shouldGoBack = false;\n if (this.enableEmbedded && RouterController.state.view === 'SwitchNetwork') {\n shouldGoBack = true;\n }\n if (didNetworkChange) {\n SwapController.resetState();\n }\n if (isModalOpen && isUnsupportedNetworkScreen) {\n shouldGoBack = true;\n }\n if (shouldGoBack && RouterController.state.view !== 'SIWXSignMessage') {\n RouterController.goBack();\n }\n this.caipNetwork = nextCaipNetwork;\n }\n prefetch() {\n if (!this.hasPrefetched) {\n ApiController.prefetch();\n ApiController.fetchWalletsByPage({ page: 1 });\n this.hasPrefetched = true;\n }\n }\n}\nW3mModalBase.styles = styles;\n__decorate([\n property({ type: Boolean })\n], W3mModalBase.prototype, \"enableEmbedded\", void 0);\n__decorate([\n state()\n], W3mModalBase.prototype, \"open\", void 0);\n__decorate([\n state()\n], W3mModalBase.prototype, \"caipAddress\", void 0);\n__decorate([\n state()\n], W3mModalBase.prototype, \"caipNetwork\", void 0);\n__decorate([\n state()\n], W3mModalBase.prototype, \"shake\", void 0);\n__decorate([\n state()\n], W3mModalBase.prototype, \"filterByNamespace\", void 0);\n__decorate([\n state()\n], W3mModalBase.prototype, \"padding\", void 0);\n__decorate([\n state()\n], W3mModalBase.prototype, \"mobileFullScreen\", void 0);\nlet W3mModal = class W3mModal extends W3mModalBase {\n};\nW3mModal = __decorate([\n customElement('w3m-modal')\n], W3mModal);\nexport { W3mModal };\nlet AppKitModal = class AppKitModal extends W3mModalBase {\n};\nAppKitModal = __decorate([\n customElement('appkit-modal')\n], AppKitModal);\nexport { AppKitModal };\n//# sourceMappingURL=index.js.map","import { css } from '@reown/appkit-ui';\nexport default css `\n .icon-box {\n width: 64px;\n height: 64px;\n border-radius: ${({ borderRadius }) => borderRadius[5]};\n background-color: ${({ colors }) => colors.semanticError010};\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { RouterController } from '@reown/appkit-controllers';\nimport { customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-button';\nimport '@reown/appkit-ui/wui-flex';\nimport '@reown/appkit-ui/wui-icon';\nimport '@reown/appkit-ui/wui-text';\nimport styles from './styles.js';\nlet W3mUsageExceededView = class W3mUsageExceededView extends LitElement {\n constructor() {\n super();\n }\n render() {\n return html `\n <wui-flex\n flexDirection=\"column\"\n alignItems=\"center\"\n gap=\"4\"\n .padding=\"${['1', '3', '4', '3']}\"\n >\n <wui-flex justifyContent=\"center\" alignItems=\"center\" class=\"icon-box\">\n <wui-icon size=\"xxl\" color=\"error\" name=\"warningCircle\"></wui-icon>\n </wui-flex>\n\n <wui-text variant=\"lg-medium\" color=\"primary\" align=\"center\">\n The app isn't responding as expected\n </wui-text>\n <wui-text variant=\"md-regular\" color=\"secondary\" align=\"center\">\n Try again or reach out to the app team for help.\n </wui-text>\n\n <wui-button\n variant=\"neutral-secondary\"\n size=\"md\"\n @click=${this.onTryAgainClick.bind(this)}\n data-testid=\"w3m-usage-exceeded-button\"\n >\n <wui-icon color=\"inherit\" slot=\"iconLeft\" name=\"refresh\"></wui-icon>\n Try Again\n </wui-button>\n </wui-flex>\n `;\n }\n onTryAgainClick() {\n RouterController.goBack();\n }\n};\nW3mUsageExceededView.styles = styles;\nW3mUsageExceededView = __decorate([\n customElement('w3m-usage-exceeded-view')\n], W3mUsageExceededView);\nexport { W3mUsageExceededView };\n//# sourceMappingURL=index.js.map","import { css } from '@reown/appkit-ui';\nexport default css `\n :host {\n width: 100%;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { AdapterController, EventsController, RouterController } from '@reown/appkit-controllers';\nimport { customElement } from '@reown/appkit-ui';\nimport '@reown/appkit-ui/wui-list-wallet';\nimport styles from './styles.js';\nlet W3mListWallet = class W3mListWallet extends LitElement {\n constructor() {\n super(...arguments);\n this.hasImpressionSent = false;\n this.walletImages = [];\n this.imageSrc = '';\n this.name = '';\n this.size = 'md';\n this.tabIdx = undefined;\n this.disabled = false;\n this.showAllWallets = false;\n this.loading = false;\n this.loadingSpinnerColor = 'accent-100';\n this.rdnsId = '';\n this.displayIndex = undefined;\n this.walletRank = undefined;\n this.namespaces = [];\n }\n connectedCallback() {\n super.connectedCallback();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.cleanupIntersectionObserver();\n }\n updated(changedProperties) {\n super.updated(changedProperties);\n if (changedProperties.has('name') ||\n changedProperties.has('imageSrc') ||\n changedProperties.has('walletRank')) {\n this.hasImpressionSent = false;\n }\n const hasWalletRankChanged = changedProperties.has('walletRank') && this.walletRank;\n if (hasWalletRankChanged && !this.intersectionObserver) {\n this.setupIntersectionObserver();\n }\n }\n setupIntersectionObserver() {\n this.intersectionObserver = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting && !this.loading && !this.hasImpressionSent) {\n this.sendImpressionEvent();\n }\n });\n }, { threshold: 0.1 });\n this.intersectionObserver.observe(this);\n }\n cleanupIntersectionObserver() {\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect();\n this.intersectionObserver = undefined;\n }\n }\n sendImpressionEvent() {\n if (!this.name || this.hasImpressionSent || !this.walletRank) {\n return;\n }\n this.hasImpressionSent = true;\n if (this.rdnsId || this.name) {\n EventsController.sendWalletImpressionEvent({\n name: this.name,\n walletRank: this.walletRank,\n rdnsId: this.rdnsId,\n view: RouterController.state.view,\n displayIndex: this.displayIndex\n });\n }\n }\n handleGetWalletNamespaces() {\n const isMultiChain = Object.keys(AdapterController.state.adapters).length > 1;\n if (isMultiChain) {\n return this.namespaces;\n }\n return [];\n }\n render() {\n return html `\n <wui-list-wallet\n .walletImages=${this.walletImages}\n imageSrc=${ifDefined(this.imageSrc)}\n name=${this.name}\n size=${ifDefined(this.size)}\n tagLabel=${ifDefined(this.tagLabel)}\n .tagVariant=${this.tagVariant}\n .walletIcon=${this.walletIcon}\n .tabIdx=${this.tabIdx}\n .disabled=${this.disabled}\n .showAllWallets=${this.showAllWallets}\n .loading=${this.loading}\n loadingSpinnerColor=${this.loadingSpinnerColor}\n .namespaces=${this.handleGetWalletNamespaces()}\n ></wui-list-wallet>\n `;\n }\n};\nW3mListWallet.styles = styles;\n__decorate([\n property({ type: Array })\n], W3mListWallet.prototype, \"walletImages\", void 0);\n__decorate([\n property()\n], W3mListWallet.prototype, \"imageSrc\", void 0);\n__decorate([\n property()\n], W3mListWallet.prototype, \"name\", void 0);\n__decorate([\n property()\n], W3mListWallet.prototype, \"size\", void 0);\n__decorate([\n property()\n], W3mListWallet.prototype, \"tagLabel\", void 0);\n__decorate([\n property()\n], W3mListWallet.prototype, \"tagVariant\", void 0);\n__decorate([\n property()\n], W3mListWallet.prototype, \"walletIcon\", void 0);\n__decorate([\n property()\n], W3mListWallet.prototype, \"tabIdx\", void 0);\n__decorate([\n property({ type: Boolean })\n], W3mListWallet.prototype, \"disabled\", void 0);\n__decorate([\n property({ type: Boolean })\n], W3mListWallet.prototype, \"showAllWallets\", void 0);\n__decorate([\n property({ type: Boolean })\n], W3mListWallet.prototype, \"loading\", void 0);\n__decorate([\n property({ type: String })\n], W3mListWallet.prototype, \"loadingSpinnerColor\", void 0);\n__decorate([\n property()\n], W3mListWallet.prototype, \"rdnsId\", void 0);\n__decorate([\n property()\n], W3mListWallet.prototype, \"displayIndex\", void 0);\n__decorate([\n property()\n], W3mListWallet.prototype, \"walletRank\", void 0);\n__decorate([\n property({ type: Array })\n], W3mListWallet.prototype, \"namespaces\", void 0);\nW3mListWallet = __decorate([\n customElement('w3m-list-wallet')\n], W3mListWallet);\nexport { W3mListWallet };\n//# sourceMappingURL=index.js.map","import { css } from '@reown/appkit-ui';\nexport default css `\n :host {\n --local-duration-height: 0s;\n --local-duration: ${({ durations }) => durations['lg']};\n --local-transition: ${({ easings }) => easings['ease-out-power-2']};\n }\n\n .container {\n display: block;\n overflow: hidden;\n overflow: hidden;\n position: relative;\n height: var(--local-container-height);\n transition: height var(--local-duration-height) var(--local-transition);\n will-change: height, padding-bottom;\n }\n\n .container[data-mobile-fullscreen='true'] {\n overflow: scroll;\n }\n\n .page {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: auto;\n width: inherit;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n background-color: ${({ tokens }) => tokens.theme.backgroundPrimary};\n border-bottom-left-radius: var(--local-border-bottom-radius);\n border-bottom-right-radius: var(--local-border-bottom-radius);\n transition: border-bottom-left-radius var(--local-duration) var(--local-transition);\n }\n\n .page[data-mobile-fullscreen='true'] {\n height: 100%;\n }\n\n .page-content {\n display: flex;\n flex-direction: column;\n min-height: 100%;\n }\n\n .footer {\n height: var(--apkt-footer-height);\n }\n\n div.page[view-direction^='prev-'] .page-content {\n animation:\n slide-left-out var(--local-duration) forwards var(--local-transition),\n slide-left-in var(--local-duration) forwards var(--local-transition);\n animation-delay: 0ms, var(--local-duration, ${({ durations }) => durations['lg']});\n }\n\n div.page[view-direction^='next-'] .page-content {\n animation:\n slide-right-out var(--local-duration) forwards var(--local-transition),\n slide-right-in var(--local-duration) forwards var(--local-transition);\n animation-delay: 0ms, var(--local-duration, ${({ durations }) => durations['lg']});\n }\n\n @keyframes slide-left-out {\n from {\n transform: translateX(0px) scale(1);\n opacity: 1;\n filter: blur(0px);\n }\n to {\n transform: translateX(8px) scale(0.99);\n opacity: 0;\n filter: blur(4px);\n }\n }\n\n @keyframes slide-left-in {\n from {\n transform: translateX(-8px) scale(0.99);\n opacity: 0;\n filter: blur(4px);\n }\n to {\n transform: translateX(0) translateY(0) scale(1);\n opacity: 1;\n filter: blur(0px);\n }\n }\n\n @keyframes slide-right-out {\n from {\n transform: translateX(0px) scale(1);\n opacity: 1;\n filter: blur(0px);\n }\n to {\n transform: translateX(-8px) scale(0.99);\n opacity: 0;\n filter: blur(4px);\n }\n }\n\n @keyframes slide-right-in {\n from {\n transform: translateX(8px) scale(0.99);\n opacity: 0;\n filter: blur(4px);\n }\n to {\n transform: translateX(0) translateY(0) scale(1);\n opacity: 1;\n filter: blur(0px);\n }\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { OptionsController } from '@reown/appkit-controllers';\nimport { UiHelperUtil, customElement } from '@reown/appkit-ui';\nimport styles from './styles.js';\nconst HEADER_HEIGHT = 60;\nlet W3mRouterContainer = class W3mRouterContainer extends LitElement {\n constructor() {\n super(...arguments);\n this.resizeObserver = undefined;\n this.transitionDuration = '0.15s';\n this.transitionFunction = '';\n this.history = '';\n this.view = '';\n this.setView = undefined;\n this.viewDirection = '';\n this.historyState = '';\n this.previousHeight = '0px';\n this.mobileFullScreen = OptionsController.state.enableMobileFullScreen;\n this.onViewportResize = () => {\n this.updateContainerHeight();\n };\n }\n updated(changedProps) {\n if (changedProps.has('history')) {\n const newHistory = this.history;\n if (this.historyState !== '' && this.historyState !== newHistory) {\n this.onViewChange(newHistory);\n }\n }\n if (changedProps.has('transitionDuration')) {\n this.style.setProperty('--local-duration', this.transitionDuration);\n }\n if (changedProps.has('transitionFunction')) {\n this.style.setProperty('--local-transition', this.transitionFunction);\n }\n }\n firstUpdated() {\n if (this.transitionFunction) {\n this.style.setProperty('--local-transition', this.transitionFunction);\n }\n this.style.setProperty('--local-duration', this.transitionDuration);\n this.historyState = this.history;\n this.resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n if (entry.target === this.getWrapper()) {\n let newHeight = entry.contentRect.height;\n const footerHeight = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--apkt-footer-height') ||\n '0');\n if (this.mobileFullScreen) {\n const viewportHeight = window.visualViewport?.height || window.innerHeight;\n const headerHeight = this.getHeaderHeight();\n newHeight = viewportHeight - headerHeight - footerHeight;\n this.style.setProperty('--local-border-bottom-radius', '0px');\n }\n else {\n const totalHeight = newHeight + footerHeight;\n newHeight = totalHeight;\n this.style.setProperty('--local-border-bottom-radius', footerHeight ? 'var(--apkt-borderRadius-5)' : '0px');\n }\n this.style.setProperty('--local-container-height', `${newHeight}px`);\n if (this.previousHeight !== '0px') {\n this.style.setProperty('--local-duration-height', this.transitionDuration);\n }\n this.previousHeight = `${newHeight}px`;\n }\n }\n });\n this.resizeObserver.observe(this.getWrapper());\n this.updateContainerHeight();\n window.addEventListener('resize', this.onViewportResize);\n window.visualViewport?.addEventListener('resize', this.onViewportResize);\n }\n disconnectedCallback() {\n const wrapper = this.getWrapper();\n if (wrapper && this.resizeObserver) {\n this.resizeObserver.unobserve(wrapper);\n }\n window.removeEventListener('resize', this.onViewportResize);\n window.visualViewport?.removeEventListener('resize', this.onViewportResize);\n }\n render() {\n return html `\n <div class=\"container\" data-mobile-fullscreen=\"${ifDefined(this.mobileFullScreen)}\">\n <div\n class=\"page\"\n data-mobile-fullscreen=\"${ifDefined(this.mobileFullScreen)}\"\n view-direction=\"${this.viewDirection}\"\n >\n <div class=\"page-content\">\n <slot></slot>\n </div>\n </div>\n </div>\n `;\n }\n onViewChange(history) {\n const historyArr = history.split(',').filter(Boolean);\n const prevArr = this.historyState.split(',').filter(Boolean);\n const prevLength = prevArr.length;\n const newLength = historyArr.length;\n const newView = historyArr[historyArr.length - 1] || '';\n const duration = UiHelperUtil.cssDurationToNumber(this.transitionDuration);\n let direction = '';\n if (newLength > prevLength) {\n direction = 'next';\n }\n else if (newLength < prevLength) {\n direction = 'prev';\n }\n else if (newLength === prevLength && historyArr[newLength - 1] !== prevArr[prevLength - 1]) {\n direction = 'next';\n }\n this.viewDirection = `${direction}-${newView}`;\n setTimeout(() => {\n this.historyState = history;\n this.setView?.(newView);\n }, duration);\n setTimeout(() => {\n this.viewDirection = '';\n }, duration * 2);\n }\n getWrapper() {\n return this.shadowRoot?.querySelector('div.page');\n }\n updateContainerHeight() {\n const wrapper = this.getWrapper();\n if (!wrapper) {\n return;\n }\n const footerHeight = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--apkt-footer-height') || '0');\n let newHeight = 0;\n if (this.mobileFullScreen) {\n const viewportHeight = window.visualViewport?.height || window.innerHeight;\n const headerHeight = this.getHeaderHeight();\n newHeight = viewportHeight - headerHeight - footerHeight;\n this.style.setProperty('--local-border-bottom-radius', '0px');\n }\n else {\n newHeight = wrapper.getBoundingClientRect().height + footerHeight;\n this.style.setProperty('--local-border-bottom-radius', footerHeight ? 'var(--apkt-borderRadius-5)' : '0px');\n }\n this.style.setProperty('--local-container-height', `${newHeight}px`);\n if (this.previousHeight !== '0px') {\n this.style.setProperty('--local-duration-height', this.transitionDuration);\n }\n this.previousHeight = `${newHeight}px`;\n }\n getHeaderHeight() {\n return HEADER_HEIGHT;\n }\n};\nW3mRouterContainer.styles = [styles];\n__decorate([\n property({ type: String })\n], W3mRouterContainer.prototype, \"transitionDuration\", void 0);\n__decorate([\n property({ type: String })\n], W3mRouterContainer.prototype, \"transitionFunction\", void 0);\n__decorate([\n property({ type: String })\n], W3mRouterContainer.prototype, \"history\", void 0);\n__decorate([\n property({ type: String })\n], W3mRouterContainer.prototype, \"view\", void 0);\n__decorate([\n property({ attribute: false })\n], W3mRouterContainer.prototype, \"setView\", void 0);\n__decorate([\n state()\n], W3mRouterContainer.prototype, \"viewDirection\", void 0);\n__decorate([\n state()\n], W3mRouterContainer.prototype, \"historyState\", void 0);\n__decorate([\n state()\n], W3mRouterContainer.prototype, \"previousHeight\", void 0);\n__decorate([\n state()\n], W3mRouterContainer.prototype, \"mobileFullScreen\", void 0);\nW3mRouterContainer = __decorate([\n customElement('w3m-router-container')\n], W3mRouterContainer);\nexport { W3mRouterContainer };\n//# sourceMappingURL=index.js.map"],"names":["SwapCalculationUtil","gas","gasPrice","totalGasCostInWei","networkPrice","totalGasCostInEther","NumberUtil","sourceTokenAmount","sourceTokenPriceInUSD","toTokenPriceInUSD","toTokenAmount","inputValue","outputValue","slippage","slippageToleranceDecimal","feePercentage","networkBalanceInUSD","gasPriceInUSD","sourceTokenAddress","balance","sourceTokenBalance","_b","_a","token","INITIAL_GAS_LIMIT","TO_AMOUNT_DECIMALS","initialState","ConstantsUtil","state","proxy","controller","callback","sub","key","subKey","namespace","ChainController","caipAddress","address","CoreHelperUtil","networkAddress","getActiveNetworkTokenAddress","connectorId","ConnectorController","invalidToToken","invalidSourceToken","invalidSourceTokenAmount","CommonConstantsUtil","sourceToken","SwapController","amount","toToken","target","price","newSourceToken","newToToken","newSourceTokenAmount","error","networkToken","SnackController","RouterController","activeCaipNetworkId","tokens","SwapApiUtil","aTokenInfo","bTokenInfo","suggestedTokenObjects","symbol","t","allSuggestedTokenObjects","ct","existPrice","response","BlockchainApiController","fungibles","allTokens","p","priceAsFloat","forceUpdate","balances","BalanceUtil","swapBalances","caipNetwork","res","value","gasFee","gasLimit","haveSourceTokenAmount","amountDecimal","quoteResponse","quoteToAmount","_c","AlertController","fromCaipAddress","availableToSwap","hasAllowance","transaction","toTokenAddress","ConnectionController","isSourceTokenIsNetworkToken","data","fromAddress","isAuthConnector","err","EventsController","getPreferredAccountType","W3mFrameRpcConstants","snackbarPendingMessage","snackbarSuccessMessage","forceUpdateAddresses","transactionHash","_g","_h","_i","_j","_k","_l","toTokenDecimals","withErrorBoundary","message","triggerRect","variant","TooltipController","ModalUtil","ModalController","SIWXUtil","MathUtil","inputRange","outputRange","originalRangeMin","originalRangeMax","newRangeMin","newRangeMax","styles$v","css","borderRadius","__decorate","decorators","desc","c","r","d","i","WuiCard","LitElement","html","resetStyles","styles","customElement","styles$u","spacing","TYPE_ICON_NAME","WuiAlertBar","ifDefined","property","styles$t","presets","W3mAlertBar","val","unsubscribe","preset","isMounted","styles$s","WuiIconButton","elementStyles","styles$r","durations","easings","TEXT_VARIANT_BY_SIZE","ICON_SIZE_BY_SIZE","WuiSelect","textSize","iconSize","styles$q","WuiIconLink","iconColors","networkSvgLg","svg","networkSvgSm","styles$p","WuiNetworkImage","networkSvgMd","getSize","styles$o","WuiSeparator","AppKitPayErrorCodes","AppKitPayErrorMessages","AppKitPayError","code","details","API_URL","REOWN_TEST_EXCHANGE_ID","ensureCorrectAddress","chainNamespace","ParseUtil","PayController","processEvmNativePayment","paymentAsset","params","amountValue","decimals","amountBigInt","processEvmErc20Payment","tokenAddress","recipientAddress","ContractUtil","processSolanaPayment","ProviderController","txResponse","getDirectTransferQuote","recipient","originalAmount","destinationAmount","DIRECT_TRANSFER_REQUEST_ID","getTransferStep","quote","step","DIRECT_TRANSFER_DEPOSIT_TYPE","getTransactionsSteps","completedTransactionsCount","steps","DIRECT_TRANSFER_TRANSACTION_TYPE","stepsToShow","_","idx","api","FetchUtil","JsonRpcError","getApiUrl","projectId","OptionsController","getSdkProperties","sdkType","sdkVersion","sendRequest","method","url","st","sv","requestBody","json","getExchanges","getPayUrl","getBuyStatus","getTransfersQuote","originChainId","originChainNamespace","destinationChainId","destinationChainNamespace","originCurrency","getNativeTokenAddress","destinationCurrency","getQuote","isSameChain","HelpersUtil","isSameAsset","getQuoteStatus","getAssetsForExchange","exchangeId","SUPPORT_PAY_WITH_WALLET_CHAIN_NAMESPACES","CHAIN_ASSET_INFO_MAP","formatCaip19Asset","caipNetworkId","asset","chainId","chainInfo","assetNamespace","assetReference","isPayWithWalletSupported","networkId","formatBalanceToPaymentAsset","targetNetwork","net","formatPaymentAssetToBalance","formatAmount","num","isTestnetAsset","DEFAULT_PAGE","DEFAULT_PAYMENT_ID","options","config","exchange","requestId","isPaymentInProgress","headless","numericAmount","openParams","payUrl","toAddress","transactionStep","from","to","instructions","network","payUrlParams","sessionId","status","overideCaipNetwork","assets","allAssets","parsedAddress","image","AssetUtil","transferStep","caipDepositAddress","depositAmount","errMessage","errorData","selectedExchange","eventType","imageUrl","styles$n","W3mPayView","ids","accountState","name","exchangesToShow","connector","connectorImage","styles$m","DEFAULT_RINGS","DEFAULT_DURATION","DEFAULT_OPACITY","DEFAULT_SIZE","COLOR_BY_VARIANT","vars","WuiPulse","color","ringElements","index","total","style","STEPS","TERMINAL_STATES","styles$l","colors","STEP_COMPLETED_STATUSES","POLLING_INTERVAL_MS","W3mPayLoadingView","hasTransactionFailed","stepsWithStatus","hasTransactionSucceeded","timeEstimate","formatBigNumber","formattedAmount","exchangeName","UiHelperUtil","title","icon","classMap","styles$k","WuiWalletSwitch","imageOrIconContent","styles$j","W3mPayFeesSkeleton","styles$i","W3mPayFees","fee","isNetworkFee","feeAmount","styles$h","W3mPayOptionsEmpty","isUsingExchange","styles$g","W3mPayOptionsSkeleton","styles$f","SCROLL_THRESHOLD","W3mPayOptions","optionsEl","option","metadata","paymentCaipAddress","selectedPaymentCaipAddress","isSelected","bigAmount","hasEnoughBalance","styles$e","NAMESPACE_ICONS","NAMESPACE_LABELS","W3mPayQuoteView","newActiveConnectorIds","changedProperties","chainIcon","chainLabel","paymentAssets","classes","isLoading","isDisabled","allTransactionSteps","label","optionChainId","paymentAssetChainId","tokenBalances","oldAddress","newAddress","currentAmount","amountToTransfer","amountToSwap","popupWindow","styles$d","W3mPayHeader","styles$c","BETA_SCREENS","BACKGROUND_OVERRIDES","headings","connectorName","walletName","_d","networkName","_f","_e","connectors","isEmail","socialProvider","socialTitle","W3mHeader","AssetController","backgroundColor","isSmartSessionsEnabled","isBeta","view","isConnectHelp","isEmbeddedEnable","isApproveTransaction","isConnectingSIWEView","isAccountView","enableNetworkSwitch","shouldHideBack","requestedCaipNetworks","isMultiNetwork","isValidNetwork","id","history","direction","buttonEl","styles$b","WuiSnackbar","COLOR","ICON","styles$a","W3mSnackBar","styles$9","WuiTooltipTrigger","modalOpen","tooltipOpen","rect","modalContainer","containerRect","event","styles$8","W3mTooltip","newState","topValue","leftValue","tab","email","termsConditionsUrl","privacyPolicyUrl","legalCheckbox","styles$7","W3mLegalFooter","showOnlyBranding","styles$6","W3mOnRampProvidersFooter","styles$5","W3mFooter","entries","entry","newHeight","styles$4","W3mRouter","styles$3","SCROLL_LOCK","PADDING_OVERRIDES","W3mModalBase","ApiController","themeVariables","themeMode","ThemeController","defaultThemeMode","initializeTheming","styleTag","card","tagName","isSwitchingNamespace","isInProfileView","nextCaipNetwork","prevCaipNetwork","prevCaipNetworkId","nextNetworkId","didNetworkChange","isUnsupportedNetworkScreen","isModalOpen","shouldGoBack","W3mModal","AppKitModal","styles$2","W3mUsageExceededView","styles$1","W3mListWallet","AdapterController","HEADER_HEIGHT","W3mRouterContainer","changedProps","newHistory","footerHeight","viewportHeight","headerHeight","wrapper","historyArr","prevArr","prevLength","newLength","newView","duration"],"mappings":"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AA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX,KAAK;AACD,eAAOA;AAAAA,MACX;AACI,eAAOA;AAAAA,IACvB;AAAA,EAC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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79]}