@shapeshiftoss/swap-widget 0.0.2 → 0.2.0

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 (158) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +18 -11
  3. package/package.json +77 -28
  4. package/Dockerfile +0 -87
  5. package/dist/assets/PhArrowCircleDown-B305t-Sh.js +0 -14
  6. package/dist/assets/PhArrowClockwise-CJPxQhr_.js +0 -14
  7. package/dist/assets/PhArrowDown-C4hT9BVu.js +0 -14
  8. package/dist/assets/PhArrowLeft-Way4Cu-r.js +0 -14
  9. package/dist/assets/PhArrowRight-Cp5ZME0F.js +0 -14
  10. package/dist/assets/PhArrowSquareOut-NnrK69c5.js +0 -14
  11. package/dist/assets/PhArrowUp-Dph6j8rm.js +0 -14
  12. package/dist/assets/PhArrowUpRight-BpJjRRRh.js +0 -14
  13. package/dist/assets/PhArrowsClockwise-CFUT8X7R.js +0 -14
  14. package/dist/assets/PhArrowsDownUp-BjBI4ckC.js +0 -14
  15. package/dist/assets/PhArrowsLeftRight-CuLpbKRk.js +0 -14
  16. package/dist/assets/PhBank-Dchr4XQJ.js +0 -14
  17. package/dist/assets/PhBrowser-dUu2TrC1.js +0 -14
  18. package/dist/assets/PhCaretDown-78IuKU3V.js +0 -14
  19. package/dist/assets/PhCaretLeft-_aiyH7n1.js +0 -14
  20. package/dist/assets/PhCaretRight-8zJQEuDX.js +0 -14
  21. package/dist/assets/PhCaretUp-CiCxKWwN.js +0 -14
  22. package/dist/assets/PhCheck-CcADx8br.js +0 -14
  23. package/dist/assets/PhCircleHalf-BYzSzd2h.js +0 -14
  24. package/dist/assets/PhClock-UItiXeJq.js +0 -14
  25. package/dist/assets/PhCompass-CUy3uA7t.js +0 -14
  26. package/dist/assets/PhCopy-C-PDgSlZ.js +0 -14
  27. package/dist/assets/PhCreditCard-CWRaUT6F.js +0 -14
  28. package/dist/assets/PhCurrencyDollar-Cqla3AXT.js +0 -14
  29. package/dist/assets/PhDesktop-BBIPrYLl.js +0 -14
  30. package/dist/assets/PhDeviceMobile-BdsPaATg.js +0 -14
  31. package/dist/assets/PhDotsThree-BMXCQl-0.js +0 -14
  32. package/dist/assets/PhEnvelope-yUsis6yU.js +0 -14
  33. package/dist/assets/PhFunnelSimple-Ba7BbWTp.js +0 -14
  34. package/dist/assets/PhGlobe-DgLxBk5U.js +0 -14
  35. package/dist/assets/PhIdentificationCard-Czjmq9Z3.js +0 -14
  36. package/dist/assets/PhImage-BAJ_erz6.js +0 -14
  37. package/dist/assets/PhInfo-Cr4DhVUE.js +0 -14
  38. package/dist/assets/PhLightbulb-BX_7duTr.js +0 -14
  39. package/dist/assets/PhMagnifyingGlass-Mygfryvz.js +0 -14
  40. package/dist/assets/PhPaperPlaneRight-BeuCA660.js +0 -14
  41. package/dist/assets/PhPlus-BMjcHjsT.js +0 -14
  42. package/dist/assets/PhPower-CGffGmdb.js +0 -14
  43. package/dist/assets/PhPuzzlePiece-wm_GpVSi.js +0 -14
  44. package/dist/assets/PhQrCode-DRwRzXCH.js +0 -14
  45. package/dist/assets/PhQuestion-M09j2U0T.js +0 -14
  46. package/dist/assets/PhQuestionMark-BP9EMB6h.js +0 -14
  47. package/dist/assets/PhSealCheck-BfG80yKn.js +0 -14
  48. package/dist/assets/PhSignOut-C5YOWlPT.js +0 -14
  49. package/dist/assets/PhSpinner-BXooDYzU.js +0 -14
  50. package/dist/assets/PhTrash-Biq6rmmL.js +0 -14
  51. package/dist/assets/PhUser-CAgZSpGe.js +0 -14
  52. package/dist/assets/PhVault-l2PHF38a.js +0 -14
  53. package/dist/assets/PhWallet-w25D16It.js +0 -14
  54. package/dist/assets/PhWarning-DPEydIPw.js +0 -14
  55. package/dist/assets/PhWarningCircle-BqjT745H.js +0 -14
  56. package/dist/assets/PhX-s-SmVExa.js +0 -14
  57. package/dist/assets/SwapController-If0bFrNc.js +0 -1
  58. package/dist/assets/ccip-BBB7uCdL.js +0 -1
  59. package/dist/assets/ccip-CkkdfKKI.js +0 -1
  60. package/dist/assets/data-capture-D4gAy-Yc.js +0 -242
  61. package/dist/assets/email-B1AJehis.js +0 -90
  62. package/dist/assets/embedded-wallet-Q6DQopDk.js +0 -410
  63. package/dist/assets/features-B6JAPAFb.js +0 -5
  64. package/dist/assets/index-5jd8RPN9.js +0 -7428
  65. package/dist/assets/index-B4kNtSTk.js +0 -1080
  66. package/dist/assets/index-B753eAob.js +0 -1
  67. package/dist/assets/index-BZoLTv77.js +0 -3
  68. package/dist/assets/index-Bcw9UURX.js +0 -3
  69. package/dist/assets/index-BkrV-ahK.js +0 -2
  70. package/dist/assets/index-CRQzQ_up.js +0 -9
  71. package/dist/assets/index-CSW0Gt5y.js +0 -132
  72. package/dist/assets/index-CZ4jTIsk.js +0 -138
  73. package/dist/assets/index-Cwa8SB3h.js +0 -61
  74. package/dist/assets/index-DEwQgT4r.js +0 -78
  75. package/dist/assets/index-DVfQiQ1d.js +0 -1
  76. package/dist/assets/index-cV3UdaMs.css +0 -1
  77. package/dist/assets/index-hAmu622O.js +0 -43
  78. package/dist/assets/onramp-XcPNCLRU.js +0 -422
  79. package/dist/assets/pay-with-exchange-BeHt4OF4.js +0 -280
  80. package/dist/assets/property-C9JG5tag.js +0 -27
  81. package/dist/assets/receive-7ff4he2S.js +0 -131
  82. package/dist/assets/send-CkMBIRXT.js +0 -554
  83. package/dist/assets/socials-DmmxuLrP.js +0 -250
  84. package/dist/assets/swaps-IHAYRQ0x.js +0 -1050
  85. package/dist/assets/transactions-9Cxdk7o9.js +0 -16
  86. package/dist/assets/v4-BOvFkHkt.js +0 -1
  87. package/dist/assets/w3m-modal-kJzFnBfB.js +0 -891
  88. package/dist/assets/wallet-standard-Dv8LMoUB.js +0 -1
  89. package/dist/favicon.png +0 -0
  90. package/dist/favicon.svg +0 -11
  91. package/dist/icon-192x192.png +0 -0
  92. package/dist/icon-512x512.png +0 -0
  93. package/dist/index.html +0 -33
  94. package/index.html +0 -32
  95. package/public/favicon.png +0 -0
  96. package/public/favicon.svg +0 -11
  97. package/public/icon-192x192.png +0 -0
  98. package/public/icon-512x512.png +0 -0
  99. package/railway.toml +0 -10
  100. package/src/api/client.ts +0 -95
  101. package/src/components/AddressInputModal.css +0 -173
  102. package/src/components/AddressInputModal.tsx +0 -250
  103. package/src/components/ApprovalStep.tsx +0 -92
  104. package/src/components/ExecutionStep.tsx +0 -27
  105. package/src/components/InputStep.tsx +0 -431
  106. package/src/components/QuoteSelector.css +0 -146
  107. package/src/components/QuoteSelector.tsx +0 -137
  108. package/src/components/QuotesModal.css +0 -250
  109. package/src/components/QuotesModal.tsx +0 -182
  110. package/src/components/SettingsModal.css +0 -145
  111. package/src/components/SettingsModal.tsx +0 -180
  112. package/src/components/StatusStep.tsx +0 -139
  113. package/src/components/SwapWidget.css +0 -713
  114. package/src/components/SwapWidget.tsx +0 -607
  115. package/src/components/TokenSelectModal.css +0 -438
  116. package/src/components/TokenSelectModal.tsx +0 -487
  117. package/src/components/WalletProvider.tsx +0 -92
  118. package/src/config/appkit.ts +0 -104
  119. package/src/config/wagmi.ts +0 -27
  120. package/src/constants/chains.ts +0 -72
  121. package/src/constants/defaults.ts +0 -28
  122. package/src/constants/swappers.ts +0 -48
  123. package/src/constants/viemChains.ts +0 -69
  124. package/src/contexts/SwapWalletContext.tsx +0 -25
  125. package/src/demo/App.css +0 -458
  126. package/src/demo/App.tsx +0 -481
  127. package/src/demo/main.tsx +0 -25
  128. package/src/hooks/useAssets.ts +0 -180
  129. package/src/hooks/useBalances.ts +0 -822
  130. package/src/hooks/useBitcoinSigning.ts +0 -276
  131. package/src/hooks/useMarketData.ts +0 -169
  132. package/src/hooks/useSolanaSigning.ts +0 -275
  133. package/src/hooks/useStatusPolling.ts +0 -137
  134. package/src/hooks/useSwapApproval.ts +0 -106
  135. package/src/hooks/useSwapDisplayValues.ts +0 -157
  136. package/src/hooks/useSwapExecution.ts +0 -199
  137. package/src/hooks/useSwapHandlers.ts +0 -119
  138. package/src/hooks/useSwapQuote.ts +0 -71
  139. package/src/hooks/useSwapQuoting.ts +0 -102
  140. package/src/hooks/useSwapRates.ts +0 -61
  141. package/src/index.ts +0 -43
  142. package/src/machines/SwapMachineContext.ts +0 -5
  143. package/src/machines/__tests__/guards.test.ts +0 -228
  144. package/src/machines/__tests__/setup.test.ts +0 -7
  145. package/src/machines/__tests__/swapMachine.test.ts +0 -544
  146. package/src/machines/__tests__/types.test.ts +0 -124
  147. package/src/machines/guards.ts +0 -33
  148. package/src/machines/swapMachine.ts +0 -288
  149. package/src/machines/types.ts +0 -54
  150. package/src/services/transactionStatus.ts +0 -322
  151. package/src/types/index.ts +0 -361
  152. package/src/utils/addressValidation.ts +0 -201
  153. package/src/utils/redirect.ts +0 -45
  154. package/src/vite-env.d.ts +0 -10
  155. package/tsconfig.json +0 -23
  156. package/tsconfig.node.json +0 -10
  157. package/vite.config.ts +0 -101
  158. package/vitest.config.ts +0 -18
@@ -1,422 +0,0 @@
1
- import{y as O,I as b,aK as c,aL as C,az as T,af as j,a3 as m,J as u,as as $,a4 as l,G as g,F as p,k as I,a1 as E,R as L,n as B,E as z,j as V,W as K,C as M,a2 as F,S as W}from"./index-5jd8RPN9.js";const N=O`
2
- :host > wui-grid {
3
- max-height: 360px;
4
- overflow: auto;
5
- }
6
-
7
- wui-flex {
8
- transition: opacity ${({easings:t})=>t["ease-out-power-1"]}
9
- ${({durations:t})=>t.md};
10
- will-change: opacity;
11
- }
12
-
13
- wui-grid::-webkit-scrollbar {
14
- display: none;
15
- }
16
-
17
- wui-flex.disabled {
18
- opacity: 0.3;
19
- pointer-events: none;
20
- user-select: none;
21
- }
22
- `;var A=function(t,e,i,n){var o=arguments.length,r=o<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,i):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(s=t[a])&&(r=(o<3?s(r):o>3?s(e,i,r):s(e,i))||r);return o>3&&r&&Object.defineProperty(e,i,r),r};let P=class extends b{constructor(){super(),this.unsubscribe=[],this.selectedCurrency=c.state.paymentCurrency,this.currencies=c.state.paymentCurrencies,this.currencyImages=C.state.currencyImages,this.checked=T.state.isLegalCheckboxChecked,this.unsubscribe.push(c.subscribe(e=>{this.selectedCurrency=e.paymentCurrency,this.currencies=e.paymentCurrencies}),C.subscribeKey("currencyImages",e=>this.currencyImages=e),T.subscribeKey("isLegalCheckboxChecked",e=>{this.checked=e}))}disconnectedCallback(){this.unsubscribe.forEach(e=>e())}render(){var a;const{termsConditionsUrl:e,privacyPolicyUrl:i}=j.state,n=(a=j.state.features)==null?void 0:a.legalCheckbox,s=!!(e||i)&&!!n&&!this.checked;return u`
23
- <w3m-legal-checkbox></w3m-legal-checkbox>
24
- <wui-flex
25
- flexDirection="column"
26
- .padding=${["0","3","3","3"]}
27
- gap="2"
28
- class=${m(s?"disabled":void 0)}
29
- >
30
- ${this.currenciesTemplate(s)}
31
- </wui-flex>
32
- `}currenciesTemplate(e=!1){return this.currencies.map(i=>{var n;return u`
33
- <wui-list-item
34
- imageSrc=${m((n=this.currencyImages)==null?void 0:n[i.id])}
35
- @click=${()=>this.selectCurrency(i)}
36
- variant="image"
37
- tabIdx=${m(e?-1:void 0)}
38
- >
39
- <wui-text variant="md-medium" color="primary">${i.id}</wui-text>
40
- </wui-list-item>
41
- `})}selectCurrency(e){e&&(c.setPaymentCurrency(e),$.close())}};P.styles=N;A([l()],P.prototype,"selectedCurrency",void 0);A([l()],P.prototype,"currencies",void 0);A([l()],P.prototype,"currencyImages",void 0);A([l()],P.prototype,"checked",void 0);P=A([g("w3m-onramp-fiat-select-view")],P);const Y=O`
42
- button {
43
- padding: ${({spacing:t})=>t[3]};
44
- border-radius: ${({borderRadius:t})=>t[4]};
45
- border: none;
46
- outline: none;
47
- background-color: ${({tokens:t})=>t.core.glass010};
48
- width: 100%;
49
- display: flex;
50
- align-items: center;
51
- justify-content: flex-start;
52
- gap: ${({spacing:t})=>t[3]};
53
- transition: background-color ${({easings:t})=>t["ease-out-power-1"]}
54
- ${({durations:t})=>t.md};
55
- will-change: background-color;
56
- cursor: pointer;
57
- }
58
-
59
- button:hover {
60
- background-color: ${({tokens:t})=>t.theme.foregroundPrimary};
61
- }
62
-
63
- .provider-image {
64
- width: ${({spacing:t})=>t[10]};
65
- min-width: ${({spacing:t})=>t[10]};
66
- height: ${({spacing:t})=>t[10]};
67
- border-radius: calc(
68
- ${({borderRadius:t})=>t[4]} - calc(${({spacing:t})=>t[3]} / 2)
69
- );
70
- position: relative;
71
- overflow: hidden;
72
- }
73
-
74
- .network-icon {
75
- width: ${({spacing:t})=>t[3]};
76
- height: ${({spacing:t})=>t[3]};
77
- border-radius: calc(${({spacing:t})=>t[3]} / 2);
78
- overflow: hidden;
79
- box-shadow:
80
- 0 0 0 3px ${({tokens:t})=>t.theme.foregroundPrimary},
81
- 0 0 0 3px ${({tokens:t})=>t.theme.backgroundPrimary};
82
- transition: box-shadow ${({easings:t})=>t["ease-out-power-1"]}
83
- ${({durations:t})=>t.md};
84
- will-change: box-shadow;
85
- }
86
-
87
- button:hover .network-icon {
88
- box-shadow:
89
- 0 0 0 3px ${({tokens:t})=>t.core.glass010},
90
- 0 0 0 3px ${({tokens:t})=>t.theme.backgroundPrimary};
91
- }
92
- `;var v=function(t,e,i,n){var o=arguments.length,r=o<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,i):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(s=t[a])&&(r=(o<3?s(r):o>3?s(e,i,r):s(e,i))||r);return o>3&&r&&Object.defineProperty(e,i,r),r};let h=class extends b{constructor(){super(...arguments),this.disabled=!1,this.color="inherit",this.label="",this.feeRange="",this.loading=!1,this.onClick=null}render(){return u`
93
- <button ?disabled=${this.disabled} @click=${this.onClick} ontouchstart>
94
- <wui-visual name=${m(this.name)} class="provider-image"></wui-visual>
95
- <wui-flex flexDirection="column" gap="01">
96
- <wui-text variant="md-regular" color="primary">${this.label}</wui-text>
97
- <wui-flex alignItems="center" justifyContent="flex-start" gap="4">
98
- <wui-text variant="sm-medium" color="primary">
99
- <wui-text variant="sm-regular" color="secondary">Fees</wui-text>
100
- ${this.feeRange}
101
- </wui-text>
102
- <wui-flex gap="2">
103
- <wui-icon name="bank" size="sm" color="default"></wui-icon>
104
- <wui-icon name="card" size="sm" color="default"></wui-icon>
105
- </wui-flex>
106
- ${this.networksTemplate()}
107
- </wui-flex>
108
- </wui-flex>
109
- ${this.loading?u`<wui-loading-spinner color="secondary" size="md"></wui-loading-spinner>`:u`<wui-icon name="chevronRight" color="default" size="sm"></wui-icon>`}
110
- </button>
111
- `}networksTemplate(){var n;const e=I.getAllRequestedCaipNetworks(),i=(n=e==null?void 0:e.filter(o=>{var r;return(r=o==null?void 0:o.assets)==null?void 0:r.imageId}))==null?void 0:n.slice(0,5);return u`
112
- <wui-flex class="networks">
113
- ${i==null?void 0:i.map(o=>u`
114
- <wui-flex class="network-icon">
115
- <wui-image src=${m(E.getNetworkImage(o))}></wui-image>
116
- </wui-flex>
117
- `)}
118
- </wui-flex>
119
- `}};h.styles=[Y];v([p({type:Boolean})],h.prototype,"disabled",void 0);v([p()],h.prototype,"color",void 0);v([p()],h.prototype,"name",void 0);v([p()],h.prototype,"label",void 0);v([p()],h.prototype,"feeRange",void 0);v([p({type:Boolean})],h.prototype,"loading",void 0);v([p()],h.prototype,"onClick",void 0);h=v([g("w3m-onramp-provider-item")],h);var D=function(t,e,i,n){var o=arguments.length,r=o<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,i):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(s=t[a])&&(r=(o<3?s(r):o>3?s(e,i,r):s(e,i))||r);return o>3&&r&&Object.defineProperty(e,i,r),r};let U=class extends b{constructor(){super(),this.unsubscribe=[],this.providers=c.state.providers,this.unsubscribe.push(c.subscribeKey("providers",e=>{this.providers=e}))}render(){return u`
120
- <wui-flex flexDirection="column" .padding=${["0","3","3","3"]} gap="2">
121
- ${this.onRampProvidersTemplate()}
122
- </wui-flex>
123
- `}onRampProvidersTemplate(){return this.providers.filter(e=>e.supportedChains.includes(I.state.activeChain??"eip155")).map(e=>u`
124
- <w3m-onramp-provider-item
125
- label=${e.label}
126
- name=${e.name}
127
- feeRange=${e.feeRange}
128
- @click=${()=>{this.onClickProvider(e)}}
129
- ?disabled=${!e.url}
130
- data-testid=${`onramp-provider-${e.name}`}
131
- ></w3m-onramp-provider-item>
132
- `)}onClickProvider(e){var i;c.setSelectedProvider(e),L.push("BuyInProgress"),B.openHref(((i=c.state.selectedProvider)==null?void 0:i.url)||e.url,"popupWindow","width=600,height=800,scrollbars=yes"),z.sendEvent({type:"track",event:"SELECT_BUY_PROVIDER",properties:{provider:e.name,isSmartAccount:V(I.state.activeChain)===K.ACCOUNT_TYPES.SMART_ACCOUNT}})}};D([l()],U.prototype,"providers",void 0);U=D([g("w3m-onramp-providers-view")],U);const q=O`
133
- :host > wui-grid {
134
- max-height: 360px;
135
- overflow: auto;
136
- }
137
-
138
- wui-flex {
139
- transition: opacity ${({easings:t})=>t["ease-out-power-1"]}
140
- ${({durations:t})=>t.md};
141
- will-change: opacity;
142
- }
143
-
144
- wui-grid::-webkit-scrollbar {
145
- display: none;
146
- }
147
-
148
- wui-flex.disabled {
149
- opacity: 0.3;
150
- pointer-events: none;
151
- user-select: none;
152
- }
153
- `;var _=function(t,e,i,n){var o=arguments.length,r=o<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,i):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(s=t[a])&&(r=(o<3?s(r):o>3?s(e,i,r):s(e,i))||r);return o>3&&r&&Object.defineProperty(e,i,r),r};let k=class extends b{constructor(){super(),this.unsubscribe=[],this.selectedCurrency=c.state.purchaseCurrencies,this.tokens=c.state.purchaseCurrencies,this.tokenImages=C.state.tokenImages,this.checked=T.state.isLegalCheckboxChecked,this.unsubscribe.push(c.subscribe(e=>{this.selectedCurrency=e.purchaseCurrencies,this.tokens=e.purchaseCurrencies}),C.subscribeKey("tokenImages",e=>this.tokenImages=e),T.subscribeKey("isLegalCheckboxChecked",e=>{this.checked=e}))}disconnectedCallback(){this.unsubscribe.forEach(e=>e())}render(){var a;const{termsConditionsUrl:e,privacyPolicyUrl:i}=j.state,n=(a=j.state.features)==null?void 0:a.legalCheckbox,s=!!(e||i)&&!!n&&!this.checked;return u`
154
- <w3m-legal-checkbox></w3m-legal-checkbox>
155
- <wui-flex
156
- flexDirection="column"
157
- .padding=${["0","3","3","3"]}
158
- gap="2"
159
- class=${m(s?"disabled":void 0)}
160
- >
161
- ${this.currenciesTemplate(s)}
162
- </wui-flex>
163
- `}currenciesTemplate(e=!1){return this.tokens.map(i=>{var n;return u`
164
- <wui-list-item
165
- imageSrc=${m((n=this.tokenImages)==null?void 0:n[i.symbol])}
166
- @click=${()=>this.selectToken(i)}
167
- variant="image"
168
- tabIdx=${m(e?-1:void 0)}
169
- >
170
- <wui-flex gap="1" alignItems="center">
171
- <wui-text variant="md-medium" color="primary">${i.name}</wui-text>
172
- <wui-text variant="sm-regular" color="secondary">${i.symbol}</wui-text>
173
- </wui-flex>
174
- </wui-list-item>
175
- `})}selectToken(e){e&&(c.setPurchaseCurrency(e),$.close())}};k.styles=q;_([l()],k.prototype,"selectedCurrency",void 0);_([l()],k.prototype,"tokens",void 0);_([l()],k.prototype,"tokenImages",void 0);_([l()],k.prototype,"checked",void 0);k=_([g("w3m-onramp-token-select-view")],k);const Q=O`
176
- @keyframes shake {
177
- 0% {
178
- transform: translateX(0);
179
- }
180
- 25% {
181
- transform: translateX(3px);
182
- }
183
- 50% {
184
- transform: translateX(-3px);
185
- }
186
- 75% {
187
- transform: translateX(3px);
188
- }
189
- 100% {
190
- transform: translateX(0);
191
- }
192
- }
193
-
194
- wui-flex:first-child:not(:only-child) {
195
- position: relative;
196
- }
197
-
198
- wui-loading-thumbnail {
199
- position: absolute;
200
- }
201
-
202
- wui-visual {
203
- border-radius: calc(
204
- ${({borderRadius:t})=>t[1]} * 9 - ${({borderRadius:t})=>t[3]}
205
- );
206
- position: relative;
207
- overflow: hidden;
208
- }
209
-
210
- wui-icon-box {
211
- position: absolute;
212
- right: calc(${({spacing:t})=>t[1]} * -1);
213
- bottom: calc(${({spacing:t})=>t[1]} * -1);
214
- opacity: 0;
215
- transform: scale(0.5);
216
- transition:
217
- opacity ${({durations:t})=>t.lg} ${({easings:t})=>t["ease-out-power-2"]},
218
- transform ${({durations:t})=>t.lg}
219
- ${({easings:t})=>t["ease-out-power-2"]};
220
- will-change: opacity, transform;
221
- }
222
-
223
- wui-text[align='center'] {
224
- width: 100%;
225
- padding: 0px ${({spacing:t})=>t[4]};
226
- }
227
-
228
- [data-error='true'] wui-icon-box {
229
- opacity: 1;
230
- transform: scale(1);
231
- }
232
-
233
- [data-error='true'] > wui-flex:first-child {
234
- animation: shake 250ms ${({easings:t})=>t["ease-out-power-2"]} both;
235
- }
236
-
237
- [data-retry='false'] wui-link {
238
- display: none;
239
- }
240
-
241
- [data-retry='true'] wui-link {
242
- display: block;
243
- opacity: 1;
244
- }
245
-
246
- wui-link {
247
- padding: ${({spacing:t})=>t["01"]} ${({spacing:t})=>t[2]};
248
- }
249
- `;var y=function(t,e,i,n){var o=arguments.length,r=o<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,i):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(s=t[a])&&(r=(o<3?s(r):o>3?s(e,i,r):s(e,i))||r);return o>3&&r&&Object.defineProperty(e,i,r),r};let d=class extends b{constructor(){super(),this.unsubscribe=[],this.selectedOnRampProvider=c.state.selectedProvider,this.uri=M.state.wcUri,this.ready=!1,this.showRetry=!1,this.buffering=!1,this.error=!1,this.isMobile=!1,this.onRetry=void 0,this.unsubscribe.push(c.subscribeKey("selectedProvider",e=>{this.selectedOnRampProvider=e}))}disconnectedCallback(){this.intervalId&&clearInterval(this.intervalId)}render(){var n,o;let e="Continue in external window";this.error?e="Buy failed":this.selectedOnRampProvider&&(e=`Buy in ${(n=this.selectedOnRampProvider)==null?void 0:n.label}`);const i=this.error?"Buy can be declined from your side or due to and error on the provider app":"We’ll notify you once your Buy is processed";return u`
250
- <wui-flex
251
- data-error=${m(this.error)}
252
- data-retry=${this.showRetry}
253
- flexDirection="column"
254
- alignItems="center"
255
- .padding=${["10","5","5","5"]}
256
- gap="5"
257
- >
258
- <wui-flex justifyContent="center" alignItems="center">
259
- <wui-visual
260
- name=${m((o=this.selectedOnRampProvider)==null?void 0:o.name)}
261
- size="lg"
262
- class="provider-image"
263
- >
264
- </wui-visual>
265
-
266
- ${this.error?null:this.loaderTemplate()}
267
-
268
- <wui-icon-box
269
- color="error"
270
- icon="close"
271
- size="sm"
272
- border
273
- borderColor="wui-color-bg-125"
274
- ></wui-icon-box>
275
- </wui-flex>
276
-
277
- <wui-flex
278
- flexDirection="column"
279
- alignItems="center"
280
- gap="2"
281
- .padding=${["4","0","0","0"]}
282
- >
283
- <wui-text variant="md-medium" color=${this.error?"error":"primary"}>
284
- ${e}
285
- </wui-text>
286
- <wui-text align="center" variant="sm-medium" color="secondary">${i}</wui-text>
287
- </wui-flex>
288
-
289
- ${this.error?this.tryAgainTemplate():null}
290
- </wui-flex>
291
-
292
- <wui-flex .padding=${["0","5","5","5"]} justifyContent="center">
293
- <wui-link @click=${this.onCopyUri} color="secondary">
294
- <wui-icon size="sm" color="default" slot="iconLeft" name="copy"></wui-icon>
295
- Copy link
296
- </wui-link>
297
- </wui-flex>
298
- `}onTryAgain(){this.selectedOnRampProvider&&(this.error=!1,B.openHref(this.selectedOnRampProvider.url,"popupWindow","width=600,height=800,scrollbars=yes"))}tryAgainTemplate(){var e;return(e=this.selectedOnRampProvider)!=null&&e.url?u`<wui-button size="md" variant="accent" @click=${this.onTryAgain.bind(this)}>
299
- <wui-icon color="inherit" slot="iconLeft" name="refresh"></wui-icon>
300
- Try again
301
- </wui-button>`:null}loaderTemplate(){const e=F.state.themeVariables["--w3m-border-radius-master"],i=e?parseInt(e.replace("px",""),10):4;return u`<wui-loading-thumbnail radius=${i*9}></wui-loading-thumbnail>`}onCopyUri(){var e;if(!((e=this.selectedOnRampProvider)!=null&&e.url)){W.showError("No link found"),L.goBack();return}try{B.copyToClopboard(this.selectedOnRampProvider.url),W.showSuccess("Link copied")}catch{W.showError("Failed to copy")}}};d.styles=Q;y([l()],d.prototype,"intervalId",void 0);y([l()],d.prototype,"selectedOnRampProvider",void 0);y([l()],d.prototype,"uri",void 0);y([l()],d.prototype,"ready",void 0);y([l()],d.prototype,"showRetry",void 0);y([l()],d.prototype,"buffering",void 0);y([l()],d.prototype,"error",void 0);y([p({type:Boolean})],d.prototype,"isMobile",void 0);y([p()],d.prototype,"onRetry",void 0);d=y([g("w3m-buy-in-progress-view")],d);var X=function(t,e,i,n){var o=arguments.length,r=o<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,i):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(s=t[a])&&(r=(o<3?s(r):o>3?s(e,i,r):s(e,i))||r);return o>3&&r&&Object.defineProperty(e,i,r),r};let S=class extends b{render(){return u`
302
- <wui-flex
303
- flexDirection="column"
304
- .padding=${["6","10","5","10"]}
305
- alignItems="center"
306
- gap="5"
307
- >
308
- <wui-visual name="onrampCard"></wui-visual>
309
- <wui-flex flexDirection="column" gap="2" alignItems="center">
310
- <wui-text align="center" variant="md-medium" color="primary">
311
- Quickly and easily buy digital assets!
312
- </wui-text>
313
- <wui-text align="center" variant="sm-regular" color="secondary">
314
- Simply select your preferred onramp provider and add digital assets to your account
315
- using your credit card or bank transfer
316
- </wui-text>
317
- </wui-flex>
318
- <wui-button @click=${L.goBack}>
319
- <wui-icon size="sm" color="inherit" name="add" slot="iconLeft"></wui-icon>
320
- Buy
321
- </wui-button>
322
- </wui-flex>
323
- `}};S=X([g("w3m-what-is-a-buy-view")],S);const G=O`
324
- :host {
325
- width: 100%;
326
- }
327
-
328
- wui-loading-spinner {
329
- position: absolute;
330
- top: 50%;
331
- right: 20px;
332
- transform: translateY(-50%);
333
- }
334
-
335
- .currency-container {
336
- position: absolute;
337
- top: 50%;
338
- transform: translateY(-50%);
339
- right: ${({spacing:t})=>t[2]};
340
- height: 40px;
341
- padding: ${({spacing:t})=>t[2]} ${({spacing:t})=>t[2]}
342
- ${({spacing:t})=>t[2]} ${({spacing:t})=>t[2]};
343
- min-width: 95px;
344
- border-radius: ${({borderRadius:t})=>t.round};
345
- border: 1px solid ${({tokens:t})=>t.theme.foregroundPrimary};
346
- background: ${({tokens:t})=>t.theme.foregroundPrimary};
347
- cursor: pointer;
348
- }
349
-
350
- .currency-container > wui-image {
351
- height: 24px;
352
- width: 24px;
353
- border-radius: 50%;
354
- }
355
- `;var R=function(t,e,i,n){var o=arguments.length,r=o<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,i):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(s=t[a])&&(r=(o<3?s(r):o>3?s(e,i,r):s(e,i))||r);return o>3&&r&&Object.defineProperty(e,i,r),r};let w=class extends b{constructor(){var e;super(),this.unsubscribe=[],this.type="Token",this.value=0,this.currencies=[],this.selectedCurrency=(e=this.currencies)==null?void 0:e[0],this.currencyImages=C.state.currencyImages,this.tokenImages=C.state.tokenImages,this.unsubscribe.push(c.subscribeKey("purchaseCurrency",i=>{!i||this.type==="Fiat"||(this.selectedCurrency=this.formatPurchaseCurrency(i))}),c.subscribeKey("paymentCurrency",i=>{!i||this.type==="Token"||(this.selectedCurrency=this.formatPaymentCurrency(i))}),c.subscribe(i=>{this.type==="Fiat"?this.currencies=i.purchaseCurrencies.map(this.formatPurchaseCurrency):this.currencies=i.paymentCurrencies.map(this.formatPaymentCurrency)}),C.subscribe(i=>{this.currencyImages={...i.currencyImages},this.tokenImages={...i.tokenImages}}))}firstUpdated(){c.getAvailableCurrencies()}disconnectedCallback(){this.unsubscribe.forEach(e=>e())}render(){var n;const e=((n=this.selectedCurrency)==null?void 0:n.symbol)||"",i=this.currencyImages[e]||this.tokenImages[e];return u`<wui-input-text type="number" size="lg" value=${this.value}>
356
- ${this.selectedCurrency?u` <wui-flex
357
- class="currency-container"
358
- justifyContent="space-between"
359
- alignItems="center"
360
- gap="1"
361
- @click=${()=>$.open({view:`OnRamp${this.type}Select`})}
362
- >
363
- <wui-image src=${m(i)}></wui-image>
364
- <wui-text color="primary">${this.selectedCurrency.symbol}</wui-text>
365
- </wui-flex>`:u`<wui-loading-spinner></wui-loading-spinner>`}
366
- </wui-input-text>`}formatPaymentCurrency(e){return{name:e.id,symbol:e.id}}formatPurchaseCurrency(e){return{name:e.name,symbol:e.symbol}}};w.styles=G;R([p({type:String})],w.prototype,"type",void 0);R([p({type:Number})],w.prototype,"value",void 0);R([l()],w.prototype,"currencies",void 0);R([l()],w.prototype,"selectedCurrency",void 0);R([l()],w.prototype,"currencyImages",void 0);R([l()],w.prototype,"tokenImages",void 0);w=R([g("w3m-onramp-input")],w);const H=O`
367
- :host > wui-flex {
368
- width: 100%;
369
- max-width: 360px;
370
- }
371
-
372
- :host > wui-flex > wui-flex {
373
- border-radius: ${({borderRadius:t})=>t[8]};
374
- width: 100%;
375
- }
376
-
377
- .amounts-container {
378
- width: 100%;
379
- }
380
- `;var x=function(t,e,i,n){var o=arguments.length,r=o<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,i):n,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(s=t[a])&&(r=(o<3?s(r):o>3?s(e,i,r):s(e,i))||r);return o>3&&r&&Object.defineProperty(e,i,r),r};const J={USD:"$",EUR:"€",GBP:"£"},Z=[100,250,500,1e3];let f=class extends b{constructor(){super(),this.unsubscribe=[],this.disabled=!1,this.caipAddress=I.state.activeCaipAddress,this.loading=$.state.loading,this.paymentCurrency=c.state.paymentCurrency,this.paymentAmount=c.state.paymentAmount,this.purchaseAmount=c.state.purchaseAmount,this.quoteLoading=c.state.quotesLoading,this.unsubscribe.push(I.subscribeKey("activeCaipAddress",e=>this.caipAddress=e),$.subscribeKey("loading",e=>{this.loading=e}),c.subscribe(e=>{this.paymentCurrency=e.paymentCurrency,this.paymentAmount=e.paymentAmount,this.purchaseAmount=e.purchaseAmount,this.quoteLoading=e.quotesLoading}))}disconnectedCallback(){this.unsubscribe.forEach(e=>e())}render(){return u`
381
- <wui-flex flexDirection="column" justifyContent="center" alignItems="center">
382
- <wui-flex flexDirection="column" alignItems="center" gap="2">
383
- <w3m-onramp-input
384
- type="Fiat"
385
- @inputChange=${this.onPaymentAmountChange.bind(this)}
386
- .value=${this.paymentAmount||0}
387
- ></w3m-onramp-input>
388
- <w3m-onramp-input
389
- type="Token"
390
- .value=${this.purchaseAmount||0}
391
- .loading=${this.quoteLoading}
392
- ></w3m-onramp-input>
393
- <wui-flex justifyContent="space-evenly" class="amounts-container" gap="2">
394
- ${Z.map(e=>{var i;return u`<wui-button
395
- variant=${this.paymentAmount===e?"accent-secondary":"neutral-secondary"}
396
- size="md"
397
- textVariant="md-medium"
398
- fullWidth
399
- @click=${()=>this.selectPresetAmount(e)}
400
- >${`${J[((i=this.paymentCurrency)==null?void 0:i.id)||"USD"]} ${e}`}</wui-button
401
- >`})}
402
- </wui-flex>
403
- ${this.templateButton()}
404
- </wui-flex>
405
- </wui-flex>
406
- `}templateButton(){return this.caipAddress?u`<wui-button
407
- @click=${this.getQuotes.bind(this)}
408
- variant="accent-primary"
409
- fullWidth
410
- size="lg"
411
- borderRadius="xs"
412
- >
413
- Get quotes
414
- </wui-button>`:u`<wui-button
415
- @click=${this.openModal.bind(this)}
416
- variant="accent"
417
- fullWidth
418
- size="lg"
419
- borderRadius="xs"
420
- >
421
- Connect wallet
422
- </wui-button>`}getQuotes(){this.loading||$.open({view:"OnRampProviders"})}openModal(){$.open({view:"Connect"})}async onPaymentAmountChange(e){c.setPaymentAmount(Number(e.detail)),await c.getQuote()}async selectPresetAmount(e){c.setPaymentAmount(e),await c.getQuote()}};f.styles=H;x([p({type:Boolean})],f.prototype,"disabled",void 0);x([l()],f.prototype,"caipAddress",void 0);x([l()],f.prototype,"loading",void 0);x([l()],f.prototype,"paymentCurrency",void 0);x([l()],f.prototype,"paymentAmount",void 0);x([l()],f.prototype,"purchaseAmount",void 0);x([l()],f.prototype,"quoteLoading",void 0);f=x([g("w3m-onramp-widget")],f);export{d as W3mBuyInProgressView,U as W3mOnRampProvidersView,P as W3mOnrampFiatSelectView,k as W3mOnrampTokensView,f as W3mOnrampWidget,S as W3mWhatIsABuyView};