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