@gearbox-protocol/permissionless-ui 1.2.33 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +134 -1
- package/dist/cjs/components/asset-line.js +117 -0
- package/dist/cjs/components/assets-list-cell.js +73 -0
- package/dist/cjs/components/assets-ratio.js +98 -0
- package/dist/cjs/components/auth/siwe-provider.js +3 -4
- package/dist/cjs/components/base-link.js +61 -0
- package/dist/cjs/components/block-sync.js +117 -0
- package/dist/cjs/components/breadcrumbs.js +77 -0
- package/dist/cjs/components/buttons/back-button.js +37 -19
- package/dist/cjs/components/buttons/button.js +4 -4
- package/dist/cjs/components/buttons/filter-button.js +68 -0
- package/dist/cjs/components/buttons/index.js +4 -0
- package/dist/cjs/components/buttons/range-buttons.js +63 -0
- package/dist/cjs/components/card-grid.js +127 -0
- package/dist/cjs/components/card.js +176 -0
- package/dist/cjs/components/checkbox-item.js +82 -0
- package/dist/cjs/components/compound-apy.js +232 -0
- package/dist/cjs/components/credit-session-status.js +67 -0
- package/dist/cjs/components/description.js +48 -0
- package/dist/cjs/components/detailed-page-title.js +96 -0
- package/dist/cjs/components/dialog/dialog-container.js +75 -0
- package/dist/cjs/components/dialog/dialog-content.js +66 -0
- package/dist/cjs/components/dialog/dialog-description.js +50 -0
- package/dist/cjs/components/dialog/dialog-footer.js +53 -0
- package/dist/cjs/components/dialog/dialog-header.js +53 -0
- package/dist/cjs/components/dialog/dialog-overlay.js +53 -0
- package/dist/cjs/components/dialog/dialog-title.js +50 -0
- package/dist/cjs/components/dialog/dialog.js +45 -0
- package/dist/cjs/components/dialog/index.js +36 -0
- package/dist/cjs/components/dropdown-menu/dropdown-menu-checkbox-item.js +63 -0
- package/dist/cjs/components/dropdown-menu/dropdown-menu-content.js +55 -0
- package/dist/cjs/components/dropdown-menu/dropdown-menu-item.js +54 -0
- package/dist/cjs/components/dropdown-menu/dropdown-menu-label.js +54 -0
- package/dist/cjs/components/dropdown-menu/dropdown-menu-radio-item.js +58 -0
- package/dist/cjs/components/dropdown-menu/dropdown-menu-separator.js +50 -0
- package/dist/cjs/components/dropdown-menu/dropdown-menu-shortcut.js +52 -0
- package/dist/cjs/components/dropdown-menu/dropdown-menu-sub-content.js +53 -0
- package/dist/cjs/components/dropdown-menu/dropdown-menu-sub-trigger.js +59 -0
- package/dist/cjs/components/dropdown-menu/dropdown-menu.js +54 -0
- package/dist/cjs/components/dropdown-menu/index.js +40 -0
- package/dist/cjs/components/error-message.js +70 -0
- package/dist/cjs/components/filter/filter-block.js +52 -0
- package/dist/cjs/components/filter/filter-checkbox-item.js +59 -0
- package/dist/cjs/components/filter/filter-chip.js +74 -0
- package/dist/cjs/components/filter/filter-chips.js +84 -0
- package/dist/cjs/components/filter/filter-dropdown-item.js +54 -0
- package/dist/cjs/components/filter/filter-group.js +43 -0
- package/dist/cjs/components/filter/filter-label.js +54 -0
- package/dist/cjs/components/filter/filter-modal-item.js +55 -0
- package/dist/cjs/components/filter/filter-modal.js +242 -0
- package/dist/cjs/components/filter/filter-radio-item.js +58 -0
- package/dist/cjs/components/filter/filter-separator.js +50 -0
- package/dist/cjs/components/filter/index.js +44 -0
- package/dist/cjs/components/filter/interface.js +16 -0
- package/dist/cjs/components/filter/variants.js +41 -0
- package/dist/cjs/components/form/form-field.js +67 -0
- package/dist/cjs/components/{editable-table → form}/index.js +4 -8
- package/dist/cjs/components/graph/default-config.js +158 -0
- package/dist/cjs/components/graph/formatters.js +175 -0
- package/dist/cjs/components/graph/graph-current-value.js +54 -0
- package/dist/cjs/components/graph/graph-tooltip.js +141 -0
- package/dist/cjs/components/graph/graph-view.js +232 -0
- package/dist/cjs/components/graph/graph.js +636 -0
- package/dist/cjs/components/graph/index.js +44 -0
- package/dist/cjs/components/graph/plugins/vertical-line.js +127 -0
- package/dist/cjs/components/guard.js +34 -0
- package/dist/cjs/components/health-factor.js +100 -0
- package/dist/cjs/components/help-center-container.js +106 -0
- package/dist/cjs/components/hide-on.js +66 -0
- package/dist/cjs/components/horizontal-indicator.js +63 -0
- package/dist/cjs/components/image.js +56 -0
- package/dist/cjs/components/index.js +93 -9
- package/dist/cjs/components/input.js +43 -21
- package/dist/cjs/components/label.js +29 -5
- package/dist/cjs/components/layout/app-logo.js +7 -17
- package/dist/cjs/components/layout/col.js +192 -0
- package/dist/cjs/components/layout/container.js +75 -0
- package/dist/cjs/components/layout/footer.js +137 -52
- package/dist/cjs/components/layout/grid.js +217 -0
- package/dist/cjs/components/layout/header.js +75 -13
- package/dist/cjs/components/layout/index.js +8 -0
- package/dist/cjs/components/layout/layout.js +65 -0
- package/dist/cjs/components/liquidation/index.js +28 -0
- package/dist/cjs/components/liquidation/liquidation-assets-table.js +95 -0
- package/dist/cjs/components/liquidation/liquidation-graph-legend.js +41 -0
- package/dist/cjs/components/liquidation/liquidation-graph-tip.js +93 -0
- package/dist/cjs/components/liquidation/liquidation-graph.js +214 -0
- package/dist/cjs/components/loader-guard.js +47 -0
- package/dist/cjs/components/loading-guard.js +55 -0
- package/dist/cjs/components/markdown-viewer.js +4 -2
- package/dist/cjs/components/navbar-indicator-context.js +93 -0
- package/dist/cjs/components/navbar.js +131 -0
- package/dist/cjs/components/navitem.js +148 -0
- package/dist/cjs/components/next/back-button.js +43 -0
- package/dist/cjs/components/next/index.js +37 -0
- package/dist/cjs/components/next/siwe-provider.js +35 -0
- package/dist/cjs/components/next/token-icon.js +43 -0
- package/dist/cjs/components/not-found.js +58 -0
- package/dist/cjs/components/options-list.js +88 -0
- package/dist/cjs/components/page-title.js +116 -0
- package/dist/cjs/components/percent-indicator.js +56 -0
- package/dist/cjs/components/pool-points-indicator.js +107 -0
- package/dist/cjs/components/search-line.js +225 -0
- package/dist/cjs/components/select.js +30 -9
- package/dist/cjs/components/short-string.js +58 -0
- package/dist/cjs/components/skeleton.js +56 -3
- package/dist/cjs/components/stat-badge.js +189 -0
- package/dist/cjs/components/tab-control.js +253 -0
- package/dist/cjs/components/table/editable-grid-table.js +131 -0
- package/dist/cjs/components/{editable-table → table}/editable-table.js +1 -1
- package/dist/cjs/components/table/grid-error-line.js +60 -0
- package/dist/cjs/components/table/grid-loading-line.js +64 -0
- package/dist/cjs/components/table/grid-table-loader.js +56 -0
- package/dist/cjs/components/table/grid-table.js +203 -0
- package/dist/cjs/components/table/index.js +46 -0
- package/dist/cjs/components/table/sortable-head-cell.js +48 -0
- package/dist/cjs/components/table/table-loader-guard.js +55 -0
- package/dist/cjs/components/table/table-loader.js +46 -0
- package/dist/cjs/components/table/table-sm.js +93 -0
- package/dist/cjs/components/{table.js → table/table.js} +78 -22
- package/dist/cjs/components/textarea.js +27 -7
- package/dist/cjs/components/theme-provider.js +127 -0
- package/dist/cjs/components/theme-toggle.js +85 -0
- package/dist/cjs/components/token-icon.js +68 -20
- package/dist/cjs/components/token-symbol.js +84 -0
- package/dist/cjs/components/tooltip.js +1 -1
- package/dist/cjs/components/typed-intl/index.js +57 -0
- package/dist/cjs/components/vspace.js +31 -0
- package/dist/cjs/components/with-filter-button.js +84 -0
- package/dist/cjs/configs/design-tokens.js +109 -0
- package/dist/cjs/configs/index.js +48 -0
- package/dist/cjs/configs/tailwind-preset.js +162 -0
- package/dist/cjs/configs/tailwind.config.js +20 -67
- package/dist/cjs/configs/variants.js +58 -0
- package/dist/cjs/hooks/index.js +34 -0
- package/dist/cjs/hooks/use-controllable-state.js +49 -0
- package/dist/cjs/hooks/use-debounce.js +67 -0
- package/dist/cjs/hooks/use-filter.js +79 -0
- package/dist/cjs/hooks/use-hf.js +62 -0
- package/dist/cjs/hooks/use-liquidation/index.js +165 -0
- package/dist/cjs/hooks/use-liquidation/types.js +16 -0
- package/dist/cjs/hooks/use-liquidation/utils.js +253 -0
- package/dist/cjs/hooks/use-media-query.js +50 -0
- package/dist/cjs/hooks/use-previous.js +35 -0
- package/dist/cjs/index.js +155 -3
- package/dist/cjs/types/component-props.js +16 -0
- package/dist/cjs/types/filter.js +16 -0
- package/dist/cjs/types/footer.js +16 -0
- package/dist/cjs/types/graph.js +16 -0
- package/dist/cjs/types/help.js +16 -0
- package/dist/cjs/types/index.js +16 -0
- package/dist/cjs/types/range-item.js +16 -0
- package/dist/cjs/utils/a11y.js +39 -0
- package/dist/cjs/utils/bn-to-input-view.js +60 -0
- package/dist/cjs/utils/colors.js +96 -0
- package/dist/cjs/utils/format-asset-amount.js +43 -0
- package/dist/cjs/utils/format-money.js +68 -0
- package/dist/cjs/utils/index.js +29 -2
- package/dist/cjs/utils/interface.js +16 -0
- package/dist/cjs/utils/react.js +105 -0
- package/dist/cjs/utils/short-sha.js +28 -0
- package/dist/cjs/utils/sort.js +16 -0
- package/dist/cjs/utils/templates.js +50 -0
- package/dist/esm/components/asset-line.js +83 -0
- package/dist/esm/components/assets-list-cell.js +39 -0
- package/dist/esm/components/assets-ratio.js +64 -0
- package/dist/esm/components/auth/siwe-provider.js +3 -4
- package/dist/esm/components/base-link.js +27 -0
- package/dist/esm/components/block-sync.js +98 -0
- package/dist/esm/components/breadcrumbs.js +43 -0
- package/dist/esm/components/buttons/back-button.js +35 -8
- package/dist/esm/components/buttons/button.js +4 -4
- package/dist/esm/components/buttons/filter-button.js +34 -0
- package/dist/esm/components/buttons/index.js +2 -0
- package/dist/esm/components/buttons/range-buttons.js +29 -0
- package/dist/esm/components/card-grid.js +92 -0
- package/dist/esm/components/card.js +133 -0
- package/dist/esm/components/checkbox-item.js +48 -0
- package/dist/esm/components/compound-apy.js +203 -0
- package/dist/esm/components/credit-session-status.js +33 -0
- package/dist/esm/components/description.js +14 -0
- package/dist/esm/components/detailed-page-title.js +67 -0
- package/dist/esm/components/dialog/dialog-container.js +41 -0
- package/dist/esm/components/dialog/dialog-content.js +32 -0
- package/dist/esm/components/dialog/dialog-description.js +16 -0
- package/dist/esm/components/dialog/dialog-footer.js +19 -0
- package/dist/esm/components/dialog/dialog-header.js +19 -0
- package/dist/esm/components/dialog/dialog-overlay.js +19 -0
- package/dist/esm/components/dialog/dialog-title.js +16 -0
- package/dist/esm/components/dialog/dialog.js +9 -0
- package/dist/esm/components/dialog/index.js +8 -0
- package/dist/esm/components/dropdown-menu/dropdown-menu-checkbox-item.js +29 -0
- package/dist/esm/components/dropdown-menu/dropdown-menu-content.js +21 -0
- package/dist/esm/components/dropdown-menu/dropdown-menu-item.js +20 -0
- package/dist/esm/components/dropdown-menu/dropdown-menu-label.js +20 -0
- package/dist/esm/components/dropdown-menu/dropdown-menu-radio-item.js +24 -0
- package/dist/esm/components/dropdown-menu/dropdown-menu-separator.js +16 -0
- package/dist/esm/components/dropdown-menu/dropdown-menu-shortcut.js +18 -0
- package/dist/esm/components/dropdown-menu/dropdown-menu-sub-content.js +19 -0
- package/dist/esm/components/dropdown-menu/dropdown-menu-sub-trigger.js +25 -0
- package/dist/esm/components/dropdown-menu/dropdown-menu.js +15 -0
- package/dist/esm/components/dropdown-menu/index.js +10 -0
- package/dist/esm/components/error-message.js +36 -0
- package/dist/esm/components/filter/filter-block.js +18 -0
- package/dist/esm/components/filter/filter-checkbox-item.js +25 -0
- package/dist/esm/components/filter/filter-chip.js +40 -0
- package/dist/esm/components/filter/filter-chips.js +50 -0
- package/dist/esm/components/filter/filter-dropdown-item.js +20 -0
- package/dist/esm/components/filter/filter-group.js +9 -0
- package/dist/esm/components/filter/filter-label.js +20 -0
- package/dist/esm/components/filter/filter-modal-item.js +21 -0
- package/dist/esm/components/filter/filter-modal.js +214 -0
- package/dist/esm/components/filter/filter-radio-item.js +24 -0
- package/dist/esm/components/filter/filter-separator.js +16 -0
- package/dist/esm/components/filter/index.js +12 -0
- package/dist/esm/components/filter/interface.js +0 -0
- package/dist/esm/components/filter/variants.js +17 -0
- package/dist/esm/components/form/form-field.js +43 -0
- package/dist/esm/components/form/index.js +1 -0
- package/dist/esm/components/graph/default-config.js +129 -0
- package/dist/esm/components/graph/formatters.js +150 -0
- package/dist/esm/components/graph/graph-current-value.js +30 -0
- package/dist/esm/components/graph/graph-tooltip.js +117 -0
- package/dist/esm/components/graph/graph-view.js +195 -0
- package/dist/esm/components/graph/graph.js +605 -0
- package/dist/esm/components/graph/index.js +15 -0
- package/dist/esm/components/graph/plugins/vertical-line.js +103 -0
- package/dist/esm/components/guard.js +10 -0
- package/dist/esm/components/health-factor.js +63 -0
- package/dist/esm/components/help-center-container.js +82 -0
- package/dist/esm/components/hide-on.js +41 -0
- package/dist/esm/components/horizontal-indicator.js +34 -0
- package/dist/esm/components/image.js +32 -0
- package/dist/esm/components/index.js +46 -4
- package/dist/esm/components/input.js +41 -20
- package/dist/esm/components/label.js +27 -4
- package/dist/esm/components/layout/app-logo.js +5 -5
- package/dist/esm/components/layout/col.js +158 -0
- package/dist/esm/components/layout/container.js +41 -0
- package/dist/esm/components/layout/footer.js +134 -52
- package/dist/esm/components/layout/grid.js +183 -0
- package/dist/esm/components/layout/header.js +65 -13
- package/dist/esm/components/layout/index.js +4 -0
- package/dist/esm/components/layout/layout.js +31 -0
- package/dist/esm/components/liquidation/index.js +4 -0
- package/dist/esm/components/liquidation/liquidation-assets-table.js +71 -0
- package/dist/esm/components/liquidation/liquidation-graph-legend.js +17 -0
- package/dist/esm/components/liquidation/liquidation-graph-tip.js +72 -0
- package/dist/esm/components/liquidation/liquidation-graph.js +191 -0
- package/dist/esm/components/loader-guard.js +23 -0
- package/dist/esm/components/loading-guard.js +31 -0
- package/dist/esm/components/markdown-viewer.js +4 -2
- package/dist/esm/components/navbar-indicator-context.js +75 -0
- package/dist/esm/components/navbar.js +98 -0
- package/dist/esm/components/navitem.js +113 -0
- package/dist/esm/components/next/back-button.js +11 -0
- package/dist/esm/components/next/index.js +10 -0
- package/dist/esm/components/next/siwe-provider.js +11 -0
- package/dist/esm/components/next/token-icon.js +11 -0
- package/dist/esm/components/not-found.js +24 -0
- package/dist/esm/components/options-list.js +53 -0
- package/dist/esm/components/page-title.js +80 -0
- package/dist/esm/components/percent-indicator.js +22 -0
- package/dist/esm/components/pool-points-indicator.js +73 -0
- package/dist/esm/components/search-line.js +188 -0
- package/dist/esm/components/select.js +28 -8
- package/dist/esm/components/short-string.js +39 -0
- package/dist/esm/components/skeleton.js +54 -2
- package/dist/esm/components/stat-badge.js +155 -0
- package/dist/esm/components/tab-control.js +215 -0
- package/dist/esm/components/table/editable-grid-table.js +105 -0
- package/dist/esm/components/{editable-table → table}/editable-table.js +1 -1
- package/dist/esm/components/table/grid-error-line.js +36 -0
- package/dist/esm/components/table/grid-loading-line.js +30 -0
- package/dist/esm/components/table/grid-table-loader.js +22 -0
- package/dist/esm/components/table/grid-table.js +159 -0
- package/dist/esm/components/table/index.js +13 -0
- package/dist/esm/components/table/sortable-head-cell.js +24 -0
- package/dist/esm/components/table/table-loader-guard.js +31 -0
- package/dist/esm/components/table/table-loader.js +22 -0
- package/dist/esm/components/table/table-sm.js +58 -0
- package/dist/esm/components/{table.js → table/table.js} +74 -21
- package/dist/esm/components/textarea.js +25 -6
- package/dist/esm/components/theme-provider.js +108 -0
- package/dist/esm/components/theme-toggle.js +61 -0
- package/dist/esm/components/token-icon.js +69 -11
- package/dist/esm/components/token-symbol.js +50 -0
- package/dist/esm/components/tooltip.js +1 -1
- package/dist/esm/components/typed-intl/index.js +32 -0
- package/dist/esm/components/vspace.js +7 -0
- package/dist/esm/components/with-filter-button.js +50 -0
- package/dist/esm/configs/design-tokens.js +85 -0
- package/dist/esm/configs/index.js +9 -0
- package/dist/esm/configs/tailwind-preset.js +128 -0
- package/dist/esm/configs/tailwind.config.js +16 -57
- package/dist/esm/configs/variants.js +31 -0
- package/dist/esm/hooks/index.js +7 -0
- package/dist/esm/hooks/use-controllable-state.js +25 -0
- package/dist/esm/hooks/use-debounce.js +42 -0
- package/dist/esm/hooks/use-filter.js +51 -0
- package/dist/esm/hooks/use-hf.js +38 -0
- package/dist/esm/hooks/use-liquidation/index.js +146 -0
- package/dist/esm/hooks/use-liquidation/types.js +0 -0
- package/dist/esm/hooks/use-liquidation/utils.js +215 -0
- package/dist/esm/hooks/use-media-query.js +23 -0
- package/dist/esm/hooks/use-previous.js +11 -0
- package/dist/esm/index.js +83 -1
- package/dist/esm/types/component-props.js +0 -0
- package/dist/esm/types/filter.js +0 -0
- package/dist/esm/types/footer.js +0 -0
- package/dist/esm/types/graph.js +0 -0
- package/dist/esm/types/help.js +0 -0
- package/dist/esm/types/index.js +0 -0
- package/dist/esm/types/range-item.js +0 -0
- package/dist/esm/utils/a11y.js +14 -0
- package/dist/esm/utils/bn-to-input-view.js +36 -0
- package/dist/esm/utils/colors.js +69 -0
- package/dist/esm/utils/format-asset-amount.js +19 -0
- package/dist/esm/utils/format-money.js +40 -0
- package/dist/esm/utils/index.js +21 -1
- package/dist/esm/utils/interface.js +0 -0
- package/dist/esm/utils/react.js +70 -0
- package/dist/esm/utils/short-sha.js +4 -0
- package/dist/esm/utils/sort.js +0 -0
- package/dist/esm/utils/templates.js +24 -0
- package/dist/globals.css +230 -52
- package/dist/grid-safelist.css +264 -0
- package/dist/types/components/asset-line.d.ts +59 -0
- package/dist/types/components/assets-list-cell.d.ts +48 -0
- package/dist/types/components/assets-ratio.d.ts +9 -0
- package/dist/types/components/auth/signin-required.d.ts +1 -1
- package/dist/types/components/auth/siwe-provider.d.ts +2 -1
- package/dist/types/components/badge.d.ts +1 -1
- package/dist/types/components/base-link.d.ts +38 -0
- package/dist/types/components/block-sync.d.ts +8 -0
- package/dist/types/components/breadcrumbs.d.ts +24 -0
- package/dist/types/components/buttons/back-button.d.ts +15 -20
- package/dist/types/components/buttons/button.d.ts +37 -3
- package/dist/types/components/buttons/filter-button.d.ts +52 -0
- package/dist/types/components/buttons/index.d.ts +2 -0
- package/dist/types/components/buttons/range-buttons.d.ts +49 -0
- package/dist/types/components/card-grid.d.ts +25 -0
- package/dist/types/components/card.d.ts +116 -0
- package/dist/types/components/cards/card.d.ts +2 -2
- package/dist/types/components/checkbox-item.d.ts +56 -0
- package/dist/types/components/compound-apy.d.ts +80 -0
- package/dist/types/components/credit-session-status.d.ts +7 -0
- package/dist/types/components/description.d.ts +26 -0
- package/dist/types/components/detailed-page-title.d.ts +31 -0
- package/dist/types/components/dialog/dialog-container.d.ts +12 -0
- package/dist/types/components/dialog/dialog-content.d.ts +4 -0
- package/dist/types/components/dialog/dialog-description.d.ts +4 -0
- package/dist/types/components/dialog/dialog-footer.d.ts +6 -0
- package/dist/types/components/dialog/dialog-header.d.ts +6 -0
- package/dist/types/components/dialog/dialog-overlay.d.ts +4 -0
- package/dist/types/components/dialog/dialog-title.d.ts +4 -0
- package/dist/types/components/dialog/dialog.d.ts +5 -0
- package/dist/types/components/dialog/index.d.ts +8 -0
- package/dist/types/components/dropdown-menu/dropdown-menu-checkbox-item.d.ts +22 -0
- package/dist/types/components/dropdown-menu/dropdown-menu-content.d.ts +4 -0
- package/dist/types/components/dropdown-menu/dropdown-menu-item.d.ts +6 -0
- package/dist/types/components/dropdown-menu/dropdown-menu-label.d.ts +6 -0
- package/dist/types/components/dropdown-menu/dropdown-menu-radio-item.d.ts +4 -0
- package/dist/types/components/dropdown-menu/dropdown-menu-separator.d.ts +4 -0
- package/dist/types/components/dropdown-menu/dropdown-menu-shortcut.d.ts +6 -0
- package/dist/types/components/dropdown-menu/dropdown-menu-sub-content.d.ts +4 -0
- package/dist/types/components/dropdown-menu/dropdown-menu-sub-trigger.d.ts +6 -0
- package/dist/types/components/dropdown-menu/dropdown-menu.d.ts +8 -0
- package/dist/types/components/dropdown-menu/index.d.ts +10 -0
- package/dist/types/components/error-message.d.ts +21 -0
- package/dist/types/components/filter/filter-block.d.ts +17 -0
- package/dist/types/components/filter/filter-checkbox-item.d.ts +23 -0
- package/dist/types/components/filter/filter-chip.d.ts +34 -0
- package/dist/types/components/filter/filter-chips.d.ts +42 -0
- package/dist/types/components/filter/filter-dropdown-item.d.ts +24 -0
- package/dist/types/components/filter/filter-group.d.ts +22 -0
- package/dist/types/components/filter/filter-label.d.ts +21 -0
- package/dist/types/components/filter/filter-modal-item.d.ts +31 -0
- package/dist/types/components/filter/filter-modal.d.ts +123 -0
- package/dist/types/components/filter/filter-radio-item.d.ts +19 -0
- package/dist/types/components/filter/filter-separator.d.ts +22 -0
- package/dist/types/components/filter/index.d.ts +109 -0
- package/dist/types/components/filter/interface.d.ts +24 -0
- package/dist/types/components/filter/variants.d.ts +3 -0
- package/dist/types/components/form/form-field.d.ts +38 -0
- package/dist/types/components/form/index.d.ts +1 -0
- package/dist/types/components/graph/default-config.d.ts +20 -0
- package/dist/types/components/graph/formatters.d.ts +16 -0
- package/dist/types/components/graph/graph-current-value.d.ts +13 -0
- package/dist/types/components/graph/graph-tooltip.d.ts +24 -0
- package/dist/types/components/graph/graph-view.d.ts +198 -0
- package/dist/types/components/graph/graph.d.ts +49 -0
- package/dist/types/components/graph/index.d.ts +7 -0
- package/dist/types/components/guard.d.ts +34 -0
- package/dist/types/components/health-factor.d.ts +63 -0
- package/dist/types/components/help-center-container.d.ts +22 -0
- package/dist/types/components/hide-on.d.ts +32 -0
- package/dist/types/components/horizontal-indicator.d.ts +22 -0
- package/dist/types/components/image.d.ts +35 -0
- package/dist/types/components/index.d.ts +44 -1
- package/dist/types/components/input.d.ts +26 -9
- package/dist/types/components/label.d.ts +26 -5
- package/dist/types/components/layout/app-logo.d.ts +1 -0
- package/dist/types/components/layout/col.d.ts +43 -0
- package/dist/types/components/layout/container.d.ts +37 -0
- package/dist/types/components/layout/footer.d.ts +44 -5
- package/dist/types/components/layout/grid.d.ts +48 -0
- package/dist/types/components/layout/header.d.ts +68 -12
- package/dist/types/components/layout/index.d.ts +4 -0
- package/dist/types/components/layout/layout.d.ts +12 -0
- package/dist/types/components/liquidation/index.d.ts +4 -0
- package/dist/types/components/liquidation/liquidation-assets-table.d.ts +14 -0
- package/dist/types/components/liquidation/liquidation-graph-legend.d.ts +2 -0
- package/dist/types/components/liquidation/liquidation-graph-tip.d.ts +13 -0
- package/dist/types/components/liquidation/liquidation-graph.d.ts +19 -0
- package/dist/types/components/loader-guard.d.ts +17 -0
- package/dist/types/components/loading-guard.d.ts +18 -0
- package/dist/types/components/navbar-indicator-context.d.ts +13 -0
- package/dist/types/components/navbar.d.ts +25 -0
- package/dist/types/components/navitem.d.ts +67 -0
- package/dist/types/components/next/back-button.d.ts +3 -0
- package/dist/types/components/next/index.d.ts +9 -0
- package/dist/types/components/next/siwe-provider.d.ts +7 -0
- package/dist/types/components/next/token-icon.d.ts +3 -0
- package/dist/types/components/not-found.d.ts +18 -0
- package/dist/types/components/options-list.d.ts +15 -0
- package/dist/types/components/page-title.d.ts +69 -0
- package/dist/types/components/percent-indicator.d.ts +28 -0
- package/dist/types/components/pool-points-indicator.d.ts +41 -0
- package/dist/types/components/search-line.d.ts +117 -0
- package/dist/types/components/select.d.ts +9 -2
- package/dist/types/components/short-string.d.ts +39 -0
- package/dist/types/components/skeleton.d.ts +28 -3
- package/dist/types/components/stat-badge.d.ts +169 -0
- package/dist/types/components/tab-control.d.ts +39 -0
- package/dist/types/components/table/editable-grid-table.d.ts +120 -0
- package/dist/types/components/table/grid-error-line.d.ts +49 -0
- package/dist/types/components/table/grid-loading-line.d.ts +36 -0
- package/dist/types/components/table/grid-table-loader.d.ts +25 -0
- package/dist/types/components/table/grid-table.d.ts +158 -0
- package/dist/types/components/table/index.d.ts +13 -0
- package/dist/types/components/table/sortable-head-cell.d.ts +36 -0
- package/dist/types/components/table/table-loader-guard.d.ts +45 -0
- package/dist/types/components/table/table-loader.d.ts +46 -0
- package/dist/types/components/table/table-sm.d.ts +94 -0
- package/dist/types/components/{table.d.ts → table/table.d.ts} +39 -12
- package/dist/types/components/{editable-table → table}/updated-value.d.ts +3 -0
- package/dist/types/components/textarea.d.ts +24 -5
- package/dist/types/components/theme-provider.d.ts +34 -0
- package/dist/types/components/theme-toggle.d.ts +5 -0
- package/dist/types/components/token-icon.d.ts +8 -6
- package/dist/types/components/token-symbol.d.ts +71 -0
- package/dist/types/components/typed-intl/index.d.ts +19 -0
- package/dist/types/components/vspace.d.ts +27 -0
- package/dist/types/components/with-filter-button.d.ts +54 -0
- package/dist/types/configs/design-tokens.d.ts +73 -0
- package/dist/types/configs/index.d.ts +4 -0
- package/dist/types/configs/tailwind-preset.d.ts +126 -0
- package/dist/types/configs/tailwind.config.d.ts +29 -0
- package/dist/types/configs/variants.d.ts +28 -0
- package/dist/types/hooks/index.d.ts +7 -0
- package/dist/types/hooks/use-controllable-state.d.ts +24 -0
- package/dist/types/hooks/use-debounce.d.ts +31 -0
- package/dist/types/hooks/use-filter.d.ts +37 -0
- package/dist/types/hooks/use-hf.d.ts +15 -0
- package/dist/types/hooks/use-liquidation/index.d.ts +51 -0
- package/dist/types/hooks/use-liquidation/types.d.ts +16 -0
- package/dist/types/hooks/use-liquidation/utils.d.ts +66 -0
- package/dist/types/hooks/use-media-query.d.ts +25 -0
- package/dist/types/hooks/use-previous.d.ts +10 -0
- package/dist/types/index.d.ts +70 -2
- package/dist/types/types/component-props.d.ts +16 -0
- package/dist/types/types/filter.d.ts +8 -0
- package/dist/types/types/footer.d.ts +30 -0
- package/dist/types/types/graph.d.ts +22 -0
- package/dist/types/types/help.d.ts +4 -0
- package/dist/types/types/index.d.ts +6 -0
- package/dist/types/types/range-item.d.ts +9 -0
- package/dist/types/utils/a11y.d.ts +24 -0
- package/dist/types/utils/bn-to-input-view.d.ts +17 -0
- package/dist/types/utils/colors.d.ts +29 -0
- package/dist/types/utils/format-asset-amount.d.ts +16 -0
- package/dist/types/utils/format-money.d.ts +64 -0
- package/dist/types/utils/index.d.ts +10 -0
- package/dist/types/utils/interface.d.ts +9 -0
- package/dist/types/utils/react.d.ts +31 -0
- package/dist/types/utils/short-sha.d.ts +9 -0
- package/dist/types/utils/sort.d.ts +5 -0
- package/dist/types/utils/templates.d.ts +61 -0
- package/package.json +54 -10
- package/dist/cjs/components/dialog.js +0 -137
- package/dist/cjs/components/dropdown-menu.js +0 -200
- package/dist/esm/components/dialog.js +0 -97
- package/dist/esm/components/dropdown-menu.js +0 -152
- package/dist/esm/components/editable-table/index.js +0 -3
- package/dist/types/components/dialog.d.ts +0 -38
- package/dist/types/components/dropdown-menu.d.ts +0 -59
- package/dist/types/components/editable-table/index.d.ts +0 -3
- /package/dist/cjs/components/{editable-table → table}/edit-button.js +0 -0
- /package/dist/cjs/components/{editable-table → table}/updated-value.js +0 -0
- /package/dist/esm/components/{editable-table → table}/edit-button.js +0 -0
- /package/dist/esm/components/{editable-table → table}/updated-value.js +0 -0
- /package/dist/types/components/{editable-table → table}/edit-button.d.ts +0 -0
- /package/dist/types/components/{editable-table → table}/editable-table.d.ts +0 -0
package/README.md
CHANGED
|
@@ -1,6 +1,139 @@
|
|
|
1
1
|
# Permissionless UI
|
|
2
2
|
|
|
3
|
-
UI components for internal use
|
|
3
|
+
UI components for internal use - framework-agnostic React component library built with Tailwind CSS 4.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- 🎨 **Tailwind CSS 4** - Built with the latest Tailwind CSS
|
|
8
|
+
- 🌗 **Dark Mode** - Full dark mode support out of the box
|
|
9
|
+
- 📦 **Framework Agnostic** - Works with any React framework
|
|
10
|
+
- ⚡ **Next.js Optimized** - Special optimizations for Next.js projects
|
|
11
|
+
- 🎯 **TypeScript** - Fully typed components
|
|
12
|
+
- 🔧 **Customizable** - Easy to customize with Tailwind preset
|
|
13
|
+
- ♿ **Accessible** - Built with Radix UI primitives
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pnpm install @gearbox-protocol/permissionless-ui
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
For Next.js projects, also install Next.js:
|
|
22
|
+
```bash
|
|
23
|
+
pnpm install next
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Setup
|
|
27
|
+
|
|
28
|
+
### 1. Configure Tailwind CSS
|
|
29
|
+
|
|
30
|
+
Create or update your `tailwind.config.ts`:
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
import type { Config } from "tailwindcss";
|
|
34
|
+
import { preset } from "@gearbox-protocol/permissionless-ui/preset";
|
|
35
|
+
|
|
36
|
+
const config: Config = {
|
|
37
|
+
presets: [preset],
|
|
38
|
+
content: [
|
|
39
|
+
"./src/**/*.{js,ts,jsx,tsx,mdx}",
|
|
40
|
+
"./node_modules/@gearbox-protocol/permissionless-ui/dist/**/*.js",
|
|
41
|
+
],
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export default config;
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 2. Import Global Styles
|
|
48
|
+
|
|
49
|
+
In your main entry file:
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
import "@gearbox-protocol/permissionless-ui/globals.css";
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 3. Add Theme Provider (Optional)
|
|
56
|
+
|
|
57
|
+
For dark mode support:
|
|
58
|
+
|
|
59
|
+
```tsx
|
|
60
|
+
import { ThemeProvider, ThemeScript } from "@gearbox-protocol/permissionless-ui";
|
|
61
|
+
|
|
62
|
+
// For Next.js App Router
|
|
63
|
+
export default function RootLayout({ children }) {
|
|
64
|
+
return (
|
|
65
|
+
<html suppressHydrationWarning>
|
|
66
|
+
<head>
|
|
67
|
+
{/* Prevents flash of white cards on page load */}
|
|
68
|
+
<ThemeScript />
|
|
69
|
+
</head>
|
|
70
|
+
<body>
|
|
71
|
+
<ThemeProvider defaultTheme="system">
|
|
72
|
+
{children}
|
|
73
|
+
</ThemeProvider>
|
|
74
|
+
</body>
|
|
75
|
+
</html>
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// For other frameworks (CRA, Vite, etc.)
|
|
80
|
+
function App() {
|
|
81
|
+
return (
|
|
82
|
+
<ThemeProvider defaultTheme="system">
|
|
83
|
+
{/* Your app */}
|
|
84
|
+
</ThemeProvider>
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
> ⚠️ **Important:** To prevent white flash on page load, add `<ThemeScript />` to your HTML `<head>`. See [THEME_FLASH_FIX.md](./THEME_FLASH_FIX.md) for details.
|
|
90
|
+
|
|
91
|
+
📚 **Quick start? See [QUICK_START.md](./QUICK_START.md) | Detailed guide? See [INTEGRATION.md](./INTEGRATION.md)**
|
|
92
|
+
|
|
93
|
+
## Usage
|
|
94
|
+
|
|
95
|
+
### Framework-agnostic (works everywhere)
|
|
96
|
+
|
|
97
|
+
```tsx
|
|
98
|
+
import { Button, Input, Card } from '@gearbox-protocol/permissionless-ui';
|
|
99
|
+
|
|
100
|
+
function MyComponent() {
|
|
101
|
+
return (
|
|
102
|
+
<Card>
|
|
103
|
+
<Input placeholder="Enter text" />
|
|
104
|
+
<Button variant="default">Submit</Button>
|
|
105
|
+
</Card>
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Next.js optimized
|
|
111
|
+
|
|
112
|
+
```tsx
|
|
113
|
+
import { TokenIcon, BackButton, SIWEClientProvider } from '@gearbox-protocol/permissionless-ui/next';
|
|
114
|
+
|
|
115
|
+
// Uses Next.js Image, Link and useRouter
|
|
116
|
+
<TokenIcon symbol="ETH" size={48} />
|
|
117
|
+
<BackButton href="/dashboard" text="Back" />
|
|
118
|
+
<SIWEClientProvider apiRoutePrefix="/api/siwe">
|
|
119
|
+
{children}
|
|
120
|
+
</SIWEClientProvider>
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Custom components
|
|
124
|
+
|
|
125
|
+
```tsx
|
|
126
|
+
import { TokenIcon, BackButton } from '@gearbox-protocol/permissionless-ui';
|
|
127
|
+
import MyImage from './MyImage';
|
|
128
|
+
import { Link } from 'react-router-dom';
|
|
129
|
+
|
|
130
|
+
<TokenIcon symbol="ETH" ImageComponent={MyImage} />
|
|
131
|
+
<BackButton href="/back" LinkComponent={Link} />
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Migration
|
|
135
|
+
|
|
136
|
+
If you're migrating from a version that required Next.js, see [MIGRATION.md](./MIGRATION.md) for detailed instructions.
|
|
4
137
|
|
|
5
138
|
### Important information for contributors
|
|
6
139
|
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var asset_line_exports = {};
|
|
30
|
+
__export(asset_line_exports, {
|
|
31
|
+
AssetLine: () => AssetLine
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(asset_line_exports);
|
|
34
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
35
|
+
var React = __toESM(require("react"));
|
|
36
|
+
var import_utils = __toESM(require('../utils/index.js'));
|
|
37
|
+
var import_description = require('./description.js');
|
|
38
|
+
var import_short_string = require('./short-string.js');
|
|
39
|
+
var import_grid_table = require('./table/grid-table.js');
|
|
40
|
+
var import_token_symbol = require('./token-symbol.js');
|
|
41
|
+
var import_vspace = require('./vspace.js');
|
|
42
|
+
const ICON_SIZES = {
|
|
43
|
+
default: 24,
|
|
44
|
+
sm: 20,
|
|
45
|
+
md: 24,
|
|
46
|
+
lg: 28
|
|
47
|
+
};
|
|
48
|
+
const GAP_SIZES = {
|
|
49
|
+
default: 0,
|
|
50
|
+
sm: 2,
|
|
51
|
+
md: 4,
|
|
52
|
+
lg: 4
|
|
53
|
+
};
|
|
54
|
+
const AssetLine = React.forwardRef(
|
|
55
|
+
({
|
|
56
|
+
token,
|
|
57
|
+
tokenLabel,
|
|
58
|
+
tokenDescription,
|
|
59
|
+
network,
|
|
60
|
+
chainId,
|
|
61
|
+
value,
|
|
62
|
+
valueDescription,
|
|
63
|
+
size = "default",
|
|
64
|
+
iconSize = size,
|
|
65
|
+
gapSize = size,
|
|
66
|
+
last,
|
|
67
|
+
symbolMaxLength,
|
|
68
|
+
descriptionMaxLength,
|
|
69
|
+
onSelect,
|
|
70
|
+
hideValue = false,
|
|
71
|
+
className
|
|
72
|
+
}, ref) => {
|
|
73
|
+
const label = tokenLabel || token?.title;
|
|
74
|
+
const cellSize = size === "md" ? "default" : size;
|
|
75
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
76
|
+
import_grid_table.GridTableRow,
|
|
77
|
+
{
|
|
78
|
+
ref,
|
|
79
|
+
className: (0, import_utils.default)(
|
|
80
|
+
last && "[&>*]:border-0",
|
|
81
|
+
onSelect && "cursor-pointer",
|
|
82
|
+
className
|
|
83
|
+
),
|
|
84
|
+
onClick: onSelect,
|
|
85
|
+
cols: hideValue ? "1fr" : "1fr 1fr",
|
|
86
|
+
children: [
|
|
87
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_grid_table.GridTableCell, { size: cellSize, className: "text-left", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
88
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
89
|
+
import_token_symbol.TokenSymbol,
|
|
90
|
+
{
|
|
91
|
+
token,
|
|
92
|
+
size: ICON_SIZES[iconSize],
|
|
93
|
+
chainId,
|
|
94
|
+
network
|
|
95
|
+
}
|
|
96
|
+
),
|
|
97
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
98
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_short_string.ShortString, { maxLength: symbolMaxLength, children: label }),
|
|
99
|
+
label && tokenDescription && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_vspace.VSpace, { height: GAP_SIZES[gapSize] }),
|
|
100
|
+
tokenDescription && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_description.Description, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_short_string.ShortString, { maxLength: descriptionMaxLength, children: String(tokenDescription) }) })
|
|
101
|
+
] })
|
|
102
|
+
] }) }),
|
|
103
|
+
!hideValue && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_grid_table.GridTableCell, { size: cellSize, className: "text-right", children: [
|
|
104
|
+
value,
|
|
105
|
+
value && valueDescription && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_vspace.VSpace, { height: GAP_SIZES[gapSize] }),
|
|
106
|
+
valueDescription && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_description.Description, { children: valueDescription })
|
|
107
|
+
] })
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
);
|
|
113
|
+
AssetLine.displayName = "AssetLine";
|
|
114
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
115
|
+
0 && (module.exports = {
|
|
116
|
+
AssetLine
|
|
117
|
+
});
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var assets_list_cell_exports = {};
|
|
30
|
+
__export(assets_list_cell_exports, {
|
|
31
|
+
AssetsListCell: () => AssetsListCell
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(assets_list_cell_exports);
|
|
34
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
35
|
+
var import_lucide_react = require("lucide-react");
|
|
36
|
+
var import_utils = __toESM(require('../utils/index.js'));
|
|
37
|
+
var import_buttons = require('./buttons/index.js');
|
|
38
|
+
var import_token_icon = require('./token-icon.js');
|
|
39
|
+
function AssetsListCell({
|
|
40
|
+
assetAddress,
|
|
41
|
+
symbol,
|
|
42
|
+
iconSymbol,
|
|
43
|
+
comment,
|
|
44
|
+
explorerUrl,
|
|
45
|
+
iconSize = 24,
|
|
46
|
+
className
|
|
47
|
+
}) {
|
|
48
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_utils.default)("flex items-center gap-3", className), children: [
|
|
49
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_token_icon.TokenIcon, { symbol: iconSymbol ?? symbol, size: iconSize }),
|
|
50
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
51
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "font-medium", children: symbol }),
|
|
52
|
+
comment && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "text-md text-muted-foreground", children: [
|
|
53
|
+
"(",
|
|
54
|
+
comment,
|
|
55
|
+
")"
|
|
56
|
+
] }),
|
|
57
|
+
explorerUrl && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
58
|
+
import_buttons.Button,
|
|
59
|
+
{
|
|
60
|
+
variant: "ghost",
|
|
61
|
+
size: "sm",
|
|
62
|
+
className: "text-muted-foreground hover:text-white p-0 h-auto",
|
|
63
|
+
onClick: () => window.open(`${explorerUrl}/address/${assetAddress}`, "_blank"),
|
|
64
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ExternalLink, { className: "h-3 w-3" })
|
|
65
|
+
}
|
|
66
|
+
)
|
|
67
|
+
] })
|
|
68
|
+
] });
|
|
69
|
+
}
|
|
70
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
71
|
+
0 && (module.exports = {
|
|
72
|
+
AssetsListCell
|
|
73
|
+
});
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var assets_ratio_exports = {};
|
|
30
|
+
__export(assets_ratio_exports, {
|
|
31
|
+
AssetsRatio: () => AssetsRatio
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(assets_ratio_exports);
|
|
34
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
35
|
+
var import_sdk = require("@gearbox-protocol/sdk");
|
|
36
|
+
var React = __toESM(require("react"));
|
|
37
|
+
var import_utils = __toESM(require('../utils/index.js'));
|
|
38
|
+
const sumAssets = (assets) => assets.reduce((acc, a) => {
|
|
39
|
+
return acc + a.balanceInUSD;
|
|
40
|
+
}, 0n);
|
|
41
|
+
const COLOR_BY_INDEX = {
|
|
42
|
+
0: "bg-[#4976FE]",
|
|
43
|
+
1: "bg-[#FFE55A]",
|
|
44
|
+
2: "bg-[#CA5AFF]"
|
|
45
|
+
};
|
|
46
|
+
const DEFAULT_COLOR = "bg-[#5ABAFF]";
|
|
47
|
+
function AssetsRatio({
|
|
48
|
+
assets,
|
|
49
|
+
className
|
|
50
|
+
}) {
|
|
51
|
+
const [top3Assets, restAssets] = React.useMemo(() => {
|
|
52
|
+
const topN = assets.slice(0, 3);
|
|
53
|
+
const total = sumAssets(assets);
|
|
54
|
+
const rest = sumAssets(assets.slice(3));
|
|
55
|
+
const top3InPercent = topN.map(
|
|
56
|
+
(a) => total > 0 ? Number(
|
|
57
|
+
a.balanceInUSD * import_sdk.PERCENTAGE_FACTOR * import_sdk.PERCENTAGE_DECIMALS / total
|
|
58
|
+
) / Number(import_sdk.PERCENTAGE_FACTOR) : Number(import_sdk.PERCENTAGE_FACTOR)
|
|
59
|
+
);
|
|
60
|
+
const restInPercent = total > 0n ? Number(rest * import_sdk.PERCENTAGE_FACTOR * import_sdk.PERCENTAGE_DECIMALS / total) / Number(import_sdk.PERCENTAGE_FACTOR) : 0;
|
|
61
|
+
return [top3InPercent, restInPercent];
|
|
62
|
+
}, [assets]);
|
|
63
|
+
const hasLastAsset = restAssets > 0;
|
|
64
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
65
|
+
"span",
|
|
66
|
+
{
|
|
67
|
+
className: (0, import_utils.default)(
|
|
68
|
+
"relative inline-flex overflow-hidden w-full h-[10px] bg-muted border-2 border-muted rounded-[20px]",
|
|
69
|
+
className
|
|
70
|
+
),
|
|
71
|
+
children: [
|
|
72
|
+
top3Assets.map((percentage, index, arr) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
73
|
+
"span",
|
|
74
|
+
{
|
|
75
|
+
className: (0, import_utils.default)(
|
|
76
|
+
"relative inline-flex h-full",
|
|
77
|
+
COLOR_BY_INDEX[index] || DEFAULT_COLOR,
|
|
78
|
+
!hasLastAsset && index === arr.length - 1 ? "" : "border-r-2 border-muted"
|
|
79
|
+
),
|
|
80
|
+
style: { width: `${percentage}%` }
|
|
81
|
+
},
|
|
82
|
+
`${percentage}-${index}-${assets.length}`
|
|
83
|
+
)),
|
|
84
|
+
hasLastAsset && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
85
|
+
"span",
|
|
86
|
+
{
|
|
87
|
+
className: (0, import_utils.default)("relative inline-flex h-full", DEFAULT_COLOR),
|
|
88
|
+
style: { width: `${restAssets}%` }
|
|
89
|
+
}
|
|
90
|
+
)
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
96
|
+
0 && (module.exports = {
|
|
97
|
+
AssetsRatio
|
|
98
|
+
});
|
|
@@ -23,15 +23,14 @@ __export(siwe_provider_exports, {
|
|
|
23
23
|
module.exports = __toCommonJS(siwe_provider_exports);
|
|
24
24
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
25
|
var import_connectkit = require("connectkit");
|
|
26
|
-
var import_navigation = require("next/navigation");
|
|
27
26
|
var import_siwe = require("viem/siwe");
|
|
28
27
|
function SIWEClientProvider({
|
|
29
28
|
apiRoutePrefix,
|
|
30
29
|
statement,
|
|
31
30
|
children,
|
|
31
|
+
onRefresh,
|
|
32
32
|
...props
|
|
33
33
|
}) {
|
|
34
|
-
const router = (0, import_navigation.useRouter)();
|
|
35
34
|
const getNonce = async () => {
|
|
36
35
|
const res = await fetch(`${apiRoutePrefix}/nonce`);
|
|
37
36
|
if (!res.ok) {
|
|
@@ -80,14 +79,14 @@ function SIWEClientProvider({
|
|
|
80
79
|
return res.json();
|
|
81
80
|
},
|
|
82
81
|
onSignIn: async (session) => {
|
|
83
|
-
|
|
82
|
+
onRefresh?.();
|
|
84
83
|
return session;
|
|
85
84
|
},
|
|
86
85
|
signOut: async () => {
|
|
87
86
|
await fetch(`${apiRoutePrefix}/logout`, {
|
|
88
87
|
method: "POST"
|
|
89
88
|
});
|
|
90
|
-
|
|
89
|
+
onRefresh?.();
|
|
91
90
|
return true;
|
|
92
91
|
},
|
|
93
92
|
...props,
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var base_link_exports = {};
|
|
30
|
+
__export(base_link_exports, {
|
|
31
|
+
BaseLink: () => BaseLink
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(base_link_exports);
|
|
34
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
35
|
+
var import_react_slot = require("@radix-ui/react-slot");
|
|
36
|
+
var React = __toESM(require("react"));
|
|
37
|
+
var import_utils = __toESM(require('../utils/index.js'));
|
|
38
|
+
const BaseLink = React.forwardRef(
|
|
39
|
+
({ className, asChild = false, external = false, children, ...props }, ref) => {
|
|
40
|
+
const Comp = asChild ? import_react_slot.Slot : "a";
|
|
41
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
42
|
+
Comp,
|
|
43
|
+
{
|
|
44
|
+
ref,
|
|
45
|
+
className: (0, import_utils.default)(
|
|
46
|
+
"text-foreground no-underline hover:text-foreground/80 transition-colors",
|
|
47
|
+
className
|
|
48
|
+
),
|
|
49
|
+
target: external ? "_blank" : void 0,
|
|
50
|
+
rel: external ? "noopener noreferrer" : void 0,
|
|
51
|
+
...props,
|
|
52
|
+
children
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
BaseLink.displayName = "BaseLink";
|
|
58
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
59
|
+
0 && (module.exports = {
|
|
60
|
+
BaseLink
|
|
61
|
+
});
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var block_sync_exports = {};
|
|
20
|
+
__export(block_sync_exports, {
|
|
21
|
+
BlockSync: () => BlockSync
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(block_sync_exports);
|
|
24
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
|
+
var import_react = require("react");
|
|
26
|
+
var import_cn = require('../utils/cn.js');
|
|
27
|
+
var import_tooltip = require('./tooltip.js');
|
|
28
|
+
const TEN_MINUTES = 1e3 * 60 * 10;
|
|
29
|
+
function BlockSync({
|
|
30
|
+
blockByChain,
|
|
31
|
+
explorerAddresses,
|
|
32
|
+
networkById
|
|
33
|
+
}) {
|
|
34
|
+
const [latestTs, setLatestTs] = (0, import_react.useState)(Date.now());
|
|
35
|
+
(0, import_react.useEffect)(() => {
|
|
36
|
+
const syncTask = () => {
|
|
37
|
+
setLatestTs(Date.now());
|
|
38
|
+
};
|
|
39
|
+
const timer = window.setInterval(syncTask, 1e3);
|
|
40
|
+
return () => {
|
|
41
|
+
clearInterval(timer);
|
|
42
|
+
};
|
|
43
|
+
}, []);
|
|
44
|
+
const passedSinceEarliestBlockUpdate = (0, import_react.useMemo)(() => {
|
|
45
|
+
if (!blockByChain) return 0;
|
|
46
|
+
const blockTS = Object.values(blockByChain).reduce((minTs, block) => {
|
|
47
|
+
const ts = block.lastSyncBlock.localTimestamp;
|
|
48
|
+
if (minTs === 0) return ts;
|
|
49
|
+
if (minTs !== 0 && ts < minTs) return ts;
|
|
50
|
+
return minTs;
|
|
51
|
+
}, 0);
|
|
52
|
+
return blockTS ? latestTs - blockTS : 0;
|
|
53
|
+
}, [blockByChain, latestTs]);
|
|
54
|
+
const isError = passedSinceEarliestBlockUpdate > TEN_MINUTES;
|
|
55
|
+
const renderDot = () => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
56
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
57
|
+
"span",
|
|
58
|
+
{
|
|
59
|
+
className: (0, import_cn.cn)("text-xs", isError ? "text-red-500" : "text-green-500"),
|
|
60
|
+
children: "Status"
|
|
61
|
+
}
|
|
62
|
+
),
|
|
63
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
64
|
+
"div",
|
|
65
|
+
{
|
|
66
|
+
className: (0, import_cn.cn)(
|
|
67
|
+
"w-2 h-2 rounded-full",
|
|
68
|
+
isError ? "bg-red-500" : "bg-green-500"
|
|
69
|
+
)
|
|
70
|
+
}
|
|
71
|
+
)
|
|
72
|
+
] });
|
|
73
|
+
const renderTooltipContent = () => {
|
|
74
|
+
if (!blockByChain) return null;
|
|
75
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex flex-col gap-2 text-left text-xs", children: Object.entries(blockByChain).map(([chainId, blockData]) => {
|
|
76
|
+
const lastSyncBlock = blockData.lastSyncBlock;
|
|
77
|
+
const block = lastSyncBlock?.block || 0n;
|
|
78
|
+
const since = lastSyncBlock?.localTimestamp ? latestTs - lastSyncBlock.localTimestamp : 0;
|
|
79
|
+
const explorer = explorerAddresses[Number(chainId)];
|
|
80
|
+
const explorerURL = typeof explorer === "string" ? explorer : explorer && typeof explorer === "object" && "url" in explorer ? explorer.url : void 0;
|
|
81
|
+
const network = networkById[Number(chainId)] || "Unknown";
|
|
82
|
+
const blockString = `[${block.toString()}]`;
|
|
83
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
|
|
84
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
|
|
85
|
+
network,
|
|
86
|
+
" "
|
|
87
|
+
] }),
|
|
88
|
+
explorerURL && block > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
89
|
+
"a",
|
|
90
|
+
{
|
|
91
|
+
href: `${explorerURL}/block/${block}`,
|
|
92
|
+
target: "_blank",
|
|
93
|
+
rel: "noopener noreferrer",
|
|
94
|
+
className: "underline hover:text-foreground",
|
|
95
|
+
children: blockString
|
|
96
|
+
}
|
|
97
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: blockString }),
|
|
98
|
+
block > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
|
|
99
|
+
", updated ",
|
|
100
|
+
(since / 1e3).toFixed(0),
|
|
101
|
+
" seconds ago"
|
|
102
|
+
] })
|
|
103
|
+
] }, chainId);
|
|
104
|
+
}) });
|
|
105
|
+
};
|
|
106
|
+
if (!blockByChain) {
|
|
107
|
+
return renderDot();
|
|
108
|
+
}
|
|
109
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tooltip.TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_tooltip.Tooltip, { children: [
|
|
110
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tooltip.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "cursor-help", children: renderDot() }) }),
|
|
111
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tooltip.TooltipContent, { side: "top", align: "end", children: renderTooltipContent() })
|
|
112
|
+
] }) });
|
|
113
|
+
}
|
|
114
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
115
|
+
0 && (module.exports = {
|
|
116
|
+
BlockSync
|
|
117
|
+
});
|