@gearbox-protocol/permissionless-ui 1.2.32 → 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,150 @@
1
+ import { DateTime } from "luxon";
2
+ const MAX_EXPONENTIAL_MONEY_THRESHOLD = 1e11;
3
+ const EPSILON = 1e-10;
4
+ const MIN_DISPLAY_THRESHOLD = 1e-4;
5
+ function formatMoneyAmount({
6
+ amount,
7
+ maxExponentialThreshold,
8
+ minimumFractionDigits = 0,
9
+ maximumFractionDigits = 0,
10
+ format = "full"
11
+ }) {
12
+ const absAmount = Math.abs(amount);
13
+ if (format === "short") {
14
+ if (absAmount >= 1e9) {
15
+ return `${(amount / 1e9).toFixed(maximumFractionDigits)}B`;
16
+ }
17
+ if (absAmount >= 1e6) {
18
+ return `${(amount / 1e6).toFixed(maximumFractionDigits)}M`;
19
+ }
20
+ if (absAmount >= 1e3) {
21
+ return `${(amount / 1e3).toFixed(maximumFractionDigits)}K`;
22
+ }
23
+ }
24
+ if (maxExponentialThreshold && absAmount > maxExponentialThreshold && absAmount > 0) {
25
+ return amount.toExponential(2);
26
+ }
27
+ return new Intl.NumberFormat("en-US", {
28
+ minimumFractionDigits,
29
+ maximumFractionDigits
30
+ }).format(amount);
31
+ }
32
+ function toSignificant(value, decimals) {
33
+ const divisor = 10n ** BigInt(decimals);
34
+ const result = Number(value) / Number(divisor);
35
+ return result.toFixed(decimals).replace(/\.?0+$/, "");
36
+ }
37
+ const formatGraphMoney = (value, symbol, format = "full") => {
38
+ const absValue = Math.abs(value);
39
+ if (absValue < EPSILON && absValue > 0) {
40
+ return symbol ? `<${MIN_DISPLAY_THRESHOLD}${symbol}` : `<${MIN_DISPLAY_THRESHOLD}`;
41
+ }
42
+ if (absValue === 0) {
43
+ return symbol ? `0${symbol}` : "0";
44
+ }
45
+ const f = formatMoneyAmount({
46
+ amount: value,
47
+ maxExponentialThreshold: MAX_EXPONENTIAL_MONEY_THRESHOLD,
48
+ minimumFractionDigits: 0,
49
+ maximumFractionDigits: 0,
50
+ format
51
+ });
52
+ if (symbol) return `${f}${symbol}`;
53
+ return f;
54
+ };
55
+ const PERCENT_DECIMALS = 2;
56
+ const formatGraphPercent = (value, symbol) => {
57
+ const absValue = Math.abs(value);
58
+ if (absValue < EPSILON && absValue > 0) {
59
+ return symbol ? `<${MIN_DISPLAY_THRESHOLD}${symbol}` : `<${MIN_DISPLAY_THRESHOLD}`;
60
+ }
61
+ if (absValue === 0) {
62
+ return symbol ? `0${symbol}` : "0";
63
+ }
64
+ const f = toSignificant(
65
+ BigInt(Math.floor(value * 10 ** PERCENT_DECIMALS)),
66
+ PERCENT_DECIMALS
67
+ );
68
+ if (symbol) return `${f}${symbol}`;
69
+ return f;
70
+ };
71
+ const DEFAULT_DECIMALS = 4;
72
+ const defaultFormatter = (value) => {
73
+ const absValue = Math.abs(value);
74
+ if (absValue < EPSILON && absValue > 0) {
75
+ return `<${MIN_DISPLAY_THRESHOLD}`;
76
+ }
77
+ if (absValue === 0) {
78
+ return "0";
79
+ }
80
+ const f = toSignificant(
81
+ BigInt(Math.floor(value * 10 ** DEFAULT_DECIMALS)),
82
+ DEFAULT_DECIMALS
83
+ );
84
+ return f;
85
+ };
86
+ const formatGraphToken = (value, symbol) => {
87
+ const absValue = Math.abs(value);
88
+ if (absValue < EPSILON && absValue > 0) {
89
+ return symbol ? `<${MIN_DISPLAY_THRESHOLD} ${symbol}` : `<${MIN_DISPLAY_THRESHOLD}`;
90
+ }
91
+ if (absValue === 0) {
92
+ return symbol ? `0 ${symbol}` : "0";
93
+ }
94
+ const isWholeNumber = Number.isInteger(value);
95
+ const amountAbs = Math.abs(value);
96
+ const shouldUseShortFormat = isWholeNumber && amountAbs >= 1e3;
97
+ const f = formatMoneyAmount({
98
+ amount: value,
99
+ maxExponentialThreshold: MAX_EXPONENTIAL_MONEY_THRESHOLD,
100
+ minimumFractionDigits: isWholeNumber ? 0 : 2,
101
+ maximumFractionDigits: shouldUseShortFormat ? 1 : isWholeNumber ? 0 : 2,
102
+ format: shouldUseShortFormat ? "short" : "full"
103
+ });
104
+ if (symbol) return `${f} ${symbol}`;
105
+ return f;
106
+ };
107
+ const Y_FORMATTERS = {
108
+ "%": formatGraphPercent,
109
+ $: formatGraphMoney,
110
+ token: formatGraphToken,
111
+ none: defaultFormatter
112
+ };
113
+ const getYFormatter = (unit) => Y_FORMATTERS[unit] || Y_FORMATTERS.token;
114
+ const formatXTime = (time) => DateTime.fromSeconds(Number(time)).toFormat("dd/LL/yyyy HH:mm");
115
+ const formatXTimeOnly = (time) => DateTime.fromSeconds(Number(time)).toFormat("HH:mm");
116
+ const createMultiDayFormatter = () => {
117
+ let lastShownDay = null;
118
+ return (time) => {
119
+ const dateTime = DateTime.fromSeconds(Number(time));
120
+ const currentDay = dateTime.toFormat("yyyy-MM-dd");
121
+ if (currentDay !== lastShownDay) {
122
+ lastShownDay = currentDay;
123
+ return dateTime.toFormat("dd MMM");
124
+ }
125
+ return dateTime.toFormat("HH:mm");
126
+ };
127
+ };
128
+ const formatXPercent = (time, symbol) => formatGraphPercent(Number(time), symbol);
129
+ const X_FORMATTERS = {
130
+ time: formatXTime,
131
+ "%": formatXPercent
132
+ };
133
+ const getXFormatter = (unit, points) => {
134
+ if (unit === "time" && points && points.length > 0) {
135
+ const firstDate = DateTime.fromSeconds(Number(points[0].time));
136
+ const lastDate = DateTime.fromSeconds(
137
+ Number(points[points.length - 1].time)
138
+ );
139
+ const isSameDay = firstDate.hasSame(lastDate, "day");
140
+ if (isSameDay) {
141
+ return formatXTimeOnly;
142
+ }
143
+ return createMultiDayFormatter();
144
+ }
145
+ return X_FORMATTERS[unit] || X_FORMATTERS.time;
146
+ };
147
+ export {
148
+ getXFormatter,
149
+ getYFormatter
150
+ };
@@ -0,0 +1,30 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../../utils/cn.js";
3
+ import { getXFormatter, getYFormatter } from "./formatters.js";
4
+ function GraphCurrentValue({
5
+ point,
6
+ xMeasureUnit,
7
+ yMeasureUnit,
8
+ className
9
+ }) {
10
+ const xFormatter = getXFormatter(xMeasureUnit);
11
+ const yFormatter = getYFormatter(yMeasureUnit);
12
+ const xFormatted = xFormatter(point.time, xMeasureUnit);
13
+ const yFormatted = yFormatter(point.value, yMeasureUnit);
14
+ return /* @__PURE__ */ jsxs(
15
+ "div",
16
+ {
17
+ className: cn(
18
+ "absolute top-2 left-2 right-2 z-[100] pointer-events-none",
19
+ className
20
+ ),
21
+ children: [
22
+ /* @__PURE__ */ jsx("div", { className: "text-2xl font-semibold text-foreground whitespace-nowrap overflow-hidden text-ellipsis", children: yFormatted }),
23
+ /* @__PURE__ */ jsx("div", { className: "text-sm font-medium text-muted-foreground whitespace-nowrap overflow-hidden text-ellipsis mt-0.5", children: xFormatted })
24
+ ]
25
+ }
26
+ );
27
+ }
28
+ export {
29
+ GraphCurrentValue
30
+ };
@@ -0,0 +1,117 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from "react";
3
+ import { cn } from "../../utils/cn.js";
4
+ import { getXFormatter, getYFormatter } from "./formatters.js";
5
+ import { DEFAULT_SERIES_COLORS } from "./graph.js";
6
+ function GraphTooltip({
7
+ points,
8
+ series,
9
+ xMeasureUnit,
10
+ yMeasureUnit,
11
+ className,
12
+ position,
13
+ containerRef
14
+ }) {
15
+ const tooltipRef = useRef(null);
16
+ const [adjustedPosition, setAdjustedPosition] = useState(position);
17
+ const xFormatter = getXFormatter(xMeasureUnit);
18
+ useEffect(() => {
19
+ if (!position) {
20
+ setAdjustedPosition(position);
21
+ return;
22
+ }
23
+ const container = containerRef?.current;
24
+ if (!container) {
25
+ setAdjustedPosition(position);
26
+ return;
27
+ }
28
+ const tooltip = tooltipRef.current;
29
+ if (!tooltip) {
30
+ setAdjustedPosition(position);
31
+ return;
32
+ }
33
+ const containerRect = container.getBoundingClientRect();
34
+ const tooltipRect = tooltip.getBoundingClientRect();
35
+ let x = position.x;
36
+ let y = position.y;
37
+ const tooltipWidth = tooltipRect.width;
38
+ const tooltipHeight = tooltipRect.height;
39
+ const padding = 8;
40
+ if (x - tooltipWidth / 2 < padding) {
41
+ x = tooltipWidth / 2 + padding;
42
+ } else if (x + tooltipWidth / 2 > containerRect.width - padding) {
43
+ x = containerRect.width - tooltipWidth / 2 - padding;
44
+ }
45
+ const offsetY = tooltipHeight + 8;
46
+ if (y - offsetY < padding) {
47
+ y = position.y + 20;
48
+ } else {
49
+ y = position.y - offsetY;
50
+ }
51
+ setAdjustedPosition({ x, y });
52
+ }, [position, containerRef]);
53
+ const positionStyles = adjustedPosition ? {
54
+ left: `${adjustedPosition.x}px`,
55
+ top: `${adjustedPosition.y}px`,
56
+ transform: "translate(-50%, 0)"
57
+ // Center horizontally
58
+ } : {};
59
+ if (points.size === 0) {
60
+ return null;
61
+ }
62
+ const firstPoint = Array.from(points.values())[0];
63
+ const xFormatted = xFormatter(firstPoint.time, xMeasureUnit);
64
+ return /* @__PURE__ */ jsx(
65
+ "div",
66
+ {
67
+ ref: tooltipRef,
68
+ className: cn(
69
+ "absolute z-[100] pointer-events-none whitespace-nowrap",
70
+ className
71
+ ),
72
+ style: positionStyles,
73
+ children: /* @__PURE__ */ jsxs("div", { className: "bg-background/90 backdrop-blur-sm rounded border border-border p-2 space-y-1.5", children: [
74
+ /* @__PURE__ */ jsx("div", { className: "text-sm font-medium text-muted-foreground mb-1 whitespace-nowrap", children: xFormatted }),
75
+ series.map((s, index) => {
76
+ const pointData = points.get(s.label);
77
+ if (!pointData) return null;
78
+ const colorPalette = DEFAULT_SERIES_COLORS[index % DEFAULT_SERIES_COLORS.length];
79
+ const lineColor = s.color || colorPalette.line;
80
+ const seriesYMeasureUnit = s.yMeasureUnit || yMeasureUnit;
81
+ const seriesYFormatter = getYFormatter(seriesYMeasureUnit);
82
+ let yFormatted = seriesYFormatter(
83
+ pointData.value,
84
+ seriesYMeasureUnit === "none" ? void 0 : seriesYMeasureUnit
85
+ );
86
+ if (yFormatted.endsWith(" none")) {
87
+ yFormatted = yFormatted.slice(0, -5);
88
+ }
89
+ return /* @__PURE__ */ jsxs(
90
+ "div",
91
+ {
92
+ className: "flex items-center gap-2 text-sm whitespace-nowrap",
93
+ children: [
94
+ /* @__PURE__ */ jsx(
95
+ "div",
96
+ {
97
+ className: "w-2 h-2 rounded-full flex-shrink-0",
98
+ style: { backgroundColor: lineColor }
99
+ }
100
+ ),
101
+ /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground whitespace-nowrap", children: [
102
+ s.label,
103
+ ":"
104
+ ] }),
105
+ /* @__PURE__ */ jsx("span", { className: "font-medium text-foreground whitespace-nowrap", children: yFormatted })
106
+ ]
107
+ },
108
+ s.label
109
+ );
110
+ })
111
+ ] })
112
+ }
113
+ );
114
+ }
115
+ export {
116
+ GraphTooltip
117
+ };
@@ -0,0 +1,195 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { cva } from "class-variance-authority";
3
+ import * as React from "react";
4
+ import { useEffect, useRef, useState } from "react";
5
+ import { cn } from "../../utils/cn.js";
6
+ import { Graph } from "./graph.js";
7
+ const graphViewVariants = cva(
8
+ "relative w-full overflow-hidden rounded-lg border-border border bg-card text-card-foreground",
9
+ {
10
+ variants: {
11
+ variant: {
12
+ default: "shadow",
13
+ elevated: "shadow-lg",
14
+ outlined: "border-2",
15
+ ghost: "border-0 shadow-none"
16
+ },
17
+ size: {
18
+ sm: "h-64",
19
+ default: "h-96",
20
+ lg: "h-[32rem]",
21
+ xl: "h-[48rem]",
22
+ full: "h-full"
23
+ },
24
+ padding: {
25
+ none: "p-0",
26
+ sm: "p-2",
27
+ default: "p-6",
28
+ lg: "p-8"
29
+ }
30
+ },
31
+ defaultVariants: {
32
+ variant: "default",
33
+ size: "default",
34
+ padding: "default"
35
+ }
36
+ }
37
+ );
38
+ const GraphView = React.forwardRef(
39
+ ({
40
+ className,
41
+ variant,
42
+ size,
43
+ padding,
44
+ title,
45
+ description,
46
+ toolbar,
47
+ loading = false,
48
+ emptyMessage,
49
+ error,
50
+ children,
51
+ ...props
52
+ }, ref) => {
53
+ const hasHeader = title || description || toolbar;
54
+ return /* @__PURE__ */ jsxs(
55
+ "div",
56
+ {
57
+ ref,
58
+ className: cn(
59
+ "flex flex-col",
60
+ graphViewVariants({ variant, size, padding, className })
61
+ ),
62
+ ...props,
63
+ children: [
64
+ hasHeader && /* @__PURE__ */ jsxs("div", { className: "mb-4 flex items-start justify-between gap-4 flex-shrink-0", children: [
65
+ (title || description) && /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
66
+ title && /* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold leading-none tracking-tight", children: title }),
67
+ description && /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: description })
68
+ ] }),
69
+ toolbar && /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 w-full", children: toolbar })
70
+ ] }),
71
+ /* @__PURE__ */ jsxs("div", { className: "relative flex-1 w-full min-h-0", children: [
72
+ loading && /* @__PURE__ */ jsx("div", { className: "absolute inset-0 z-10 flex items-center justify-center bg-transparent backdrop-blur-sm", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2", children: [
73
+ /* @__PURE__ */ jsx("div", { className: "h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent" }),
74
+ /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: "Loading..." })
75
+ ] }) }),
76
+ error && /* @__PURE__ */ jsx("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2 text-destructive", children: [
77
+ /* @__PURE__ */ jsx(
78
+ "svg",
79
+ {
80
+ className: "h-12 w-12",
81
+ fill: "none",
82
+ viewBox: "0 0 24 24",
83
+ stroke: "currentColor",
84
+ "aria-hidden": "true",
85
+ children: /* @__PURE__ */ jsx(
86
+ "path",
87
+ {
88
+ strokeLinecap: "round",
89
+ strokeLinejoin: "round",
90
+ strokeWidth: 2,
91
+ d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
92
+ }
93
+ )
94
+ }
95
+ ),
96
+ /* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: error })
97
+ ] }) }),
98
+ !error && !children && emptyMessage && /* @__PURE__ */ jsx("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2 text-muted-foreground", children: [
99
+ /* @__PURE__ */ jsx(
100
+ "svg",
101
+ {
102
+ className: "h-12 w-12",
103
+ fill: "none",
104
+ viewBox: "0 0 24 24",
105
+ stroke: "currentColor",
106
+ "aria-hidden": "true",
107
+ children: /* @__PURE__ */ jsx(
108
+ "path",
109
+ {
110
+ strokeLinecap: "round",
111
+ strokeLinejoin: "round",
112
+ strokeWidth: 2,
113
+ d: "M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4"
114
+ }
115
+ )
116
+ }
117
+ ),
118
+ /* @__PURE__ */ jsx("span", { className: "text-sm", children: emptyMessage })
119
+ ] }) }),
120
+ !error && children
121
+ ] })
122
+ ]
123
+ }
124
+ );
125
+ }
126
+ );
127
+ GraphView.displayName = "GraphView";
128
+ function GraphViewWithData({
129
+ series,
130
+ onUnselectSeries,
131
+ loading,
132
+ title,
133
+ description,
134
+ toolbar,
135
+ emptyMessage = "No data available",
136
+ error,
137
+ containerClassName,
138
+ variant,
139
+ size,
140
+ padding,
141
+ ...restProps
142
+ }) {
143
+ const hasData = series.length > 0;
144
+ const noData = !loading && !hasData;
145
+ return /* @__PURE__ */ jsx(
146
+ GraphView,
147
+ {
148
+ className: containerClassName,
149
+ variant,
150
+ size,
151
+ padding,
152
+ title,
153
+ description,
154
+ toolbar,
155
+ loading,
156
+ error,
157
+ emptyMessage: noData ? emptyMessage : void 0,
158
+ children: hasData && !noData && !loading && /* @__PURE__ */ jsx(
159
+ Graph,
160
+ {
161
+ series,
162
+ ...onUnselectSeries ? { onUnselectSeries } : {},
163
+ ...restProps
164
+ }
165
+ )
166
+ }
167
+ );
168
+ }
169
+ function useGraphAside(gap = 0) {
170
+ const asideRef = useRef(null);
171
+ const parentRef = useRef(null);
172
+ const [state, setState] = useState(null);
173
+ useEffect(() => {
174
+ const handleUpdate = () => {
175
+ if (asideRef.current && parentRef.current) {
176
+ const parentWidth = parentRef.current.clientWidth;
177
+ const asideWidth = asideRef.current.clientWidth;
178
+ setState(parentWidth - asideWidth - gap);
179
+ }
180
+ };
181
+ const ref = parentRef.current;
182
+ const observer = ref ? new ResizeObserver(handleUpdate) : null;
183
+ if (ref) observer?.observe(ref);
184
+ return () => {
185
+ ref && observer?.unobserve(ref);
186
+ };
187
+ }, [gap]);
188
+ return { graphWidth: state, parentRef, asideRef };
189
+ }
190
+ export {
191
+ GraphView,
192
+ GraphViewWithData,
193
+ graphViewVariants,
194
+ useGraphAside
195
+ };