@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
@@ -0,0 +1,31 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { cn } from "../../utils/cn.js";
4
+ const Layout = React.forwardRef(
5
+ ({ header, footer, children, className, ...props }, ref) => {
6
+ return /* @__PURE__ */ jsxs(
7
+ "div",
8
+ {
9
+ ref,
10
+ className: cn("grid min-h-screen grid-rows-[auto_1fr_auto]", className),
11
+ style: {
12
+ gridTemplateAreas: `
13
+ "header"
14
+ "main"
15
+ "footer"
16
+ `
17
+ },
18
+ ...props,
19
+ children: [
20
+ header && /* @__PURE__ */ jsx("div", { style: { gridArea: "header" }, children: header }),
21
+ /* @__PURE__ */ jsx("main", { className: "overflow-x-hidden", style: { gridArea: "main" }, children }),
22
+ footer && /* @__PURE__ */ jsx("div", { style: { gridArea: "footer" }, children: footer })
23
+ ]
24
+ }
25
+ );
26
+ }
27
+ );
28
+ Layout.displayName = "Layout";
29
+ export {
30
+ Layout
31
+ };
@@ -0,0 +1,4 @@
1
+ export * from "./liquidation-assets-table.js";
2
+ export * from "./liquidation-graph.js";
3
+ export * from "./liquidation-graph-legend.js";
4
+ export * from "./liquidation-graph-tip.js";
@@ -0,0 +1,71 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { AssetUtils, PRICE_DECIMALS } from "@gearbox-protocol/sdk";
3
+ import { useMemo } from "react";
4
+ import { TokenSymbol } from "../token-symbol.js";
5
+ import { FormattedMessageTyped } from "../typed-intl/index.js";
6
+ const lineHeight = 51;
7
+ function LiquidationModellingAssetsTable({
8
+ tokensList,
9
+ graphParams,
10
+ data,
11
+ prices,
12
+ editedPrices
13
+ }) {
14
+ const { fixedBalances } = graphParams;
15
+ const fixedBalancesRecord = useMemo(() => {
16
+ return AssetUtils.constructAssetRecord(fixedBalances);
17
+ }, [fixedBalances]);
18
+ return /* @__PURE__ */ jsxs("div", { className: "w-full", children: [
19
+ /* @__PURE__ */ jsxs(
20
+ "div",
21
+ {
22
+ className: "grid w-full px-4 gap-2 items-center h-[30px] relative after:absolute after:bottom-0 after:left-2 after:right-2 after:h-px after:border-b after:border-border",
23
+ style: { gridTemplateColumns: "1fr 1fr 1fr" },
24
+ children: [
25
+ /* @__PURE__ */ jsx("div", { className: "text-left text-sm font-medium text-muted-foreground", children: /* @__PURE__ */ jsx(FormattedMessageTyped, { messageId: "components.creditSessionDetailedLiquidation.table.asset" }) }),
26
+ /* @__PURE__ */ jsx("div", { className: "text-right text-sm font-medium text-muted-foreground", children: /* @__PURE__ */ jsx(FormattedMessageTyped, { messageId: "components.creditSessionDetailedLiquidation.table.currentPrice" }) }),
27
+ /* @__PURE__ */ jsx("div", { className: "text-right text-sm font-medium text-muted-foreground", children: /* @__PURE__ */ jsx(FormattedMessageTyped, { messageId: "components.creditSessionDetailedLiquidation.table.modelPrice" }) })
28
+ ]
29
+ }
30
+ ),
31
+ data.map((c, num, arr) => {
32
+ const isLast = arr.length - 1 === num;
33
+ return /* @__PURE__ */ jsxs(
34
+ "div",
35
+ {
36
+ className: `grid w-full px-4 gap-2 items-center relative ${isLast ? "" : "after:absolute after:bottom-0 after:left-2 after:right-2 after:h-px after:border-b after:border-border"}`,
37
+ style: {
38
+ gridTemplateColumns: "1fr 1fr 1fr",
39
+ height: `${lineHeight}px`
40
+ },
41
+ children: [
42
+ /* @__PURE__ */ jsx("div", { className: "text-left", children: /* @__PURE__ */ jsx(
43
+ TokenSymbol,
44
+ {
45
+ size: 24,
46
+ token: tokensList[c.token],
47
+ showSymbol: true,
48
+ maxLength: 8
49
+ }
50
+ ) }),
51
+ /* @__PURE__ */ jsxs("div", { className: "text-right", children: [
52
+ "$",
53
+ formatPrice(prices[c.token])
54
+ ] }),
55
+ /* @__PURE__ */ jsx("div", { className: "text-right", children: fixedBalancesRecord[c.token] ? /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: /* @__PURE__ */ jsx(FormattedMessageTyped, { messageId: "components.creditSessionDetailedLiquidation.table.seeGraph" }) }) : /* @__PURE__ */ jsxs("span", { className: "text-sm text-muted-foreground", children: [
56
+ "$",
57
+ formatPrice(editedPrices[c.token] || prices[c.token])
58
+ ] }) })
59
+ ]
60
+ },
61
+ c.token
62
+ );
63
+ })
64
+ ] });
65
+ }
66
+ function formatPrice(price) {
67
+ return (Number(price || 0n) / Number(PRICE_DECIMALS)).toFixed(2);
68
+ }
69
+ export {
70
+ LiquidationModellingAssetsTable
71
+ };
@@ -0,0 +1,17 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { FormattedMessageTyped } from "../typed-intl/index.js";
3
+ function LiquidationGraphLegend() {
4
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-center gap-8 w-full", children: [
5
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
6
+ /* @__PURE__ */ jsx("div", { className: "w-[9px] h-[9px] bg-white" }),
7
+ /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: /* @__PURE__ */ jsx(FormattedMessageTyped, { messageId: "components.creditSessionDetailedLiquidation.graph.legend.point" }) })
8
+ ] }),
9
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
10
+ /* @__PURE__ */ jsx("div", { className: "w-[9px] h-[9px] bg-[rgb(244,67,54)]" }),
11
+ /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: /* @__PURE__ */ jsx(FormattedMessageTyped, { messageId: "components.creditSessionDetailedLiquidation.graph.legend.area" }) })
12
+ ] })
13
+ ] });
14
+ }
15
+ export {
16
+ LiquidationGraphLegend
17
+ };
@@ -0,0 +1,72 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import {
3
+ formatAxisTipLabel,
4
+ formatAxisTipPrice
5
+ } from "../../hooks/use-liquidation/index.js";
6
+ import { HealthFactor } from "../health-factor.js";
7
+ import { ShortString } from "../short-string.js";
8
+ import { TokenSymbol } from "../token-symbol.js";
9
+ import { FormattedMessageTyped } from "../typed-intl/index.js";
10
+ function LiquidationGraphTip({
11
+ activePointX,
12
+ activePointY,
13
+ xAxis,
14
+ yAxis,
15
+ hf,
16
+ underlyingToken,
17
+ maxLabelLength
18
+ }) {
19
+ return /* @__PURE__ */ jsxs("div", { className: "flex w-full justify-between items-center", children: [
20
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
21
+ xAxis && /* @__PURE__ */ jsx("div", { className: "flex items-center", children: /* @__PURE__ */ jsx(
22
+ PriceLine,
23
+ {
24
+ underlyingToken,
25
+ token: xAxis.label,
26
+ value: activePointX,
27
+ order: xAxis.order,
28
+ maxLabelLength
29
+ }
30
+ ) }),
31
+ yAxis && /* @__PURE__ */ jsx("div", { className: "flex items-center", children: /* @__PURE__ */ jsx(
32
+ PriceLine,
33
+ {
34
+ underlyingToken,
35
+ token: yAxis.label,
36
+ value: activePointY,
37
+ order: yAxis.order,
38
+ maxLabelLength
39
+ }
40
+ ) })
41
+ ] }),
42
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
43
+ /* @__PURE__ */ jsxs("div", { className: "text-sm text-muted-foreground", children: [
44
+ /* @__PURE__ */ jsx(FormattedMessageTyped, { messageId: "components.creditSessionDetailedLiquidation.graph.tip.hf" }),
45
+ ":"
46
+ ] }),
47
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(HealthFactor, { value: hf, debt: 1n }) })
48
+ ] })
49
+ ] });
50
+ }
51
+ function PriceLine({
52
+ token,
53
+ underlyingToken,
54
+ value = 0,
55
+ order = "straight",
56
+ maxLabelLength = 13
57
+ }) {
58
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
59
+ /* @__PURE__ */ jsx(TokenSymbol, { token, size: 12 }),
60
+ /* @__PURE__ */ jsxs("div", { className: "text-sm text-foreground", children: [
61
+ /* @__PURE__ */ jsx(ShortString, { maxLength: maxLabelLength, children: formatAxisTipLabel(token, underlyingToken, order) }),
62
+ " ",
63
+ /* @__PURE__ */ jsx(FormattedMessageTyped, { messageId: "components.creditSessionDetailedLiquidation.graph.tip.price" }),
64
+ ": ",
65
+ underlyingToken ? "" : "$",
66
+ formatAxisTipPrice(value)
67
+ ] })
68
+ ] });
69
+ }
70
+ export {
71
+ LiquidationGraphTip
72
+ };
@@ -0,0 +1,191 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useCallback } from "react";
3
+ import ColorHeatmap from "reactochart/ColorHeatmap";
4
+ import XAxis from "reactochart/XAxis";
5
+ import XLine from "reactochart/XLine";
6
+ import XYPlot from "reactochart/XYPlot";
7
+ import YAxis from "reactochart/YAxis";
8
+ import YLine from "reactochart/YLine";
9
+ import { useHF } from "../../hooks/use-hf.js";
10
+ import {
11
+ DEFAULT_AXIS_MAX,
12
+ DEFAULT_AXIS_MIN,
13
+ formatAxisLabel,
14
+ formatAxisTipLabel,
15
+ getCellClass,
16
+ useIsAxisInRelativeUnits,
17
+ useLiquidationGraphActivePrice,
18
+ useLiquidationGraphCurrentActiveValue,
19
+ useLiquidationHeatmap,
20
+ useWithLiquidationGraphActivePrices
21
+ } from "../../hooks/use-liquidation/index.js";
22
+ import { VSpace } from "../vspace.js";
23
+ import { LiquidationGraphLegend } from "./liquidation-graph-legend.js";
24
+ import { LiquidationGraphTip } from "./liquidation-graph-tip.js";
25
+ const WIDTH = 300;
26
+ const HEIGHT = 300;
27
+ const CROSSHAIR_X = "rct-crosshair-x";
28
+ const CROSSHAIR_Y = "rct-crosshair-y";
29
+ function LiquidationGraph({
30
+ graphParams,
31
+ assets,
32
+ liquidationThresholds,
33
+ quotas,
34
+ quotasInfo,
35
+ underlyingToken: underlyingTokenAddress,
36
+ debt,
37
+ prices,
38
+ tokensList,
39
+ width = WIDTH,
40
+ height = HEIGHT,
41
+ maxLabelLength
42
+ }) {
43
+ const { xAxis, yAxis, currentPoint } = graphParams;
44
+ const {
45
+ min: xMin = DEFAULT_AXIS_MIN,
46
+ max: xMax = DEFAULT_AXIS_MAX,
47
+ label: xLabel,
48
+ order: xOrder = "straight",
49
+ nextOrder: nextOrderX
50
+ } = xAxis || {};
51
+ const {
52
+ min: yMin = DEFAULT_AXIS_MIN,
53
+ max: yMax = DEFAULT_AXIS_MAX,
54
+ label: yLabel,
55
+ order: yOrder = "straight",
56
+ nextOrder: nextOrderY
57
+ } = yAxis || {};
58
+ const heatmap = useLiquidationHeatmap({
59
+ xMin,
60
+ xMax,
61
+ yMin,
62
+ yMax,
63
+ xLabel,
64
+ yLabel,
65
+ assets,
66
+ quotas,
67
+ prices,
68
+ liquidationThresholds,
69
+ underlyingTokenAddress,
70
+ debt,
71
+ quotasInfo,
72
+ tokensList
73
+ });
74
+ const { activePoint, handleMouseLeave, handleMouseMove } = useLiquidationGraphCurrentActiveValue();
75
+ const [activePointX, activePointY] = activePoint || [];
76
+ const activePrices = useWithLiquidationGraphActivePrices({
77
+ prices,
78
+ activePoint,
79
+ xLabel,
80
+ yLabel
81
+ });
82
+ const hf = useHF({
83
+ quotas,
84
+ quotasInfo,
85
+ assets,
86
+ prices: activePrices,
87
+ liquidationThresholds,
88
+ underlyingToken: underlyingTokenAddress,
89
+ debt,
90
+ tokensList
91
+ });
92
+ const underlyingPrice = prices[underlyingTokenAddress] || 1n;
93
+ const underlyingToken = tokensList[underlyingTokenAddress];
94
+ const xRelative = useIsAxisInRelativeUnits(xLabel, underlyingToken);
95
+ const yRelative = useIsAxisInRelativeUnits(yLabel, underlyingToken);
96
+ const activePriceX = useLiquidationGraphActivePrice(
97
+ activePointX || currentPoint[0],
98
+ underlyingPrice,
99
+ xRelative,
100
+ xOrder
101
+ );
102
+ const activePriceY = useLiquidationGraphActivePrice(
103
+ activePointY || currentPoint[1],
104
+ underlyingPrice,
105
+ yRelative,
106
+ yOrder
107
+ );
108
+ const labelXFormatter = useCallback(
109
+ formatAxisLabel(underlyingPrice, xRelative, xOrder),
110
+ []
111
+ );
112
+ const labelYFormatter = useCallback(
113
+ formatAxisLabel(underlyingPrice, yRelative, yOrder),
114
+ []
115
+ );
116
+ return /* @__PURE__ */ jsxs("div", { className: "mx-auto", style: { width: `${width}px`, maxWidth: "100%" }, children: [
117
+ /* @__PURE__ */ jsx("div", { className: "w-full", children: /* @__PURE__ */ jsx(
118
+ LiquidationGraphTip,
119
+ {
120
+ underlyingToken,
121
+ hf: hf.hf,
122
+ xAxis,
123
+ yAxis,
124
+ activePointX: activePriceX,
125
+ activePointY: activePriceY,
126
+ maxLabelLength
127
+ }
128
+ ) }),
129
+ /* @__PURE__ */ jsx(VSpace, { height: 16 }),
130
+ /* @__PURE__ */ jsx("div", { className: "w-full liquidation-graph-container", children: /* @__PURE__ */ jsxs(
131
+ XYPlot,
132
+ {
133
+ width,
134
+ height,
135
+ xDomain: [xMin, xMax],
136
+ yDomain: [yMin, yMax],
137
+ onMouseMove: handleMouseMove,
138
+ onMouseLeave: handleMouseLeave,
139
+ children: [
140
+ /* @__PURE__ */ jsx(
141
+ XAxis,
142
+ {
143
+ showLine: false,
144
+ title: formatAxisTipLabel(xLabel, underlyingToken, xOrder),
145
+ titleAlign: "right",
146
+ tickCount: 5,
147
+ labelFormat: labelXFormatter,
148
+ showLabels: !!xLabel,
149
+ showTicks: !!xLabel,
150
+ onMouseClickAxis: nextOrderX,
151
+ nice: false
152
+ }
153
+ ),
154
+ /* @__PURE__ */ jsx(
155
+ YAxis,
156
+ {
157
+ showLine: false,
158
+ title: formatAxisTipLabel(yLabel, underlyingToken, yOrder),
159
+ titleAlign: "top",
160
+ tickCount: 5,
161
+ labelFormat: labelYFormatter,
162
+ showLabels: !!yLabel,
163
+ showTicks: !!yLabel,
164
+ onMouseClickAxis: nextOrderY,
165
+ nice: false
166
+ }
167
+ ),
168
+ /* @__PURE__ */ jsx(
169
+ ColorHeatmap,
170
+ {
171
+ data: heatmap,
172
+ value: (d) => d.value,
173
+ x: (d) => d.x,
174
+ xEnd: (d) => d.xEnd,
175
+ y: (d) => d.y,
176
+ yEnd: (d) => d.yEnd,
177
+ rectClassName: (p) => getCellClass(p, currentPoint, activePointX, activePointY)
178
+ }
179
+ ),
180
+ activePointX !== void 0 && activePointX !== null && /* @__PURE__ */ jsx(XLine, { value: activePointX, className: CROSSHAIR_X }),
181
+ activePointY !== void 0 && activePointY !== null && /* @__PURE__ */ jsx(YLine, { value: activePointY, className: CROSSHAIR_Y })
182
+ ]
183
+ }
184
+ ) }),
185
+ /* @__PURE__ */ jsx(VSpace, { height: 12 }),
186
+ /* @__PURE__ */ jsx("div", { className: "w-full", children: /* @__PURE__ */ jsx(LiquidationGraphLegend, {}) })
187
+ ] });
188
+ }
189
+ export {
190
+ LiquidationGraph
191
+ };
@@ -0,0 +1,23 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Guard } from "./guard.js";
3
+ import { Container } from "./layout/index.js";
4
+ import { Skeleton } from "./skeleton.js";
5
+ function LoaderGuard({
6
+ showGuard: show,
7
+ children,
8
+ loader
9
+ }) {
10
+ const defaultLoader = /* @__PURE__ */ jsx(Container, { children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 p-4", children: [
11
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-64" }),
12
+ /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
13
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-full" }),
14
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-full" }),
15
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-3/4" })
16
+ ] })
17
+ ] }) });
18
+ const showGuard = show;
19
+ return /* @__PURE__ */ jsx(Guard, { showGuard, guard: showGuard && (loader || defaultLoader), children });
20
+ }
21
+ export {
22
+ LoaderGuard
23
+ };
@@ -0,0 +1,31 @@
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { Container } from "./layout/index.js";
3
+ import { Skeleton } from "./skeleton.js";
4
+ function LoadingGuard({
5
+ showGuard,
6
+ children,
7
+ fallback
8
+ }) {
9
+ if (showGuard) {
10
+ if (fallback) {
11
+ return /* @__PURE__ */ jsx(Fragment, { children: fallback });
12
+ }
13
+ return /* @__PURE__ */ jsx(Container, { children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 p-4", children: [
14
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-64" }),
15
+ /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
16
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-full" }),
17
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-full" }),
18
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-3/4" })
19
+ ] }),
20
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-3 gap-4 mt-4", children: [
21
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-32 w-full" }),
22
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-32 w-full" }),
23
+ /* @__PURE__ */ jsx(Skeleton, { className: "h-32 w-full" })
24
+ ] })
25
+ ] }) });
26
+ }
27
+ return /* @__PURE__ */ jsx(Fragment, { children });
28
+ }
29
+ export {
30
+ LoadingGuard
31
+ };
@@ -18,8 +18,10 @@ function getTextContent(children) {
18
18
  if (Array.isArray(children)) {
19
19
  return children.map(getTextContent).join("");
20
20
  }
21
- if (children && typeof children === "object" && "props" in children) {
22
- return getTextContent(children.props.children);
21
+ if (children && typeof children === "object" && "props" in children && typeof children.props === "object" && children.props !== null && "children" in children.props) {
22
+ return getTextContent(
23
+ children.props.children
24
+ );
23
25
  }
24
26
  return "";
25
27
  }
@@ -0,0 +1,75 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import {
3
+ createContext,
4
+ useCallback,
5
+ useContext,
6
+ useEffect,
7
+ useRef,
8
+ useState
9
+ } from "react";
10
+ const NavbarIndicatorContext = createContext(
11
+ null
12
+ );
13
+ const NavbarIndicatorProvider = ({ children }) => {
14
+ const itemsRef = useRef(/* @__PURE__ */ new Map());
15
+ const [activeItemId, setActiveItemId] = useState(null);
16
+ const indicatorRef = useRef(null);
17
+ const containerRef = useRef(null);
18
+ const registerItem = useCallback((id, element) => {
19
+ itemsRef.current.set(id, element);
20
+ }, []);
21
+ const unregisterItem = useCallback((id) => {
22
+ itemsRef.current.delete(id);
23
+ }, []);
24
+ const updateIndicatorPosition = useCallback((id) => {
25
+ if (!indicatorRef.current || !containerRef.current) return;
26
+ const targetElement = itemsRef.current.get(id);
27
+ if (!targetElement) return;
28
+ const targetRect = targetElement.getBoundingClientRect();
29
+ const containerRect = containerRef.current.getBoundingClientRect();
30
+ const left = targetRect.left - containerRect.left + containerRef.current.scrollLeft;
31
+ const width = targetRect.width;
32
+ indicatorRef.current.style.opacity = "1";
33
+ indicatorRef.current.style.transform = `translateX(${left}px)`;
34
+ indicatorRef.current.style.width = `${width}px`;
35
+ }, []);
36
+ const handleSetActiveItem = useCallback(
37
+ (id) => {
38
+ setActiveItemId(id);
39
+ updateIndicatorPosition(id);
40
+ },
41
+ [updateIndicatorPosition]
42
+ );
43
+ useEffect(() => {
44
+ if (activeItemId) {
45
+ updateIndicatorPosition(activeItemId);
46
+ }
47
+ }, [activeItemId, updateIndicatorPosition]);
48
+ useEffect(() => {
49
+ const handleResize = () => {
50
+ if (activeItemId) {
51
+ updateIndicatorPosition(activeItemId);
52
+ }
53
+ };
54
+ window.addEventListener("resize", handleResize);
55
+ return () => window.removeEventListener("resize", handleResize);
56
+ }, [activeItemId, updateIndicatorPosition]);
57
+ return /* @__PURE__ */ jsx(
58
+ NavbarIndicatorContext.Provider,
59
+ {
60
+ value: {
61
+ registerItem,
62
+ unregisterItem,
63
+ setActiveItem: handleSetActiveItem,
64
+ containerRef,
65
+ indicatorRef
66
+ },
67
+ children
68
+ }
69
+ );
70
+ };
71
+ const useNavbarIndicator = () => useContext(NavbarIndicatorContext);
72
+ export {
73
+ NavbarIndicatorProvider,
74
+ useNavbarIndicator
75
+ };
@@ -0,0 +1,98 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { cva } from "class-variance-authority";
3
+ import * as React from "react";
4
+ import cn from "../utils/index.js";
5
+ import {
6
+ NavbarIndicatorProvider,
7
+ useNavbarIndicator
8
+ } from "./navbar-indicator-context.js";
9
+ const navbarVariants = cva("flex items-center bg-background", {
10
+ variants: {
11
+ variant: {
12
+ default: "justify-between",
13
+ centered: "justify-center",
14
+ left: "justify-start",
15
+ right: "justify-end"
16
+ },
17
+ size: {
18
+ sm: "h-12 px-4",
19
+ default: "h-full px-6",
20
+ lg: "h-20 px-8"
21
+ },
22
+ sticky: {
23
+ true: "sticky top-0 z-50",
24
+ false: ""
25
+ }
26
+ },
27
+ defaultVariants: {
28
+ variant: "default",
29
+ size: "default",
30
+ sticky: false
31
+ }
32
+ });
33
+ const NavbarContent = ({ containerClassName, children }) => {
34
+ const indicatorContext = useNavbarIndicator();
35
+ return /* @__PURE__ */ jsxs(
36
+ "div",
37
+ {
38
+ ref: indicatorContext?.containerRef,
39
+ className: cn(
40
+ "flex items-center gap-2 flex-1 justify-center overflow-x-auto h-full relative",
41
+ containerClassName
42
+ ),
43
+ children: [
44
+ children,
45
+ /* @__PURE__ */ jsx(
46
+ "div",
47
+ {
48
+ ref: indicatorContext?.indicatorRef,
49
+ className: "absolute bottom-0 h-0.5 bg-pink-500 transition-all duration-300 ease-out pointer-events-none",
50
+ style: {
51
+ left: 0,
52
+ width: 0,
53
+ opacity: 0,
54
+ transform: "translateX(0)"
55
+ }
56
+ }
57
+ )
58
+ ]
59
+ }
60
+ );
61
+ };
62
+ const Navbar = React.forwardRef(
63
+ ({
64
+ className,
65
+ variant,
66
+ size,
67
+ sticky,
68
+ containerClassName,
69
+ children,
70
+ ...props
71
+ }, ref) => {
72
+ return /* @__PURE__ */ jsx(
73
+ "nav",
74
+ {
75
+ ref,
76
+ className: cn(navbarVariants({ variant, size, sticky, className })),
77
+ ...props,
78
+ children: /* @__PURE__ */ jsx(NavbarIndicatorProvider, { children: /* @__PURE__ */ jsx(NavbarContent, { containerClassName, children }) })
79
+ }
80
+ );
81
+ }
82
+ );
83
+ Navbar.displayName = "Navbar";
84
+ const NavbarNav = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
85
+ "div",
86
+ {
87
+ ref,
88
+ className: cn("flex items-center gap-1", className),
89
+ ...props,
90
+ children
91
+ }
92
+ ));
93
+ NavbarNav.displayName = "NavbarNav";
94
+ export {
95
+ Navbar,
96
+ NavbarNav,
97
+ navbarVariants
98
+ };