@gearbox-protocol/permissionless-ui 1.2.33 → 1.4.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 (515) hide show
  1. package/README.md +120 -1
  2. package/dist/cjs/components/asset-line.js +117 -0
  3. package/dist/cjs/components/assets-list-cell.js +73 -0
  4. package/dist/cjs/components/assets-ratio.js +98 -0
  5. package/dist/cjs/components/auth/siwe-provider.js +4 -4
  6. package/dist/cjs/components/base-link.js +61 -0
  7. package/dist/cjs/components/block-sync.js +118 -0
  8. package/dist/cjs/components/breadcrumbs.js +77 -0
  9. package/dist/cjs/components/buttons/back-button.js +37 -19
  10. package/dist/cjs/components/buttons/button.js +4 -4
  11. package/dist/cjs/components/buttons/filter-button.js +68 -0
  12. package/dist/cjs/components/buttons/index.js +4 -0
  13. package/dist/cjs/components/buttons/navigation-button.js +2 -2
  14. package/dist/cjs/components/buttons/range-buttons.js +63 -0
  15. package/dist/cjs/components/card-grid.js +127 -0
  16. package/dist/cjs/components/card.js +176 -0
  17. package/dist/cjs/components/checkbox-item.js +82 -0
  18. package/dist/cjs/components/compound-apy.js +232 -0
  19. package/dist/cjs/components/credit-session-status.js +67 -0
  20. package/dist/cjs/components/description.js +48 -0
  21. package/dist/cjs/components/detailed-page-title.js +96 -0
  22. package/dist/cjs/components/dialog/dialog-container.js +75 -0
  23. package/dist/cjs/components/dialog/dialog-content.js +66 -0
  24. package/dist/cjs/components/dialog/dialog-description.js +50 -0
  25. package/dist/cjs/components/dialog/dialog-footer.js +53 -0
  26. package/dist/cjs/components/dialog/dialog-header.js +53 -0
  27. package/dist/cjs/components/dialog/dialog-overlay.js +53 -0
  28. package/dist/cjs/components/dialog/dialog-title.js +50 -0
  29. package/dist/cjs/components/dialog/dialog.js +45 -0
  30. package/dist/cjs/components/dialog/index.js +36 -0
  31. package/dist/cjs/components/dropdown-menu/dropdown-menu-checkbox-item.js +63 -0
  32. package/dist/cjs/components/dropdown-menu/dropdown-menu-content.js +55 -0
  33. package/dist/cjs/components/dropdown-menu/dropdown-menu-item.js +54 -0
  34. package/dist/cjs/components/dropdown-menu/dropdown-menu-label.js +54 -0
  35. package/dist/cjs/components/dropdown-menu/dropdown-menu-radio-item.js +58 -0
  36. package/dist/cjs/components/dropdown-menu/dropdown-menu-separator.js +50 -0
  37. package/dist/cjs/components/dropdown-menu/dropdown-menu-shortcut.js +52 -0
  38. package/dist/cjs/components/dropdown-menu/dropdown-menu-sub-content.js +53 -0
  39. package/dist/cjs/components/dropdown-menu/dropdown-menu-sub-trigger.js +59 -0
  40. package/dist/cjs/components/dropdown-menu/dropdown-menu.js +54 -0
  41. package/dist/cjs/components/dropdown-menu/index.js +40 -0
  42. package/dist/cjs/components/error-message.js +70 -0
  43. package/dist/cjs/components/filter/filter-block.js +52 -0
  44. package/dist/cjs/components/filter/filter-checkbox-item.js +59 -0
  45. package/dist/cjs/components/filter/filter-chip.js +74 -0
  46. package/dist/cjs/components/filter/filter-chips.js +84 -0
  47. package/dist/cjs/components/filter/filter-dropdown-item.js +54 -0
  48. package/dist/cjs/components/filter/filter-group.js +43 -0
  49. package/dist/cjs/components/filter/filter-label.js +54 -0
  50. package/dist/cjs/components/filter/filter-modal-item.js +55 -0
  51. package/dist/cjs/components/filter/filter-modal.js +242 -0
  52. package/dist/cjs/components/filter/filter-radio-item.js +58 -0
  53. package/dist/cjs/components/filter/filter-separator.js +50 -0
  54. package/dist/cjs/components/filter/index.js +44 -0
  55. package/dist/cjs/components/filter/interface.js +16 -0
  56. package/dist/cjs/components/filter/variants.js +41 -0
  57. package/dist/cjs/components/form/form-field.js +67 -0
  58. package/dist/cjs/components/{editable-table → form}/index.js +4 -8
  59. package/dist/cjs/components/graph/default-config.js +158 -0
  60. package/dist/cjs/components/graph/formatters.js +175 -0
  61. package/dist/cjs/components/graph/graph-current-value.js +54 -0
  62. package/dist/cjs/components/graph/graph-tooltip.js +142 -0
  63. package/dist/cjs/components/graph/graph-view.js +233 -0
  64. package/dist/cjs/components/graph/graph.js +637 -0
  65. package/dist/cjs/components/graph/index.js +44 -0
  66. package/dist/cjs/components/graph/plugins/vertical-line.js +127 -0
  67. package/dist/cjs/components/guard.js +34 -0
  68. package/dist/cjs/components/health-factor.js +100 -0
  69. package/dist/cjs/components/help-center-container.js +107 -0
  70. package/dist/cjs/components/hide-on.js +66 -0
  71. package/dist/cjs/components/horizontal-indicator.js +63 -0
  72. package/dist/cjs/components/image.js +56 -0
  73. package/dist/cjs/components/index.js +93 -9
  74. package/dist/cjs/components/input.js +43 -21
  75. package/dist/cjs/components/label.js +29 -5
  76. package/dist/cjs/components/layout/app-logo.js +7 -17
  77. package/dist/cjs/components/layout/col.js +192 -0
  78. package/dist/cjs/components/layout/container.js +75 -0
  79. package/dist/cjs/components/layout/footer.js +137 -52
  80. package/dist/cjs/components/layout/grid.js +217 -0
  81. package/dist/cjs/components/layout/header.js +75 -13
  82. package/dist/cjs/components/layout/index.js +8 -0
  83. package/dist/cjs/components/layout/layout.js +65 -0
  84. package/dist/cjs/components/layout/legal-disclaimer.js +4 -14
  85. package/dist/cjs/components/liquidation/index.js +28 -0
  86. package/dist/cjs/components/liquidation/liquidation-assets-table.js +95 -0
  87. package/dist/cjs/components/liquidation/liquidation-graph-legend.js +41 -0
  88. package/dist/cjs/components/liquidation/liquidation-graph-tip.js +93 -0
  89. package/dist/cjs/components/liquidation/liquidation-graph.js +214 -0
  90. package/dist/cjs/components/loader-guard.js +47 -0
  91. package/dist/cjs/components/loading-guard.js +55 -0
  92. package/dist/cjs/components/markdown-viewer.js +4 -2
  93. package/dist/cjs/components/navbar-indicator-context.js +94 -0
  94. package/dist/cjs/components/navbar.js +131 -0
  95. package/dist/cjs/components/navitem.js +148 -0
  96. package/dist/cjs/components/next/back-button.js +43 -0
  97. package/dist/cjs/components/next/index.js +40 -0
  98. package/dist/cjs/components/next/siwe-provider.js +35 -0
  99. package/dist/cjs/components/next/token-icon.js +43 -0
  100. package/dist/cjs/components/next/web3-providers.js +116 -0
  101. package/dist/cjs/components/not-found.js +58 -0
  102. package/dist/cjs/components/options-list.js +88 -0
  103. package/dist/cjs/components/page-title.js +116 -0
  104. package/dist/cjs/components/percent-indicator.js +56 -0
  105. package/dist/cjs/components/pool-points-indicator.js +107 -0
  106. package/dist/cjs/components/search-bar.js +1 -0
  107. package/dist/cjs/components/search-line.js +225 -0
  108. package/dist/cjs/components/select.js +30 -9
  109. package/dist/cjs/components/short-string.js +58 -0
  110. package/dist/cjs/components/signatures/vertical-timeline.js +1 -0
  111. package/dist/cjs/components/skeleton.js +56 -3
  112. package/dist/cjs/components/stat-badge.js +189 -0
  113. package/dist/cjs/components/tab-control.js +254 -0
  114. package/dist/cjs/components/table/editable-grid-table.js +131 -0
  115. package/dist/cjs/components/{editable-table → table}/editable-table.js +1 -1
  116. package/dist/cjs/components/table/grid-error-line.js +60 -0
  117. package/dist/cjs/components/table/grid-loading-line.js +64 -0
  118. package/dist/cjs/components/table/grid-table-loader.js +56 -0
  119. package/dist/cjs/components/table/grid-table.js +203 -0
  120. package/dist/cjs/components/table/index.js +46 -0
  121. package/dist/cjs/components/table/sortable-head-cell.js +48 -0
  122. package/dist/cjs/components/table/table-loader-guard.js +55 -0
  123. package/dist/cjs/components/table/table-loader.js +46 -0
  124. package/dist/cjs/components/table/table-sm.js +93 -0
  125. package/dist/cjs/components/{table.js → table/table.js} +78 -22
  126. package/dist/cjs/components/textarea.js +27 -7
  127. package/dist/cjs/components/theme-provider.js +127 -0
  128. package/dist/cjs/components/theme-toggle.js +85 -0
  129. package/dist/cjs/components/token-icon.js +69 -20
  130. package/dist/cjs/components/token-symbol.js +84 -0
  131. package/dist/cjs/components/tooltip.js +1 -1
  132. package/dist/cjs/components/typed-intl/index.js +57 -0
  133. package/dist/cjs/components/vspace.js +31 -0
  134. package/dist/cjs/components/with-filter-button.js +84 -0
  135. package/dist/cjs/configs/design-tokens.js +109 -0
  136. package/dist/cjs/configs/index.js +48 -0
  137. package/dist/cjs/configs/tailwind-preset.js +162 -0
  138. package/dist/cjs/configs/tailwind.config.js +20 -67
  139. package/dist/cjs/configs/variants.js +58 -0
  140. package/dist/cjs/hooks/index.js +34 -0
  141. package/dist/cjs/hooks/use-controllable-state.js +50 -0
  142. package/dist/cjs/hooks/use-debounce.js +68 -0
  143. package/dist/cjs/hooks/use-filter.js +80 -0
  144. package/dist/cjs/hooks/use-hf.js +62 -0
  145. package/dist/cjs/hooks/use-liquidation/index.js +204 -0
  146. package/dist/cjs/hooks/use-liquidation/types.js +16 -0
  147. package/dist/cjs/hooks/use-liquidation/utils.js +253 -0
  148. package/dist/cjs/hooks/use-media-query.js +51 -0
  149. package/dist/cjs/hooks/use-previous.js +36 -0
  150. package/dist/cjs/index.js +157 -3
  151. package/dist/cjs/types/component-props.js +16 -0
  152. package/dist/cjs/types/filter.js +16 -0
  153. package/dist/cjs/types/footer.js +16 -0
  154. package/dist/cjs/types/graph.js +16 -0
  155. package/dist/cjs/types/help.js +16 -0
  156. package/dist/cjs/types/index.js +16 -0
  157. package/dist/cjs/types/range-item.js +16 -0
  158. package/dist/cjs/utils/a11y.js +39 -0
  159. package/dist/cjs/utils/bn-to-input-view.js +60 -0
  160. package/dist/cjs/utils/colors.js +96 -0
  161. package/dist/cjs/utils/format-asset-amount.js +43 -0
  162. package/dist/cjs/utils/format-money.js +68 -0
  163. package/dist/cjs/utils/index.js +29 -2
  164. package/dist/cjs/utils/interface.js +16 -0
  165. package/dist/cjs/utils/react.js +105 -0
  166. package/dist/cjs/utils/short-sha.js +28 -0
  167. package/dist/cjs/utils/sort.js +16 -0
  168. package/dist/cjs/utils/templates.js +50 -0
  169. package/dist/esm/components/asset-line.js +83 -0
  170. package/dist/esm/components/assets-list-cell.js +39 -0
  171. package/dist/esm/components/assets-ratio.js +64 -0
  172. package/dist/esm/components/auth/siwe-provider.js +4 -4
  173. package/dist/esm/components/base-link.js +27 -0
  174. package/dist/esm/components/block-sync.js +99 -0
  175. package/dist/esm/components/breadcrumbs.js +43 -0
  176. package/dist/esm/components/buttons/back-button.js +35 -8
  177. package/dist/esm/components/buttons/button.js +4 -4
  178. package/dist/esm/components/buttons/filter-button.js +34 -0
  179. package/dist/esm/components/buttons/index.js +2 -0
  180. package/dist/esm/components/buttons/navigation-button.js +2 -2
  181. package/dist/esm/components/buttons/range-buttons.js +29 -0
  182. package/dist/esm/components/card-grid.js +92 -0
  183. package/dist/esm/components/card.js +133 -0
  184. package/dist/esm/components/checkbox-item.js +48 -0
  185. package/dist/esm/components/compound-apy.js +203 -0
  186. package/dist/esm/components/credit-session-status.js +33 -0
  187. package/dist/esm/components/description.js +14 -0
  188. package/dist/esm/components/detailed-page-title.js +67 -0
  189. package/dist/esm/components/dialog/dialog-container.js +41 -0
  190. package/dist/esm/components/dialog/dialog-content.js +32 -0
  191. package/dist/esm/components/dialog/dialog-description.js +16 -0
  192. package/dist/esm/components/dialog/dialog-footer.js +19 -0
  193. package/dist/esm/components/dialog/dialog-header.js +19 -0
  194. package/dist/esm/components/dialog/dialog-overlay.js +19 -0
  195. package/dist/esm/components/dialog/dialog-title.js +16 -0
  196. package/dist/esm/components/dialog/dialog.js +9 -0
  197. package/dist/esm/components/dialog/index.js +8 -0
  198. package/dist/esm/components/dropdown-menu/dropdown-menu-checkbox-item.js +29 -0
  199. package/dist/esm/components/dropdown-menu/dropdown-menu-content.js +21 -0
  200. package/dist/esm/components/dropdown-menu/dropdown-menu-item.js +20 -0
  201. package/dist/esm/components/dropdown-menu/dropdown-menu-label.js +20 -0
  202. package/dist/esm/components/dropdown-menu/dropdown-menu-radio-item.js +24 -0
  203. package/dist/esm/components/dropdown-menu/dropdown-menu-separator.js +16 -0
  204. package/dist/esm/components/dropdown-menu/dropdown-menu-shortcut.js +18 -0
  205. package/dist/esm/components/dropdown-menu/dropdown-menu-sub-content.js +19 -0
  206. package/dist/esm/components/dropdown-menu/dropdown-menu-sub-trigger.js +25 -0
  207. package/dist/esm/components/dropdown-menu/dropdown-menu.js +15 -0
  208. package/dist/esm/components/dropdown-menu/index.js +10 -0
  209. package/dist/esm/components/error-message.js +36 -0
  210. package/dist/esm/components/filter/filter-block.js +18 -0
  211. package/dist/esm/components/filter/filter-checkbox-item.js +25 -0
  212. package/dist/esm/components/filter/filter-chip.js +40 -0
  213. package/dist/esm/components/filter/filter-chips.js +50 -0
  214. package/dist/esm/components/filter/filter-dropdown-item.js +20 -0
  215. package/dist/esm/components/filter/filter-group.js +9 -0
  216. package/dist/esm/components/filter/filter-label.js +20 -0
  217. package/dist/esm/components/filter/filter-modal-item.js +21 -0
  218. package/dist/esm/components/filter/filter-modal.js +214 -0
  219. package/dist/esm/components/filter/filter-radio-item.js +24 -0
  220. package/dist/esm/components/filter/filter-separator.js +16 -0
  221. package/dist/esm/components/filter/index.js +12 -0
  222. package/dist/esm/components/filter/interface.js +0 -0
  223. package/dist/esm/components/filter/variants.js +17 -0
  224. package/dist/esm/components/form/form-field.js +43 -0
  225. package/dist/esm/components/form/index.js +1 -0
  226. package/dist/esm/components/graph/default-config.js +129 -0
  227. package/dist/esm/components/graph/formatters.js +150 -0
  228. package/dist/esm/components/graph/graph-current-value.js +30 -0
  229. package/dist/esm/components/graph/graph-tooltip.js +118 -0
  230. package/dist/esm/components/graph/graph-view.js +196 -0
  231. package/dist/esm/components/graph/graph.js +606 -0
  232. package/dist/esm/components/graph/index.js +15 -0
  233. package/dist/esm/components/graph/plugins/vertical-line.js +103 -0
  234. package/dist/esm/components/guard.js +10 -0
  235. package/dist/esm/components/health-factor.js +63 -0
  236. package/dist/esm/components/help-center-container.js +83 -0
  237. package/dist/esm/components/hide-on.js +41 -0
  238. package/dist/esm/components/horizontal-indicator.js +34 -0
  239. package/dist/esm/components/image.js +32 -0
  240. package/dist/esm/components/index.js +46 -4
  241. package/dist/esm/components/input.js +41 -20
  242. package/dist/esm/components/label.js +27 -4
  243. package/dist/esm/components/layout/app-logo.js +5 -5
  244. package/dist/esm/components/layout/col.js +158 -0
  245. package/dist/esm/components/layout/container.js +41 -0
  246. package/dist/esm/components/layout/footer.js +134 -52
  247. package/dist/esm/components/layout/grid.js +183 -0
  248. package/dist/esm/components/layout/header.js +65 -13
  249. package/dist/esm/components/layout/index.js +4 -0
  250. package/dist/esm/components/layout/layout.js +31 -0
  251. package/dist/esm/components/layout/legal-disclaimer.js +4 -4
  252. package/dist/esm/components/liquidation/index.js +4 -0
  253. package/dist/esm/components/liquidation/liquidation-assets-table.js +71 -0
  254. package/dist/esm/components/liquidation/liquidation-graph-legend.js +17 -0
  255. package/dist/esm/components/liquidation/liquidation-graph-tip.js +72 -0
  256. package/dist/esm/components/liquidation/liquidation-graph.js +191 -0
  257. package/dist/esm/components/loader-guard.js +23 -0
  258. package/dist/esm/components/loading-guard.js +31 -0
  259. package/dist/esm/components/markdown-viewer.js +4 -2
  260. package/dist/esm/components/navbar-indicator-context.js +76 -0
  261. package/dist/esm/components/navbar.js +98 -0
  262. package/dist/esm/components/navitem.js +113 -0
  263. package/dist/esm/components/next/back-button.js +11 -0
  264. package/dist/esm/components/next/index.js +12 -0
  265. package/dist/esm/components/next/siwe-provider.js +11 -0
  266. package/dist/esm/components/next/token-icon.js +11 -0
  267. package/dist/esm/components/next/web3-providers.js +92 -0
  268. package/dist/esm/components/not-found.js +24 -0
  269. package/dist/esm/components/options-list.js +53 -0
  270. package/dist/esm/components/page-title.js +80 -0
  271. package/dist/esm/components/percent-indicator.js +22 -0
  272. package/dist/esm/components/pool-points-indicator.js +73 -0
  273. package/dist/esm/components/search-bar.js +1 -0
  274. package/dist/esm/components/search-line.js +188 -0
  275. package/dist/esm/components/select.js +28 -8
  276. package/dist/esm/components/short-string.js +39 -0
  277. package/dist/esm/components/signatures/vertical-timeline.js +1 -0
  278. package/dist/esm/components/skeleton.js +54 -2
  279. package/dist/esm/components/stat-badge.js +155 -0
  280. package/dist/esm/components/tab-control.js +216 -0
  281. package/dist/esm/components/table/editable-grid-table.js +105 -0
  282. package/dist/esm/components/{editable-table → table}/editable-table.js +1 -1
  283. package/dist/esm/components/table/grid-error-line.js +36 -0
  284. package/dist/esm/components/table/grid-loading-line.js +30 -0
  285. package/dist/esm/components/table/grid-table-loader.js +22 -0
  286. package/dist/esm/components/table/grid-table.js +159 -0
  287. package/dist/esm/components/table/index.js +13 -0
  288. package/dist/esm/components/table/sortable-head-cell.js +24 -0
  289. package/dist/esm/components/table/table-loader-guard.js +31 -0
  290. package/dist/esm/components/table/table-loader.js +22 -0
  291. package/dist/esm/components/table/table-sm.js +58 -0
  292. package/dist/esm/components/{table.js → table/table.js} +74 -21
  293. package/dist/esm/components/textarea.js +25 -6
  294. package/dist/esm/components/theme-provider.js +108 -0
  295. package/dist/esm/components/theme-toggle.js +61 -0
  296. package/dist/esm/components/token-icon.js +70 -11
  297. package/dist/esm/components/token-symbol.js +50 -0
  298. package/dist/esm/components/tooltip.js +1 -1
  299. package/dist/esm/components/typed-intl/index.js +32 -0
  300. package/dist/esm/components/vspace.js +7 -0
  301. package/dist/esm/components/with-filter-button.js +50 -0
  302. package/dist/esm/configs/design-tokens.js +85 -0
  303. package/dist/esm/configs/index.js +9 -0
  304. package/dist/esm/configs/tailwind-preset.js +128 -0
  305. package/dist/esm/configs/tailwind.config.js +16 -57
  306. package/dist/esm/configs/variants.js +31 -0
  307. package/dist/esm/hooks/index.js +7 -0
  308. package/dist/esm/hooks/use-controllable-state.js +26 -0
  309. package/dist/esm/hooks/use-debounce.js +43 -0
  310. package/dist/esm/hooks/use-filter.js +52 -0
  311. package/dist/esm/hooks/use-hf.js +38 -0
  312. package/dist/esm/hooks/use-liquidation/index.js +188 -0
  313. package/dist/esm/hooks/use-liquidation/types.js +0 -0
  314. package/dist/esm/hooks/use-liquidation/utils.js +215 -0
  315. package/dist/esm/hooks/use-media-query.js +24 -0
  316. package/dist/esm/hooks/use-previous.js +12 -0
  317. package/dist/esm/index.js +84 -1
  318. package/dist/esm/types/component-props.js +0 -0
  319. package/dist/esm/types/filter.js +0 -0
  320. package/dist/esm/types/footer.js +0 -0
  321. package/dist/esm/types/graph.js +0 -0
  322. package/dist/esm/types/help.js +0 -0
  323. package/dist/esm/types/index.js +0 -0
  324. package/dist/esm/types/range-item.js +0 -0
  325. package/dist/esm/utils/a11y.js +14 -0
  326. package/dist/esm/utils/bn-to-input-view.js +36 -0
  327. package/dist/esm/utils/colors.js +69 -0
  328. package/dist/esm/utils/format-asset-amount.js +19 -0
  329. package/dist/esm/utils/format-money.js +40 -0
  330. package/dist/esm/utils/index.js +21 -1
  331. package/dist/esm/utils/interface.js +0 -0
  332. package/dist/esm/utils/react.js +70 -0
  333. package/dist/esm/utils/short-sha.js +4 -0
  334. package/dist/esm/utils/sort.js +0 -0
  335. package/dist/esm/utils/templates.js +24 -0
  336. package/dist/globals.css +230 -52
  337. package/dist/grid-safelist.css +264 -0
  338. package/dist/types/components/asset-line.d.ts +59 -0
  339. package/dist/types/components/assets-list-cell.d.ts +48 -0
  340. package/dist/types/components/assets-ratio.d.ts +9 -0
  341. package/dist/types/components/auth/signin-required.d.ts +1 -1
  342. package/dist/types/components/auth/siwe-provider.d.ts +2 -1
  343. package/dist/types/components/badge.d.ts +1 -1
  344. package/dist/types/components/base-link.d.ts +58 -0
  345. package/dist/types/components/block-sync.d.ts +8 -0
  346. package/dist/types/components/breadcrumbs.d.ts +24 -0
  347. package/dist/types/components/buttons/back-button.d.ts +15 -20
  348. package/dist/types/components/buttons/button.d.ts +37 -3
  349. package/dist/types/components/buttons/filter-button.d.ts +52 -0
  350. package/dist/types/components/buttons/index.d.ts +2 -0
  351. package/dist/types/components/buttons/range-buttons.d.ts +49 -0
  352. package/dist/types/components/card-grid.d.ts +25 -0
  353. package/dist/types/components/card.d.ts +116 -0
  354. package/dist/types/components/cards/card.d.ts +2 -2
  355. package/dist/types/components/checkbox-item.d.ts +56 -0
  356. package/dist/types/components/compound-apy.d.ts +80 -0
  357. package/dist/types/components/credit-session-status.d.ts +7 -0
  358. package/dist/types/components/description.d.ts +26 -0
  359. package/dist/types/components/detailed-page-title.d.ts +31 -0
  360. package/dist/types/components/dialog/dialog-container.d.ts +12 -0
  361. package/dist/types/components/dialog/dialog-content.d.ts +4 -0
  362. package/dist/types/components/dialog/dialog-description.d.ts +4 -0
  363. package/dist/types/components/dialog/dialog-footer.d.ts +6 -0
  364. package/dist/types/components/dialog/dialog-header.d.ts +6 -0
  365. package/dist/types/components/dialog/dialog-overlay.d.ts +4 -0
  366. package/dist/types/components/dialog/dialog-title.d.ts +4 -0
  367. package/dist/types/components/dialog/dialog.d.ts +5 -0
  368. package/dist/types/components/dialog/index.d.ts +8 -0
  369. package/dist/types/components/dropdown-menu/dropdown-menu-checkbox-item.d.ts +22 -0
  370. package/dist/types/components/dropdown-menu/dropdown-menu-content.d.ts +4 -0
  371. package/dist/types/components/dropdown-menu/dropdown-menu-item.d.ts +6 -0
  372. package/dist/types/components/dropdown-menu/dropdown-menu-label.d.ts +6 -0
  373. package/dist/types/components/dropdown-menu/dropdown-menu-radio-item.d.ts +4 -0
  374. package/dist/types/components/dropdown-menu/dropdown-menu-separator.d.ts +4 -0
  375. package/dist/types/components/dropdown-menu/dropdown-menu-shortcut.d.ts +6 -0
  376. package/dist/types/components/dropdown-menu/dropdown-menu-sub-content.d.ts +4 -0
  377. package/dist/types/components/dropdown-menu/dropdown-menu-sub-trigger.d.ts +6 -0
  378. package/dist/types/components/dropdown-menu/dropdown-menu.d.ts +8 -0
  379. package/dist/types/components/dropdown-menu/index.d.ts +10 -0
  380. package/dist/types/components/error-message.d.ts +21 -0
  381. package/dist/types/components/filter/filter-block.d.ts +17 -0
  382. package/dist/types/components/filter/filter-checkbox-item.d.ts +23 -0
  383. package/dist/types/components/filter/filter-chip.d.ts +34 -0
  384. package/dist/types/components/filter/filter-chips.d.ts +42 -0
  385. package/dist/types/components/filter/filter-dropdown-item.d.ts +24 -0
  386. package/dist/types/components/filter/filter-group.d.ts +22 -0
  387. package/dist/types/components/filter/filter-label.d.ts +21 -0
  388. package/dist/types/components/filter/filter-modal-item.d.ts +31 -0
  389. package/dist/types/components/filter/filter-modal.d.ts +123 -0
  390. package/dist/types/components/filter/filter-radio-item.d.ts +19 -0
  391. package/dist/types/components/filter/filter-separator.d.ts +22 -0
  392. package/dist/types/components/filter/index.d.ts +109 -0
  393. package/dist/types/components/filter/interface.d.ts +24 -0
  394. package/dist/types/components/filter/variants.d.ts +3 -0
  395. package/dist/types/components/form/form-field.d.ts +38 -0
  396. package/dist/types/components/form/index.d.ts +1 -0
  397. package/dist/types/components/graph/default-config.d.ts +20 -0
  398. package/dist/types/components/graph/formatters.d.ts +16 -0
  399. package/dist/types/components/graph/graph-current-value.d.ts +13 -0
  400. package/dist/types/components/graph/graph-tooltip.d.ts +24 -0
  401. package/dist/types/components/graph/graph-view.d.ts +198 -0
  402. package/dist/types/components/graph/graph.d.ts +49 -0
  403. package/dist/types/components/graph/index.d.ts +7 -0
  404. package/dist/types/components/guard.d.ts +34 -0
  405. package/dist/types/components/health-factor.d.ts +63 -0
  406. package/dist/types/components/help-center-container.d.ts +22 -0
  407. package/dist/types/components/hide-on.d.ts +32 -0
  408. package/dist/types/components/horizontal-indicator.d.ts +22 -0
  409. package/dist/types/components/image.d.ts +35 -0
  410. package/dist/types/components/index.d.ts +44 -1
  411. package/dist/types/components/input.d.ts +26 -9
  412. package/dist/types/components/label.d.ts +26 -5
  413. package/dist/types/components/layout/app-logo.d.ts +1 -0
  414. package/dist/types/components/layout/col.d.ts +43 -0
  415. package/dist/types/components/layout/container.d.ts +37 -0
  416. package/dist/types/components/layout/footer.d.ts +44 -5
  417. package/dist/types/components/layout/grid.d.ts +48 -0
  418. package/dist/types/components/layout/header.d.ts +68 -12
  419. package/dist/types/components/layout/index.d.ts +4 -0
  420. package/dist/types/components/layout/layout.d.ts +12 -0
  421. package/dist/types/components/liquidation/index.d.ts +4 -0
  422. package/dist/types/components/liquidation/liquidation-assets-table.d.ts +14 -0
  423. package/dist/types/components/liquidation/liquidation-graph-legend.d.ts +2 -0
  424. package/dist/types/components/liquidation/liquidation-graph-tip.d.ts +13 -0
  425. package/dist/types/components/liquidation/liquidation-graph.d.ts +19 -0
  426. package/dist/types/components/loader-guard.d.ts +17 -0
  427. package/dist/types/components/loading-guard.d.ts +18 -0
  428. package/dist/types/components/navbar-indicator-context.d.ts +13 -0
  429. package/dist/types/components/navbar.d.ts +25 -0
  430. package/dist/types/components/navitem.d.ts +67 -0
  431. package/dist/types/components/next/back-button.d.ts +3 -0
  432. package/dist/types/components/next/index.d.ts +10 -0
  433. package/dist/types/components/next/siwe-provider.d.ts +7 -0
  434. package/dist/types/components/next/token-icon.d.ts +3 -0
  435. package/dist/types/components/next/web3-providers.d.ts +29 -0
  436. package/dist/types/components/not-found.d.ts +18 -0
  437. package/dist/types/components/options-list.d.ts +15 -0
  438. package/dist/types/components/page-title.d.ts +69 -0
  439. package/dist/types/components/percent-indicator.d.ts +28 -0
  440. package/dist/types/components/pool-points-indicator.d.ts +41 -0
  441. package/dist/types/components/search-line.d.ts +117 -0
  442. package/dist/types/components/select.d.ts +9 -2
  443. package/dist/types/components/short-string.d.ts +39 -0
  444. package/dist/types/components/skeleton.d.ts +28 -3
  445. package/dist/types/components/stat-badge.d.ts +169 -0
  446. package/dist/types/components/tab-control.d.ts +39 -0
  447. package/dist/types/components/table/editable-grid-table.d.ts +120 -0
  448. package/dist/types/components/table/grid-error-line.d.ts +49 -0
  449. package/dist/types/components/table/grid-loading-line.d.ts +36 -0
  450. package/dist/types/components/table/grid-table-loader.d.ts +25 -0
  451. package/dist/types/components/table/grid-table.d.ts +158 -0
  452. package/dist/types/components/table/index.d.ts +13 -0
  453. package/dist/types/components/table/sortable-head-cell.d.ts +36 -0
  454. package/dist/types/components/table/table-loader-guard.d.ts +45 -0
  455. package/dist/types/components/table/table-loader.d.ts +46 -0
  456. package/dist/types/components/table/table-sm.d.ts +94 -0
  457. package/dist/types/components/{table.d.ts → table/table.d.ts} +39 -12
  458. package/dist/types/components/{editable-table → table}/updated-value.d.ts +3 -0
  459. package/dist/types/components/textarea.d.ts +24 -5
  460. package/dist/types/components/theme-provider.d.ts +34 -0
  461. package/dist/types/components/theme-toggle.d.ts +5 -0
  462. package/dist/types/components/token-icon.d.ts +8 -6
  463. package/dist/types/components/token-symbol.d.ts +71 -0
  464. package/dist/types/components/typed-intl/index.d.ts +19 -0
  465. package/dist/types/components/vspace.d.ts +27 -0
  466. package/dist/types/components/with-filter-button.d.ts +54 -0
  467. package/dist/types/configs/design-tokens.d.ts +73 -0
  468. package/dist/types/configs/index.d.ts +4 -0
  469. package/dist/types/configs/tailwind-preset.d.ts +126 -0
  470. package/dist/types/configs/tailwind.config.d.ts +29 -0
  471. package/dist/types/configs/variants.d.ts +28 -0
  472. package/dist/types/hooks/index.d.ts +7 -0
  473. package/dist/types/hooks/use-controllable-state.d.ts +24 -0
  474. package/dist/types/hooks/use-debounce.d.ts +31 -0
  475. package/dist/types/hooks/use-filter.d.ts +37 -0
  476. package/dist/types/hooks/use-hf.d.ts +15 -0
  477. package/dist/types/hooks/use-liquidation/index.d.ts +52 -0
  478. package/dist/types/hooks/use-liquidation/types.d.ts +16 -0
  479. package/dist/types/hooks/use-liquidation/utils.d.ts +66 -0
  480. package/dist/types/hooks/use-media-query.d.ts +25 -0
  481. package/dist/types/hooks/use-previous.d.ts +10 -0
  482. package/dist/types/index.d.ts +71 -2
  483. package/dist/types/types/component-props.d.ts +16 -0
  484. package/dist/types/types/filter.d.ts +8 -0
  485. package/dist/types/types/footer.d.ts +30 -0
  486. package/dist/types/types/graph.d.ts +22 -0
  487. package/dist/types/types/help.d.ts +4 -0
  488. package/dist/types/types/index.d.ts +6 -0
  489. package/dist/types/types/range-item.d.ts +9 -0
  490. package/dist/types/utils/a11y.d.ts +24 -0
  491. package/dist/types/utils/bn-to-input-view.d.ts +17 -0
  492. package/dist/types/utils/colors.d.ts +29 -0
  493. package/dist/types/utils/format-asset-amount.d.ts +16 -0
  494. package/dist/types/utils/format-money.d.ts +64 -0
  495. package/dist/types/utils/index.d.ts +10 -0
  496. package/dist/types/utils/interface.d.ts +9 -0
  497. package/dist/types/utils/react.d.ts +31 -0
  498. package/dist/types/utils/short-sha.d.ts +9 -0
  499. package/dist/types/utils/sort.d.ts +5 -0
  500. package/dist/types/utils/templates.d.ts +61 -0
  501. package/package.json +66 -28
  502. package/dist/cjs/components/dialog.js +0 -137
  503. package/dist/cjs/components/dropdown-menu.js +0 -200
  504. package/dist/esm/components/dialog.js +0 -97
  505. package/dist/esm/components/dropdown-menu.js +0 -152
  506. package/dist/esm/components/editable-table/index.js +0 -3
  507. package/dist/types/components/dialog.d.ts +0 -38
  508. package/dist/types/components/dropdown-menu.d.ts +0 -59
  509. package/dist/types/components/editable-table/index.d.ts +0 -3
  510. /package/dist/cjs/components/{editable-table → table}/edit-button.js +0 -0
  511. /package/dist/cjs/components/{editable-table → table}/updated-value.js +0 -0
  512. /package/dist/esm/components/{editable-table → table}/edit-button.js +0 -0
  513. /package/dist/esm/components/{editable-table → table}/updated-value.js +0 -0
  514. /package/dist/types/components/{editable-table → table}/edit-button.d.ts +0 -0
  515. /package/dist/types/components/{editable-table → table}/editable-table.d.ts +0 -0
package/README.md CHANGED
@@ -1,6 +1,125 @@
1
1
  # Permissionless UI
2
2
 
3
- UI components for internal use
3
+ UI components for internal use - framework-agnostic React component library built with Tailwind CSS 4.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pnpm install @gearbox-protocol/permissionless-ui
9
+ ```
10
+
11
+ For Next.js projects, also install Next.js:
12
+ ```bash
13
+ pnpm install next
14
+ ```
15
+
16
+ ## Setup
17
+
18
+ ### 1. Configure Tailwind CSS
19
+
20
+ Create or update your `tailwind.config.ts`:
21
+
22
+ ```typescript
23
+ import type { Config } from "tailwindcss";
24
+ import { preset } from "@gearbox-protocol/permissionless-ui/preset";
25
+
26
+ const config: Config = {
27
+ presets: [preset],
28
+ content: [
29
+ "./src/**/*.{js,ts,jsx,tsx,mdx}",
30
+ "./node_modules/@gearbox-protocol/permissionless-ui/dist/**/*.js",
31
+ ],
32
+ };
33
+
34
+ export default config;
35
+ ```
36
+
37
+ ### 2. Import Global Styles
38
+
39
+ In your main entry file:
40
+
41
+ ```typescript
42
+ import "@gearbox-protocol/permissionless-ui/globals.css";
43
+ ```
44
+
45
+ ### 3. Add Theme Provider (Optional)
46
+
47
+ For dark mode support:
48
+
49
+ ```tsx
50
+ import { ThemeProvider, ThemeScript } from "@gearbox-protocol/permissionless-ui";
51
+
52
+ // For Next.js App Router
53
+ export default function RootLayout({ children }) {
54
+ return (
55
+ <html suppressHydrationWarning>
56
+ <head>
57
+ {/* Prevents flash of white cards on page load */}
58
+ <ThemeScript />
59
+ </head>
60
+ <body>
61
+ <ThemeProvider defaultTheme="system">
62
+ {children}
63
+ </ThemeProvider>
64
+ </body>
65
+ </html>
66
+ );
67
+ }
68
+
69
+ // For other frameworks (CRA, Vite, etc.)
70
+ function App() {
71
+ return (
72
+ <ThemeProvider defaultTheme="system">
73
+ {/* Your app */}
74
+ </ThemeProvider>
75
+ );
76
+ }
77
+ ```
78
+
79
+ ## Usage
80
+
81
+ ### Framework-agnostic (works everywhere)
82
+
83
+ ```tsx
84
+ import { Button, Input, Card } from '@gearbox-protocol/permissionless-ui';
85
+
86
+ function MyComponent() {
87
+ return (
88
+ <Card>
89
+ <Input placeholder="Enter text" />
90
+ <Button variant="default">Submit</Button>
91
+ </Card>
92
+ );
93
+ }
94
+ ```
95
+
96
+ ### Next.js optimized
97
+
98
+ ```tsx
99
+ import { TokenIcon, BackButton, SIWEClientProvider } from '@gearbox-protocol/permissionless-ui/next';
100
+
101
+ // Uses Next.js Image, Link and useRouter
102
+ <TokenIcon symbol="ETH" size={48} />
103
+ <BackButton href="/dashboard" text="Back" />
104
+ <SIWEClientProvider apiRoutePrefix="/api/siwe">
105
+ {children}
106
+ </SIWEClientProvider>
107
+ ```
108
+
109
+ ### Custom components
110
+
111
+ ```tsx
112
+ import { TokenIcon, BackButton } from '@gearbox-protocol/permissionless-ui';
113
+ import MyImage from './MyImage';
114
+ import { Link } from 'react-router-dom';
115
+
116
+ <TokenIcon symbol="ETH" ImageComponent={MyImage} />
117
+ <BackButton href="/back" LinkComponent={Link} />
118
+ ```
119
+
120
+ ## Migration
121
+
122
+ If you're migrating from a version that required Next.js, see [MIGRATION.md](./MIGRATION.md) for detailed instructions.
4
123
 
5
124
  ### Important information for contributors
6
125
 
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var asset_line_exports = {};
30
+ __export(asset_line_exports, {
31
+ AssetLine: () => AssetLine
32
+ });
33
+ module.exports = __toCommonJS(asset_line_exports);
34
+ var import_jsx_runtime = require("react/jsx-runtime");
35
+ var React = __toESM(require("react"));
36
+ var import_utils = __toESM(require('../utils/index.js'));
37
+ var import_description = require('./description.js');
38
+ var import_short_string = require('./short-string.js');
39
+ var import_grid_table = require('./table/grid-table.js');
40
+ var import_token_symbol = require('./token-symbol.js');
41
+ var import_vspace = require('./vspace.js');
42
+ const ICON_SIZES = {
43
+ default: 24,
44
+ sm: 20,
45
+ md: 24,
46
+ lg: 28
47
+ };
48
+ const GAP_SIZES = {
49
+ default: 0,
50
+ sm: 2,
51
+ md: 4,
52
+ lg: 4
53
+ };
54
+ const AssetLine = React.forwardRef(
55
+ ({
56
+ token,
57
+ tokenLabel,
58
+ tokenDescription,
59
+ network,
60
+ chainId,
61
+ value,
62
+ valueDescription,
63
+ size = "default",
64
+ iconSize = size,
65
+ gapSize = size,
66
+ last,
67
+ symbolMaxLength,
68
+ descriptionMaxLength,
69
+ onSelect,
70
+ hideValue = false,
71
+ className
72
+ }, ref) => {
73
+ const label = tokenLabel || token?.title;
74
+ const cellSize = size === "md" ? "default" : size;
75
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
76
+ import_grid_table.GridTableRow,
77
+ {
78
+ ref,
79
+ className: (0, import_utils.default)(
80
+ last && "[&>*]:border-0",
81
+ onSelect && "cursor-pointer",
82
+ className
83
+ ),
84
+ onClick: onSelect,
85
+ cols: hideValue ? "1fr" : "1fr 1fr",
86
+ children: [
87
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_grid_table.GridTableCell, { size: cellSize, className: "text-left", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-3", children: [
88
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
89
+ import_token_symbol.TokenSymbol,
90
+ {
91
+ token,
92
+ size: ICON_SIZES[iconSize],
93
+ chainId,
94
+ network
95
+ }
96
+ ),
97
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex-1 min-w-0", children: [
98
+ label && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_short_string.ShortString, { maxLength: symbolMaxLength, children: label }),
99
+ label && tokenDescription && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_vspace.VSpace, { height: GAP_SIZES[gapSize] }),
100
+ tokenDescription && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_description.Description, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_short_string.ShortString, { maxLength: descriptionMaxLength, children: String(tokenDescription) }) })
101
+ ] })
102
+ ] }) }),
103
+ !hideValue && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_grid_table.GridTableCell, { size: cellSize, className: "text-right", children: [
104
+ value,
105
+ value && valueDescription && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_vspace.VSpace, { height: GAP_SIZES[gapSize] }),
106
+ valueDescription && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_description.Description, { children: valueDescription })
107
+ ] })
108
+ ]
109
+ }
110
+ );
111
+ }
112
+ );
113
+ AssetLine.displayName = "AssetLine";
114
+ // Annotate the CommonJS export names for ESM import in node:
115
+ 0 && (module.exports = {
116
+ AssetLine
117
+ });
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var assets_list_cell_exports = {};
30
+ __export(assets_list_cell_exports, {
31
+ AssetsListCell: () => AssetsListCell
32
+ });
33
+ module.exports = __toCommonJS(assets_list_cell_exports);
34
+ var import_jsx_runtime = require("react/jsx-runtime");
35
+ var import_lucide_react = require("lucide-react");
36
+ var import_utils = __toESM(require('../utils/index.js'));
37
+ var import_buttons = require('./buttons/index.js');
38
+ var import_token_icon = require('./token-icon.js');
39
+ function AssetsListCell({
40
+ assetAddress,
41
+ symbol,
42
+ iconSymbol,
43
+ comment,
44
+ explorerUrl,
45
+ iconSize = 24,
46
+ className
47
+ }) {
48
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_utils.default)("flex items-center gap-3", className), children: [
49
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_token_icon.TokenIcon, { symbol: iconSymbol ?? symbol, size: iconSize }),
50
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-1", children: [
51
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "font-medium", children: symbol }),
52
+ comment && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "text-md text-muted-foreground", children: [
53
+ "(",
54
+ comment,
55
+ ")"
56
+ ] }),
57
+ explorerUrl && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
58
+ import_buttons.Button,
59
+ {
60
+ variant: "ghost",
61
+ size: "sm",
62
+ className: "text-muted-foreground hover:text-white p-0 h-auto",
63
+ onClick: () => window.open(`${explorerUrl}/address/${assetAddress}`, "_blank"),
64
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ExternalLink, { className: "h-3 w-3" })
65
+ }
66
+ )
67
+ ] })
68
+ ] });
69
+ }
70
+ // Annotate the CommonJS export names for ESM import in node:
71
+ 0 && (module.exports = {
72
+ AssetsListCell
73
+ });
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var assets_ratio_exports = {};
30
+ __export(assets_ratio_exports, {
31
+ AssetsRatio: () => AssetsRatio
32
+ });
33
+ module.exports = __toCommonJS(assets_ratio_exports);
34
+ var import_jsx_runtime = require("react/jsx-runtime");
35
+ var import_sdk = require("@gearbox-protocol/sdk");
36
+ var React = __toESM(require("react"));
37
+ var import_utils = __toESM(require('../utils/index.js'));
38
+ const sumAssets = (assets) => assets.reduce((acc, a) => {
39
+ return acc + a.balanceInUSD;
40
+ }, 0n);
41
+ const COLOR_BY_INDEX = {
42
+ 0: "bg-[#4976FE]",
43
+ 1: "bg-[#FFE55A]",
44
+ 2: "bg-[#CA5AFF]"
45
+ };
46
+ const DEFAULT_COLOR = "bg-[#5ABAFF]";
47
+ function AssetsRatio({
48
+ assets,
49
+ className
50
+ }) {
51
+ const [top3Assets, restAssets] = React.useMemo(() => {
52
+ const topN = assets.slice(0, 3);
53
+ const total = sumAssets(assets);
54
+ const rest = sumAssets(assets.slice(3));
55
+ const top3InPercent = topN.map(
56
+ (a) => total > 0 ? Number(
57
+ a.balanceInUSD * import_sdk.PERCENTAGE_FACTOR * import_sdk.PERCENTAGE_DECIMALS / total
58
+ ) / Number(import_sdk.PERCENTAGE_FACTOR) : Number(import_sdk.PERCENTAGE_FACTOR)
59
+ );
60
+ const restInPercent = total > 0n ? Number(rest * import_sdk.PERCENTAGE_FACTOR * import_sdk.PERCENTAGE_DECIMALS / total) / Number(import_sdk.PERCENTAGE_FACTOR) : 0;
61
+ return [top3InPercent, restInPercent];
62
+ }, [assets]);
63
+ const hasLastAsset = restAssets > 0;
64
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
65
+ "span",
66
+ {
67
+ className: (0, import_utils.default)(
68
+ "relative inline-flex overflow-hidden w-full h-[10px] bg-muted border-2 border-muted rounded-[20px]",
69
+ className
70
+ ),
71
+ children: [
72
+ top3Assets.map((percentage, index, arr) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
73
+ "span",
74
+ {
75
+ className: (0, import_utils.default)(
76
+ "relative inline-flex h-full",
77
+ COLOR_BY_INDEX[index] || DEFAULT_COLOR,
78
+ !hasLastAsset && index === arr.length - 1 ? "" : "border-r-2 border-muted"
79
+ ),
80
+ style: { width: `${percentage}%` }
81
+ },
82
+ `${percentage}-${index}-${assets.length}`
83
+ )),
84
+ hasLastAsset && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
85
+ "span",
86
+ {
87
+ className: (0, import_utils.default)("relative inline-flex h-full", DEFAULT_COLOR),
88
+ style: { width: `${restAssets}%` }
89
+ }
90
+ )
91
+ ]
92
+ }
93
+ );
94
+ }
95
+ // Annotate the CommonJS export names for ESM import in node:
96
+ 0 && (module.exports = {
97
+ AssetsRatio
98
+ });
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ "use client";
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -23,15 +24,14 @@ __export(siwe_provider_exports, {
23
24
  module.exports = __toCommonJS(siwe_provider_exports);
24
25
  var import_jsx_runtime = require("react/jsx-runtime");
25
26
  var import_connectkit = require("connectkit");
26
- var import_navigation = require("next/navigation");
27
27
  var import_siwe = require("viem/siwe");
28
28
  function SIWEClientProvider({
29
29
  apiRoutePrefix,
30
30
  statement,
31
31
  children,
32
+ onRefresh,
32
33
  ...props
33
34
  }) {
34
- const router = (0, import_navigation.useRouter)();
35
35
  const getNonce = async () => {
36
36
  const res = await fetch(`${apiRoutePrefix}/nonce`);
37
37
  if (!res.ok) {
@@ -80,14 +80,14 @@ function SIWEClientProvider({
80
80
  return res.json();
81
81
  },
82
82
  onSignIn: async (session) => {
83
- router.refresh();
83
+ onRefresh?.();
84
84
  return session;
85
85
  },
86
86
  signOut: async () => {
87
87
  await fetch(`${apiRoutePrefix}/logout`, {
88
88
  method: "POST"
89
89
  });
90
- router.refresh();
90
+ onRefresh?.();
91
91
  return true;
92
92
  },
93
93
  ...props,
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var base_link_exports = {};
30
+ __export(base_link_exports, {
31
+ BaseLink: () => BaseLink
32
+ });
33
+ module.exports = __toCommonJS(base_link_exports);
34
+ var import_jsx_runtime = require("react/jsx-runtime");
35
+ var import_react_slot = require("@radix-ui/react-slot");
36
+ var React = __toESM(require("react"));
37
+ var import_utils = __toESM(require('../utils/index.js'));
38
+ const BaseLink = React.forwardRef(
39
+ ({ className, asChild = false, external = false, children, ...props }, ref) => {
40
+ const Comp = asChild ? import_react_slot.Slot : "a";
41
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
42
+ Comp,
43
+ {
44
+ ref,
45
+ className: (0, import_utils.default)(
46
+ "text-foreground no-underline hover:text-foreground/80 transition-colors",
47
+ className
48
+ ),
49
+ target: external ? "_blank" : void 0,
50
+ rel: external ? "noopener noreferrer" : void 0,
51
+ ...props,
52
+ children
53
+ }
54
+ );
55
+ }
56
+ );
57
+ BaseLink.displayName = "BaseLink";
58
+ // Annotate the CommonJS export names for ESM import in node:
59
+ 0 && (module.exports = {
60
+ BaseLink
61
+ });
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ "use client";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var block_sync_exports = {};
21
+ __export(block_sync_exports, {
22
+ BlockSync: () => BlockSync
23
+ });
24
+ module.exports = __toCommonJS(block_sync_exports);
25
+ var import_jsx_runtime = require("react/jsx-runtime");
26
+ var import_react = require("react");
27
+ var import_cn = require('../utils/cn.js');
28
+ var import_tooltip = require('./tooltip.js');
29
+ const TEN_MINUTES = 1e3 * 60 * 10;
30
+ function BlockSync({
31
+ blockByChain,
32
+ explorerAddresses,
33
+ networkById
34
+ }) {
35
+ const [latestTs, setLatestTs] = (0, import_react.useState)(Date.now());
36
+ (0, import_react.useEffect)(() => {
37
+ const syncTask = () => {
38
+ setLatestTs(Date.now());
39
+ };
40
+ const timer = window.setInterval(syncTask, 1e3);
41
+ return () => {
42
+ clearInterval(timer);
43
+ };
44
+ }, []);
45
+ const passedSinceEarliestBlockUpdate = (0, import_react.useMemo)(() => {
46
+ if (!blockByChain) return 0;
47
+ const blockTS = Object.values(blockByChain).reduce((minTs, block) => {
48
+ const ts = block.lastSyncBlock.localTimestamp;
49
+ if (minTs === 0) return ts;
50
+ if (minTs !== 0 && ts < minTs) return ts;
51
+ return minTs;
52
+ }, 0);
53
+ return blockTS ? latestTs - blockTS : 0;
54
+ }, [blockByChain, latestTs]);
55
+ const isError = passedSinceEarliestBlockUpdate > TEN_MINUTES;
56
+ const renderDot = () => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-2", children: [
57
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
58
+ "span",
59
+ {
60
+ className: (0, import_cn.cn)("text-xs", isError ? "text-red-500" : "text-green-500"),
61
+ children: "Status"
62
+ }
63
+ ),
64
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
65
+ "div",
66
+ {
67
+ className: (0, import_cn.cn)(
68
+ "w-2 h-2 rounded-full",
69
+ isError ? "bg-red-500" : "bg-green-500"
70
+ )
71
+ }
72
+ )
73
+ ] });
74
+ const renderTooltipContent = () => {
75
+ if (!blockByChain) return null;
76
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex flex-col gap-2 text-left text-xs", children: Object.entries(blockByChain).map(([chainId, blockData]) => {
77
+ const lastSyncBlock = blockData.lastSyncBlock;
78
+ const block = lastSyncBlock?.block || 0n;
79
+ const since = lastSyncBlock?.localTimestamp ? latestTs - lastSyncBlock.localTimestamp : 0;
80
+ const explorer = explorerAddresses[Number(chainId)];
81
+ const explorerURL = typeof explorer === "string" ? explorer : explorer && typeof explorer === "object" && "url" in explorer ? explorer.url : void 0;
82
+ const network = networkById[Number(chainId)] || "Unknown";
83
+ const blockString = `[${block.toString()}]`;
84
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
85
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
86
+ network,
87
+ " "
88
+ ] }),
89
+ explorerURL && block > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
90
+ "a",
91
+ {
92
+ href: `${explorerURL}/block/${block}`,
93
+ target: "_blank",
94
+ rel: "noopener noreferrer",
95
+ className: "underline hover:text-foreground",
96
+ children: blockString
97
+ }
98
+ ) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: blockString }),
99
+ block > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
100
+ ", updated ",
101
+ (since / 1e3).toFixed(0),
102
+ " seconds ago"
103
+ ] })
104
+ ] }, chainId);
105
+ }) });
106
+ };
107
+ if (!blockByChain) {
108
+ return renderDot();
109
+ }
110
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tooltip.TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_tooltip.Tooltip, { children: [
111
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tooltip.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "cursor-help", children: renderDot() }) }),
112
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tooltip.TooltipContent, { side: "top", align: "end", children: renderTooltipContent() })
113
+ ] }) });
114
+ }
115
+ // Annotate the CommonJS export names for ESM import in node:
116
+ 0 && (module.exports = {
117
+ BlockSync
118
+ });