@gearbox-protocol/ui-kit 4.0.0-next.2 → 4.0.0-next.20

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 (317) hide show
  1. package/dist/cjs/components/assets-list-cell/assets-list-cell.cjs +1 -1
  2. package/dist/cjs/components/badge/badge.cjs +1 -1
  3. package/dist/cjs/components/badge/chip.cjs +1 -0
  4. package/dist/cjs/components/badge/index.cjs +1 -1
  5. package/dist/cjs/components/base/amount-input/token-select-panel.cjs +1 -1
  6. package/dist/cjs/components/base/borrow-rate-block/borrow-rate-block.cjs +1 -1
  7. package/dist/cjs/components/base/chart-with-side-card/chart-with-side-card.cjs +1 -1
  8. package/dist/cjs/components/base/detailed-page-title/detailed-page-title.cjs +1 -1
  9. package/dist/cjs/components/base/health-factor-block/health-factor-block.cjs +1 -1
  10. package/dist/cjs/components/base/history-chart/history-chart.cjs +1 -1
  11. package/dist/cjs/components/base/index.cjs +1 -1
  12. package/dist/cjs/components/base/info-list/index.cjs +1 -1
  13. package/dist/cjs/components/base/info-list/info-list.cjs +1 -1
  14. package/dist/cjs/components/base/leverage-input/leverage-input.cjs +1 -1
  15. package/dist/cjs/components/base/leverage-preset-chips/constants.cjs +1 -0
  16. package/dist/cjs/components/base/leverage-preset-chips/index.cjs +1 -0
  17. package/dist/cjs/components/base/leverage-preset-chips/leverage-preset-chips.cjs +1 -0
  18. package/dist/cjs/components/base/liquidation-price-block/liquidation-price-block.cjs +1 -1
  19. package/dist/cjs/components/base/manage-pane/constants.cjs +1 -1
  20. package/dist/cjs/components/base/manage-pane/manage-pane.cjs +1 -1
  21. package/dist/cjs/components/base/page-title/index.cjs +1 -1
  22. package/dist/cjs/components/base/page-title/page-title.cjs +1 -1
  23. package/dist/cjs/components/base/pool-apy-breakdown-card/pool-apy-breakdown-card.cjs +1 -1
  24. package/dist/cjs/components/base/position-assets/constants.cjs +1 -0
  25. package/dist/cjs/components/base/position-assets/index.cjs +1 -0
  26. package/dist/cjs/components/base/position-assets/position-assets.cjs +1 -0
  27. package/dist/cjs/components/base/review-button/constants.cjs +1 -1
  28. package/dist/cjs/components/base/review-button/review-button.cjs +1 -1
  29. package/dist/cjs/components/base/stat-badge/constants.cjs +1 -1
  30. package/dist/cjs/components/base/stat-badge/stat-badge.cjs +1 -1
  31. package/dist/cjs/components/base/strategy-apy-breakdown-card/constants.cjs +1 -1
  32. package/dist/cjs/components/base/strategy-apy-breakdown-card/strategy-apy-breakdown-card.cjs +1 -1
  33. package/dist/cjs/components/base/tabber/tabber.cjs +1 -1
  34. package/dist/cjs/components/base/time-to-liquidation-block/time-to-liquidation-block.cjs +1 -1
  35. package/dist/cjs/components/base/title-meta/constants.cjs +1 -1
  36. package/dist/cjs/components/base/title-meta/title-meta.cjs +1 -1
  37. package/dist/cjs/components/base/token-amount/token-amount.cjs +1 -1
  38. package/dist/cjs/components/base/values/constants.cjs +1 -1
  39. package/dist/cjs/components/base/values/index.cjs +1 -1
  40. package/dist/cjs/components/base/values/points-value.cjs +1 -0
  41. package/dist/cjs/components/base/values/position-status-badge.cjs +1 -0
  42. package/dist/cjs/components/base/values/position-type-badge.cjs +1 -1
  43. package/dist/cjs/components/base/values/scalars.cjs +1 -1
  44. package/dist/cjs/components/base-table/base-table-line.cjs +1 -0
  45. package/dist/cjs/components/base-table/base-table.cjs +1 -0
  46. package/dist/cjs/components/base-table/constants.cjs +1 -0
  47. package/dist/cjs/components/base-table/index.cjs +1 -0
  48. package/dist/cjs/components/checkbox/checkbox-labeled.cjs +1 -1
  49. package/dist/cjs/components/client-adapters/styled-rounded-image/styled-rounded-image.cjs +1 -1
  50. package/dist/cjs/components/collateral-allocation-tooltip/allocation-wheel.cjs +1 -0
  51. package/dist/cjs/components/collateral-allocation-tooltip/collateral-allocation-tooltip.cjs +1 -0
  52. package/dist/cjs/components/collateral-allocation-tooltip/constants.cjs +1 -0
  53. package/dist/cjs/components/collateral-allocation-tooltip/index.cjs +1 -0
  54. package/dist/cjs/components/composites/index.cjs +1 -1
  55. package/dist/cjs/components/composites/pool-assets-table/constants.cjs +1 -0
  56. package/dist/cjs/components/composites/pool-assets-table/index.cjs +1 -1
  57. package/dist/cjs/components/composites/pool-assets-table/pool-assets-table-head.cjs +1 -1
  58. package/dist/cjs/components/composites/pool-assets-table/pool-assets-table-row.cjs +1 -1
  59. package/dist/cjs/components/composites/pool-assets-table/pool-assets-table.cjs +1 -1
  60. package/dist/cjs/components/composites/tx-preview/confirm/amounts/TransactionConfirmAmountField.cjs +1 -1
  61. package/dist/cjs/components/composites/tx-preview/confirm/dialog/TransactionConfirmShell.cjs +1 -1
  62. package/dist/cjs/components/composites/tx-preview/confirm/dialog/constants.cjs +1 -1
  63. package/dist/cjs/components/composites/tx-preview/confirm/dialog/index.cjs +1 -1
  64. package/dist/cjs/components/composites/tx-preview/confirm/dialog/transactionConfirmShellTypes.cjs +1 -0
  65. package/dist/cjs/components/composites/tx-preview/confirm/index.cjs +1 -1
  66. package/dist/cjs/components/composites/tx-preview/index.cjs +1 -1
  67. package/dist/cjs/components/compound-apy/compound-apy.cjs +1 -1
  68. package/dist/cjs/components/detailed-page-title/detailed-page-title-explorer-dropdown.cjs +1 -1
  69. package/dist/cjs/components/filter/filter-chip.cjs +1 -1
  70. package/dist/cjs/components/graph/default-config.cjs +1 -1
  71. package/dist/cjs/components/graph/formatters.cjs +1 -1
  72. package/dist/cjs/components/graph/graph-view.cjs +1 -1
  73. package/dist/cjs/components/graph/graph.cjs +1 -1
  74. package/dist/cjs/components/hf-indicator/hf-indicator.cjs +1 -0
  75. package/dist/cjs/components/hf-indicator/index.cjs +1 -0
  76. package/dist/cjs/components/index.cjs +1 -1
  77. package/dist/cjs/components/infinite-scroll/index.cjs +1 -0
  78. package/dist/cjs/components/infinite-scroll/infinite-scroll-wrapper.cjs +1 -0
  79. package/dist/cjs/components/layout/app-footer/app-footer.cjs +1 -1
  80. package/dist/cjs/components/name-cell/index.cjs +1 -0
  81. package/dist/cjs/components/name-cell/name-cell.cjs +1 -0
  82. package/dist/cjs/components/network-icon/index.cjs +1 -1
  83. package/dist/cjs/components/network-icon/network-indicator.cjs +1 -0
  84. package/dist/cjs/components/sdk-status-pill/constants.cjs +1 -0
  85. package/dist/cjs/components/sdk-status-pill/index.cjs +1 -0
  86. package/dist/cjs/components/sdk-status-pill/sdk-status-pill.cjs +1 -0
  87. package/dist/cjs/components/sdk-status-pill/sdk-status.cjs +1 -0
  88. package/dist/cjs/components/trading-view/trading-view.cjs +1 -1
  89. package/dist/cjs/components/with-copy/with-copy.cjs +1 -1
  90. package/dist/cjs/components/yield-breakdown-tooltip/yield-breakdown-tooltip.cjs +1 -1
  91. package/dist/cjs/configs/tailwind-preset.cjs +1 -1
  92. package/dist/cjs/hooks/index.cjs +1 -1
  93. package/dist/cjs/hooks/use-observed-width-key.cjs +1 -0
  94. package/dist/cjs/index.cjs +1 -1
  95. package/dist/cjs/locale/en.json.cjs +1 -1
  96. package/dist/cjs/utils/format-leverage.cjs +1 -0
  97. package/dist/cjs/utils/format-money.cjs +1 -1
  98. package/dist/cjs/utils/index.cjs +1 -1
  99. package/dist/cjs/utils/leverage-presets.cjs +1 -0
  100. package/dist/cjs/utils/strategy-apy.cjs +1 -0
  101. package/dist/esm/components/assets-list-cell/assets-list-cell.js +161 -159
  102. package/dist/esm/components/badge/badge.js +14 -8
  103. package/dist/esm/components/badge/chip.js +47 -0
  104. package/dist/esm/components/badge/index.js +8 -3
  105. package/dist/esm/components/base/amount-input/token-select-panel.js +33 -37
  106. package/dist/esm/components/base/borrow-rate-block/borrow-rate-block.js +32 -25
  107. package/dist/esm/components/base/chart-with-side-card/chart-with-side-card.js +6 -6
  108. package/dist/esm/components/base/detailed-page-title/detailed-page-title.js +26 -27
  109. package/dist/esm/components/base/health-factor-block/health-factor-block.js +25 -25
  110. package/dist/esm/components/base/history-chart/history-chart.js +82 -41
  111. package/dist/esm/components/base/index.js +156 -141
  112. package/dist/esm/components/base/info-list/index.js +5 -4
  113. package/dist/esm/components/base/info-list/info-list.js +52 -27
  114. package/dist/esm/components/base/leverage-input/leverage-input.js +18 -20
  115. package/dist/esm/components/base/leverage-preset-chips/constants.js +7 -0
  116. package/dist/esm/components/base/leverage-preset-chips/index.js +6 -0
  117. package/dist/esm/components/base/leverage-preset-chips/leverage-preset-chips.js +39 -0
  118. package/dist/esm/components/base/liquidation-price-block/liquidation-price-block.js +33 -28
  119. package/dist/esm/components/base/manage-pane/constants.js +3 -2
  120. package/dist/esm/components/base/manage-pane/manage-pane.js +154 -113
  121. package/dist/esm/components/base/page-title/index.js +5 -4
  122. package/dist/esm/components/base/page-title/page-title.js +31 -23
  123. package/dist/esm/components/base/pool-apy-breakdown-card/pool-apy-breakdown-card.js +23 -30
  124. package/dist/esm/components/base/position-assets/constants.js +8 -0
  125. package/dist/esm/components/base/position-assets/index.js +6 -0
  126. package/dist/esm/components/base/position-assets/position-assets.js +73 -0
  127. package/dist/esm/components/base/review-button/constants.js +3 -2
  128. package/dist/esm/components/base/review-button/review-button.js +35 -22
  129. package/dist/esm/components/base/stat-badge/constants.js +1 -0
  130. package/dist/esm/components/base/stat-badge/stat-badge.js +91 -47
  131. package/dist/esm/components/base/strategy-apy-breakdown-card/constants.js +3 -2
  132. package/dist/esm/components/base/strategy-apy-breakdown-card/strategy-apy-breakdown-card.js +219 -31
  133. package/dist/esm/components/base/tabber/tabber.js +67 -64
  134. package/dist/esm/components/base/time-to-liquidation-block/time-to-liquidation-block.js +31 -31
  135. package/dist/esm/components/base/title-meta/constants.js +1 -0
  136. package/dist/esm/components/base/title-meta/title-meta.js +53 -33
  137. package/dist/esm/components/base/token-amount/token-amount.js +17 -16
  138. package/dist/esm/components/base/values/constants.js +1 -0
  139. package/dist/esm/components/base/values/index.js +18 -13
  140. package/dist/esm/components/base/values/points-value.js +30 -0
  141. package/dist/esm/components/base/values/position-status-badge.js +26 -0
  142. package/dist/esm/components/base/values/position-type-badge.js +7 -6
  143. package/dist/esm/components/base/values/scalars.js +55 -34
  144. package/dist/esm/components/base-table/base-table-line.js +117 -0
  145. package/dist/esm/components/base-table/base-table.js +110 -0
  146. package/dist/esm/components/base-table/constants.js +12 -0
  147. package/dist/esm/components/base-table/index.js +9 -0
  148. package/dist/esm/components/checkbox/checkbox-labeled.js +25 -20
  149. package/dist/esm/components/client-adapters/styled-rounded-image/styled-rounded-image.js +25 -20
  150. package/dist/esm/components/collateral-allocation-tooltip/allocation-wheel.js +71 -0
  151. package/dist/esm/components/collateral-allocation-tooltip/collateral-allocation-tooltip.js +102 -0
  152. package/dist/esm/components/collateral-allocation-tooltip/constants.js +12 -0
  153. package/dist/esm/components/collateral-allocation-tooltip/index.js +9 -0
  154. package/dist/esm/components/composites/index.js +31 -31
  155. package/dist/esm/components/composites/pool-assets-table/constants.js +9 -0
  156. package/dist/esm/components/composites/pool-assets-table/index.js +8 -6
  157. package/dist/esm/components/composites/pool-assets-table/pool-assets-table-head.js +52 -30
  158. package/dist/esm/components/composites/pool-assets-table/pool-assets-table-row.js +111 -77
  159. package/dist/esm/components/composites/pool-assets-table/pool-assets-table.js +44 -26
  160. package/dist/esm/components/composites/tx-preview/confirm/amounts/TransactionConfirmAmountField.js +50 -39
  161. package/dist/esm/components/composites/tx-preview/confirm/dialog/TransactionConfirmShell.js +114 -59
  162. package/dist/esm/components/composites/tx-preview/confirm/dialog/constants.js +10 -7
  163. package/dist/esm/components/composites/tx-preview/confirm/dialog/index.js +8 -10
  164. package/dist/esm/components/composites/tx-preview/confirm/dialog/transactionConfirmShellTypes.js +1 -0
  165. package/dist/esm/components/composites/tx-preview/confirm/index.js +24 -26
  166. package/dist/esm/components/composites/tx-preview/index.js +24 -26
  167. package/dist/esm/components/compound-apy/compound-apy.js +85 -80
  168. package/dist/esm/components/detailed-page-title/detailed-page-title-explorer-dropdown.js +50 -41
  169. package/dist/esm/components/filter/filter-chip.js +1 -0
  170. package/dist/esm/components/graph/default-config.js +20 -18
  171. package/dist/esm/components/graph/formatters.js +62 -52
  172. package/dist/esm/components/graph/graph-view.js +72 -88
  173. package/dist/esm/components/graph/graph.js +459 -458
  174. package/dist/esm/components/hf-indicator/hf-indicator.js +59 -0
  175. package/dist/esm/components/hf-indicator/index.js +4 -0
  176. package/dist/esm/components/index.js +739 -695
  177. package/dist/esm/components/infinite-scroll/index.js +4 -0
  178. package/dist/esm/components/infinite-scroll/infinite-scroll-wrapper.js +30 -0
  179. package/dist/esm/components/layout/app-footer/app-footer.js +20 -23
  180. package/dist/esm/components/name-cell/index.js +4 -0
  181. package/dist/esm/components/name-cell/name-cell.js +35 -0
  182. package/dist/esm/components/network-icon/index.js +4 -2
  183. package/dist/esm/components/network-icon/network-indicator.js +82 -0
  184. package/dist/esm/components/sdk-status-pill/constants.js +8 -0
  185. package/dist/esm/components/sdk-status-pill/index.js +8 -0
  186. package/dist/esm/components/sdk-status-pill/sdk-status-pill.js +59 -0
  187. package/dist/esm/components/sdk-status-pill/sdk-status.js +6 -0
  188. package/dist/esm/components/trading-view/trading-view.js +193 -155
  189. package/dist/esm/components/with-copy/with-copy.js +25 -20
  190. package/dist/esm/components/yield-breakdown-tooltip/yield-breakdown-tooltip.js +112 -169
  191. package/dist/esm/configs/tailwind-preset.js +13 -1
  192. package/dist/esm/hooks/index.js +20 -18
  193. package/dist/esm/hooks/use-observed-width-key.js +24 -0
  194. package/dist/esm/index.js +899 -842
  195. package/dist/esm/locale/en.json.js +29 -22
  196. package/dist/esm/utils/format-leverage.js +6 -0
  197. package/dist/esm/utils/format-money.js +59 -41
  198. package/dist/esm/utils/index.js +101 -92
  199. package/dist/esm/utils/leverage-presets.js +13 -0
  200. package/dist/esm/utils/strategy-apy.js +51 -0
  201. package/dist/globals.css +1 -1
  202. package/dist/types/components/assets-list-cell/assets-list-cell.d.ts +3 -0
  203. package/dist/types/components/badge/badge.d.ts +2 -1
  204. package/dist/types/components/badge/chip.d.ts +22 -0
  205. package/dist/types/components/badge/index.d.ts +1 -0
  206. package/dist/types/components/base/amount-input/amount-input.d.ts +3 -2
  207. package/dist/types/components/base/amount-input/token-select-panel.d.ts +4 -3
  208. package/dist/types/components/base/borrow-rate-block/borrow-rate-block.d.ts +10 -5
  209. package/dist/types/components/base/detailed-page-title/detailed-page-title.d.ts +1 -3
  210. package/dist/types/components/base/health-factor-block/health-factor-block.d.ts +6 -6
  211. package/dist/types/components/base/history-chart/history-chart.d.ts +32 -8
  212. package/dist/types/components/base/index.d.ts +2 -0
  213. package/dist/types/components/base/info-list/info-list.d.ts +7 -0
  214. package/dist/types/components/base/leverage-input/leverage-input.d.ts +1 -1
  215. package/dist/types/components/base/leverage-preset-chips/constants.d.ts +4 -0
  216. package/dist/types/components/base/leverage-preset-chips/index.d.ts +2 -0
  217. package/dist/types/components/base/leverage-preset-chips/leverage-preset-chips.d.ts +13 -0
  218. package/dist/types/components/base/liquidation-params-table/liquidation-params-table.d.ts +2 -2
  219. package/dist/types/components/base/liquidation-price-block/liquidation-price-block.d.ts +6 -4
  220. package/dist/types/components/base/manage-pane/constants.d.ts +1 -0
  221. package/dist/types/components/base/manage-pane/manage-pane.d.ts +3 -1
  222. package/dist/types/components/base/page-title/page-title.d.ts +12 -6
  223. package/dist/types/components/base/pool-apy-breakdown-card/pool-apy-breakdown-card.d.ts +4 -5
  224. package/dist/types/components/base/position-assets/constants.d.ts +5 -0
  225. package/dist/types/components/base/position-assets/index.d.ts +2 -0
  226. package/dist/types/components/base/position-assets/position-assets.d.ts +49 -0
  227. package/dist/types/components/base/review-button/constants.d.ts +1 -0
  228. package/dist/types/components/base/review-button/review-button.d.ts +17 -3
  229. package/dist/types/components/base/stat-badge/constants.d.ts +1 -0
  230. package/dist/types/components/base/stat-badge/stat-badge.d.ts +11 -1
  231. package/dist/types/components/base/strategy-apy-breakdown-card/constants.d.ts +1 -0
  232. package/dist/types/components/base/strategy-apy-breakdown-card/strategy-apy-breakdown-card.d.ts +18 -4
  233. package/dist/types/components/base/tabber/tabber.d.ts +2 -2
  234. package/dist/types/components/base/time-to-liquidation-block/time-to-liquidation-block.d.ts +5 -6
  235. package/dist/types/components/base/title-meta/constants.d.ts +1 -0
  236. package/dist/types/components/base/title-meta/title-meta.d.ts +9 -1
  237. package/dist/types/components/base/token-amount/token-amount.d.ts +8 -2
  238. package/dist/types/components/base/values/constants.d.ts +1 -0
  239. package/dist/types/components/base/values/index.d.ts +3 -1
  240. package/dist/types/components/base/values/points-value.d.ts +11 -0
  241. package/dist/types/components/base/values/position-short-label.d.ts +1 -1
  242. package/dist/types/components/base/values/position-status-badge.d.ts +7 -0
  243. package/dist/types/components/base/values/position-type-badge.d.ts +1 -1
  244. package/dist/types/components/base/values/scalars.d.ts +13 -0
  245. package/dist/types/components/base-table/base-table-line.d.ts +21 -0
  246. package/dist/types/components/base-table/base-table.d.ts +19 -0
  247. package/dist/types/components/base-table/constants.d.ts +8 -0
  248. package/dist/types/components/base-table/index.d.ts +3 -0
  249. package/dist/types/components/base-table/types.d.ts +37 -0
  250. package/dist/types/components/collateral-allocation-tooltip/allocation-wheel.d.ts +10 -0
  251. package/dist/types/components/collateral-allocation-tooltip/collateral-allocation-tooltip.d.ts +23 -0
  252. package/dist/types/components/collateral-allocation-tooltip/constants.d.ts +8 -0
  253. package/dist/types/components/collateral-allocation-tooltip/index.d.ts +3 -0
  254. package/dist/types/components/composites/pool-assets-table/constants.d.ts +6 -0
  255. package/dist/types/components/composites/pool-assets-table/index.d.ts +1 -0
  256. package/dist/types/components/composites/pool-assets-table/pool-assets-table-head.d.ts +1 -2
  257. package/dist/types/components/composites/pool-assets-table/pool-assets-table-row.d.ts +8 -8
  258. package/dist/types/components/composites/pool-assets-table/pool-assets-table.d.ts +7 -20
  259. package/dist/types/components/composites/pool-assets-table/types.d.ts +4 -12
  260. package/dist/types/components/composites/tx-preview/confirm/amounts/TransactionConfirmAmountField.d.ts +47 -14
  261. package/dist/types/components/composites/tx-preview/confirm/amounts/index.d.ts +1 -1
  262. package/dist/types/components/composites/tx-preview/confirm/dialog/TransactionConfirmShell.d.ts +23 -19
  263. package/dist/types/components/composites/tx-preview/confirm/dialog/index.d.ts +2 -2
  264. package/dist/types/components/composites/tx-preview/confirm/dialog/transactionConfirmPhase.d.ts +0 -3
  265. package/dist/types/components/composites/tx-preview/confirm/dialog/transactionConfirmShellTypes.d.ts +98 -0
  266. package/dist/types/components/compound-apy/compound-apy.d.ts +2 -2
  267. package/dist/types/components/graph/formatters.d.ts +6 -1
  268. package/dist/types/components/graph/graph-view.d.ts +1 -1
  269. package/dist/types/components/graph/graph.d.ts +4 -0
  270. package/dist/types/components/hf-indicator/hf-indicator.d.ts +17 -0
  271. package/dist/types/components/hf-indicator/index.d.ts +1 -0
  272. package/dist/types/components/index.d.ts +6 -1
  273. package/dist/types/components/infinite-scroll/index.d.ts +1 -0
  274. package/dist/types/components/infinite-scroll/infinite-scroll-wrapper.d.ts +11 -0
  275. package/dist/types/components/layout/app-footer/app-footer.d.ts +9 -15
  276. package/dist/types/components/name-cell/index.d.ts +1 -0
  277. package/dist/types/components/name-cell/name-cell.d.ts +13 -0
  278. package/dist/types/components/network-icon/index.d.ts +1 -0
  279. package/dist/types/components/network-icon/network-indicator.d.ts +23 -0
  280. package/dist/types/components/sdk-status-pill/constants.d.ts +5 -0
  281. package/dist/types/components/sdk-status-pill/index.d.ts +3 -0
  282. package/dist/types/components/sdk-status-pill/sdk-status-pill.d.ts +27 -0
  283. package/dist/types/components/sdk-status-pill/sdk-status.d.ts +11 -0
  284. package/dist/types/components/trading-view/trading-view.d.ts +14 -7
  285. package/dist/types/components/yield-breakdown-tooltip/yield-breakdown-tooltip.d.ts +8 -10
  286. package/dist/types/configs/tailwind-preset.d.ts +12 -0
  287. package/dist/types/hooks/index.d.ts +1 -0
  288. package/dist/types/hooks/use-observed-width-key.d.ts +8 -0
  289. package/dist/types/index.d.ts +7 -3
  290. package/dist/types/locale/en.json.d.ts +32 -22
  291. package/dist/types/types/index.d.ts +0 -1
  292. package/dist/types/utils/format-leverage.d.ts +5 -0
  293. package/dist/types/utils/format-money.d.ts +11 -5
  294. package/dist/types/utils/index.d.ts +4 -1
  295. package/dist/types/utils/leverage-presets.d.ts +7 -0
  296. package/dist/types/utils/strategy-apy.d.ts +40 -0
  297. package/package.json +6 -6
  298. package/src/styles/base.css +30 -0
  299. package/src/styles/theme.css +16 -0
  300. package/dist/cjs/components/block-sync-pill/block-sync-pill.cjs +0 -1
  301. package/dist/cjs/components/block-sync-pill/block-sync-status.cjs +0 -1
  302. package/dist/cjs/components/block-sync-pill/index.cjs +0 -1
  303. package/dist/cjs/components/composites/tx-preview/confirm/dialog/TransactionConfirmModalView.cjs +0 -1
  304. package/dist/cjs/components/composites/tx-preview/confirm/dialog/TransactionConfirmPageView.cjs +0 -1
  305. package/dist/esm/components/block-sync-pill/block-sync-pill.js +0 -206
  306. package/dist/esm/components/block-sync-pill/block-sync-status.js +0 -12
  307. package/dist/esm/components/block-sync-pill/index.js +0 -4
  308. package/dist/esm/components/composites/tx-preview/confirm/dialog/TransactionConfirmModalView.js +0 -176
  309. package/dist/esm/components/composites/tx-preview/confirm/dialog/TransactionConfirmPageView.js +0 -54
  310. package/dist/types/components/block-sync-pill/block-sync-pill.d.ts +0 -35
  311. package/dist/types/components/block-sync-pill/block-sync-status.d.ts +0 -29
  312. package/dist/types/components/block-sync-pill/index.d.ts +0 -1
  313. package/dist/types/components/composites/tx-preview/confirm/dialog/TransactionConfirmModalView.d.ts +0 -17
  314. package/dist/types/components/composites/tx-preview/confirm/dialog/TransactionConfirmPageView.d.ts +0 -16
  315. package/dist/types/types/footer.d.ts +0 -51
  316. /package/dist/cjs/{types/footer.cjs → components/base-table/types.cjs} +0 -0
  317. /package/dist/esm/{types/footer.js → components/base-table/types.js} +0 -0
@@ -6,6 +6,8 @@ declare const _default: {
6
6
  "errors.tooManyRequests": "Too many requests",
7
7
  "errors.incorrectAddress": "Incorrect address",
8
8
  "components.errorMessage.oops": "Oops...",
9
+ "components.networkIndicator.title": "Network",
10
+ "components.infiniteScrollWrapper.showMore": "Show more",
9
11
 
10
12
  "components.alertModal.ok": "Ok",
11
13
 
@@ -18,9 +20,9 @@ declare const _default: {
18
20
  "components.footer.built": "Built at ETHGlobal MarketMake hackathon.",
19
21
  "components.footer.version": "Version {value}",
20
22
 
21
- "components.blockSyncPill.syncError": ", sync error",
22
- "components.blockSyncPill.syncedAt": ", synced at {time}",
23
- "components.blockSyncPill.syncing": ", syncing…",
23
+ "components.sdkStatus.connecting": "Connecting…",
24
+ "components.sdkStatus.connected": "Connected",
25
+ "components.sdkStatus.disconnected": "Not connected",
24
26
 
25
27
  "components.creditAccountHistory.table.protocol": "Protocol",
26
28
  "components.creditAccountHistory.table.operation": "Operation",
@@ -84,21 +86,21 @@ declare const _default: {
84
86
  "components.apyParts.points": "{symbol} Incentive",
85
87
  "components.apyParts.points.condition.crossDeposit": "For cross-chain deposits made via Omni",
86
88
 
87
- "components.yieldBreakdown.title": "Yield Breakdown",
88
- "components.yieldBreakdown.atLeverage": "at {leverage}× leverage",
89
- "components.yieldBreakdown.baseYield": "Base Yield",
90
- "components.yieldBreakdown.incentiveYield": "Incentive Yield",
89
+ "components.yieldBreakdown.titleNetAtLeverage": "Net APY at {leverage}× Leverage",
90
+ "components.yieldBreakdown.collateralApy": "Collateral APY",
91
+ "components.yieldBreakdown.incentive": "Incentive",
91
92
  "components.yieldBreakdown.borrowRate": "Borrow Rate",
92
- "components.yieldBreakdown.baseRate": "Base Rate",
93
- "components.yieldBreakdown.additionalRate": "Additional Rate",
94
- "components.yieldBreakdown.netYield": "Net Yield",
93
+ "components.yieldBreakdown.programPoints": "{name} Points",
95
94
  "components.yieldBreakdown.points": "Points",
96
95
 
97
96
  "components.openCopyButtons.copy": "Copy to clipboard",
97
+ "components.openCopyButtons.explorer": "View in explorer",
98
98
 
99
- "components.poolAssetsTable.asset": "Asset",
99
+ "components.poolAssetsTable.asset": "Name",
100
100
  "components.poolAssetsTable.rate": "Effective rate",
101
- "components.poolAssetsTable.limits": "Limits Usage",
101
+ "components.poolAssetsTable.exposure": "Exposure",
102
+ "components.poolAssetsTable.cap": "Cap",
103
+ "components.poolAssetsTable.capUtilization": "Cap utilization",
102
104
  "components.poolAssetsTable.usage": "{amount} of {total}",
103
105
  "components.poolAssetsTable.head.name": "Credit Manager",
104
106
  "components.poolAssetsTable.head.currentDebt": "Current Debt",
@@ -198,28 +200,33 @@ declare const _default: {
198
200
  "components.historyChart.error": "Couldn't load chart data",
199
201
  "components.historyChart.empty": "No data",
200
202
 
201
- "components.positionTypeBadge.pool": "Lender",
203
+ "components.positionTypeBadge.pool": "LP",
202
204
  "components.positionTypeBadge.strategy": "Strategy",
203
205
  "components.positionTypeBadge.liquidation": "Liquidation",
204
206
 
207
+ "components.positionStatusBadge.active": "Active",
208
+ "components.positionStatusBadge.repaid": "Repaid",
209
+
205
210
  "components.titleMeta.unknownCurator": "Curator",
206
211
 
207
212
  "components.moreAccordion.more": "More details",
208
213
  "components.moreAccordion.less": "Less details",
209
214
 
210
215
  "components.poolApyBreakdownCard.title": "APY Breakdown",
211
- "components.poolApyBreakdownCard.apy1d": "APY 24H",
212
- "components.poolApyBreakdownCard.apy7d": "APY 7d",
213
- "components.poolApyBreakdownCard.apy30d": "APY 30d",
216
+ "components.poolApyBreakdownCard.organicApy": "Pool organic APY",
217
+ "components.poolApyBreakdownCard.incentiveApy": "Incentive APY",
214
218
 
215
- "components.strategyApyBreakdownCard.title": "APY Breakdown",
216
- "components.strategyApyBreakdownCard.formula": "How strategy APY is calculated: Collateral APY x Leverage - Base borrow rate x (Leverage - 1) - Additional borrow rate x Leverage x 1.05",
219
+ "components.strategyApyBreakdownCard.titleAtLeverage": "APY at {leverage}× Leverage",
217
220
  "components.strategyApyBreakdownCard.collateralApy": "Collateral APY",
218
- "components.strategyApyBreakdownCard.baseBorrowRate": "Base borrow rate",
219
- "components.strategyApyBreakdownCard.additionalBorrowRate": "Additional borrow rate",
221
+ "components.strategyApyBreakdownCard.incentiveApy": "Incentive APY",
222
+ "components.strategyApyBreakdownCard.borrowRate": "Borrow Rate",
223
+ "components.strategyApyBreakdownCard.quotaRate": "Quota Rate",
224
+ "components.strategyApyBreakdownCard.formula": "{leverage} × {base}",
225
+
226
+ "components.leveragePresetChips.label": "Leverage:",
220
227
 
221
228
  "components.liquidationParamsTable.lt": "Liquidation threshold",
222
- "components.liquidationParamsTable.penalty": "Liquidation penalty",
229
+ "components.liquidationParamsTable.penalty": "Liquidation discount",
223
230
  "components.liquidationParamsTable.premium": "Liquidation premium",
224
231
  "components.liquidationParamsTable.fee": "Liquidation fee",
225
232
 
@@ -228,7 +235,10 @@ declare const _default: {
228
235
  "components.borrowRateBlock.description": "Your borrow rate consists of the Base Rate plus the Quota Rates for every asset separately.",
229
236
  "components.borrowRateBlock.baseRate": "Base Rate for Debt",
230
237
  "components.borrowRateBlock.normalization": "Rates normalization",
231
- "components.borrowRateBlock.normalization.tip": "Borrowers pay {quota} and {utilization}, which have a different base. Therefore, the total borrow rate value is normalized by Account value or Debt amount."
238
+ "components.borrowRateBlock.normalization.tip": "Borrowers pay {quota} and {utilization}, which have a different base. Therefore, the total borrow rate value is normalized by Account value or Debt amount.",
239
+
240
+ "components.transactionConfirm.previewLoading": "Parsing transaction…",
241
+ "components.transactionConfirm.previewErrorTitle": "Preview error"
232
242
  }
233
243
  ;
234
244
 
@@ -1,4 +1,3 @@
1
1
  export type * from './filter';
2
- export type * from './footer';
3
2
  export type * from './graph';
4
3
  export type * from './range-item';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Display leverage with two decimal places, e.g. `5.79` for `5.7857…`.
3
+ * The suffix (`x`) / prefix (`×`) stays at the call site.
4
+ */
5
+ export declare function formatLeverage(value: number): string;
@@ -14,21 +14,27 @@
14
14
  */
15
15
  export declare function formatMoney(money: number | bigint, precision?: number): string;
16
16
  /**
17
- * Formats a percentage amount with exponential notation for very large values
17
+ * Formats a percentage with compact suffixes (`K` / `M` / `B` / `T`) instead
18
+ * of scientific notation. Input is already in percent form (`14000` → `14K%`).
19
+ */
20
+ export declare function formatCompactPercent(value: number, decimals?: number): string;
21
+ /**
22
+ * Formats a percentage amount. Values of 1,000% and above use compact
23
+ * suffixes (`14K`) instead of exponential notation.
18
24
  *
19
25
  * @param value - The percentage value (already in percent form, e.g., 2.81 for 2.81%)
20
26
  * @param decimals - Number of decimal places (default: 2)
21
- * @param allowExponential - Whether to allow exponential notation for large values (default: true)
27
+ * @param compact - Whether to compact large values (default: true)
22
28
  * @returns Formatted number (without % sign)
23
29
  *
24
30
  * @example
25
31
  * ```ts
26
32
  * formatPercentAmount(2.81, 2) // "2.81"
27
- * formatPercentAmount(15000, 2) // "1.50e+4"
28
- * formatPercentAmount(15000, 2, false) // "15000.00"
33
+ * formatPercentAmount(14000, 2) // "14K"
34
+ * formatPercentAmount(14000, 2, false) // "14000.00"
29
35
  * ```
30
36
  */
31
- export declare function formatPercentAmount(value: number, decimals: number, allowExponential?: boolean): string | number;
37
+ export declare function formatPercentAmount(value: number, decimals: number, compact?: boolean): string | number;
32
38
  /**
33
39
  * Formats a percentage value that is already in percent form
34
40
  * Use this when your value is already 2.81 (meaning 2.81%), not 0.0281
@@ -9,10 +9,12 @@ export * from './colors';
9
9
  export * from './copy';
10
10
  export * from './format';
11
11
  export * from './format-asset-amount';
12
- export { formatMoney, formatMoneyAmount, formatPercentAmount, percentageTemplate, percentTemplate, } from './format-money';
12
+ export * from './format-leverage';
13
+ export { formatCompactPercent, formatMoney, formatMoneyAmount, formatPercentAmount, percentageTemplate, percentTemplate, } from './format-money';
13
14
  export { FORMAT_CONSTANTS, type FormatNumberOptions, formatNumberWithSuffix, formatPrice, getAdaptiveDecimals, isBelowDisplayThreshold, isEffectivelyZero, toSignificantDigits, } from './format-number';
14
15
  export * from './format-slippage';
15
16
  export * from './interface';
17
+ export * from './leverage-presets';
16
18
  export * from './loading';
17
19
  export * from './math';
18
20
  export * from './network-icons';
@@ -25,6 +27,7 @@ export * from './search-in-token';
25
27
  export * from './short-sha';
26
28
  export * from './shorten-string';
27
29
  export type { SortField as UtilsSortField, SortType } from './sort';
30
+ export * from './strategy-apy';
28
31
  export * from './templates';
29
32
  export * from './token-icon-source';
30
33
  export * from './ttl';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Leverage chips beside the strategy yield chart: 30% and 70% of the
3
+ * (1 → max) span, rounded to 0.5, plus max itself.
4
+ */
5
+ export declare function leveragePresets(max: number): number[];
6
+ /** Chip / subtitle leverage without trailing zeros: `5`, `5.5`, `9.54`. */
7
+ export declare function formatChipLeverage(leverage: number): string;
@@ -0,0 +1,40 @@
1
+ import { QuotaMode, StrategyRateInputs } from '@gearbox-protocol/sdk';
2
+ import { Bps, Leverage } from '@gearbox-protocol/sdk/model';
3
+ /**
4
+ * The rates a strategy's cost of credit is made of — the SDK's own
5
+ * `StrategyRateInputs`, spelled the same way so a caller hands over the fields
6
+ * of a `StrategyOpportunity` rather than a translation of them.
7
+ *
8
+ * Optional only because a card may be rendered before its strategy has loaded;
9
+ * the SDK requires all three, and so does the arithmetic.
10
+ */
11
+ export type StrategyApyRates = Readonly<Partial<StrategyRateInputs>> & {
12
+ /** How much quota the position quotes; the SDK's `"safe"` unless told. */
13
+ readonly quotaMode?: QuotaMode;
14
+ };
15
+ /**
16
+ * Borrow and quota cost of a strategy at one leverage, split so each can have
17
+ * its own row.
18
+ *
19
+ * `totalCost` comes from `calcEffectiveBorrowApy` rather than from adding the
20
+ * two parts up here: the SDK rounds once, at the end, and a card whose rows
21
+ * sum to something other than its own total is the bug this replaced.
22
+ */
23
+ export declare function strategyApyPartsAtLeverage({ leverage, borrowApy, quotaRate, liquidationThreshold, quotaMode, }: StrategyApyRates & {
24
+ readonly leverage: Leverage;
25
+ }): {
26
+ readonly debtMultiplier: number;
27
+ readonly quotaMultiplier: number;
28
+ readonly borrowCost: Bps;
29
+ readonly quotaRate: Bps;
30
+ readonly quotaCost: Bps;
31
+ readonly totalCost: Bps;
32
+ };
33
+ /**
34
+ * Net strategy APY at one leverage, straight from the SDK — the same call the
35
+ * app makes for the badge beside this card, so the two cannot disagree.
36
+ */
37
+ export declare function strategyNetApyAtLeverage({ collateralApy, leverage, borrowApy, quotaRate, liquidationThreshold, quotaMode, }: StrategyApyRates & {
38
+ readonly collateralApy: Bps;
39
+ readonly leverage: Leverage;
40
+ }): Bps;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gearbox-protocol/ui-kit",
3
- "version": "4.0.0-next.2",
3
+ "version": "4.0.0-next.20",
4
4
  "description": "Internal UI components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -85,18 +85,18 @@
85
85
  "tailwindcss-animate": "^1.0.7"
86
86
  },
87
87
  "peerDependencies": {
88
- "axios": "^1.0.0",
89
88
  "@gearbox-protocol/sdk": "*",
90
89
  "@tanstack/react-query": "^5.64.1",
91
90
  "@types/react": "^18 || ^19",
92
91
  "@types/react-dom": "^18 || ^19",
92
+ "axios": "^1.0.0",
93
93
  "react": "^18 || ^19",
94
94
  "react-dom": "^18 || ^19",
95
- "react-intl": "^6.0.0 || ^7.0.0",
95
+ "react-intl": "^6.0.0 || ^7.0.0 || ^10.0.0",
96
96
  "react-router-dom": "^6.0.0 || ^7.0.0",
97
97
  "sonner": "^2.0.0",
98
98
  "viem": "^2.0.0",
99
- "wagmi": "^2.0.0"
99
+ "wagmi": "^2.0.0 || ^3.0.0"
100
100
  },
101
101
  "peerDependenciesMeta": {
102
102
  "react-intl": {
@@ -110,13 +110,12 @@
110
110
  }
111
111
  },
112
112
  "devDependencies": {
113
- "axios": "^1.12.2",
114
113
  "@biomejs/biome": "^2.2.4",
115
114
  "@chromatic-com/storybook": "^4.1.3",
116
115
  "@commitlint/cli": "^20.1.0",
117
116
  "@commitlint/config-conventional": "^20.0.0",
118
117
  "@gearbox-protocol/biome-config": "^1.0.2",
119
- "@gearbox-protocol/sdk": "15.1.0-next.5",
118
+ "@gearbox-protocol/sdk": "16.0.0-next.1",
120
119
  "@rollup/plugin-typescript": "^12.3.0",
121
120
  "@storybook/addon-a11y": "^10.0.8",
122
121
  "@storybook/addon-docs": "^10.0.8",
@@ -134,6 +133,7 @@
134
133
  "@vitest/browser-playwright": "^4.0.14",
135
134
  "@vitest/coverage-v8": "^4.0.14",
136
135
  "autoprefixer": "^10.4.21",
136
+ "axios": "^1.12.2",
137
137
  "browserslist": "^4.28.0",
138
138
  "buffer": "^6.0.3",
139
139
  "cross-spawn": "^7.0.6",
@@ -71,6 +71,8 @@ html.dark {
71
71
  --success-foreground: 0 0% 0%;
72
72
  --success-hover: 136.58 100% 85.1%;
73
73
  --warning: 38 95% 45%;
74
+ --info: 214 80% 46%;
75
+ --info-foreground: 0 0% 100%;
74
76
  --liquidation: 274 67% 48%;
75
77
  --liquidation-line: 38 92% 50%;
76
78
  --input: 225 10% 88%;
@@ -93,6 +95,19 @@ html.dark {
93
95
  --white-foreground: 240 2.56% 7.65%;
94
96
  --black: 0 0% 0%;
95
97
  --border: 225 10% 88%;
98
+ --divider: 225 10% 88%;
99
+ --chart-1: 18 83.05% 65.29%;
100
+ --chart-2: 188 62.26% 58.43%;
101
+ --chart-3: 326 73.71% 65.69%;
102
+ --chart-4: 130 44.33% 61.96%;
103
+ --chart-5: 257 88.96% 68.04%;
104
+ --chart-6: 40 72.04% 63.53%;
105
+ --chart-7: 212 92.43% 63.73%;
106
+ --chart-8: 347 78.53% 65.29%;
107
+ --chart-9: 167 44.1% 55.1%;
108
+ --chart-10: 288 64.32% 63.73%;
109
+ --chart-11: 76 57.14% 61.57%;
110
+ --chart-12: 235 89.54% 70%;
96
111
  }
97
112
 
98
113
  .dark {
@@ -119,6 +134,8 @@ html.dark {
119
134
  --success-hover: 136.58 100% 85.1%;
120
135
  --destructive-foreground: 0 0% 100%;
121
136
  --warning: 43.12 100% 68.63%;
137
+ --info: 215 88% 67%;
138
+ --info-foreground: 0 0% 100%;
122
139
  --liquidation: 277.22 74.53% 58.43%;
123
140
  --liquidation-line: 38 92% 50%;
124
141
  --input: 225 6% 19%;
@@ -140,6 +157,19 @@ html.dark {
140
157
  --white-foreground: 240 2.56% 7.65%;
141
158
  --black: 0 0% 0%;
142
159
  --border: 0 0% 100% / 0.07;
160
+ --divider: 218 8% 19%;
161
+ --chart-1: 18 83.05% 65.29%;
162
+ --chart-2: 188 62.26% 58.43%;
163
+ --chart-3: 326 73.71% 65.69%;
164
+ --chart-4: 130 44.33% 61.96%;
165
+ --chart-5: 257 88.96% 68.04%;
166
+ --chart-6: 40 72.04% 63.53%;
167
+ --chart-7: 212 92.43% 63.73%;
168
+ --chart-8: 347 78.53% 65.29%;
169
+ --chart-9: 167 44.1% 55.1%;
170
+ --chart-10: 288 64.32% 63.73%;
171
+ --chart-11: 76 57.14% 61.57%;
172
+ --chart-12: 235 89.54% 70%;
143
173
  }
144
174
  }
145
175
 
@@ -48,9 +48,12 @@
48
48
  --color-success-foreground: hsl(var(--success-foreground));
49
49
  --color-success-hover: hsl(var(--success-hover));
50
50
  --color-warning: hsl(var(--warning));
51
+ --color-info: hsl(var(--info));
52
+ --color-info-foreground: hsl(var(--info-foreground));
51
53
  --color-liquidation: hsl(var(--liquidation));
52
54
  --color-liquidation-line: hsl(var(--liquidation-line));
53
55
  --color-border: hsl(var(--border));
56
+ --color-divider: hsl(var(--divider));
54
57
  --color-input: hsl(var(--input));
55
58
  --color-ring: hsl(var(--ring));
56
59
  --color-text-secondary: hsl(var(--text-secondary));
@@ -74,6 +77,19 @@
74
77
  --color-additional-success: hsl(var(--success));
75
78
  --color-additional-warning: hsl(var(--warning));
76
79
  --color-additional-alert: hsl(var(--destructive));
80
+ --color-additional-info: hsl(var(--info));
81
+ --color-chart-1: hsl(var(--chart-1));
82
+ --color-chart-2: hsl(var(--chart-2));
83
+ --color-chart-3: hsl(var(--chart-3));
84
+ --color-chart-4: hsl(var(--chart-4));
85
+ --color-chart-5: hsl(var(--chart-5));
86
+ --color-chart-6: hsl(var(--chart-6));
87
+ --color-chart-7: hsl(var(--chart-7));
88
+ --color-chart-8: hsl(var(--chart-8));
89
+ --color-chart-9: hsl(var(--chart-9));
90
+ --color-chart-10: hsl(var(--chart-10));
91
+ --color-chart-11: hsl(var(--chart-11));
92
+ --color-chart-12: hsl(var(--chart-12));
77
93
 
78
94
  --radius-lg: var(--radius);
79
95
  --radius-md: calc(var(--radius) - 2px);
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("react"),E=require("../tooltip/simple-tooltip.cjs");require("../tooltip/tooltip.cjs");const M=require("../typed-intl/index.cjs"),g=require("../../utils/cn.cjs");require("../accordion/accordion.cjs");require("../alert-badge/alert-badge.cjs");require("../alert-dialog/alert-dialog.cjs");require("../alert-modal/alert-modal.cjs");require("@gearbox-protocol/static");require("../buttons/back-button/back-button.cjs");require("../buttons/button/button.cjs");require("../buttons/copy-button/copy-button.cjs");require("../buttons/external-button/external-button.cjs");require("../buttons/filter-button/filter-button.cjs");require("../buttons/navigation-button/navigation-button.cjs");require("@gearbox-protocol/sdk");require("sonner");require("@gearbox-protocol/sdk/common-utils");require("luxon");require("../../utils/z-index.cjs");require("../buttons/tab-button/tab-button.cjs");require("../token-icon/token-icon.cjs");require("../badge/badge.cjs");require("../base/amount-input/amount-input.cjs");require("../confirm-menu/confirm-menu.cjs");require("react-intl");require("../table/grid-table.cjs");require("../skeleton/skeleton.cjs");require("../table/table.cjs");require("../token-symbol/token-symbol.cjs");require("../simple-accordion/simple-accordion.cjs");require("../tip-card/tip-card.cjs");require("../typography/typography.cjs");require("../vertical-indicator/vertical-indicator.cjs");require("../points-icon/points-icon.cjs");require("@fortawesome/free-solid-svg-icons");require("../icons/fa-icon.cjs");require("../detailed-page-title/detailed-page-title-copy-button.cjs");require("../detailed-page-title/detailed-page-title-explorer-dropdown.cjs");require("../base/details-view/detail-aside/detail-aside-scope.cjs");require("../layout/main-aside-layout/main-aside-layout.cjs");require("../base/details-view/details-view.cjs");require("../fadeout-loading/fadeout-loading.cjs");require("../health-factor/health-factor.cjs");require("../checkbox/checkbox.cjs");require("../checkbox/checkbox-labeled.cjs");require("../select/select.cjs");require("../breakpoint-provider.cjs");require("lightweight-charts");require("../graph/formatters.cjs");require("../graph/graph-view.cjs");require("../base/info-portal/info-portal.cjs");require("../edit-input/edit-input.cjs");require("../slider/slider.cjs");require("../slider/slider-context.cjs");require("../text-button/text-button.cjs");require("../with-title/with-title.cjs");require("../status-elements/status-elements.cjs");require("react-router-dom");require("../client-adapters/styled-dialog-container/styled-dialog-container.cjs");require("../simple-dropdown/simple-dropdown.cjs");require("../simple-dropdown/simple-dropdown-menu-item.cjs");require("../help-tip/help-tip.cjs");require("../base/tabber/tabber.cjs");require("../link/link.cjs");require("../rounded-image/rounded-image.cjs");require("../base-link/base-link.cjs");require("../navigation-context/navigation-context.cjs");require("../cards/card/card.cjs");require("../checkbox-item/checkbox-item.cjs");require("../client-adapters/styled-button/styled-button.cjs");require("../client-adapters/styled-rounded-image/styled-rounded-image.cjs");require("../composites/tx-preview/confirm/amounts/TransactionConfirmAmountField.cjs");require("../composites/tx-preview/confirm/dialog/constants.cjs");require("../modal/modal.cjs");require("../dialog/dialog-container.cjs");require("../spinner-loader/spinner-loader.cjs");require("../detailed-apy/detailed-apy.cjs");require("@radix-ui/react-dialog");require("../dialog/dialog-content.cjs");require("../dialog/dialog-description.cjs");require("../dialog/dialog-footer.cjs");require("../dialog/dialog-header.cjs");require("../dialog/dialog-title.cjs");require("../dialog/dialog-modal-container.cjs");require("../dialog/dialog-overlay.cjs");require("viem");require("../input/input.cjs");require("../label/label.cjs");require("../dropdown-menu/dropdown-menu.cjs");require("../dropdown-menu/dropdown-menu-checkbox-item.cjs");require("../dropdown-menu/dropdown-menu-content.cjs");require("../dropdown-menu/dropdown-menu-item.cjs");require("../dropdown-menu/dropdown-menu-label.cjs");require("../dropdown-menu/dropdown-menu-radio-item.cjs");require("../dropdown-menu/dropdown-menu-separator.cjs");require("../dropdown-menu/dropdown-menu-shortcut.cjs");require("../dropdown-menu/dropdown-menu-sub-content.cjs");require("../dropdown-menu/dropdown-menu-sub-trigger.cjs");require("../filter/filter-block.cjs");require("../filter/filter-checkbox-item.cjs");require("../filter/filter-chip.cjs");require("../filter/filter-chips.cjs");require("../filter/filter-dropdown-item.cjs");require("../filter/filter-group.cjs");require("../filter/filter-label.cjs");require("../search-line/search-line.cjs");require("../tabs/tabs.cjs");require("../filter/filter-modal-item.cjs");require("../filter/filter-radio-item.cjs");require("../filter/filter-separator.cjs");require("../filter/variants.cjs");require("../icon-button/icon-button.cjs");require("../layout/app-footer/app-footer.cjs");require("../layout/app-header/app-header.cjs");require("../layout/col/col.cjs");require("../layout/container/container.cjs");require("../layout/grid/grid.cjs");require("../layout/layout/layout.cjs");require("../legal-agreement/legal-agreement-theme.cjs");require("../loader/loader.cjs");require("../loading/loading.cjs");require("../loading-bar/loading-bar.cjs");require("../segmented-control/segmented-control.cjs");require("../separate-line/separate-line.cjs");require("../spinner/spinner.cjs");require("../split-list/split-list.cjs");const R=require("../status-dot/status-dot.cjs");require("../textarea/textarea.cjs");require("../theme-provider.cjs");const U=require("./block-sync-status.cjs"),$=300*1e3,F=2.5;function O({blockByChain:n,explorerAddresses:y,networkById:f,syncIntervalMs:b=$,staleMultiplier:j=F,statusLabel:T="Status",className:_}){const{formatMessage:s}=M.useIntlTyped(),[c,k]=o.useState(Date.now());o.useEffect(()=>{const t=()=>{k(Date.now())},r=window.setInterval(t,1e3);return()=>{clearInterval(r)}},[]);const l=b*j,{state:u,isSyncing:h}=o.useMemo(()=>U.getBlockSyncStatus({blockByChain:n,now:c,staleAfterMs:l}),[n,c,l]),v=u==="error"?"alert":u==="loading"?"default":"success",L=u==="loading"||u==="synced"&&h,a=()=>e.jsxs("span",{className:g.cn("inline-flex items-center gap-1.5 rounded-md border border-border px-2 py-1 text-xs",u==="error"?"text-destructive":"text-muted-foreground",_),children:[e.jsx(R.StatusDot,{variant:v,size:"xs",pulse:L}),T]}),d=(()=>{if(!n)return null;const t=Object.entries(n).filter(r=>!!r[1]);return t.length===0?null:e.jsx("div",{className:"flex flex-col text-left text-xs",children:t.map(([r,N],P)=>{const{lastSyncBlock:p,error:w}=N,q=p?.block||0n,m=p?.localTimestamp,i=y[Number(r)],x=typeof i=="string"?i:i&&typeof i=="object"&&"url"in i?i.url:void 0,D=f[Number(r)]||"Unknown",S=`[${q.toString()}]`,I=P===t.length-1,A=q>0n&&!!m;return e.jsxs("div",{className:g.cn(!I&&"mb-2"),children:[e.jsxs("span",{children:[D," "]}),x&&q>0?e.jsx("a",{href:`${x}/block/${q}`,target:"_blank",rel:"noopener noreferrer",className:"underline hover:text-foreground",children:S}):e.jsx("span",{children:S}),w?e.jsx("span",{className:"text-destructive",children:s({messageId:"components.blockSyncPill.syncError"})}):A?e.jsx("span",{children:s({messageId:"components.blockSyncPill.syncedAt"},{time:new Date(m).toLocaleTimeString()})}):e.jsx("span",{children:s({messageId:"components.blockSyncPill.syncing"})})]},r)})})})();return d?e.jsx(E.SimpleTooltip,{title:a(),children:d}):e.jsx("div",{className:"select-none",children:a()})}exports.BlockSyncPill=O;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function m({blockByChain:l,now:o,staleAfterMs:a}){const s=l?Object.values(l).filter(t=>!!t):[],i=s.some(t=>!!t.error),r=s.some(t=>!!t.loading),n=s.filter(t=>t.lastSyncBlock.block>0n&&t.lastSyncBlock.localTimestamp).map(t=>t.lastSyncBlock.localTimestamp),c=n.length?Math.min(...n):0,S=c>0&&o-c>a;let e;return i||S?e="error":c===0?e="loading":e="synced",{state:e,isSyncing:r}}exports.getBlockSyncStatus=m;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./block-sync-pill.cjs");exports.BlockSyncPill=l.BlockSyncPill;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");require("../../../../accordion/accordion.cjs");require("../../../../alert-badge/alert-badge.cjs");require("../../../../alert-dialog/alert-dialog.cjs");require("../../../../alert-modal/alert-modal.cjs");require("@gearbox-protocol/static");require("react");require("../../../../buttons/back-button/back-button.cjs");require("../../../../buttons/button/button.cjs");require("../../../../buttons/copy-button/copy-button.cjs");require("../../../../buttons/external-button/external-button.cjs");require("../../../../buttons/filter-button/filter-button.cjs");require("../../../../buttons/navigation-button/navigation-button.cjs");require("@gearbox-protocol/sdk");const m=require("../../../../../utils/cn.cjs");require("sonner");require("@gearbox-protocol/sdk/common-utils");require("luxon");require("../../../../../utils/z-index.cjs");require("../../../../buttons/tab-button/tab-button.cjs");require("../../../../token-icon/token-icon.cjs");require("../../../../tooltip/simple-tooltip.cjs");require("../../../../tooltip/tooltip.cjs");require("../../../../badge/badge.cjs");require("../../../../base/amount-input/amount-input.cjs");const _=require("../../../../confirm-menu/confirm-menu.cjs");require("react-intl");require("../../../../table/grid-table.cjs");require("../../../../skeleton/skeleton.cjs");require("../../../../table/table.cjs");require("../../../../token-symbol/token-symbol.cjs");require("../../../../simple-accordion/simple-accordion.cjs");require("../../../../tip-card/tip-card.cjs");require("../../../../typography/typography.cjs");require("../../../../vertical-indicator/vertical-indicator.cjs");require("../../../../points-icon/points-icon.cjs");require("@fortawesome/free-solid-svg-icons");require("../../../../icons/fa-icon.cjs");require("../../../../detailed-page-title/detailed-page-title-copy-button.cjs");require("../../../../detailed-page-title/detailed-page-title-explorer-dropdown.cjs");require("../../../../base/details-view/detail-aside/detail-aside-scope.cjs");require("../../../../layout/main-aside-layout/main-aside-layout.cjs");require("../../../../base/details-view/details-view.cjs");require("../../../../fadeout-loading/fadeout-loading.cjs");require("../../../../health-factor/health-factor.cjs");require("../../../../checkbox/checkbox.cjs");require("../../../../checkbox/checkbox-labeled.cjs");require("../../../../select/select.cjs");require("../../../../breakpoint-provider.cjs");require("lightweight-charts");require("../../../../graph/formatters.cjs");require("../../../../graph/graph-view.cjs");require("../../../../base/info-portal/info-portal.cjs");require("../../../../edit-input/edit-input.cjs");require("../../../../slider/slider.cjs");require("../../../../slider/slider-context.cjs");require("../../../../text-button/text-button.cjs");require("../../../../with-title/with-title.cjs");require("../../../../status-elements/status-elements.cjs");require("react-router-dom");const f=require("../../../../client-adapters/styled-dialog-container/styled-dialog-container.cjs");require("../../../../simple-dropdown/simple-dropdown.cjs");require("../../../../simple-dropdown/simple-dropdown-menu-item.cjs");require("../../../../help-tip/help-tip.cjs");require("../../../../base/tabber/tabber.cjs");require("../../../../link/link.cjs");require("../../../../rounded-image/rounded-image.cjs");require("../../../../base-link/base-link.cjs");require("../../../../navigation-context/navigation-context.cjs");require("../../../../cards/card/card.cjs");require("../../../../checkbox-item/checkbox-item.cjs");require("../../../../client-adapters/styled-button/styled-button.cjs");require("../../../../client-adapters/styled-rounded-image/styled-rounded-image.cjs");require("../amounts/TransactionConfirmAmountField.cjs");const i=require("./constants.cjs"),C=require("./TransactionConfirmShell.cjs");require("../../../../spinner-loader/spinner-loader.cjs");require("../../../../detailed-apy/detailed-apy.cjs");const g=require("../../../../modal/modal.cjs");require("@radix-ui/react-dialog");require("../../../../dialog/dialog-container.cjs");require("../../../../dialog/dialog-content.cjs");require("../../../../dialog/dialog-description.cjs");require("../../../../dialog/dialog-footer.cjs");require("../../../../dialog/dialog-header.cjs");require("../../../../dialog/dialog-title.cjs");require("../../../../dialog/dialog-modal-container.cjs");require("../../../../dialog/dialog-overlay.cjs");require("viem");require("../../../../input/input.cjs");require("../../../../label/label.cjs");require("../../../../dropdown-menu/dropdown-menu.cjs");require("../../../../dropdown-menu/dropdown-menu-checkbox-item.cjs");require("../../../../dropdown-menu/dropdown-menu-content.cjs");require("../../../../dropdown-menu/dropdown-menu-item.cjs");require("../../../../dropdown-menu/dropdown-menu-label.cjs");require("../../../../dropdown-menu/dropdown-menu-radio-item.cjs");require("../../../../dropdown-menu/dropdown-menu-separator.cjs");require("../../../../dropdown-menu/dropdown-menu-shortcut.cjs");require("../../../../dropdown-menu/dropdown-menu-sub-content.cjs");require("../../../../dropdown-menu/dropdown-menu-sub-trigger.cjs");require("../../../../filter/filter-block.cjs");require("../../../../filter/filter-checkbox-item.cjs");require("../../../../filter/filter-chip.cjs");require("../../../../filter/filter-chips.cjs");require("../../../../filter/filter-dropdown-item.cjs");require("../../../../filter/filter-group.cjs");require("../../../../filter/filter-label.cjs");require("../../../../search-line/search-line.cjs");require("../../../../tabs/tabs.cjs");require("../../../../filter/filter-modal-item.cjs");require("../../../../filter/filter-radio-item.cjs");require("../../../../filter/filter-separator.cjs");require("../../../../filter/variants.cjs");require("../../../../icon-button/icon-button.cjs");require("../../../../layout/app-footer/app-footer.cjs");require("../../../../layout/app-header/app-header.cjs");require("../../../../layout/col/col.cjs");require("../../../../layout/container/container.cjs");require("../../../../layout/grid/grid.cjs");require("../../../../layout/layout/layout.cjs");require("../../../../legal-agreement/legal-agreement-theme.cjs");require("../../../../loader/loader.cjs");require("../../../../loading/loading.cjs");require("../../../../loading-bar/loading-bar.cjs");require("../../../../segmented-control/segmented-control.cjs");require("../../../../separate-line/separate-line.cjs");require("../../../../spinner/spinner.cjs");require("../../../../split-list/split-list.cjs");require("../../../../status-dot/status-dot.cjs");require("../../../../textarea/textarea.cjs");require("../../../../theme-provider.cjs");function M({open:u,onClose:q,title:n,titleAddon:o,hideTitleAddonOnResult:t=!0,containerClassName:a,containerTestId:s,shellTestId:c,phase:r="confirm",...l}){if(!u)return null;const d=r!=="confirm"&&r!=="awaiting_receipt"&&t?void 0:o;return e.jsx(g.Modal,{show:u,onClickOutside:q,zIndexLayer:"MODAL",children:e.jsx(f.StyledDialogContainer,{className:m.cn(i.transactionConfirmDialogShellVariants(),a??i.transactionConfirmModalContainerVariants()),"data-testid":s,children:e.jsx(C.TransactionConfirmShell,{...l,header:e.jsx(_.ConfirmMenu,{title:n,titleAddon:d,onClose:q}),"data-testid":c??i.TransactionConfirmDialogTest.root,phase:r})})})}exports.TransactionConfirmModalView=M;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),d=require("../../../../client-adapters/styled-dialog-container/styled-dialog-container.cjs"),_=require("../../../../confirm-menu/confirm-menu.cjs");require("react");require("@gearbox-protocol/sdk");const f=require("../../../../../utils/cn.cjs");require("sonner");require("@gearbox-protocol/sdk/common-utils");require("luxon");require("../../../../../utils/z-index.cjs");const i=require("./constants.cjs"),g=require("./TransactionConfirmShell.cjs");function q({onClose:r,title:o,titleAddon:t,hideTitleAddonOnResult:s=!0,containerClassName:a,containerTestId:c,shellTestId:l,phase:e="confirm",...u}){const m=e!=="confirm"&&e!=="awaiting_receipt"&&s?void 0:t;return n.jsx(d.StyledDialogContainer,{className:f.cn(i.transactionConfirmDialogShellVariants(),a),"data-testid":c,children:n.jsx(g.TransactionConfirmShell,{...u,header:n.jsx(_.ConfirmMenu,{title:o,titleAddon:m,onClose:r}),"data-testid":l??i.TransactionConfirmDialogTest.root,phase:e})})}exports.TransactionConfirmPageView=q;
@@ -1,206 +0,0 @@
1
- import { jsx as t, jsxs as s } from "react/jsx-runtime";
2
- import { useState as U, useEffect as j, useMemo as R } from "react";
3
- import { SimpleTooltip as $ } from "../tooltip/simple-tooltip.js";
4
- import "../tooltip/tooltip.js";
5
- import { useIntlTyped as F } from "../typed-intl/index.js";
6
- import { cn as S } from "../../utils/cn.js";
7
- import "../accordion/accordion.js";
8
- import "../alert-badge/alert-badge.js";
9
- import "../alert-dialog/alert-dialog.js";
10
- import "../alert-modal/alert-modal.js";
11
- import "@gearbox-protocol/static";
12
- import "../buttons/back-button/back-button.js";
13
- import "../buttons/button/button.js";
14
- import "../buttons/copy-button/copy-button.js";
15
- import "../buttons/external-button/external-button.js";
16
- import "../buttons/filter-button/filter-button.js";
17
- import "../buttons/navigation-button/navigation-button.js";
18
- import "@gearbox-protocol/sdk";
19
- import "sonner";
20
- import "@gearbox-protocol/sdk/common-utils";
21
- import "luxon";
22
- import "../../utils/z-index.js";
23
- import "../buttons/tab-button/tab-button.js";
24
- import "../token-icon/token-icon.js";
25
- import "../badge/badge.js";
26
- import "../base/amount-input/amount-input.js";
27
- import "../confirm-menu/confirm-menu.js";
28
- import "react-intl";
29
- import "../table/grid-table.js";
30
- import "../skeleton/skeleton.js";
31
- import "../table/table.js";
32
- import "../token-symbol/token-symbol.js";
33
- import "../simple-accordion/simple-accordion.js";
34
- import "../tip-card/tip-card.js";
35
- import "../typography/typography.js";
36
- import "../vertical-indicator/vertical-indicator.js";
37
- import "../points-icon/points-icon.js";
38
- import "@fortawesome/free-solid-svg-icons";
39
- import "../icons/fa-icon.js";
40
- import "../detailed-page-title/detailed-page-title-copy-button.js";
41
- import "../detailed-page-title/detailed-page-title-explorer-dropdown.js";
42
- import "../base/details-view/detail-aside/detail-aside-scope.js";
43
- import "../layout/main-aside-layout/main-aside-layout.js";
44
- import "../base/details-view/details-view.js";
45
- import "../fadeout-loading/fadeout-loading.js";
46
- import "../health-factor/health-factor.js";
47
- import "../checkbox/checkbox.js";
48
- import "../checkbox/checkbox-labeled.js";
49
- import "../select/select.js";
50
- import "../breakpoint-provider.js";
51
- import "lightweight-charts";
52
- import "../graph/formatters.js";
53
- import "../graph/graph-view.js";
54
- import "../base/info-portal/info-portal.js";
55
- import "../edit-input/edit-input.js";
56
- import "../slider/slider.js";
57
- import "../slider/slider-context.js";
58
- import "../text-button/text-button.js";
59
- import "../with-title/with-title.js";
60
- import "../status-elements/status-elements.js";
61
- import "react-router-dom";
62
- import "../client-adapters/styled-dialog-container/styled-dialog-container.js";
63
- import "../simple-dropdown/simple-dropdown.js";
64
- import "../simple-dropdown/simple-dropdown-menu-item.js";
65
- import "../help-tip/help-tip.js";
66
- import "../base/tabber/tabber.js";
67
- import "../link/link.js";
68
- import "../rounded-image/rounded-image.js";
69
- import "../base-link/base-link.js";
70
- import "../navigation-context/navigation-context.js";
71
- import "../cards/card/card.js";
72
- import "../checkbox-item/checkbox-item.js";
73
- import "../client-adapters/styled-button/styled-button.js";
74
- import "../client-adapters/styled-rounded-image/styled-rounded-image.js";
75
- import "../composites/tx-preview/confirm/amounts/TransactionConfirmAmountField.js";
76
- import "../composites/tx-preview/confirm/dialog/constants.js";
77
- import "../modal/modal.js";
78
- import "../dialog/dialog-container.js";
79
- import "../spinner-loader/spinner-loader.js";
80
- import "../detailed-apy/detailed-apy.js";
81
- import "@radix-ui/react-dialog";
82
- import "../dialog/dialog-content.js";
83
- import "../dialog/dialog-description.js";
84
- import "../dialog/dialog-footer.js";
85
- import "../dialog/dialog-header.js";
86
- import "../dialog/dialog-title.js";
87
- import "../dialog/dialog-modal-container.js";
88
- import "../dialog/dialog-overlay.js";
89
- import "viem";
90
- import "../input/input.js";
91
- import "../label/label.js";
92
- import "../dropdown-menu/dropdown-menu.js";
93
- import "../dropdown-menu/dropdown-menu-checkbox-item.js";
94
- import "../dropdown-menu/dropdown-menu-content.js";
95
- import "../dropdown-menu/dropdown-menu-item.js";
96
- import "../dropdown-menu/dropdown-menu-label.js";
97
- import "../dropdown-menu/dropdown-menu-radio-item.js";
98
- import "../dropdown-menu/dropdown-menu-separator.js";
99
- import "../dropdown-menu/dropdown-menu-shortcut.js";
100
- import "../dropdown-menu/dropdown-menu-sub-content.js";
101
- import "../dropdown-menu/dropdown-menu-sub-trigger.js";
102
- import "../filter/filter-block.js";
103
- import "../filter/filter-checkbox-item.js";
104
- import "../filter/filter-chip.js";
105
- import "../filter/filter-chips.js";
106
- import "../filter/filter-dropdown-item.js";
107
- import "../filter/filter-group.js";
108
- import "../filter/filter-label.js";
109
- import "../search-line/search-line.js";
110
- import "../tabs/tabs.js";
111
- import "../filter/filter-modal-item.js";
112
- import "../filter/filter-radio-item.js";
113
- import "../filter/filter-separator.js";
114
- import "../filter/variants.js";
115
- import "../icon-button/icon-button.js";
116
- import "../layout/app-footer/app-footer.js";
117
- import "../layout/app-header/app-header.js";
118
- import "../layout/col/col.js";
119
- import "../layout/container/container.js";
120
- import "../layout/grid/grid.js";
121
- import "../layout/layout/layout.js";
122
- import "../legal-agreement/legal-agreement-theme.js";
123
- import "../loader/loader.js";
124
- import "../loading/loading.js";
125
- import "../loading-bar/loading-bar.js";
126
- import "../segmented-control/segmented-control.js";
127
- import "../separate-line/separate-line.js";
128
- import "../spinner/spinner.js";
129
- import "../split-list/split-list.js";
130
- import { StatusDot as V } from "../status-dot/status-dot.js";
131
- import "../textarea/textarea.js";
132
- import "../theme-provider.js";
133
- import { getBlockSyncStatus as z } from "./block-sync-status.js";
134
- const C = 300 * 1e3, O = 2.5;
135
- function xo({
136
- blockByChain: p,
137
- explorerAddresses: y,
138
- networkById: T,
139
- syncIntervalMs: b = C,
140
- staleMultiplier: h = O,
141
- statusLabel: k = "Status",
142
- className: v
143
- }) {
144
- const { formatMessage: n } = F(), [c, L] = U(Date.now());
145
- j(() => {
146
- const m = () => {
147
- L(Date.now());
148
- }, r = window.setInterval(m, 1e3);
149
- return () => {
150
- clearInterval(r);
151
- };
152
- }, []);
153
- const l = b * h, { state: i, isSyncing: N } = R(
154
- () => z({ blockByChain: p, now: c, staleAfterMs: l }),
155
- [p, c, l]
156
- ), w = i === "error" ? "alert" : i === "loading" ? "default" : "success", A = i === "loading" || i === "synced" && N, a = () => /* @__PURE__ */ s(
157
- "span",
158
- {
159
- className: S(
160
- "inline-flex items-center gap-1.5 rounded-md border border-border px-2 py-1 text-xs",
161
- i === "error" ? "text-destructive" : "text-muted-foreground",
162
- v
163
- ),
164
- children: [
165
- /* @__PURE__ */ t(V, { variant: w, size: "xs", pulse: A }),
166
- k
167
- ]
168
- }
169
- ), d = (() => {
170
- if (!p) return null;
171
- const m = Object.entries(p).filter(
172
- (r) => !!r[1]
173
- );
174
- return m.length === 0 ? null : /* @__PURE__ */ t("div", { className: "flex flex-col text-left text-xs", children: m.map(([r, E], I) => {
175
- const { lastSyncBlock: u, error: D } = E, e = u?.block || 0n, f = u?.localTimestamp, o = y[Number(r)], g = typeof o == "string" ? o : o && typeof o == "object" && "url" in o ? o.url : void 0, P = T[Number(r)] || "Unknown", x = `[${e.toString()}]`, _ = I === m.length - 1, M = e > 0n && !!f;
176
- return /* @__PURE__ */ s("div", { className: S(!_ && "mb-2"), children: [
177
- /* @__PURE__ */ s("span", { children: [
178
- P,
179
- " "
180
- ] }),
181
- g && e > 0 ? /* @__PURE__ */ t(
182
- "a",
183
- {
184
- href: `${g}/block/${e}`,
185
- target: "_blank",
186
- rel: "noopener noreferrer",
187
- className: "underline hover:text-foreground",
188
- children: x
189
- }
190
- ) : /* @__PURE__ */ t("span", { children: x }),
191
- D ? /* @__PURE__ */ t("span", { className: "text-destructive", children: n({
192
- messageId: "components.blockSyncPill.syncError"
193
- }) }) : M ? /* @__PURE__ */ t("span", { children: n(
194
- { messageId: "components.blockSyncPill.syncedAt" },
195
- { time: new Date(f).toLocaleTimeString() }
196
- ) }) : /* @__PURE__ */ t("span", { children: n({
197
- messageId: "components.blockSyncPill.syncing"
198
- }) })
199
- ] }, r);
200
- }) });
201
- })();
202
- return d ? /* @__PURE__ */ t($, { title: a(), children: d }) : /* @__PURE__ */ t("div", { className: "select-none", children: a() });
203
- }
204
- export {
205
- xo as BlockSyncPill
206
- };