@lifi/widget 3.25.0 → 3.26.1

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 (244) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/esm/components/AmountInput/AmountInput.js +75 -17
  3. package/dist/esm/components/AmountInput/AmountInput.js.map +1 -1
  4. package/dist/esm/components/AmountInput/AmountInput.style.d.ts +4 -0
  5. package/dist/esm/components/AmountInput/AmountInput.style.js +11 -0
  6. package/dist/esm/components/AmountInput/AmountInput.style.js.map +1 -1
  7. package/dist/esm/components/AmountInput/AmountInputAdornment.style.d.ts +1 -0
  8. package/dist/esm/components/AmountInput/AmountInputAdornment.style.js +64 -5
  9. package/dist/esm/components/AmountInput/AmountInputAdornment.style.js.map +1 -1
  10. package/dist/esm/components/AmountInput/AmountInputEndAdornment.js +20 -7
  11. package/dist/esm/components/AmountInput/AmountInputEndAdornment.js.map +1 -1
  12. package/dist/esm/components/AmountInput/PriceFormHelperText.js +41 -15
  13. package/dist/esm/components/AmountInput/PriceFormHelperText.js.map +1 -1
  14. package/dist/esm/components/AmountInput/PriceFormHelperText.style.d.ts +1 -0
  15. package/dist/esm/components/AmountInput/PriceFormHelperText.style.js +29 -0
  16. package/dist/esm/components/AmountInput/PriceFormHelperText.style.js.map +1 -0
  17. package/dist/esm/components/AppContainer.js +1 -0
  18. package/dist/esm/components/AppContainer.js.map +1 -1
  19. package/dist/esm/components/ChainSelect/useChainSelect.js +2 -4
  20. package/dist/esm/components/ChainSelect/useChainSelect.js.map +1 -1
  21. package/dist/esm/components/Chains/ChainsExpanded.d.ts +1 -1
  22. package/dist/esm/components/Chains/ChainsExpanded.js +3 -2
  23. package/dist/esm/components/Chains/ChainsExpanded.js.map +1 -1
  24. package/dist/esm/components/Chains/ChainsExpanded.style.js +1 -2
  25. package/dist/esm/components/Chains/ChainsExpanded.style.js.map +1 -1
  26. package/dist/esm/components/Chains/SelectChainContent.d.ts +1 -1
  27. package/dist/esm/components/Chains/SelectChainContent.js +3 -2
  28. package/dist/esm/components/Chains/SelectChainContent.js.map +1 -1
  29. package/dist/esm/components/Chains/VirtualizedChainList.js +5 -3
  30. package/dist/esm/components/Chains/VirtualizedChainList.js.map +1 -1
  31. package/dist/esm/components/Expansion/Expansion.js +5 -16
  32. package/dist/esm/components/Expansion/Expansion.js.map +1 -1
  33. package/dist/esm/components/Expansion/Expansion.style.d.ts +32 -0
  34. package/dist/esm/components/Expansion/Expansion.style.js +40 -0
  35. package/dist/esm/components/Expansion/Expansion.style.js.map +1 -0
  36. package/dist/esm/components/Expansion/ExpansionTransition.d.ts +0 -1
  37. package/dist/esm/components/Expansion/ExpansionTransition.js +1 -30
  38. package/dist/esm/components/Expansion/ExpansionTransition.js.map +1 -1
  39. package/dist/esm/components/Header/NavigationHeader.js +5 -1
  40. package/dist/esm/components/Header/NavigationHeader.js.map +1 -1
  41. package/dist/esm/components/Routes/RoutesContent.d.ts +2 -3
  42. package/dist/esm/components/Routes/RoutesContent.js +8 -23
  43. package/dist/esm/components/Routes/RoutesContent.js.map +1 -1
  44. package/dist/esm/components/Routes/RoutesExpanded.d.ts +2 -3
  45. package/dist/esm/components/Routes/RoutesExpanded.js +24 -8
  46. package/dist/esm/components/Routes/RoutesExpanded.js.map +1 -1
  47. package/dist/esm/components/Routes/RoutesExpanded.style.js +2 -2
  48. package/dist/esm/components/Routes/RoutesExpanded.style.js.map +1 -1
  49. package/dist/esm/components/SendToWallet/SendToWalletButton.js +1 -1
  50. package/dist/esm/components/SendToWallet/SendToWalletButton.js.map +1 -1
  51. package/dist/esm/components/SendToWallet/SendToWalletExpandButton.js +3 -3
  52. package/dist/esm/components/SendToWallet/SendToWalletExpandButton.js.map +1 -1
  53. package/dist/esm/components/Step/StepProcess.js +3 -8
  54. package/dist/esm/components/Step/StepProcess.js.map +1 -1
  55. package/dist/esm/components/TokenList/TokenDetailsSheetContent.js +1 -2
  56. package/dist/esm/components/TokenList/TokenDetailsSheetContent.js.map +1 -1
  57. package/dist/esm/components/TokenList/useTokenSelect.js +2 -4
  58. package/dist/esm/components/TokenList/useTokenSelect.js.map +1 -1
  59. package/dist/esm/config/version.d.ts +1 -1
  60. package/dist/esm/config/version.js +1 -1
  61. package/dist/esm/hooks/useFromAmountThreshold.js +2 -2
  62. package/dist/esm/hooks/useFromAmountThreshold.js.map +1 -1
  63. package/dist/esm/hooks/useGasSufficiency.js +3 -3
  64. package/dist/esm/hooks/useGasSufficiency.js.map +1 -1
  65. package/dist/esm/hooks/useNavigateBack.d.ts +1 -1
  66. package/dist/esm/hooks/useNavigateBack.js +8 -2
  67. package/dist/esm/hooks/useNavigateBack.js.map +1 -1
  68. package/dist/esm/hooks/useRouteExecution.js +1 -2
  69. package/dist/esm/hooks/useRouteExecution.js.map +1 -1
  70. package/dist/esm/hooks/useRoutes.js +51 -8
  71. package/dist/esm/hooks/useRoutes.js.map +1 -1
  72. package/dist/esm/hooks/useSettingMonitor.js +1 -2
  73. package/dist/esm/hooks/useSettingMonitor.js.map +1 -1
  74. package/dist/esm/hooks/useTokenAddressBalance.js +4 -1
  75. package/dist/esm/hooks/useTokenAddressBalance.js.map +1 -1
  76. package/dist/esm/hooks/useTokenSearch.js +5 -2
  77. package/dist/esm/hooks/useTokenSearch.js.map +1 -1
  78. package/dist/esm/hooks/useTokens.js +2 -2
  79. package/dist/esm/hooks/useTokens.js.map +1 -1
  80. package/dist/esm/hooks/useTools.js +2 -2
  81. package/dist/esm/hooks/useTools.js.map +1 -1
  82. package/dist/esm/i18n/bn.json +1 -1
  83. package/dist/esm/i18n/de.json +1 -1
  84. package/dist/esm/i18n/en.json +1 -1
  85. package/dist/esm/i18n/es.json +1 -1
  86. package/dist/esm/i18n/fr.json +1 -1
  87. package/dist/esm/i18n/hi.json +1 -1
  88. package/dist/esm/i18n/id.json +1 -1
  89. package/dist/esm/i18n/it.json +1 -1
  90. package/dist/esm/i18n/ja.json +1 -1
  91. package/dist/esm/i18n/ko.json +1 -1
  92. package/dist/esm/i18n/pt.json +1 -1
  93. package/dist/esm/i18n/th.json +1 -1
  94. package/dist/esm/i18n/tr.json +1 -1
  95. package/dist/esm/i18n/uk.json +1 -1
  96. package/dist/esm/i18n/vi.json +1 -1
  97. package/dist/esm/i18n/zh.json +1 -1
  98. package/dist/esm/pages/SelectEnabledToolsPage.js +4 -2
  99. package/dist/esm/pages/SelectEnabledToolsPage.js.map +1 -1
  100. package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js +14 -7
  101. package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js.map +1 -1
  102. package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js +1 -2
  103. package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js.map +1 -1
  104. package/dist/esm/pages/TransactionPage/TransactionPage.js +5 -3
  105. package/dist/esm/pages/TransactionPage/TransactionPage.js.map +1 -1
  106. package/dist/esm/stores/bookmarks/BookmarkStore.d.ts +1 -2
  107. package/dist/esm/stores/bookmarks/BookmarkStore.js +3 -3
  108. package/dist/esm/stores/bookmarks/BookmarkStore.js.map +1 -1
  109. package/dist/esm/stores/bookmarks/useBookmarkActions.js +1 -2
  110. package/dist/esm/stores/bookmarks/useBookmarkActions.js.map +1 -1
  111. package/dist/esm/stores/bookmarks/useBookmarks.js +1 -2
  112. package/dist/esm/stores/bookmarks/useBookmarks.js.map +1 -1
  113. package/dist/esm/stores/chains/ChainOrderStore.d.ts +1 -1
  114. package/dist/esm/stores/chains/ChainOrderStore.js +3 -2
  115. package/dist/esm/stores/chains/ChainOrderStore.js.map +1 -1
  116. package/dist/esm/stores/chains/useChainOrder.js +1 -2
  117. package/dist/esm/stores/chains/useChainOrder.js.map +1 -1
  118. package/dist/esm/stores/form/useFieldActions.js +1 -2
  119. package/dist/esm/stores/form/useFieldActions.js.map +1 -1
  120. package/dist/esm/stores/form/useFieldValues.js +1 -2
  121. package/dist/esm/stores/form/useFieldValues.js.map +1 -1
  122. package/dist/esm/stores/form/useFormStore.d.ts +1 -2
  123. package/dist/esm/stores/form/useFormStore.js +3 -3
  124. package/dist/esm/stores/form/useFormStore.js.map +1 -1
  125. package/dist/esm/stores/form/useTouchedFields.js +1 -2
  126. package/dist/esm/stores/form/useTouchedFields.js.map +1 -1
  127. package/dist/esm/stores/form/useValidation.js +5 -2
  128. package/dist/esm/stores/form/useValidation.js.map +1 -1
  129. package/dist/esm/stores/form/useValidationActions.js +1 -2
  130. package/dist/esm/stores/form/useValidationActions.js.map +1 -1
  131. package/dist/esm/stores/header/useHeaderStore.d.ts +1 -1
  132. package/dist/esm/stores/header/useHeaderStore.js +3 -2
  133. package/dist/esm/stores/header/useHeaderStore.js.map +1 -1
  134. package/dist/esm/stores/inputMode/useInputModeStore.d.ts +9 -0
  135. package/dist/esm/stores/inputMode/useInputModeStore.js +19 -0
  136. package/dist/esm/stores/inputMode/useInputModeStore.js.map +1 -0
  137. package/dist/esm/stores/routes/RouteExecutionStore.d.ts +1 -1
  138. package/dist/esm/stores/routes/RouteExecutionStore.js +3 -2
  139. package/dist/esm/stores/routes/RouteExecutionStore.js.map +1 -1
  140. package/dist/esm/stores/routes/useExecutingRoutesIds.js +1 -2
  141. package/dist/esm/stores/routes/useExecutingRoutesIds.js.map +1 -1
  142. package/dist/esm/stores/settings/useSendToWalletStore.d.ts +2 -1
  143. package/dist/esm/stores/settings/useSendToWalletStore.js +6 -3
  144. package/dist/esm/stores/settings/useSendToWalletStore.js.map +1 -1
  145. package/dist/esm/stores/settings/useSettings.js +1 -2
  146. package/dist/esm/stores/settings/useSettings.js.map +1 -1
  147. package/dist/esm/stores/settings/useSettingsActions.js +1 -2
  148. package/dist/esm/stores/settings/useSettingsActions.js.map +1 -1
  149. package/dist/esm/stores/settings/useSettingsStore.d.ts +2 -1
  150. package/dist/esm/stores/settings/useSettingsStore.js +5 -1
  151. package/dist/esm/stores/settings/useSettingsStore.js.map +1 -1
  152. package/dist/esm/stores/settings/useSplitSubvariantStore.js +2 -1
  153. package/dist/esm/stores/settings/useSplitSubvariantStore.js.map +1 -1
  154. package/dist/esm/themes/createTheme.js +5 -1
  155. package/dist/esm/themes/createTheme.js.map +1 -1
  156. package/dist/esm/types/widget.d.ts +2 -1
  157. package/dist/esm/types/widget.js +1 -0
  158. package/dist/esm/types/widget.js.map +1 -1
  159. package/dist/esm/utils/format.d.ts +4 -0
  160. package/dist/esm/utils/format.js +26 -0
  161. package/dist/esm/utils/format.js.map +1 -1
  162. package/dist/esm/utils/getPriceImpact.d.ts +2 -2
  163. package/dist/esm/utils/getPriceImpact.js.map +1 -1
  164. package/package.json +12 -12
  165. package/package.json.tmp +14 -14
  166. package/src/components/AmountInput/AmountInput.style.tsx +13 -0
  167. package/src/components/AmountInput/AmountInput.tsx +91 -18
  168. package/src/components/AmountInput/AmountInputAdornment.style.tsx +66 -5
  169. package/src/components/AmountInput/AmountInputEndAdornment.tsx +40 -10
  170. package/src/components/AmountInput/PriceFormHelperText.style.tsx +29 -0
  171. package/src/components/AmountInput/PriceFormHelperText.tsx +63 -19
  172. package/src/components/AppContainer.tsx +1 -0
  173. package/src/components/ChainSelect/useChainSelect.ts +2 -4
  174. package/src/components/Chains/ChainsExpanded.style.tsx +1 -2
  175. package/src/components/Chains/ChainsExpanded.tsx +6 -2
  176. package/src/components/Chains/SelectChainContent.tsx +81 -82
  177. package/src/components/Chains/VirtualizedChainList.tsx +5 -6
  178. package/src/components/Expansion/Expansion.style.tsx +43 -0
  179. package/src/components/Expansion/Expansion.tsx +8 -23
  180. package/src/components/Expansion/ExpansionTransition.tsx +5 -33
  181. package/src/components/Header/NavigationHeader.tsx +10 -1
  182. package/src/components/Routes/RoutesContent.tsx +14 -31
  183. package/src/components/Routes/RoutesExpanded.style.ts +2 -2
  184. package/src/components/Routes/RoutesExpanded.tsx +33 -13
  185. package/src/components/SendToWallet/SendToWalletButton.tsx +1 -1
  186. package/src/components/SendToWallet/SendToWalletExpandButton.tsx +8 -3
  187. package/src/components/Step/StepProcess.tsx +3 -8
  188. package/src/components/TokenList/TokenDetailsSheetContent.tsx +1 -2
  189. package/src/components/TokenList/useTokenSelect.ts +2 -4
  190. package/src/config/version.ts +1 -1
  191. package/src/hooks/useFromAmountThreshold.ts +6 -2
  192. package/src/hooks/useGasSufficiency.ts +4 -4
  193. package/src/hooks/useNavigateBack.ts +26 -17
  194. package/src/hooks/useRouteExecution.ts +1 -3
  195. package/src/hooks/useRoutes.ts +92 -37
  196. package/src/hooks/useSettingMonitor.ts +7 -11
  197. package/src/hooks/useTokenAddressBalance.ts +6 -1
  198. package/src/hooks/useTokenSearch.ts +5 -2
  199. package/src/hooks/useTokens.ts +2 -2
  200. package/src/hooks/useTools.ts +2 -2
  201. package/src/i18n/bn.json +1 -1
  202. package/src/i18n/de.json +1 -1
  203. package/src/i18n/en.json +1 -1
  204. package/src/i18n/es.json +1 -1
  205. package/src/i18n/fr.json +1 -1
  206. package/src/i18n/hi.json +1 -1
  207. package/src/i18n/id.json +1 -1
  208. package/src/i18n/it.json +1 -1
  209. package/src/i18n/ja.json +1 -1
  210. package/src/i18n/ko.json +1 -1
  211. package/src/i18n/pt.json +1 -1
  212. package/src/i18n/th.json +1 -1
  213. package/src/i18n/tr.json +1 -1
  214. package/src/i18n/uk.json +1 -1
  215. package/src/i18n/vi.json +1 -1
  216. package/src/i18n/zh.json +1 -1
  217. package/src/pages/SelectEnabledToolsPage.tsx +4 -5
  218. package/src/pages/SelectTokenPage/SearchTokenInput.tsx +19 -7
  219. package/src/pages/SettingsPage/BridgeAndExchangeSettings.tsx +1 -2
  220. package/src/pages/TransactionPage/TransactionPage.tsx +17 -9
  221. package/src/stores/bookmarks/BookmarkStore.tsx +3 -6
  222. package/src/stores/bookmarks/useBookmarkActions.ts +9 -13
  223. package/src/stores/bookmarks/useBookmarks.ts +1 -3
  224. package/src/stores/chains/ChainOrderStore.tsx +3 -3
  225. package/src/stores/chains/useChainOrder.ts +1 -5
  226. package/src/stores/form/useFieldActions.ts +10 -14
  227. package/src/stores/form/useFieldValues.ts +1 -3
  228. package/src/stores/form/useFormStore.ts +3 -6
  229. package/src/stores/form/useTouchedFields.ts +1 -2
  230. package/src/stores/form/useValidation.ts +5 -5
  231. package/src/stores/form/useValidationActions.ts +5 -9
  232. package/src/stores/header/useHeaderStore.tsx +3 -5
  233. package/src/stores/inputMode/useInputModeStore.ts +29 -0
  234. package/src/stores/routes/RouteExecutionStore.tsx +3 -3
  235. package/src/stores/routes/useExecutingRoutesIds.ts +14 -17
  236. package/src/stores/settings/useSendToWalletStore.ts +11 -8
  237. package/src/stores/settings/useSettings.ts +8 -11
  238. package/src/stores/settings/useSettingsActions.ts +8 -12
  239. package/src/stores/settings/useSettingsStore.ts +8 -1
  240. package/src/stores/settings/useSplitSubvariantStore.tsx +2 -1
  241. package/src/themes/createTheme.ts +5 -1
  242. package/src/types/widget.ts +1 -0
  243. package/src/utils/format.ts +33 -0
  244. package/src/utils/getPriceImpact.ts +2 -2
@@ -76,7 +76,11 @@ export const createTheme = (widgetTheme: WidgetTheme = {}) => {
76
76
  : darken(secondaryMainColorDark, 0.2)
77
77
 
78
78
  const theme = createMuiTheme({
79
- cssVariables: { cssVarPrefix: 'lifi', colorSchemeSelector: 'class' },
79
+ cssVariables: {
80
+ cssVarPrefix: 'lifi',
81
+ colorSchemeSelector: 'class',
82
+ nativeColor: true,
83
+ },
80
84
  colorSchemes: {
81
85
  light: {
82
86
  palette: {
@@ -112,6 +112,7 @@ export enum HiddenUI {
112
112
  ChainSelect = 'chainSelect',
113
113
  BridgesSettings = 'bridgesSettings',
114
114
  AddressBookConnectedWallets = 'addressBookConnectedWallets',
115
+ LowAddressActivityConfirmation = 'lowAddressActivityConfirmation',
115
116
  }
116
117
  export type HiddenUIType = `${HiddenUI}`
117
118
 
@@ -96,6 +96,39 @@ export function formatTokenPrice(
96
96
  return Number.parseFloat(formattedAmount) * Number.parseFloat(price)
97
97
  }
98
98
 
99
+ /**
100
+ * Formatter for price value to token amount
101
+ */
102
+ const formatter = new Intl.NumberFormat('en', {
103
+ notation: 'standard',
104
+ roundingPriority: 'morePrecision',
105
+ maximumSignificantDigits: 21,
106
+ maximumFractionDigits: 21,
107
+ useGrouping: false,
108
+ })
109
+
110
+ /**
111
+ * Convert price value to token amount
112
+ */
113
+ export function priceToTokenAmount(priceValue: string, priceUSD?: string) {
114
+ if (!priceValue || !priceUSD) {
115
+ return '0'
116
+ }
117
+
118
+ const numericPriceValue = Number.parseFloat(priceValue)
119
+ const numericPrice = Number.parseFloat(priceUSD)
120
+
121
+ if (
122
+ Number.isNaN(numericPriceValue) ||
123
+ Number.isNaN(numericPrice) ||
124
+ !numericPrice
125
+ ) {
126
+ return '0'
127
+ }
128
+
129
+ return formatter.format(numericPriceValue / numericPrice)
130
+ }
131
+
99
132
  const units = [
100
133
  ['day', 86400],
101
134
  ['hour', 3600],
@@ -1,7 +1,7 @@
1
1
  import type { Token } from '@lifi/sdk'
2
2
  import { formatTokenPrice } from './format.js'
3
3
 
4
- interface GetPriceImpractProps {
4
+ interface GetPriceImpactProps {
5
5
  fromToken: Token
6
6
  toToken: Token
7
7
  fromAmount?: bigint
@@ -13,7 +13,7 @@ export const getPriceImpact = ({
13
13
  toToken,
14
14
  fromAmount,
15
15
  toAmount,
16
- }: GetPriceImpractProps) => {
16
+ }: GetPriceImpactProps) => {
17
17
  const fromTokenPrice = formatTokenPrice(
18
18
  fromAmount,
19
19
  fromToken.priceUSD,