@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.
- package/README.md +120 -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 +4 -4
- package/dist/cjs/components/base-link.js +61 -0
- package/dist/cjs/components/block-sync.js +118 -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/navigation-button.js +2 -2
- 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 +142 -0
- package/dist/cjs/components/graph/graph-view.js +233 -0
- package/dist/cjs/components/graph/graph.js +637 -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 +107 -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/layout/legal-disclaimer.js +4 -14
- 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 +94 -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 +40 -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/next/web3-providers.js +116 -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-bar.js +1 -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/signatures/vertical-timeline.js +1 -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 +254 -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 +69 -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 +50 -0
- package/dist/cjs/hooks/use-debounce.js +68 -0
- package/dist/cjs/hooks/use-filter.js +80 -0
- package/dist/cjs/hooks/use-hf.js +62 -0
- package/dist/cjs/hooks/use-liquidation/index.js +204 -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 +51 -0
- package/dist/cjs/hooks/use-previous.js +36 -0
- package/dist/cjs/index.js +157 -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 +4 -4
- package/dist/esm/components/base-link.js +27 -0
- package/dist/esm/components/block-sync.js +99 -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/navigation-button.js +2 -2
- 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 +118 -0
- package/dist/esm/components/graph/graph-view.js +196 -0
- package/dist/esm/components/graph/graph.js +606 -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 +83 -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/layout/legal-disclaimer.js +4 -4
- 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 +76 -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 +12 -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/next/web3-providers.js +92 -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-bar.js +1 -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/signatures/vertical-timeline.js +1 -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 +216 -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 +70 -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 +26 -0
- package/dist/esm/hooks/use-debounce.js +43 -0
- package/dist/esm/hooks/use-filter.js +52 -0
- package/dist/esm/hooks/use-hf.js +38 -0
- package/dist/esm/hooks/use-liquidation/index.js +188 -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 +24 -0
- package/dist/esm/hooks/use-previous.js +12 -0
- package/dist/esm/index.js +84 -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 +58 -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 +10 -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/next/web3-providers.d.ts +29 -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 +52 -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 +71 -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 +66 -28
- 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
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ExternalLink } from "lucide-react";
|
|
3
|
+
import cn from "../utils/index.js";
|
|
4
|
+
import { Button } from "./buttons/index.js";
|
|
5
|
+
import { TokenIcon } from "./token-icon.js";
|
|
6
|
+
function AssetsListCell({
|
|
7
|
+
assetAddress,
|
|
8
|
+
symbol,
|
|
9
|
+
iconSymbol,
|
|
10
|
+
comment,
|
|
11
|
+
explorerUrl,
|
|
12
|
+
iconSize = 24,
|
|
13
|
+
className
|
|
14
|
+
}) {
|
|
15
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-3", className), children: [
|
|
16
|
+
/* @__PURE__ */ jsx(TokenIcon, { symbol: iconSymbol ?? symbol, size: iconSize }),
|
|
17
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
|
|
18
|
+
/* @__PURE__ */ jsx("div", { className: "font-medium", children: symbol }),
|
|
19
|
+
comment && /* @__PURE__ */ jsxs("div", { className: "text-md text-muted-foreground", children: [
|
|
20
|
+
"(",
|
|
21
|
+
comment,
|
|
22
|
+
")"
|
|
23
|
+
] }),
|
|
24
|
+
explorerUrl && /* @__PURE__ */ jsx(
|
|
25
|
+
Button,
|
|
26
|
+
{
|
|
27
|
+
variant: "ghost",
|
|
28
|
+
size: "sm",
|
|
29
|
+
className: "text-muted-foreground hover:text-white p-0 h-auto",
|
|
30
|
+
onClick: () => window.open(`${explorerUrl}/address/${assetAddress}`, "_blank"),
|
|
31
|
+
children: /* @__PURE__ */ jsx(ExternalLink, { className: "h-3 w-3" })
|
|
32
|
+
}
|
|
33
|
+
)
|
|
34
|
+
] })
|
|
35
|
+
] });
|
|
36
|
+
}
|
|
37
|
+
export {
|
|
38
|
+
AssetsListCell
|
|
39
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { PERCENTAGE_DECIMALS, PERCENTAGE_FACTOR } from "@gearbox-protocol/sdk";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import cn from "../utils/index.js";
|
|
5
|
+
const sumAssets = (assets) => assets.reduce((acc, a) => {
|
|
6
|
+
return acc + a.balanceInUSD;
|
|
7
|
+
}, 0n);
|
|
8
|
+
const COLOR_BY_INDEX = {
|
|
9
|
+
0: "bg-[#4976FE]",
|
|
10
|
+
1: "bg-[#FFE55A]",
|
|
11
|
+
2: "bg-[#CA5AFF]"
|
|
12
|
+
};
|
|
13
|
+
const DEFAULT_COLOR = "bg-[#5ABAFF]";
|
|
14
|
+
function AssetsRatio({
|
|
15
|
+
assets,
|
|
16
|
+
className
|
|
17
|
+
}) {
|
|
18
|
+
const [top3Assets, restAssets] = React.useMemo(() => {
|
|
19
|
+
const topN = assets.slice(0, 3);
|
|
20
|
+
const total = sumAssets(assets);
|
|
21
|
+
const rest = sumAssets(assets.slice(3));
|
|
22
|
+
const top3InPercent = topN.map(
|
|
23
|
+
(a) => total > 0 ? Number(
|
|
24
|
+
a.balanceInUSD * PERCENTAGE_FACTOR * PERCENTAGE_DECIMALS / total
|
|
25
|
+
) / Number(PERCENTAGE_FACTOR) : Number(PERCENTAGE_FACTOR)
|
|
26
|
+
);
|
|
27
|
+
const restInPercent = total > 0n ? Number(rest * PERCENTAGE_FACTOR * PERCENTAGE_DECIMALS / total) / Number(PERCENTAGE_FACTOR) : 0;
|
|
28
|
+
return [top3InPercent, restInPercent];
|
|
29
|
+
}, [assets]);
|
|
30
|
+
const hasLastAsset = restAssets > 0;
|
|
31
|
+
return /* @__PURE__ */ jsxs(
|
|
32
|
+
"span",
|
|
33
|
+
{
|
|
34
|
+
className: cn(
|
|
35
|
+
"relative inline-flex overflow-hidden w-full h-[10px] bg-muted border-2 border-muted rounded-[20px]",
|
|
36
|
+
className
|
|
37
|
+
),
|
|
38
|
+
children: [
|
|
39
|
+
top3Assets.map((percentage, index, arr) => /* @__PURE__ */ jsx(
|
|
40
|
+
"span",
|
|
41
|
+
{
|
|
42
|
+
className: cn(
|
|
43
|
+
"relative inline-flex h-full",
|
|
44
|
+
COLOR_BY_INDEX[index] || DEFAULT_COLOR,
|
|
45
|
+
!hasLastAsset && index === arr.length - 1 ? "" : "border-r-2 border-muted"
|
|
46
|
+
),
|
|
47
|
+
style: { width: `${percentage}%` }
|
|
48
|
+
},
|
|
49
|
+
`${percentage}-${index}-${assets.length}`
|
|
50
|
+
)),
|
|
51
|
+
hasLastAsset && /* @__PURE__ */ jsx(
|
|
52
|
+
"span",
|
|
53
|
+
{
|
|
54
|
+
className: cn("relative inline-flex h-full", DEFAULT_COLOR),
|
|
55
|
+
style: { width: `${restAssets}%` }
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
export {
|
|
63
|
+
AssetsRatio
|
|
64
|
+
};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsx } from "react/jsx-runtime";
|
|
2
3
|
import { SIWEProvider } from "connectkit";
|
|
3
|
-
import { useRouter } from "next/navigation";
|
|
4
4
|
import { createSiweMessage } from "viem/siwe";
|
|
5
5
|
function SIWEClientProvider({
|
|
6
6
|
apiRoutePrefix,
|
|
7
7
|
statement,
|
|
8
8
|
children,
|
|
9
|
+
onRefresh,
|
|
9
10
|
...props
|
|
10
11
|
}) {
|
|
11
|
-
const router = useRouter();
|
|
12
12
|
const getNonce = async () => {
|
|
13
13
|
const res = await fetch(`${apiRoutePrefix}/nonce`);
|
|
14
14
|
if (!res.ok) {
|
|
@@ -57,14 +57,14 @@ function SIWEClientProvider({
|
|
|
57
57
|
return res.json();
|
|
58
58
|
},
|
|
59
59
|
onSignIn: async (session) => {
|
|
60
|
-
|
|
60
|
+
onRefresh?.();
|
|
61
61
|
return session;
|
|
62
62
|
},
|
|
63
63
|
signOut: async () => {
|
|
64
64
|
await fetch(`${apiRoutePrefix}/logout`, {
|
|
65
65
|
method: "POST"
|
|
66
66
|
});
|
|
67
|
-
|
|
67
|
+
onRefresh?.();
|
|
68
68
|
return true;
|
|
69
69
|
},
|
|
70
70
|
...props,
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import cn from "../utils/index.js";
|
|
5
|
+
const BaseLink = React.forwardRef(
|
|
6
|
+
({ className, asChild = false, external = false, children, ...props }, ref) => {
|
|
7
|
+
const Comp = asChild ? Slot : "a";
|
|
8
|
+
return /* @__PURE__ */ jsx(
|
|
9
|
+
Comp,
|
|
10
|
+
{
|
|
11
|
+
ref,
|
|
12
|
+
className: cn(
|
|
13
|
+
"text-foreground no-underline hover:text-foreground/80 transition-colors",
|
|
14
|
+
className
|
|
15
|
+
),
|
|
16
|
+
target: external ? "_blank" : void 0,
|
|
17
|
+
rel: external ? "noopener noreferrer" : void 0,
|
|
18
|
+
...props,
|
|
19
|
+
children
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
BaseLink.displayName = "BaseLink";
|
|
25
|
+
export {
|
|
26
|
+
BaseLink
|
|
27
|
+
};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useMemo, useState } from "react";
|
|
4
|
+
import { cn } from "../utils/cn.js";
|
|
5
|
+
import {
|
|
6
|
+
Tooltip,
|
|
7
|
+
TooltipContent,
|
|
8
|
+
TooltipProvider,
|
|
9
|
+
TooltipTrigger
|
|
10
|
+
} from "./tooltip.js";
|
|
11
|
+
const TEN_MINUTES = 1e3 * 60 * 10;
|
|
12
|
+
function BlockSync({
|
|
13
|
+
blockByChain,
|
|
14
|
+
explorerAddresses,
|
|
15
|
+
networkById
|
|
16
|
+
}) {
|
|
17
|
+
const [latestTs, setLatestTs] = useState(Date.now());
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
const syncTask = () => {
|
|
20
|
+
setLatestTs(Date.now());
|
|
21
|
+
};
|
|
22
|
+
const timer = window.setInterval(syncTask, 1e3);
|
|
23
|
+
return () => {
|
|
24
|
+
clearInterval(timer);
|
|
25
|
+
};
|
|
26
|
+
}, []);
|
|
27
|
+
const passedSinceEarliestBlockUpdate = useMemo(() => {
|
|
28
|
+
if (!blockByChain) return 0;
|
|
29
|
+
const blockTS = Object.values(blockByChain).reduce((minTs, block) => {
|
|
30
|
+
const ts = block.lastSyncBlock.localTimestamp;
|
|
31
|
+
if (minTs === 0) return ts;
|
|
32
|
+
if (minTs !== 0 && ts < minTs) return ts;
|
|
33
|
+
return minTs;
|
|
34
|
+
}, 0);
|
|
35
|
+
return blockTS ? latestTs - blockTS : 0;
|
|
36
|
+
}, [blockByChain, latestTs]);
|
|
37
|
+
const isError = passedSinceEarliestBlockUpdate > TEN_MINUTES;
|
|
38
|
+
const renderDot = () => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
39
|
+
/* @__PURE__ */ jsx(
|
|
40
|
+
"span",
|
|
41
|
+
{
|
|
42
|
+
className: cn("text-xs", isError ? "text-red-500" : "text-green-500"),
|
|
43
|
+
children: "Status"
|
|
44
|
+
}
|
|
45
|
+
),
|
|
46
|
+
/* @__PURE__ */ jsx(
|
|
47
|
+
"div",
|
|
48
|
+
{
|
|
49
|
+
className: cn(
|
|
50
|
+
"w-2 h-2 rounded-full",
|
|
51
|
+
isError ? "bg-red-500" : "bg-green-500"
|
|
52
|
+
)
|
|
53
|
+
}
|
|
54
|
+
)
|
|
55
|
+
] });
|
|
56
|
+
const renderTooltipContent = () => {
|
|
57
|
+
if (!blockByChain) return null;
|
|
58
|
+
return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2 text-left text-xs", children: Object.entries(blockByChain).map(([chainId, blockData]) => {
|
|
59
|
+
const lastSyncBlock = blockData.lastSyncBlock;
|
|
60
|
+
const block = lastSyncBlock?.block || 0n;
|
|
61
|
+
const since = lastSyncBlock?.localTimestamp ? latestTs - lastSyncBlock.localTimestamp : 0;
|
|
62
|
+
const explorer = explorerAddresses[Number(chainId)];
|
|
63
|
+
const explorerURL = typeof explorer === "string" ? explorer : explorer && typeof explorer === "object" && "url" in explorer ? explorer.url : void 0;
|
|
64
|
+
const network = networkById[Number(chainId)] || "Unknown";
|
|
65
|
+
const blockString = `[${block.toString()}]`;
|
|
66
|
+
return /* @__PURE__ */ jsxs("div", { children: [
|
|
67
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
68
|
+
network,
|
|
69
|
+
" "
|
|
70
|
+
] }),
|
|
71
|
+
explorerURL && block > 0 ? /* @__PURE__ */ jsx(
|
|
72
|
+
"a",
|
|
73
|
+
{
|
|
74
|
+
href: `${explorerURL}/block/${block}`,
|
|
75
|
+
target: "_blank",
|
|
76
|
+
rel: "noopener noreferrer",
|
|
77
|
+
className: "underline hover:text-foreground",
|
|
78
|
+
children: blockString
|
|
79
|
+
}
|
|
80
|
+
) : /* @__PURE__ */ jsx("span", { children: blockString }),
|
|
81
|
+
block > 0 && /* @__PURE__ */ jsxs("span", { children: [
|
|
82
|
+
", updated ",
|
|
83
|
+
(since / 1e3).toFixed(0),
|
|
84
|
+
" seconds ago"
|
|
85
|
+
] })
|
|
86
|
+
] }, chainId);
|
|
87
|
+
}) });
|
|
88
|
+
};
|
|
89
|
+
if (!blockByChain) {
|
|
90
|
+
return renderDot();
|
|
91
|
+
}
|
|
92
|
+
return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
93
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx("div", { className: "cursor-help", children: renderDot() }) }),
|
|
94
|
+
/* @__PURE__ */ jsx(TooltipContent, { side: "top", align: "end", children: renderTooltipContent() })
|
|
95
|
+
] }) });
|
|
96
|
+
}
|
|
97
|
+
export {
|
|
98
|
+
BlockSync
|
|
99
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ChevronRight } from "lucide-react";
|
|
3
|
+
import { Link } from "react-router-dom";
|
|
4
|
+
import cn from "../utils/index.js";
|
|
5
|
+
function BreadCrumbs({
|
|
6
|
+
items,
|
|
7
|
+
className
|
|
8
|
+
}) {
|
|
9
|
+
return /* @__PURE__ */ jsx(
|
|
10
|
+
"nav",
|
|
11
|
+
{
|
|
12
|
+
"aria-label": "breadcrumb",
|
|
13
|
+
className: cn("flex items-center gap-2", className),
|
|
14
|
+
children: /* @__PURE__ */ jsx("ol", { className: "flex items-center gap-2 flex-wrap", children: items.map((item, index) => {
|
|
15
|
+
const isLast = index === items.length - 1;
|
|
16
|
+
const key = item.href || `${item.label}-${index}`;
|
|
17
|
+
return /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2", children: [
|
|
18
|
+
item.href && !isLast ? /* @__PURE__ */ jsx(
|
|
19
|
+
Link,
|
|
20
|
+
{
|
|
21
|
+
to: item.href,
|
|
22
|
+
className: "text-sm text-muted-foreground hover:text-foreground transition-colors",
|
|
23
|
+
children: item.label
|
|
24
|
+
}
|
|
25
|
+
) : /* @__PURE__ */ jsx(
|
|
26
|
+
"span",
|
|
27
|
+
{
|
|
28
|
+
className: cn(
|
|
29
|
+
"text-sm",
|
|
30
|
+
isLast ? "text-foreground font-medium" : "text-muted-foreground"
|
|
31
|
+
),
|
|
32
|
+
children: item.label
|
|
33
|
+
}
|
|
34
|
+
),
|
|
35
|
+
!isLast && /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4 text-muted-foreground" })
|
|
36
|
+
] }, key);
|
|
37
|
+
}) })
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
export {
|
|
42
|
+
BreadCrumbs
|
|
43
|
+
};
|
|
@@ -1,21 +1,47 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
2
3
|
import { ArrowLeft } from "lucide-react";
|
|
3
|
-
import Link from "next/link";
|
|
4
4
|
import { cn } from "../../utils/index.js";
|
|
5
|
+
const backButtonVariants = cva("flex items-center transition-colors", {
|
|
6
|
+
variants: {
|
|
7
|
+
variant: {
|
|
8
|
+
default: "text-muted-foreground hover:text-foreground",
|
|
9
|
+
primary: "text-primary hover:text-primary/80",
|
|
10
|
+
ghost: "text-foreground/60 hover:text-foreground"
|
|
11
|
+
},
|
|
12
|
+
size: {
|
|
13
|
+
sm: "text-xs mb-4",
|
|
14
|
+
default: "text-sm mb-6",
|
|
15
|
+
lg: "text-base mb-8"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
defaultVariants: {
|
|
19
|
+
variant: "default",
|
|
20
|
+
size: "default"
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
function DefaultLink({
|
|
24
|
+
href,
|
|
25
|
+
className,
|
|
26
|
+
onClick,
|
|
27
|
+
children
|
|
28
|
+
}) {
|
|
29
|
+
return /* @__PURE__ */ jsx("a", { href, className, onClick, children });
|
|
30
|
+
}
|
|
5
31
|
function BackButton({
|
|
6
32
|
href,
|
|
7
33
|
text,
|
|
8
34
|
onClick,
|
|
9
|
-
className
|
|
35
|
+
className,
|
|
36
|
+
variant,
|
|
37
|
+
size,
|
|
38
|
+
LinkComponent = DefaultLink
|
|
10
39
|
}) {
|
|
11
40
|
return /* @__PURE__ */ jsxs(
|
|
12
|
-
|
|
41
|
+
LinkComponent,
|
|
13
42
|
{
|
|
14
43
|
href,
|
|
15
|
-
className: cn(
|
|
16
|
-
"flex items-center text-sm text-muted-foreground hover:text-foreground mb-6",
|
|
17
|
-
className
|
|
18
|
-
),
|
|
44
|
+
className: cn(backButtonVariants({ variant, size, className })),
|
|
19
45
|
onClick,
|
|
20
46
|
children: [
|
|
21
47
|
/* @__PURE__ */ jsx(ArrowLeft, { className: "mr-2 h-4 w-4" }),
|
|
@@ -25,5 +51,6 @@ function BackButton({
|
|
|
25
51
|
);
|
|
26
52
|
}
|
|
27
53
|
export {
|
|
28
|
-
BackButton
|
|
54
|
+
BackButton,
|
|
55
|
+
backButtonVariants
|
|
29
56
|
};
|
|
@@ -4,21 +4,21 @@ import { cva } from "class-variance-authority";
|
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
import cn from "../../utils/index.js";
|
|
6
6
|
const buttonVariants = cva(
|
|
7
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors cursor-pointer
|
|
7
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors cursor-pointer disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-transparent",
|
|
8
8
|
{
|
|
9
9
|
variants: {
|
|
10
10
|
variant: {
|
|
11
11
|
default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
|
|
12
12
|
destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
|
|
13
|
-
outline: "border
|
|
13
|
+
outline: "border-border bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
|
|
14
14
|
secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
|
|
15
15
|
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
16
16
|
link: "text-primary underline-offset-4 hover:underline",
|
|
17
17
|
text: "text-muted-foreground hover:text-white",
|
|
18
18
|
pink: "bg-pink-700 hover:bg-pink-600 disabled:bg-pink-700 text-white",
|
|
19
|
-
"pink-outline": "border
|
|
19
|
+
"pink-outline": "border-pink-700 hover:border-pink-600 disabled:border-pink-700 text-white",
|
|
20
20
|
blue: "bg-blue-800 hover:bg-blue-700 disabled:bg-blue-700 text-white",
|
|
21
|
-
"blue-outline": "border
|
|
21
|
+
"blue-outline": "border-blue-800 hover:border-blue-700 disabled:border-blue-800 text-white"
|
|
22
22
|
},
|
|
23
23
|
size: {
|
|
24
24
|
auto: "h-auto p-0",
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Filter } from "lucide-react";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Button } from "./button.js";
|
|
5
|
+
const FilterButton = React.forwardRef(
|
|
6
|
+
({
|
|
7
|
+
className,
|
|
8
|
+
label = "Filter",
|
|
9
|
+
showIcon = true,
|
|
10
|
+
variant = "outline",
|
|
11
|
+
size = "default",
|
|
12
|
+
children,
|
|
13
|
+
...props
|
|
14
|
+
}, ref) => {
|
|
15
|
+
return /* @__PURE__ */ jsxs(
|
|
16
|
+
Button,
|
|
17
|
+
{
|
|
18
|
+
ref,
|
|
19
|
+
variant,
|
|
20
|
+
size,
|
|
21
|
+
className,
|
|
22
|
+
...props,
|
|
23
|
+
children: [
|
|
24
|
+
showIcon && /* @__PURE__ */ jsx(Filter, { className: "h-4 w-4" }),
|
|
25
|
+
children || label
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
);
|
|
31
|
+
FilterButton.displayName = "FilterButton";
|
|
32
|
+
export {
|
|
33
|
+
FilterButton
|
|
34
|
+
};
|
|
@@ -2,5 +2,7 @@ export * from "./back-button.js";
|
|
|
2
2
|
export * from "./button.js";
|
|
3
3
|
export * from "./copy-button.js";
|
|
4
4
|
export * from "./external-button.js";
|
|
5
|
+
export * from "./filter-button.js";
|
|
5
6
|
export * from "./navigation-button.js";
|
|
7
|
+
export * from "./range-buttons.js";
|
|
6
8
|
export * from "./tab-button.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import Link from "next/link";
|
|
3
2
|
import React from "react";
|
|
4
3
|
import cn from "../../utils/index.js";
|
|
4
|
+
import { BaseLink } from "../base-link.js";
|
|
5
5
|
const NavigationButton = React.forwardRef(({ href, text, isActive, ...props }, ref) => {
|
|
6
6
|
return /* @__PURE__ */ jsx(
|
|
7
|
-
|
|
7
|
+
BaseLink,
|
|
8
8
|
{
|
|
9
9
|
href,
|
|
10
10
|
ref,
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import cn from "../../utils/index.js";
|
|
3
|
+
function RangeButtons({
|
|
4
|
+
range,
|
|
5
|
+
rangeList,
|
|
6
|
+
setRange,
|
|
7
|
+
className
|
|
8
|
+
}) {
|
|
9
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex flex-row flex-nowrap", className), children: rangeList.map((r, index) => /* @__PURE__ */ jsx(
|
|
10
|
+
"button",
|
|
11
|
+
{
|
|
12
|
+
type: "button",
|
|
13
|
+
onClick: () => setRange(r.value),
|
|
14
|
+
className: cn(
|
|
15
|
+
"px-2.5 py-1.5 flex min-w-[44px] min-h-[26px] justify-center items-center",
|
|
16
|
+
"text-xs leading-[14px] font-medium text-center",
|
|
17
|
+
"rounded-md border cursor-pointer transition-colors",
|
|
18
|
+
"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
19
|
+
r.value === range ? "bg-secondary border-secondary text-secondary-foreground" : "bg-muted border-muted text-muted-foreground hover:border-secondary",
|
|
20
|
+
index < rangeList.length - 1 && "mr-1.5"
|
|
21
|
+
),
|
|
22
|
+
children: r.label
|
|
23
|
+
},
|
|
24
|
+
String(r.value)
|
|
25
|
+
)) });
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
RangeButtons
|
|
29
|
+
};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import cn from "../utils/index.js";
|
|
5
|
+
const cardGridVariants = cva("grid w-full", {
|
|
6
|
+
variants: {
|
|
7
|
+
columns: {
|
|
8
|
+
1: "grid-cols-1",
|
|
9
|
+
2: "grid-cols-2",
|
|
10
|
+
3: "grid-cols-3",
|
|
11
|
+
4: "grid-cols-4",
|
|
12
|
+
5: "grid-cols-5",
|
|
13
|
+
6: "grid-cols-6"
|
|
14
|
+
},
|
|
15
|
+
columnsLg: {
|
|
16
|
+
1: "lg:grid-cols-1",
|
|
17
|
+
2: "lg:grid-cols-2",
|
|
18
|
+
3: "lg:grid-cols-3",
|
|
19
|
+
4: "lg:grid-cols-4",
|
|
20
|
+
5: "lg:grid-cols-5",
|
|
21
|
+
6: "lg:grid-cols-6"
|
|
22
|
+
},
|
|
23
|
+
columnsMd: {
|
|
24
|
+
1: "md:grid-cols-1",
|
|
25
|
+
2: "md:grid-cols-2",
|
|
26
|
+
3: "md:grid-cols-3",
|
|
27
|
+
4: "md:grid-cols-4",
|
|
28
|
+
5: "md:grid-cols-5",
|
|
29
|
+
6: "md:grid-cols-6"
|
|
30
|
+
},
|
|
31
|
+
columnsSm: {
|
|
32
|
+
1: "sm:grid-cols-1",
|
|
33
|
+
2: "sm:grid-cols-2",
|
|
34
|
+
3: "sm:grid-cols-3",
|
|
35
|
+
4: "sm:grid-cols-4",
|
|
36
|
+
5: "sm:grid-cols-5",
|
|
37
|
+
6: "sm:grid-cols-6"
|
|
38
|
+
},
|
|
39
|
+
gap: {
|
|
40
|
+
none: "gap-0",
|
|
41
|
+
sm: "gap-2",
|
|
42
|
+
md: "gap-4",
|
|
43
|
+
lg: "gap-6",
|
|
44
|
+
xl: "gap-8"
|
|
45
|
+
},
|
|
46
|
+
justifyItemContent: {
|
|
47
|
+
start: "justify-items-start",
|
|
48
|
+
center: "justify-items-center",
|
|
49
|
+
end: "justify-items-end",
|
|
50
|
+
stretch: "justify-items-stretch"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
defaultVariants: {
|
|
54
|
+
columns: 1,
|
|
55
|
+
gap: "md",
|
|
56
|
+
justifyItemContent: "stretch"
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
const CardGrid = React.forwardRef(
|
|
60
|
+
({
|
|
61
|
+
className,
|
|
62
|
+
columns,
|
|
63
|
+
columnsLg,
|
|
64
|
+
columnsMd,
|
|
65
|
+
columnsSm,
|
|
66
|
+
gap,
|
|
67
|
+
justifyItemContent,
|
|
68
|
+
...props
|
|
69
|
+
}, ref) => /* @__PURE__ */ jsx(
|
|
70
|
+
"div",
|
|
71
|
+
{
|
|
72
|
+
ref,
|
|
73
|
+
className: cn(
|
|
74
|
+
cardGridVariants({
|
|
75
|
+
columns,
|
|
76
|
+
columnsLg,
|
|
77
|
+
columnsMd,
|
|
78
|
+
columnsSm,
|
|
79
|
+
gap,
|
|
80
|
+
justifyItemContent,
|
|
81
|
+
className
|
|
82
|
+
})
|
|
83
|
+
),
|
|
84
|
+
...props
|
|
85
|
+
}
|
|
86
|
+
)
|
|
87
|
+
);
|
|
88
|
+
CardGrid.displayName = "CardGrid";
|
|
89
|
+
export {
|
|
90
|
+
CardGrid,
|
|
91
|
+
cardGridVariants
|
|
92
|
+
};
|