@gearbox-protocol/permissionless-ui 1.2.33 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (515) hide show
  1. package/README.md +120 -1
  2. package/dist/cjs/components/asset-line.js +117 -0
  3. package/dist/cjs/components/assets-list-cell.js +73 -0
  4. package/dist/cjs/components/assets-ratio.js +98 -0
  5. package/dist/cjs/components/auth/siwe-provider.js +4 -4
  6. package/dist/cjs/components/base-link.js +61 -0
  7. package/dist/cjs/components/block-sync.js +118 -0
  8. package/dist/cjs/components/breadcrumbs.js +77 -0
  9. package/dist/cjs/components/buttons/back-button.js +37 -19
  10. package/dist/cjs/components/buttons/button.js +4 -4
  11. package/dist/cjs/components/buttons/filter-button.js +68 -0
  12. package/dist/cjs/components/buttons/index.js +4 -0
  13. package/dist/cjs/components/buttons/navigation-button.js +2 -2
  14. package/dist/cjs/components/buttons/range-buttons.js +63 -0
  15. package/dist/cjs/components/card-grid.js +127 -0
  16. package/dist/cjs/components/card.js +176 -0
  17. package/dist/cjs/components/checkbox-item.js +82 -0
  18. package/dist/cjs/components/compound-apy.js +232 -0
  19. package/dist/cjs/components/credit-session-status.js +67 -0
  20. package/dist/cjs/components/description.js +48 -0
  21. package/dist/cjs/components/detailed-page-title.js +96 -0
  22. package/dist/cjs/components/dialog/dialog-container.js +75 -0
  23. package/dist/cjs/components/dialog/dialog-content.js +66 -0
  24. package/dist/cjs/components/dialog/dialog-description.js +50 -0
  25. package/dist/cjs/components/dialog/dialog-footer.js +53 -0
  26. package/dist/cjs/components/dialog/dialog-header.js +53 -0
  27. package/dist/cjs/components/dialog/dialog-overlay.js +53 -0
  28. package/dist/cjs/components/dialog/dialog-title.js +50 -0
  29. package/dist/cjs/components/dialog/dialog.js +45 -0
  30. package/dist/cjs/components/dialog/index.js +36 -0
  31. package/dist/cjs/components/dropdown-menu/dropdown-menu-checkbox-item.js +63 -0
  32. package/dist/cjs/components/dropdown-menu/dropdown-menu-content.js +55 -0
  33. package/dist/cjs/components/dropdown-menu/dropdown-menu-item.js +54 -0
  34. package/dist/cjs/components/dropdown-menu/dropdown-menu-label.js +54 -0
  35. package/dist/cjs/components/dropdown-menu/dropdown-menu-radio-item.js +58 -0
  36. package/dist/cjs/components/dropdown-menu/dropdown-menu-separator.js +50 -0
  37. package/dist/cjs/components/dropdown-menu/dropdown-menu-shortcut.js +52 -0
  38. package/dist/cjs/components/dropdown-menu/dropdown-menu-sub-content.js +53 -0
  39. package/dist/cjs/components/dropdown-menu/dropdown-menu-sub-trigger.js +59 -0
  40. package/dist/cjs/components/dropdown-menu/dropdown-menu.js +54 -0
  41. package/dist/cjs/components/dropdown-menu/index.js +40 -0
  42. package/dist/cjs/components/error-message.js +70 -0
  43. package/dist/cjs/components/filter/filter-block.js +52 -0
  44. package/dist/cjs/components/filter/filter-checkbox-item.js +59 -0
  45. package/dist/cjs/components/filter/filter-chip.js +74 -0
  46. package/dist/cjs/components/filter/filter-chips.js +84 -0
  47. package/dist/cjs/components/filter/filter-dropdown-item.js +54 -0
  48. package/dist/cjs/components/filter/filter-group.js +43 -0
  49. package/dist/cjs/components/filter/filter-label.js +54 -0
  50. package/dist/cjs/components/filter/filter-modal-item.js +55 -0
  51. package/dist/cjs/components/filter/filter-modal.js +242 -0
  52. package/dist/cjs/components/filter/filter-radio-item.js +58 -0
  53. package/dist/cjs/components/filter/filter-separator.js +50 -0
  54. package/dist/cjs/components/filter/index.js +44 -0
  55. package/dist/cjs/components/filter/interface.js +16 -0
  56. package/dist/cjs/components/filter/variants.js +41 -0
  57. package/dist/cjs/components/form/form-field.js +67 -0
  58. package/dist/cjs/components/{editable-table → form}/index.js +4 -8
  59. package/dist/cjs/components/graph/default-config.js +158 -0
  60. package/dist/cjs/components/graph/formatters.js +175 -0
  61. package/dist/cjs/components/graph/graph-current-value.js +54 -0
  62. package/dist/cjs/components/graph/graph-tooltip.js +142 -0
  63. package/dist/cjs/components/graph/graph-view.js +233 -0
  64. package/dist/cjs/components/graph/graph.js +637 -0
  65. package/dist/cjs/components/graph/index.js +44 -0
  66. package/dist/cjs/components/graph/plugins/vertical-line.js +127 -0
  67. package/dist/cjs/components/guard.js +34 -0
  68. package/dist/cjs/components/health-factor.js +100 -0
  69. package/dist/cjs/components/help-center-container.js +107 -0
  70. package/dist/cjs/components/hide-on.js +66 -0
  71. package/dist/cjs/components/horizontal-indicator.js +63 -0
  72. package/dist/cjs/components/image.js +56 -0
  73. package/dist/cjs/components/index.js +93 -9
  74. package/dist/cjs/components/input.js +43 -21
  75. package/dist/cjs/components/label.js +29 -5
  76. package/dist/cjs/components/layout/app-logo.js +7 -17
  77. package/dist/cjs/components/layout/col.js +192 -0
  78. package/dist/cjs/components/layout/container.js +75 -0
  79. package/dist/cjs/components/layout/footer.js +137 -52
  80. package/dist/cjs/components/layout/grid.js +217 -0
  81. package/dist/cjs/components/layout/header.js +75 -13
  82. package/dist/cjs/components/layout/index.js +8 -0
  83. package/dist/cjs/components/layout/layout.js +65 -0
  84. package/dist/cjs/components/layout/legal-disclaimer.js +4 -14
  85. package/dist/cjs/components/liquidation/index.js +28 -0
  86. package/dist/cjs/components/liquidation/liquidation-assets-table.js +95 -0
  87. package/dist/cjs/components/liquidation/liquidation-graph-legend.js +41 -0
  88. package/dist/cjs/components/liquidation/liquidation-graph-tip.js +93 -0
  89. package/dist/cjs/components/liquidation/liquidation-graph.js +214 -0
  90. package/dist/cjs/components/loader-guard.js +47 -0
  91. package/dist/cjs/components/loading-guard.js +55 -0
  92. package/dist/cjs/components/markdown-viewer.js +4 -2
  93. package/dist/cjs/components/navbar-indicator-context.js +94 -0
  94. package/dist/cjs/components/navbar.js +131 -0
  95. package/dist/cjs/components/navitem.js +148 -0
  96. package/dist/cjs/components/next/back-button.js +43 -0
  97. package/dist/cjs/components/next/index.js +40 -0
  98. package/dist/cjs/components/next/siwe-provider.js +35 -0
  99. package/dist/cjs/components/next/token-icon.js +43 -0
  100. package/dist/cjs/components/next/web3-providers.js +116 -0
  101. package/dist/cjs/components/not-found.js +58 -0
  102. package/dist/cjs/components/options-list.js +88 -0
  103. package/dist/cjs/components/page-title.js +116 -0
  104. package/dist/cjs/components/percent-indicator.js +56 -0
  105. package/dist/cjs/components/pool-points-indicator.js +107 -0
  106. package/dist/cjs/components/search-bar.js +1 -0
  107. package/dist/cjs/components/search-line.js +225 -0
  108. package/dist/cjs/components/select.js +30 -9
  109. package/dist/cjs/components/short-string.js +58 -0
  110. package/dist/cjs/components/signatures/vertical-timeline.js +1 -0
  111. package/dist/cjs/components/skeleton.js +56 -3
  112. package/dist/cjs/components/stat-badge.js +189 -0
  113. package/dist/cjs/components/tab-control.js +254 -0
  114. package/dist/cjs/components/table/editable-grid-table.js +131 -0
  115. package/dist/cjs/components/{editable-table → table}/editable-table.js +1 -1
  116. package/dist/cjs/components/table/grid-error-line.js +60 -0
  117. package/dist/cjs/components/table/grid-loading-line.js +64 -0
  118. package/dist/cjs/components/table/grid-table-loader.js +56 -0
  119. package/dist/cjs/components/table/grid-table.js +203 -0
  120. package/dist/cjs/components/table/index.js +46 -0
  121. package/dist/cjs/components/table/sortable-head-cell.js +48 -0
  122. package/dist/cjs/components/table/table-loader-guard.js +55 -0
  123. package/dist/cjs/components/table/table-loader.js +46 -0
  124. package/dist/cjs/components/table/table-sm.js +93 -0
  125. package/dist/cjs/components/{table.js → table/table.js} +78 -22
  126. package/dist/cjs/components/textarea.js +27 -7
  127. package/dist/cjs/components/theme-provider.js +127 -0
  128. package/dist/cjs/components/theme-toggle.js +85 -0
  129. package/dist/cjs/components/token-icon.js +69 -20
  130. package/dist/cjs/components/token-symbol.js +84 -0
  131. package/dist/cjs/components/tooltip.js +1 -1
  132. package/dist/cjs/components/typed-intl/index.js +57 -0
  133. package/dist/cjs/components/vspace.js +31 -0
  134. package/dist/cjs/components/with-filter-button.js +84 -0
  135. package/dist/cjs/configs/design-tokens.js +109 -0
  136. package/dist/cjs/configs/index.js +48 -0
  137. package/dist/cjs/configs/tailwind-preset.js +162 -0
  138. package/dist/cjs/configs/tailwind.config.js +20 -67
  139. package/dist/cjs/configs/variants.js +58 -0
  140. package/dist/cjs/hooks/index.js +34 -0
  141. package/dist/cjs/hooks/use-controllable-state.js +50 -0
  142. package/dist/cjs/hooks/use-debounce.js +68 -0
  143. package/dist/cjs/hooks/use-filter.js +80 -0
  144. package/dist/cjs/hooks/use-hf.js +62 -0
  145. package/dist/cjs/hooks/use-liquidation/index.js +204 -0
  146. package/dist/cjs/hooks/use-liquidation/types.js +16 -0
  147. package/dist/cjs/hooks/use-liquidation/utils.js +253 -0
  148. package/dist/cjs/hooks/use-media-query.js +51 -0
  149. package/dist/cjs/hooks/use-previous.js +36 -0
  150. package/dist/cjs/index.js +157 -3
  151. package/dist/cjs/types/component-props.js +16 -0
  152. package/dist/cjs/types/filter.js +16 -0
  153. package/dist/cjs/types/footer.js +16 -0
  154. package/dist/cjs/types/graph.js +16 -0
  155. package/dist/cjs/types/help.js +16 -0
  156. package/dist/cjs/types/index.js +16 -0
  157. package/dist/cjs/types/range-item.js +16 -0
  158. package/dist/cjs/utils/a11y.js +39 -0
  159. package/dist/cjs/utils/bn-to-input-view.js +60 -0
  160. package/dist/cjs/utils/colors.js +96 -0
  161. package/dist/cjs/utils/format-asset-amount.js +43 -0
  162. package/dist/cjs/utils/format-money.js +68 -0
  163. package/dist/cjs/utils/index.js +29 -2
  164. package/dist/cjs/utils/interface.js +16 -0
  165. package/dist/cjs/utils/react.js +105 -0
  166. package/dist/cjs/utils/short-sha.js +28 -0
  167. package/dist/cjs/utils/sort.js +16 -0
  168. package/dist/cjs/utils/templates.js +50 -0
  169. package/dist/esm/components/asset-line.js +83 -0
  170. package/dist/esm/components/assets-list-cell.js +39 -0
  171. package/dist/esm/components/assets-ratio.js +64 -0
  172. package/dist/esm/components/auth/siwe-provider.js +4 -4
  173. package/dist/esm/components/base-link.js +27 -0
  174. package/dist/esm/components/block-sync.js +99 -0
  175. package/dist/esm/components/breadcrumbs.js +43 -0
  176. package/dist/esm/components/buttons/back-button.js +35 -8
  177. package/dist/esm/components/buttons/button.js +4 -4
  178. package/dist/esm/components/buttons/filter-button.js +34 -0
  179. package/dist/esm/components/buttons/index.js +2 -0
  180. package/dist/esm/components/buttons/navigation-button.js +2 -2
  181. package/dist/esm/components/buttons/range-buttons.js +29 -0
  182. package/dist/esm/components/card-grid.js +92 -0
  183. package/dist/esm/components/card.js +133 -0
  184. package/dist/esm/components/checkbox-item.js +48 -0
  185. package/dist/esm/components/compound-apy.js +203 -0
  186. package/dist/esm/components/credit-session-status.js +33 -0
  187. package/dist/esm/components/description.js +14 -0
  188. package/dist/esm/components/detailed-page-title.js +67 -0
  189. package/dist/esm/components/dialog/dialog-container.js +41 -0
  190. package/dist/esm/components/dialog/dialog-content.js +32 -0
  191. package/dist/esm/components/dialog/dialog-description.js +16 -0
  192. package/dist/esm/components/dialog/dialog-footer.js +19 -0
  193. package/dist/esm/components/dialog/dialog-header.js +19 -0
  194. package/dist/esm/components/dialog/dialog-overlay.js +19 -0
  195. package/dist/esm/components/dialog/dialog-title.js +16 -0
  196. package/dist/esm/components/dialog/dialog.js +9 -0
  197. package/dist/esm/components/dialog/index.js +8 -0
  198. package/dist/esm/components/dropdown-menu/dropdown-menu-checkbox-item.js +29 -0
  199. package/dist/esm/components/dropdown-menu/dropdown-menu-content.js +21 -0
  200. package/dist/esm/components/dropdown-menu/dropdown-menu-item.js +20 -0
  201. package/dist/esm/components/dropdown-menu/dropdown-menu-label.js +20 -0
  202. package/dist/esm/components/dropdown-menu/dropdown-menu-radio-item.js +24 -0
  203. package/dist/esm/components/dropdown-menu/dropdown-menu-separator.js +16 -0
  204. package/dist/esm/components/dropdown-menu/dropdown-menu-shortcut.js +18 -0
  205. package/dist/esm/components/dropdown-menu/dropdown-menu-sub-content.js +19 -0
  206. package/dist/esm/components/dropdown-menu/dropdown-menu-sub-trigger.js +25 -0
  207. package/dist/esm/components/dropdown-menu/dropdown-menu.js +15 -0
  208. package/dist/esm/components/dropdown-menu/index.js +10 -0
  209. package/dist/esm/components/error-message.js +36 -0
  210. package/dist/esm/components/filter/filter-block.js +18 -0
  211. package/dist/esm/components/filter/filter-checkbox-item.js +25 -0
  212. package/dist/esm/components/filter/filter-chip.js +40 -0
  213. package/dist/esm/components/filter/filter-chips.js +50 -0
  214. package/dist/esm/components/filter/filter-dropdown-item.js +20 -0
  215. package/dist/esm/components/filter/filter-group.js +9 -0
  216. package/dist/esm/components/filter/filter-label.js +20 -0
  217. package/dist/esm/components/filter/filter-modal-item.js +21 -0
  218. package/dist/esm/components/filter/filter-modal.js +214 -0
  219. package/dist/esm/components/filter/filter-radio-item.js +24 -0
  220. package/dist/esm/components/filter/filter-separator.js +16 -0
  221. package/dist/esm/components/filter/index.js +12 -0
  222. package/dist/esm/components/filter/interface.js +0 -0
  223. package/dist/esm/components/filter/variants.js +17 -0
  224. package/dist/esm/components/form/form-field.js +43 -0
  225. package/dist/esm/components/form/index.js +1 -0
  226. package/dist/esm/components/graph/default-config.js +129 -0
  227. package/dist/esm/components/graph/formatters.js +150 -0
  228. package/dist/esm/components/graph/graph-current-value.js +30 -0
  229. package/dist/esm/components/graph/graph-tooltip.js +118 -0
  230. package/dist/esm/components/graph/graph-view.js +196 -0
  231. package/dist/esm/components/graph/graph.js +606 -0
  232. package/dist/esm/components/graph/index.js +15 -0
  233. package/dist/esm/components/graph/plugins/vertical-line.js +103 -0
  234. package/dist/esm/components/guard.js +10 -0
  235. package/dist/esm/components/health-factor.js +63 -0
  236. package/dist/esm/components/help-center-container.js +83 -0
  237. package/dist/esm/components/hide-on.js +41 -0
  238. package/dist/esm/components/horizontal-indicator.js +34 -0
  239. package/dist/esm/components/image.js +32 -0
  240. package/dist/esm/components/index.js +46 -4
  241. package/dist/esm/components/input.js +41 -20
  242. package/dist/esm/components/label.js +27 -4
  243. package/dist/esm/components/layout/app-logo.js +5 -5
  244. package/dist/esm/components/layout/col.js +158 -0
  245. package/dist/esm/components/layout/container.js +41 -0
  246. package/dist/esm/components/layout/footer.js +134 -52
  247. package/dist/esm/components/layout/grid.js +183 -0
  248. package/dist/esm/components/layout/header.js +65 -13
  249. package/dist/esm/components/layout/index.js +4 -0
  250. package/dist/esm/components/layout/layout.js +31 -0
  251. package/dist/esm/components/layout/legal-disclaimer.js +4 -4
  252. package/dist/esm/components/liquidation/index.js +4 -0
  253. package/dist/esm/components/liquidation/liquidation-assets-table.js +71 -0
  254. package/dist/esm/components/liquidation/liquidation-graph-legend.js +17 -0
  255. package/dist/esm/components/liquidation/liquidation-graph-tip.js +72 -0
  256. package/dist/esm/components/liquidation/liquidation-graph.js +191 -0
  257. package/dist/esm/components/loader-guard.js +23 -0
  258. package/dist/esm/components/loading-guard.js +31 -0
  259. package/dist/esm/components/markdown-viewer.js +4 -2
  260. package/dist/esm/components/navbar-indicator-context.js +76 -0
  261. package/dist/esm/components/navbar.js +98 -0
  262. package/dist/esm/components/navitem.js +113 -0
  263. package/dist/esm/components/next/back-button.js +11 -0
  264. package/dist/esm/components/next/index.js +12 -0
  265. package/dist/esm/components/next/siwe-provider.js +11 -0
  266. package/dist/esm/components/next/token-icon.js +11 -0
  267. package/dist/esm/components/next/web3-providers.js +92 -0
  268. package/dist/esm/components/not-found.js +24 -0
  269. package/dist/esm/components/options-list.js +53 -0
  270. package/dist/esm/components/page-title.js +80 -0
  271. package/dist/esm/components/percent-indicator.js +22 -0
  272. package/dist/esm/components/pool-points-indicator.js +73 -0
  273. package/dist/esm/components/search-bar.js +1 -0
  274. package/dist/esm/components/search-line.js +188 -0
  275. package/dist/esm/components/select.js +28 -8
  276. package/dist/esm/components/short-string.js +39 -0
  277. package/dist/esm/components/signatures/vertical-timeline.js +1 -0
  278. package/dist/esm/components/skeleton.js +54 -2
  279. package/dist/esm/components/stat-badge.js +155 -0
  280. package/dist/esm/components/tab-control.js +216 -0
  281. package/dist/esm/components/table/editable-grid-table.js +105 -0
  282. package/dist/esm/components/{editable-table → table}/editable-table.js +1 -1
  283. package/dist/esm/components/table/grid-error-line.js +36 -0
  284. package/dist/esm/components/table/grid-loading-line.js +30 -0
  285. package/dist/esm/components/table/grid-table-loader.js +22 -0
  286. package/dist/esm/components/table/grid-table.js +159 -0
  287. package/dist/esm/components/table/index.js +13 -0
  288. package/dist/esm/components/table/sortable-head-cell.js +24 -0
  289. package/dist/esm/components/table/table-loader-guard.js +31 -0
  290. package/dist/esm/components/table/table-loader.js +22 -0
  291. package/dist/esm/components/table/table-sm.js +58 -0
  292. package/dist/esm/components/{table.js → table/table.js} +74 -21
  293. package/dist/esm/components/textarea.js +25 -6
  294. package/dist/esm/components/theme-provider.js +108 -0
  295. package/dist/esm/components/theme-toggle.js +61 -0
  296. package/dist/esm/components/token-icon.js +70 -11
  297. package/dist/esm/components/token-symbol.js +50 -0
  298. package/dist/esm/components/tooltip.js +1 -1
  299. package/dist/esm/components/typed-intl/index.js +32 -0
  300. package/dist/esm/components/vspace.js +7 -0
  301. package/dist/esm/components/with-filter-button.js +50 -0
  302. package/dist/esm/configs/design-tokens.js +85 -0
  303. package/dist/esm/configs/index.js +9 -0
  304. package/dist/esm/configs/tailwind-preset.js +128 -0
  305. package/dist/esm/configs/tailwind.config.js +16 -57
  306. package/dist/esm/configs/variants.js +31 -0
  307. package/dist/esm/hooks/index.js +7 -0
  308. package/dist/esm/hooks/use-controllable-state.js +26 -0
  309. package/dist/esm/hooks/use-debounce.js +43 -0
  310. package/dist/esm/hooks/use-filter.js +52 -0
  311. package/dist/esm/hooks/use-hf.js +38 -0
  312. package/dist/esm/hooks/use-liquidation/index.js +188 -0
  313. package/dist/esm/hooks/use-liquidation/types.js +0 -0
  314. package/dist/esm/hooks/use-liquidation/utils.js +215 -0
  315. package/dist/esm/hooks/use-media-query.js +24 -0
  316. package/dist/esm/hooks/use-previous.js +12 -0
  317. package/dist/esm/index.js +84 -1
  318. package/dist/esm/types/component-props.js +0 -0
  319. package/dist/esm/types/filter.js +0 -0
  320. package/dist/esm/types/footer.js +0 -0
  321. package/dist/esm/types/graph.js +0 -0
  322. package/dist/esm/types/help.js +0 -0
  323. package/dist/esm/types/index.js +0 -0
  324. package/dist/esm/types/range-item.js +0 -0
  325. package/dist/esm/utils/a11y.js +14 -0
  326. package/dist/esm/utils/bn-to-input-view.js +36 -0
  327. package/dist/esm/utils/colors.js +69 -0
  328. package/dist/esm/utils/format-asset-amount.js +19 -0
  329. package/dist/esm/utils/format-money.js +40 -0
  330. package/dist/esm/utils/index.js +21 -1
  331. package/dist/esm/utils/interface.js +0 -0
  332. package/dist/esm/utils/react.js +70 -0
  333. package/dist/esm/utils/short-sha.js +4 -0
  334. package/dist/esm/utils/sort.js +0 -0
  335. package/dist/esm/utils/templates.js +24 -0
  336. package/dist/globals.css +230 -52
  337. package/dist/grid-safelist.css +264 -0
  338. package/dist/types/components/asset-line.d.ts +59 -0
  339. package/dist/types/components/assets-list-cell.d.ts +48 -0
  340. package/dist/types/components/assets-ratio.d.ts +9 -0
  341. package/dist/types/components/auth/signin-required.d.ts +1 -1
  342. package/dist/types/components/auth/siwe-provider.d.ts +2 -1
  343. package/dist/types/components/badge.d.ts +1 -1
  344. package/dist/types/components/base-link.d.ts +58 -0
  345. package/dist/types/components/block-sync.d.ts +8 -0
  346. package/dist/types/components/breadcrumbs.d.ts +24 -0
  347. package/dist/types/components/buttons/back-button.d.ts +15 -20
  348. package/dist/types/components/buttons/button.d.ts +37 -3
  349. package/dist/types/components/buttons/filter-button.d.ts +52 -0
  350. package/dist/types/components/buttons/index.d.ts +2 -0
  351. package/dist/types/components/buttons/range-buttons.d.ts +49 -0
  352. package/dist/types/components/card-grid.d.ts +25 -0
  353. package/dist/types/components/card.d.ts +116 -0
  354. package/dist/types/components/cards/card.d.ts +2 -2
  355. package/dist/types/components/checkbox-item.d.ts +56 -0
  356. package/dist/types/components/compound-apy.d.ts +80 -0
  357. package/dist/types/components/credit-session-status.d.ts +7 -0
  358. package/dist/types/components/description.d.ts +26 -0
  359. package/dist/types/components/detailed-page-title.d.ts +31 -0
  360. package/dist/types/components/dialog/dialog-container.d.ts +12 -0
  361. package/dist/types/components/dialog/dialog-content.d.ts +4 -0
  362. package/dist/types/components/dialog/dialog-description.d.ts +4 -0
  363. package/dist/types/components/dialog/dialog-footer.d.ts +6 -0
  364. package/dist/types/components/dialog/dialog-header.d.ts +6 -0
  365. package/dist/types/components/dialog/dialog-overlay.d.ts +4 -0
  366. package/dist/types/components/dialog/dialog-title.d.ts +4 -0
  367. package/dist/types/components/dialog/dialog.d.ts +5 -0
  368. package/dist/types/components/dialog/index.d.ts +8 -0
  369. package/dist/types/components/dropdown-menu/dropdown-menu-checkbox-item.d.ts +22 -0
  370. package/dist/types/components/dropdown-menu/dropdown-menu-content.d.ts +4 -0
  371. package/dist/types/components/dropdown-menu/dropdown-menu-item.d.ts +6 -0
  372. package/dist/types/components/dropdown-menu/dropdown-menu-label.d.ts +6 -0
  373. package/dist/types/components/dropdown-menu/dropdown-menu-radio-item.d.ts +4 -0
  374. package/dist/types/components/dropdown-menu/dropdown-menu-separator.d.ts +4 -0
  375. package/dist/types/components/dropdown-menu/dropdown-menu-shortcut.d.ts +6 -0
  376. package/dist/types/components/dropdown-menu/dropdown-menu-sub-content.d.ts +4 -0
  377. package/dist/types/components/dropdown-menu/dropdown-menu-sub-trigger.d.ts +6 -0
  378. package/dist/types/components/dropdown-menu/dropdown-menu.d.ts +8 -0
  379. package/dist/types/components/dropdown-menu/index.d.ts +10 -0
  380. package/dist/types/components/error-message.d.ts +21 -0
  381. package/dist/types/components/filter/filter-block.d.ts +17 -0
  382. package/dist/types/components/filter/filter-checkbox-item.d.ts +23 -0
  383. package/dist/types/components/filter/filter-chip.d.ts +34 -0
  384. package/dist/types/components/filter/filter-chips.d.ts +42 -0
  385. package/dist/types/components/filter/filter-dropdown-item.d.ts +24 -0
  386. package/dist/types/components/filter/filter-group.d.ts +22 -0
  387. package/dist/types/components/filter/filter-label.d.ts +21 -0
  388. package/dist/types/components/filter/filter-modal-item.d.ts +31 -0
  389. package/dist/types/components/filter/filter-modal.d.ts +123 -0
  390. package/dist/types/components/filter/filter-radio-item.d.ts +19 -0
  391. package/dist/types/components/filter/filter-separator.d.ts +22 -0
  392. package/dist/types/components/filter/index.d.ts +109 -0
  393. package/dist/types/components/filter/interface.d.ts +24 -0
  394. package/dist/types/components/filter/variants.d.ts +3 -0
  395. package/dist/types/components/form/form-field.d.ts +38 -0
  396. package/dist/types/components/form/index.d.ts +1 -0
  397. package/dist/types/components/graph/default-config.d.ts +20 -0
  398. package/dist/types/components/graph/formatters.d.ts +16 -0
  399. package/dist/types/components/graph/graph-current-value.d.ts +13 -0
  400. package/dist/types/components/graph/graph-tooltip.d.ts +24 -0
  401. package/dist/types/components/graph/graph-view.d.ts +198 -0
  402. package/dist/types/components/graph/graph.d.ts +49 -0
  403. package/dist/types/components/graph/index.d.ts +7 -0
  404. package/dist/types/components/guard.d.ts +34 -0
  405. package/dist/types/components/health-factor.d.ts +63 -0
  406. package/dist/types/components/help-center-container.d.ts +22 -0
  407. package/dist/types/components/hide-on.d.ts +32 -0
  408. package/dist/types/components/horizontal-indicator.d.ts +22 -0
  409. package/dist/types/components/image.d.ts +35 -0
  410. package/dist/types/components/index.d.ts +44 -1
  411. package/dist/types/components/input.d.ts +26 -9
  412. package/dist/types/components/label.d.ts +26 -5
  413. package/dist/types/components/layout/app-logo.d.ts +1 -0
  414. package/dist/types/components/layout/col.d.ts +43 -0
  415. package/dist/types/components/layout/container.d.ts +37 -0
  416. package/dist/types/components/layout/footer.d.ts +44 -5
  417. package/dist/types/components/layout/grid.d.ts +48 -0
  418. package/dist/types/components/layout/header.d.ts +68 -12
  419. package/dist/types/components/layout/index.d.ts +4 -0
  420. package/dist/types/components/layout/layout.d.ts +12 -0
  421. package/dist/types/components/liquidation/index.d.ts +4 -0
  422. package/dist/types/components/liquidation/liquidation-assets-table.d.ts +14 -0
  423. package/dist/types/components/liquidation/liquidation-graph-legend.d.ts +2 -0
  424. package/dist/types/components/liquidation/liquidation-graph-tip.d.ts +13 -0
  425. package/dist/types/components/liquidation/liquidation-graph.d.ts +19 -0
  426. package/dist/types/components/loader-guard.d.ts +17 -0
  427. package/dist/types/components/loading-guard.d.ts +18 -0
  428. package/dist/types/components/navbar-indicator-context.d.ts +13 -0
  429. package/dist/types/components/navbar.d.ts +25 -0
  430. package/dist/types/components/navitem.d.ts +67 -0
  431. package/dist/types/components/next/back-button.d.ts +3 -0
  432. package/dist/types/components/next/index.d.ts +10 -0
  433. package/dist/types/components/next/siwe-provider.d.ts +7 -0
  434. package/dist/types/components/next/token-icon.d.ts +3 -0
  435. package/dist/types/components/next/web3-providers.d.ts +29 -0
  436. package/dist/types/components/not-found.d.ts +18 -0
  437. package/dist/types/components/options-list.d.ts +15 -0
  438. package/dist/types/components/page-title.d.ts +69 -0
  439. package/dist/types/components/percent-indicator.d.ts +28 -0
  440. package/dist/types/components/pool-points-indicator.d.ts +41 -0
  441. package/dist/types/components/search-line.d.ts +117 -0
  442. package/dist/types/components/select.d.ts +9 -2
  443. package/dist/types/components/short-string.d.ts +39 -0
  444. package/dist/types/components/skeleton.d.ts +28 -3
  445. package/dist/types/components/stat-badge.d.ts +169 -0
  446. package/dist/types/components/tab-control.d.ts +39 -0
  447. package/dist/types/components/table/editable-grid-table.d.ts +120 -0
  448. package/dist/types/components/table/grid-error-line.d.ts +49 -0
  449. package/dist/types/components/table/grid-loading-line.d.ts +36 -0
  450. package/dist/types/components/table/grid-table-loader.d.ts +25 -0
  451. package/dist/types/components/table/grid-table.d.ts +158 -0
  452. package/dist/types/components/table/index.d.ts +13 -0
  453. package/dist/types/components/table/sortable-head-cell.d.ts +36 -0
  454. package/dist/types/components/table/table-loader-guard.d.ts +45 -0
  455. package/dist/types/components/table/table-loader.d.ts +46 -0
  456. package/dist/types/components/table/table-sm.d.ts +94 -0
  457. package/dist/types/components/{table.d.ts → table/table.d.ts} +39 -12
  458. package/dist/types/components/{editable-table → table}/updated-value.d.ts +3 -0
  459. package/dist/types/components/textarea.d.ts +24 -5
  460. package/dist/types/components/theme-provider.d.ts +34 -0
  461. package/dist/types/components/theme-toggle.d.ts +5 -0
  462. package/dist/types/components/token-icon.d.ts +8 -6
  463. package/dist/types/components/token-symbol.d.ts +71 -0
  464. package/dist/types/components/typed-intl/index.d.ts +19 -0
  465. package/dist/types/components/vspace.d.ts +27 -0
  466. package/dist/types/components/with-filter-button.d.ts +54 -0
  467. package/dist/types/configs/design-tokens.d.ts +73 -0
  468. package/dist/types/configs/index.d.ts +4 -0
  469. package/dist/types/configs/tailwind-preset.d.ts +126 -0
  470. package/dist/types/configs/tailwind.config.d.ts +29 -0
  471. package/dist/types/configs/variants.d.ts +28 -0
  472. package/dist/types/hooks/index.d.ts +7 -0
  473. package/dist/types/hooks/use-controllable-state.d.ts +24 -0
  474. package/dist/types/hooks/use-debounce.d.ts +31 -0
  475. package/dist/types/hooks/use-filter.d.ts +37 -0
  476. package/dist/types/hooks/use-hf.d.ts +15 -0
  477. package/dist/types/hooks/use-liquidation/index.d.ts +52 -0
  478. package/dist/types/hooks/use-liquidation/types.d.ts +16 -0
  479. package/dist/types/hooks/use-liquidation/utils.d.ts +66 -0
  480. package/dist/types/hooks/use-media-query.d.ts +25 -0
  481. package/dist/types/hooks/use-previous.d.ts +10 -0
  482. package/dist/types/index.d.ts +71 -2
  483. package/dist/types/types/component-props.d.ts +16 -0
  484. package/dist/types/types/filter.d.ts +8 -0
  485. package/dist/types/types/footer.d.ts +30 -0
  486. package/dist/types/types/graph.d.ts +22 -0
  487. package/dist/types/types/help.d.ts +4 -0
  488. package/dist/types/types/index.d.ts +6 -0
  489. package/dist/types/types/range-item.d.ts +9 -0
  490. package/dist/types/utils/a11y.d.ts +24 -0
  491. package/dist/types/utils/bn-to-input-view.d.ts +17 -0
  492. package/dist/types/utils/colors.d.ts +29 -0
  493. package/dist/types/utils/format-asset-amount.d.ts +16 -0
  494. package/dist/types/utils/format-money.d.ts +64 -0
  495. package/dist/types/utils/index.d.ts +10 -0
  496. package/dist/types/utils/interface.d.ts +9 -0
  497. package/dist/types/utils/react.d.ts +31 -0
  498. package/dist/types/utils/short-sha.d.ts +9 -0
  499. package/dist/types/utils/sort.d.ts +5 -0
  500. package/dist/types/utils/templates.d.ts +61 -0
  501. package/package.json +66 -28
  502. package/dist/cjs/components/dialog.js +0 -137
  503. package/dist/cjs/components/dropdown-menu.js +0 -200
  504. package/dist/esm/components/dialog.js +0 -97
  505. package/dist/esm/components/dropdown-menu.js +0 -152
  506. package/dist/esm/components/editable-table/index.js +0 -3
  507. package/dist/types/components/dialog.d.ts +0 -38
  508. package/dist/types/components/dropdown-menu.d.ts +0 -59
  509. package/dist/types/components/editable-table/index.d.ts +0 -3
  510. /package/dist/cjs/components/{editable-table → table}/edit-button.js +0 -0
  511. /package/dist/cjs/components/{editable-table → table}/updated-value.js +0 -0
  512. /package/dist/esm/components/{editable-table → table}/edit-button.js +0 -0
  513. /package/dist/esm/components/{editable-table → table}/updated-value.js +0 -0
  514. /package/dist/types/components/{editable-table → table}/edit-button.d.ts +0 -0
  515. /package/dist/types/components/{editable-table → table}/editable-table.d.ts +0 -0
@@ -0,0 +1,214 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import cn, { extractTextFromLabel, serializeValue } from "../../utils/index.js";
4
+ import { Button } from "../buttons/index.js";
5
+ import { CheckboxItem } from "../checkbox-item.js";
6
+ import {
7
+ Dialog,
8
+ DialogContent,
9
+ DialogFooter,
10
+ DialogHeader,
11
+ DialogTitle
12
+ } from "../dialog/index.js";
13
+ import { SearchLine } from "../search-line.js";
14
+ import { Tabs, TabsContent, TabsList, TabsTrigger } from "../tabs.js";
15
+ function isSelected(state, value) {
16
+ if (!state) return false;
17
+ if (Array.isArray(state)) {
18
+ return state.includes(value);
19
+ }
20
+ return state.has(value);
21
+ }
22
+ function FilterModal({
23
+ title,
24
+ state,
25
+ modalShow,
26
+ onOpen,
27
+ onClose,
28
+ onReset,
29
+ options,
30
+ tabbedOptions,
31
+ onSelect,
32
+ className,
33
+ optionsClassName,
34
+ resetLabel = "Reset",
35
+ applyLabel = "Apply",
36
+ showApplyButton = false,
37
+ showSearch = false
38
+ }) {
39
+ const [searchQuery, setSearchQuery] = React.useState("");
40
+ const [sortedOptions, setSortedOptions] = React.useState([]);
41
+ const [sortedTabbedOptions, setSortedTabbedOptions] = React.useState([]);
42
+ const handleReset = React.useCallback(() => {
43
+ onReset();
44
+ }, [onReset]);
45
+ const handleApply = React.useCallback(() => {
46
+ onClose();
47
+ }, [onClose]);
48
+ const filteredOptions = React.useMemo(() => {
49
+ if (!sortedOptions) return [];
50
+ if (!searchQuery.trim()) {
51
+ return sortedOptions;
52
+ }
53
+ const query = searchQuery.toLowerCase().trim();
54
+ return sortedOptions.filter((option) => {
55
+ const labelText = extractTextFromLabel(option.label).toLowerCase();
56
+ return labelText.includes(query);
57
+ });
58
+ }, [sortedOptions, searchQuery]);
59
+ const filteredTabbedOptions = React.useMemo(() => {
60
+ if (!sortedTabbedOptions) return [];
61
+ if (!searchQuery.trim()) {
62
+ return sortedTabbedOptions;
63
+ }
64
+ const query = searchQuery.toLowerCase().trim();
65
+ return sortedTabbedOptions.map((tab) => ({
66
+ ...tab,
67
+ options: tab.options.filter((option) => {
68
+ const labelText = extractTextFromLabel(option.label).toLowerCase();
69
+ return labelText.includes(query);
70
+ })
71
+ })).filter((tab) => tab.options.length > 0);
72
+ }, [sortedTabbedOptions, searchQuery]);
73
+ const defaultActiveTab = React.useMemo(() => {
74
+ return filteredTabbedOptions.length > 0 ? filteredTabbedOptions[0].tab : "";
75
+ }, [filteredTabbedOptions]);
76
+ const prevModalShowRef = React.useRef(modalShow);
77
+ React.useEffect(() => {
78
+ const wasOpen = prevModalShowRef.current;
79
+ const isOpen = modalShow;
80
+ if (!wasOpen && isOpen) {
81
+ if (options) {
82
+ const sorted = [...options].sort((a, b) => {
83
+ const aSelected = isSelected(state, a.value);
84
+ const bSelected = isSelected(state, b.value);
85
+ if (aSelected && !bSelected) return -1;
86
+ if (!aSelected && bSelected) return 1;
87
+ return 0;
88
+ });
89
+ setSortedOptions(sorted);
90
+ }
91
+ if (tabbedOptions) {
92
+ const sorted = tabbedOptions.map((tab) => ({
93
+ ...tab,
94
+ options: [...tab.options].sort((a, b) => {
95
+ const aSelected = isSelected(state, a.value);
96
+ const bSelected = isSelected(state, b.value);
97
+ if (aSelected && !bSelected) return -1;
98
+ if (!aSelected && bSelected) return 1;
99
+ return 0;
100
+ })
101
+ }));
102
+ setSortedTabbedOptions(sorted);
103
+ }
104
+ } else if (wasOpen && !isOpen) {
105
+ setSearchQuery("");
106
+ }
107
+ prevModalShowRef.current = modalShow;
108
+ }, [modalShow, state, options, tabbedOptions]);
109
+ const allOptionsCount = React.useMemo(() => {
110
+ if (tabbedOptions) {
111
+ return tabbedOptions.reduce((sum, tab) => sum + tab.options.length, 0);
112
+ }
113
+ return options?.length ?? 0;
114
+ }, [options, tabbedOptions]);
115
+ const searchState = React.useMemo(
116
+ () => ({
117
+ value: searchQuery,
118
+ handleInput: (ev) => {
119
+ setSearchQuery(ev.target.value);
120
+ },
121
+ handleSubmit: (ev) => {
122
+ ev.preventDefault();
123
+ }
124
+ }),
125
+ [searchQuery]
126
+ );
127
+ return /* @__PURE__ */ jsx(
128
+ Dialog,
129
+ {
130
+ open: modalShow,
131
+ onOpenChange: (open) => open ? onOpen() : onClose(),
132
+ children: /* @__PURE__ */ jsxs(DialogContent, { className: cn("max-w-md", className), children: [
133
+ /* @__PURE__ */ jsx(DialogHeader, { children: /* @__PURE__ */ jsx(DialogTitle, { children: title }) }),
134
+ showSearch && /* @__PURE__ */ jsx(
135
+ SearchLine,
136
+ {
137
+ searchState,
138
+ placeholder: "Search options...",
139
+ size: "full"
140
+ }
141
+ ),
142
+ /* @__PURE__ */ jsx(
143
+ "div",
144
+ {
145
+ className: cn(
146
+ tabbedOptions ? "" : "max-h-[60vh] overflow-y-auto",
147
+ optionsClassName
148
+ ),
149
+ children: tabbedOptions ? filteredTabbedOptions.length === 0 ? /* @__PURE__ */ jsx("div", { className: "text-center text-sm text-muted-foreground", children: allOptionsCount === 0 ? "No options available" : "No options match your search" }) : /* @__PURE__ */ jsxs(
150
+ Tabs,
151
+ {
152
+ defaultValue: defaultActiveTab,
153
+ className: "w-full",
154
+ children: [
155
+ /* @__PURE__ */ jsx(TabsList, { className: "w-full justify-start", children: filteredTabbedOptions.map((tab) => /* @__PURE__ */ jsx(TabsTrigger, { value: tab.tab, children: tab.label }, tab.tab)) }),
156
+ filteredTabbedOptions.map((tab) => /* @__PURE__ */ jsx(
157
+ TabsContent,
158
+ {
159
+ value: tab.tab,
160
+ className: "mt-4 max-h-[60vh] overflow-y-auto",
161
+ children: tab.options.length === 0 ? /* @__PURE__ */ jsx("div", { className: "text-center text-sm text-muted-foreground", children: "No options available" }) : /* @__PURE__ */ jsx("div", { className: "space-y-1", children: tab.options.map((option) => {
162
+ const checked = isSelected(state, option.value);
163
+ const key = serializeValue(option.value);
164
+ return /* @__PURE__ */ jsx(
165
+ CheckboxItem,
166
+ {
167
+ checked,
168
+ onCheckedChange: (newChecked) => onSelect(option.value, newChecked),
169
+ children: option.label
170
+ },
171
+ key
172
+ );
173
+ }) })
174
+ },
175
+ tab.tab
176
+ ))
177
+ ]
178
+ },
179
+ defaultActiveTab
180
+ ) : filteredOptions.length === 0 ? /* @__PURE__ */ jsx("div", { className: "text-center text-sm text-muted-foreground", children: allOptionsCount === 0 ? "No options available" : "No options match your search" }) : /* @__PURE__ */ jsx("div", { className: "space-y-1", children: filteredOptions.map((option) => {
181
+ const checked = isSelected(state, option.value);
182
+ const key = serializeValue(option.value);
183
+ return /* @__PURE__ */ jsx(
184
+ CheckboxItem,
185
+ {
186
+ checked,
187
+ onCheckedChange: (newChecked) => onSelect(option.value, newChecked),
188
+ children: option.label
189
+ },
190
+ key
191
+ );
192
+ }) })
193
+ }
194
+ ),
195
+ /* @__PURE__ */ jsxs(DialogFooter, { className: "flex-row justify-between gap-2 sm:justify-between", children: [
196
+ /* @__PURE__ */ jsx(
197
+ Button,
198
+ {
199
+ type: "button",
200
+ variant: "outline",
201
+ onClick: handleReset,
202
+ disabled: !state || (Array.isArray(state) ? state.length === 0 : state.size === 0),
203
+ children: resetLabel
204
+ }
205
+ ),
206
+ showApplyButton ? /* @__PURE__ */ jsx(Button, { type: "button", onClick: handleApply, children: applyLabel }) : /* @__PURE__ */ jsx(Button, { type: "button", variant: "default", onClick: onClose, children: applyLabel })
207
+ ] })
208
+ ] })
209
+ }
210
+ );
211
+ }
212
+ export {
213
+ FilterModal
214
+ };
@@ -0,0 +1,24 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
3
+ import { Circle } from "lucide-react";
4
+ import * as React from "react";
5
+ import cn from "../../utils/index.js";
6
+ const FilterRadioItem = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
7
+ DropdownMenuPrimitive.RadioItem,
8
+ {
9
+ ref,
10
+ className: cn(
11
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
12
+ className
13
+ ),
14
+ ...props,
15
+ children: [
16
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-current" }) }) }),
17
+ children
18
+ ]
19
+ }
20
+ ));
21
+ FilterRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
22
+ export {
23
+ FilterRadioItem
24
+ };
@@ -0,0 +1,16 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
3
+ import * as React from "react";
4
+ import cn from "../../utils/index.js";
5
+ const FilterSeparator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
6
+ DropdownMenuPrimitive.Separator,
7
+ {
8
+ ref,
9
+ className: cn("-mx-1 my-1 h-px bg-muted", className),
10
+ ...props
11
+ }
12
+ ));
13
+ FilterSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
14
+ export {
15
+ FilterSeparator
16
+ };
@@ -0,0 +1,12 @@
1
+ export * from "./filter-block.js";
2
+ export * from "./filter-checkbox-item.js";
3
+ export * from "./filter-chip.js";
4
+ export * from "./filter-chips.js";
5
+ export * from "./filter-dropdown-item.js";
6
+ export * from "./filter-group.js";
7
+ export * from "./filter-label.js";
8
+ export * from "./filter-modal.js";
9
+ export * from "./filter-modal-item.js";
10
+ export * from "./filter-radio-item.js";
11
+ export * from "./filter-separator.js";
12
+ export * from "./variants.js";
File without changes
@@ -0,0 +1,17 @@
1
+ import { cva } from "class-variance-authority";
2
+ const filterBlockVariants = cva("w-full", {
3
+ variants: {
4
+ variant: {
5
+ default: "",
6
+ elevated: "shadow-lg",
7
+ outlined: "border-2",
8
+ ghost: "border-0 shadow-none"
9
+ }
10
+ },
11
+ defaultVariants: {
12
+ variant: "default"
13
+ }
14
+ });
15
+ export {
16
+ filterBlockVariants
17
+ };
@@ -0,0 +1,43 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useFormFieldIds } from "../../utils/a11y.js";
3
+ import { cn } from "../../utils/cn.js";
4
+ import { Input } from "../input.js";
5
+ import { Label } from "../label.js";
6
+ function FormField({
7
+ label,
8
+ error,
9
+ required,
10
+ helperText,
11
+ inputProps,
12
+ className
13
+ }) {
14
+ const { inputId, errorId, helperId } = useFormFieldIds(label);
15
+ const hasError = !!error;
16
+ return /* @__PURE__ */ jsxs("div", { className: cn("space-y-2", className), children: [
17
+ /* @__PURE__ */ jsx(
18
+ Label,
19
+ {
20
+ htmlFor: inputId,
21
+ required,
22
+ variant: hasError ? "error" : "default",
23
+ children: label
24
+ }
25
+ ),
26
+ /* @__PURE__ */ jsx(
27
+ Input,
28
+ {
29
+ ...inputProps,
30
+ id: inputId,
31
+ hasError,
32
+ errorMessage: error,
33
+ "aria-invalid": hasError,
34
+ "aria-describedby": hasError ? errorId : helperText ? helperId : void 0,
35
+ "aria-required": required
36
+ }
37
+ ),
38
+ !hasError && helperText && /* @__PURE__ */ jsx("p", { id: helperId, className: "text-sm text-muted-foreground", children: helperText })
39
+ ] });
40
+ }
41
+ export {
42
+ FormField
43
+ };
@@ -0,0 +1 @@
1
+ export * from "./form-field.js";
@@ -0,0 +1,129 @@
1
+ import { resolveCSSColor } from "../../utils/colors.js";
2
+ const DEFAULT_AREA_SERIES = {
3
+ topColor: "rgba(76, 175, 80, 0.56)",
4
+ bottomColor: "rgba(76, 175, 80, 0.04)",
5
+ lineColor: "#02c39a",
6
+ lineWidth: 2
7
+ };
8
+ const DEFAULT_VERTICAL_LINE = {
9
+ showLabel: true,
10
+ color: "#02c39a",
11
+ labelBackgroundColor: "#02c39a",
12
+ width: 2
13
+ };
14
+ function getDefaultOptions() {
15
+ return {
16
+ timeScale: {
17
+ borderVisible: true,
18
+ borderColor: "rgba(224, 227, 235, 0.1)",
19
+ visible: true
20
+ },
21
+ rightPriceScale: {
22
+ autoScale: true,
23
+ alignLabels: true,
24
+ borderVisible: true,
25
+ borderColor: "rgba(224, 227, 235, 0.1)",
26
+ entireTextOnly: false
27
+ },
28
+ layout: {
29
+ background: {
30
+ color: "transparent"
31
+ },
32
+ textColor: resolveCSSColor("hsl(var(--foreground))", "rgb(0, 0, 0)"),
33
+ fontSize: 14
34
+ },
35
+ crosshair: {
36
+ horzLine: {
37
+ width: 2,
38
+ color: "rgba(224, 227, 235, 0.1)",
39
+ style: 0,
40
+ labelVisible: false
41
+ },
42
+ vertLine: {
43
+ width: 2,
44
+ color: "rgba(224, 227, 235, 0.1)",
45
+ style: 0,
46
+ labelVisible: false
47
+ }
48
+ },
49
+ grid: {
50
+ vertLines: {
51
+ visible: false
52
+ },
53
+ horzLines: {
54
+ visible: false
55
+ }
56
+ }
57
+ };
58
+ }
59
+ function getDefaultSeries() {
60
+ return {
61
+ topColor: "rgba(76, 175, 80, 0.56)",
62
+ bottomColor: "rgba(76, 175, 80, 0.04)",
63
+ lineColor: DEFAULT_AREA_SERIES.lineColor,
64
+ lineWidth: 2
65
+ };
66
+ }
67
+ function getDefaultVerticalLine() {
68
+ const primaryColor = resolveCSSColor(
69
+ "hsl(var(--primary))",
70
+ "rgb(76, 175, 80)"
71
+ );
72
+ return {
73
+ showLabel: true,
74
+ color: primaryColor,
75
+ labelBackgroundColor: primaryColor,
76
+ width: 2
77
+ };
78
+ }
79
+ const DEFAULT_OPTIONS = {
80
+ timeScale: {
81
+ borderVisible: true,
82
+ borderColor: "rgba(224, 227, 235, 0.1)",
83
+ visible: true
84
+ },
85
+ rightPriceScale: {
86
+ autoScale: true,
87
+ alignLabels: true,
88
+ borderVisible: true,
89
+ borderColor: "rgba(224, 227, 235, 0.1)",
90
+ entireTextOnly: false
91
+ },
92
+ layout: {
93
+ background: {
94
+ color: "transparent"
95
+ },
96
+ textColor: "rgb(0, 0, 0)",
97
+ fontSize: 14
98
+ },
99
+ crosshair: {
100
+ horzLine: {
101
+ width: 2,
102
+ color: "rgba(224, 227, 235, 0.1)",
103
+ style: 0,
104
+ labelVisible: false
105
+ },
106
+ vertLine: {
107
+ width: 2,
108
+ color: "rgba(224, 227, 235, 0.1)",
109
+ style: 0,
110
+ labelVisible: false
111
+ }
112
+ },
113
+ grid: {
114
+ vertLines: {
115
+ visible: false
116
+ },
117
+ horzLines: {
118
+ visible: false
119
+ }
120
+ }
121
+ };
122
+ export {
123
+ DEFAULT_AREA_SERIES,
124
+ DEFAULT_OPTIONS,
125
+ DEFAULT_VERTICAL_LINE,
126
+ getDefaultOptions,
127
+ getDefaultSeries,
128
+ getDefaultVerticalLine
129
+ };
@@ -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
+ };