@gearbox-protocol/ui-kit 3.14.0-next.5 → 3.14.0-next.51
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 +1 -0
- package/dist/cjs/components/alert-badge/alert-badge.cjs +1 -1
- package/dist/cjs/components/app-bar/app-bar.cjs +1 -1
- package/dist/cjs/components/apy/apy.cjs +1 -1
- package/dist/cjs/components/assets-list-cell/assets-list-cell.cjs +1 -1
- package/dist/cjs/components/block-sync/block-sync.cjs +1 -1
- package/dist/cjs/components/block-sync-pill/block-sync-pill.cjs +1 -0
- package/dist/cjs/components/block-sync-pill/block-sync-status.cjs +1 -0
- package/dist/cjs/components/block-sync-pill/index.cjs +1 -0
- package/dist/cjs/components/buttons/button/button.cjs +1 -1
- package/dist/cjs/components/checkbox/checkbox-labeled.cjs +1 -1
- package/dist/cjs/components/client-adapters/styled-button/styled-button.cjs +1 -1
- package/dist/cjs/components/client-adapters/styled-rounded-image/styled-rounded-image.cjs +1 -1
- package/dist/cjs/components/complex-input/complex-input.cjs +1 -1
- package/dist/cjs/components/composites/credit-account-history/body.cjs +1 -0
- package/dist/cjs/components/composites/credit-account-history/cells/details.cjs +1 -0
- package/dist/cjs/components/composites/credit-account-history/cells/hash.cjs +1 -0
- package/dist/cjs/components/composites/credit-account-history/cells/index.cjs +1 -0
- package/dist/cjs/components/composites/credit-account-history/cells/protocol.cjs +1 -0
- package/dist/cjs/components/composites/credit-account-history/cells/token-list.cjs +1 -0
- package/dist/cjs/components/composites/credit-account-history/credit-account-history.cjs +1 -0
- package/dist/cjs/components/composites/credit-account-history/index.cjs +1 -0
- package/dist/cjs/components/composites/credit-account-history/line.cjs +1 -0
- package/dist/cjs/components/composites/credit-account-history/types.cjs +1 -0
- package/dist/cjs/components/composites/index.cjs +1 -1
- package/dist/cjs/components/composites/notification-center/index.cjs +1 -0
- package/dist/cjs/components/composites/notification-center/notification-center.cjs +1 -0
- package/dist/cjs/components/composites/notification-center/types.cjs +1 -0
- package/dist/cjs/components/composites/pool-table/columns.cjs +1 -1
- package/dist/cjs/components/composites/tx-preview/components/AddressAvatar.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/components/AddressParty.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/components/AddressRow.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/components/AmountRow.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/components/CollapsibleCard.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/components/SectionDivider.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/components/TransferList.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/components/TransferRow.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/components/addressLabel.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/components/index.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/amounts/TransactionConfirmAmountField.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/amounts/TransactionConfirmAmountPair.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/amounts/constants.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/amounts/index.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/dialog/TransactionConfirmDialogView.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/dialog/TransactionConfirmPageView.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/dialog/TransactionConfirmShell.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/dialog/TransactionConfirmShell.constants.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/dialog/computeTransactionConfirmDialogLayout.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/dialog/constants.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/dialog/index.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/dialog/transactionConfirmPhase.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/dialog/useTransactionConfirmDialog.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/execution/TransactionConfirmExecuteButton.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/execution/index.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/index.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/preview/OperationPreviewContent.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/preview/index.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/result/TransactionConfirmFailureResult.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/result/TransactionConfirmSuccessIcon.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/result/TransactionConfirmSuccessResult.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/result/TransactionConfirmTxHashRow.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/result/constants.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/result/index.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/stepper/ProgressStepper.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/stepper/TransactionProgressStepper.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/stepper/constants.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/stepper/index.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/stepper/transactionExecutionStepTypes.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/summary/PoolOperationConfirmDetails.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/summary/constants.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/confirm/summary/index.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/index.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/operations/OperationBody.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/operations/OperationsCard.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/operations/PoolDepositView.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/operations/PoolRow.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/operations/PoolWithdrawView.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/operations/index.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/state-change/BalanceChangeGroup.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/state-change/BalanceChangeRow.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/state-change/PoolStateChangeCard.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/state-change/StateChangeCard.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/state-change/index.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/types.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/utils/addressLabels.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/utils/index.cjs +1 -0
- package/dist/cjs/components/composites/tx-preview/utils/poolTokenInfo.cjs +1 -0
- package/dist/cjs/components/compound-apy/compound-apy.cjs +1 -1
- package/dist/cjs/components/confirm-menu/confirm-menu.cjs +1 -1
- package/dist/cjs/components/detailed-page-title/detailed-page-title.cjs +1 -1
- package/dist/cjs/components/graph/formatters.cjs +1 -1
- package/dist/cjs/components/graph/graph.cjs +1 -1
- package/dist/cjs/components/graph/index.cjs +1 -1
- package/dist/cjs/components/health-factor/health-factor.cjs +1 -1
- package/dist/cjs/components/index.cjs +1 -1
- package/dist/cjs/components/layout/app-footer/app-footer.cjs +1 -0
- package/dist/cjs/components/layout/app-footer/index.cjs +1 -0
- package/dist/cjs/components/layout/app-header/app-header.cjs +1 -0
- package/dist/cjs/components/layout/app-header/index.cjs +1 -0
- package/dist/cjs/components/layout/index.cjs +1 -1
- package/dist/cjs/components/layout/main-aside-layout/main-aside-layout.cjs +1 -1
- package/dist/cjs/components/legal-agreement/index.cjs +1 -1
- package/dist/cjs/components/legal-agreement/legal-agreement-awaiting-panel.cjs +1 -0
- package/dist/cjs/components/legal-agreement/legal-agreement-dialog.cjs +1 -1
- package/dist/cjs/components/legal-agreement/legal-agreement-link.cjs +1 -0
- package/dist/cjs/components/legal-agreement/legal-agreement-panel.cjs +1 -0
- package/dist/cjs/components/legal-agreement/legal-agreement-theme.cjs +1 -0
- package/dist/cjs/components/legal-agreement/legal-agreement.stories-config.cjs +1 -0
- package/dist/cjs/components/link/link.cjs +1 -1
- package/dist/cjs/components/loader-guard/loader-guard.cjs +1 -1
- package/dist/cjs/components/markdown-viewer/markdown-viewer.cjs +1 -1
- package/dist/cjs/components/smart-number-input/smart-number-input.cjs +1 -1
- package/dist/cjs/components/time-to-liquidation/time-to-liquidation.cjs +1 -1
- package/dist/cjs/components/tokens-list-cell/tokens-list-cell.cjs +1 -1
- package/dist/cjs/components/trading-view/trading-view.cjs +1 -1
- package/dist/cjs/components/vertical-indicator/vertical-indicator.cjs +1 -1
- package/dist/cjs/components/with-copy/with-copy.cjs +1 -1
- package/dist/cjs/configs/tailwind-preset.cjs +1 -1
- package/dist/cjs/hooks/index.cjs +1 -1
- package/dist/cjs/hooks/use-filter.cjs +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/locale/en.json.cjs +1 -1
- package/dist/cjs/test-ids/index.cjs +1 -1
- package/dist/cjs/test-ids/notification-center.cjs +1 -0
- package/dist/esm/components/alert-badge/alert-badge.js +12 -10
- package/dist/esm/components/app-bar/app-bar.js +1 -1
- package/dist/esm/components/apy/apy.js +9 -9
- package/dist/esm/components/assets-list-cell/assets-list-cell.js +9 -5
- package/dist/esm/components/block-sync/block-sync.js +9 -5
- package/dist/esm/components/block-sync-pill/block-sync-pill.js +241 -0
- package/dist/esm/components/block-sync-pill/block-sync-status.js +12 -0
- package/dist/esm/components/block-sync-pill/index.js +4 -0
- package/dist/esm/components/buttons/button/button.js +1 -0
- package/dist/esm/components/checkbox/checkbox-labeled.js +7 -3
- package/dist/esm/components/client-adapters/styled-button/styled-button.js +11 -11
- package/dist/esm/components/client-adapters/styled-rounded-image/styled-rounded-image.js +7 -3
- package/dist/esm/components/complex-input/complex-input.js +9 -5
- package/dist/esm/components/composites/credit-account-history/body.js +73 -0
- package/dist/esm/components/composites/credit-account-history/cells/details.js +22 -0
- package/dist/esm/components/composites/credit-account-history/cells/hash.js +24 -0
- package/dist/esm/components/composites/credit-account-history/cells/index.js +10 -0
- package/dist/esm/components/composites/credit-account-history/cells/protocol.js +25 -0
- package/dist/esm/components/composites/credit-account-history/cells/token-list.js +43 -0
- package/dist/esm/components/composites/credit-account-history/credit-account-history.js +46 -0
- package/dist/esm/components/composites/credit-account-history/index.js +8 -0
- package/dist/esm/components/composites/credit-account-history/line.js +125 -0
- package/dist/esm/components/composites/credit-account-history/types.js +9 -0
- package/dist/esm/components/composites/index.js +87 -79
- package/dist/esm/components/composites/notification-center/index.js +4 -0
- package/dist/esm/components/composites/notification-center/notification-center.js +208 -0
- package/dist/esm/components/composites/notification-center/types.js +1 -0
- package/dist/esm/components/composites/pool-table/columns.js +44 -40
- package/dist/esm/components/composites/tx-preview/components/AddressAvatar.js +47 -0
- package/dist/esm/components/composites/tx-preview/components/AddressParty.js +17 -0
- package/dist/esm/components/composites/tx-preview/components/AddressRow.js +16 -0
- package/dist/esm/components/composites/tx-preview/components/AmountRow.js +30 -0
- package/dist/esm/components/composites/tx-preview/components/CollapsibleCard.js +45 -0
- package/dist/esm/components/composites/tx-preview/components/SectionDivider.js +12 -0
- package/dist/esm/components/composites/tx-preview/components/TransferList.js +25 -0
- package/dist/esm/components/composites/tx-preview/components/TransferRow.js +52 -0
- package/dist/esm/components/composites/tx-preview/components/addressLabel.js +7 -0
- package/dist/esm/components/composites/tx-preview/components/index.js +20 -0
- package/dist/esm/components/composites/tx-preview/confirm/amounts/TransactionConfirmAmountField.js +234 -0
- package/dist/esm/components/composites/tx-preview/confirm/amounts/TransactionConfirmAmountPair.js +55 -0
- package/dist/esm/components/composites/tx-preview/confirm/amounts/constants.js +10 -0
- package/dist/esm/components/composites/tx-preview/confirm/amounts/index.js +9 -0
- package/dist/esm/components/composites/tx-preview/confirm/dialog/TransactionConfirmDialogView.js +50 -0
- package/dist/esm/components/composites/tx-preview/confirm/dialog/TransactionConfirmPageView.js +70 -0
- package/dist/esm/components/composites/tx-preview/confirm/dialog/TransactionConfirmShell.constants.js +6 -0
- package/dist/esm/components/composites/tx-preview/confirm/dialog/TransactionConfirmShell.js +93 -0
- package/dist/esm/components/composites/tx-preview/confirm/dialog/computeTransactionConfirmDialogLayout.js +35 -0
- package/dist/esm/components/composites/tx-preview/confirm/dialog/constants.js +23 -0
- package/dist/esm/components/composites/tx-preview/confirm/dialog/index.js +20 -0
- package/dist/esm/components/composites/tx-preview/confirm/dialog/transactionConfirmPhase.js +1 -0
- package/dist/esm/components/composites/tx-preview/confirm/dialog/useTransactionConfirmDialog.js +20 -0
- package/dist/esm/components/composites/tx-preview/confirm/execution/TransactionConfirmExecuteButton.js +30 -0
- package/dist/esm/components/composites/tx-preview/confirm/execution/index.js +4 -0
- package/dist/esm/components/composites/tx-preview/confirm/index.js +57 -0
- package/dist/esm/components/composites/tx-preview/confirm/preview/OperationPreviewContent.js +195 -0
- package/dist/esm/components/composites/tx-preview/confirm/preview/index.js +4 -0
- package/dist/esm/components/composites/tx-preview/confirm/result/TransactionConfirmFailureResult.js +55 -0
- package/dist/esm/components/composites/tx-preview/confirm/result/TransactionConfirmSuccessIcon.js +25 -0
- package/dist/esm/components/composites/tx-preview/confirm/result/TransactionConfirmSuccessResult.js +60 -0
- package/dist/esm/components/composites/tx-preview/confirm/result/TransactionConfirmTxHashRow.js +21 -0
- package/dist/esm/components/composites/tx-preview/confirm/result/constants.js +24 -0
- package/dist/esm/components/composites/tx-preview/confirm/result/index.js +15 -0
- package/dist/esm/components/composites/tx-preview/confirm/stepper/ProgressStepper.js +100 -0
- package/dist/esm/components/composites/tx-preview/confirm/stepper/TransactionProgressStepper.js +67 -0
- package/dist/esm/components/composites/tx-preview/confirm/stepper/constants.js +10 -0
- package/dist/esm/components/composites/tx-preview/confirm/stepper/index.js +11 -0
- package/dist/esm/components/composites/tx-preview/confirm/stepper/transactionExecutionStepTypes.js +6 -0
- package/dist/esm/components/composites/tx-preview/confirm/summary/PoolOperationConfirmDetails.js +65 -0
- package/dist/esm/components/composites/tx-preview/confirm/summary/constants.js +6 -0
- package/dist/esm/components/composites/tx-preview/confirm/summary/index.js +6 -0
- package/dist/esm/components/composites/tx-preview/index.js +98 -0
- package/dist/esm/components/composites/tx-preview/operations/OperationBody.js +10 -0
- package/dist/esm/components/composites/tx-preview/operations/OperationsCard.js +195 -0
- package/dist/esm/components/composites/tx-preview/operations/PoolDepositView.js +204 -0
- package/dist/esm/components/composites/tx-preview/operations/PoolRow.js +20 -0
- package/dist/esm/components/composites/tx-preview/operations/PoolWithdrawView.js +198 -0
- package/dist/esm/components/composites/tx-preview/operations/index.js +13 -0
- package/dist/esm/components/composites/tx-preview/state-change/BalanceChangeGroup.js +185 -0
- package/dist/esm/components/composites/tx-preview/state-change/BalanceChangeRow.js +61 -0
- package/dist/esm/components/composites/tx-preview/state-change/PoolStateChangeCard.js +23 -0
- package/dist/esm/components/composites/tx-preview/state-change/StateChangeCard.js +200 -0
- package/dist/esm/components/composites/tx-preview/state-change/index.js +10 -0
- package/dist/esm/components/composites/tx-preview/types.js +1 -0
- package/dist/esm/components/composites/tx-preview/utils/addressLabels.js +41 -0
- package/dist/esm/components/composites/tx-preview/utils/index.js +6 -0
- package/dist/esm/components/composites/tx-preview/utils/poolTokenInfo.js +12 -0
- package/dist/esm/components/compound-apy/compound-apy.js +9 -5
- package/dist/esm/components/confirm-menu/confirm-menu.js +28 -25
- package/dist/esm/components/detailed-page-title/detailed-page-title.js +7 -3
- package/dist/esm/components/graph/formatters.js +128 -132
- package/dist/esm/components/graph/graph.js +744 -389
- package/dist/esm/components/graph/index.js +26 -24
- package/dist/esm/components/health-factor/health-factor.js +27 -26
- package/dist/esm/components/index.js +750 -717
- package/dist/esm/components/layout/app-footer/app-footer.js +54 -0
- package/dist/esm/components/layout/app-footer/index.js +5 -0
- package/dist/esm/components/layout/app-header/app-header.js +100 -0
- package/dist/esm/components/layout/app-header/index.js +4 -0
- package/dist/esm/components/layout/index.js +32 -27
- package/dist/esm/components/layout/main-aside-layout/main-aside-layout.js +107 -58
- package/dist/esm/components/legal-agreement/index.js +23 -7
- package/dist/esm/components/legal-agreement/legal-agreement-awaiting-panel.js +29 -0
- package/dist/esm/components/legal-agreement/legal-agreement-dialog.js +72 -212
- package/dist/esm/components/legal-agreement/legal-agreement-link.js +22 -0
- package/dist/esm/components/legal-agreement/legal-agreement-panel.js +130 -0
- package/dist/esm/components/legal-agreement/legal-agreement-theme.js +137 -0
- package/dist/esm/components/legal-agreement/legal-agreement.stories-config.js +170 -0
- package/dist/esm/components/link/link.js +42 -35
- package/dist/esm/components/loader-guard/loader-guard.js +7 -5
- package/dist/esm/components/markdown-viewer/markdown-viewer.js +9 -5
- package/dist/esm/components/smart-number-input/smart-number-input.js +163 -126
- package/dist/esm/components/time-to-liquidation/time-to-liquidation.js +7 -3
- package/dist/esm/components/tokens-list-cell/tokens-list-cell.js +9 -5
- package/dist/esm/components/trading-view/trading-view.js +164 -147
- package/dist/esm/components/vertical-indicator/vertical-indicator.js +39 -33
- package/dist/esm/components/with-copy/with-copy.js +9 -5
- package/dist/esm/configs/tailwind-preset.js +1 -0
- package/dist/esm/hooks/index.js +50 -47
- package/dist/esm/hooks/use-filter.js +63 -29
- package/dist/esm/index.js +932 -894
- package/dist/esm/locale/en.json.js +10 -0
- package/dist/esm/test-ids/index.js +14 -12
- package/dist/esm/test-ids/notification-center.js +16 -0
- package/dist/globals.css +1 -1
- package/dist/types/components/alert-badge/alert-badge.d.ts +1 -1
- package/dist/types/components/block-sync-pill/block-sync-pill.d.ts +35 -0
- package/dist/types/components/block-sync-pill/block-sync-status.d.ts +29 -0
- package/dist/types/components/block-sync-pill/index.d.ts +1 -0
- package/dist/types/components/buttons/button/button.d.ts +4 -3
- package/dist/types/components/composites/credit-account-history/body.d.ts +14 -0
- package/dist/types/components/composites/credit-account-history/cells/details.d.ts +9 -0
- package/dist/types/components/composites/credit-account-history/cells/hash.d.ts +6 -0
- package/dist/types/components/composites/credit-account-history/cells/index.d.ts +4 -0
- package/dist/types/components/composites/credit-account-history/cells/protocol.d.ts +7 -0
- package/dist/types/components/composites/credit-account-history/cells/token-list.d.ts +9 -0
- package/dist/types/components/composites/credit-account-history/credit-account-history.d.ts +15 -0
- package/dist/types/components/composites/credit-account-history/index.d.ts +2 -0
- package/dist/types/components/composites/credit-account-history/line.d.ts +18 -0
- package/dist/types/components/composites/credit-account-history/types.d.ts +36 -0
- package/dist/types/components/composites/index.d.ts +2 -0
- package/dist/types/components/composites/notification-center/index.d.ts +2 -0
- package/dist/types/components/composites/notification-center/notification-center.d.ts +9 -0
- package/dist/types/components/composites/notification-center/types.d.ts +30 -0
- package/dist/types/components/composites/tx-preview/components/AddressAvatar.d.ts +12 -0
- package/dist/types/components/composites/tx-preview/components/AddressParty.d.ts +14 -0
- package/dist/types/components/composites/tx-preview/components/AddressRow.d.ts +7 -0
- package/dist/types/components/composites/tx-preview/components/AmountRow.d.ts +15 -0
- package/dist/types/components/composites/tx-preview/components/CollapsibleCard.d.ts +22 -0
- package/dist/types/components/composites/tx-preview/components/SectionDivider.d.ts +10 -0
- package/dist/types/components/composites/tx-preview/components/TransferList.d.ts +19 -0
- package/dist/types/components/composites/tx-preview/components/TransferRow.d.ts +30 -0
- package/dist/types/components/composites/tx-preview/components/addressLabel.d.ts +27 -0
- package/dist/types/components/composites/tx-preview/components/index.d.ts +9 -0
- package/dist/types/components/composites/tx-preview/confirm/amounts/TransactionConfirmAmountField.d.ts +21 -0
- package/dist/types/components/composites/tx-preview/confirm/amounts/TransactionConfirmAmountPair.d.ts +16 -0
- package/dist/types/components/composites/tx-preview/confirm/amounts/constants.d.ts +6 -0
- package/dist/types/components/composites/tx-preview/confirm/amounts/index.d.ts +3 -0
- package/dist/types/components/composites/tx-preview/confirm/dialog/TransactionConfirmDialogView.d.ts +24 -0
- package/dist/types/components/composites/tx-preview/confirm/dialog/TransactionConfirmPageView.d.ts +23 -0
- package/dist/types/components/composites/tx-preview/confirm/dialog/TransactionConfirmShell.constants.d.ts +3 -0
- package/dist/types/components/composites/tx-preview/confirm/dialog/TransactionConfirmShell.d.ts +19 -0
- package/dist/types/components/composites/tx-preview/confirm/dialog/computeTransactionConfirmDialogLayout.d.ts +8 -0
- package/dist/types/components/composites/tx-preview/confirm/dialog/constants.d.ts +17 -0
- package/dist/types/components/composites/tx-preview/confirm/dialog/index.d.ts +8 -0
- package/dist/types/components/composites/tx-preview/confirm/dialog/transactionConfirmPhase.d.ts +4 -0
- package/dist/types/components/composites/tx-preview/confirm/dialog/useTransactionConfirmDialog.d.ts +8 -0
- package/dist/types/components/composites/tx-preview/confirm/execution/TransactionConfirmExecuteButton.d.ts +6 -0
- package/dist/types/components/composites/tx-preview/confirm/execution/index.d.ts +1 -0
- package/dist/types/components/composites/tx-preview/confirm/index.d.ts +7 -0
- package/dist/types/components/composites/tx-preview/confirm/preview/OperationPreviewContent.d.ts +12 -0
- package/dist/types/components/composites/tx-preview/confirm/preview/index.d.ts +1 -0
- package/dist/types/components/composites/tx-preview/confirm/result/TransactionConfirmFailureResult.d.ts +8 -0
- package/dist/types/components/composites/tx-preview/confirm/result/TransactionConfirmSuccessIcon.d.ts +2 -0
- package/dist/types/components/composites/tx-preview/confirm/result/TransactionConfirmSuccessResult.d.ts +8 -0
- package/dist/types/components/composites/tx-preview/confirm/result/TransactionConfirmTxHashRow.d.ts +6 -0
- package/dist/types/components/composites/tx-preview/confirm/result/constants.d.ts +18 -0
- package/dist/types/components/composites/tx-preview/confirm/result/index.d.ts +5 -0
- package/dist/types/components/composites/tx-preview/confirm/stepper/ProgressStepper.d.ts +29 -0
- package/dist/types/components/composites/tx-preview/confirm/stepper/TransactionProgressStepper.d.ts +7 -0
- package/dist/types/components/composites/tx-preview/confirm/stepper/constants.d.ts +6 -0
- package/dist/types/components/composites/tx-preview/confirm/stepper/index.d.ts +4 -0
- package/dist/types/components/composites/tx-preview/confirm/stepper/transactionExecutionStepTypes.d.ts +10 -0
- package/dist/types/components/composites/tx-preview/confirm/summary/PoolOperationConfirmDetails.d.ts +15 -0
- package/dist/types/components/composites/tx-preview/confirm/summary/constants.d.ts +3 -0
- package/dist/types/components/composites/tx-preview/confirm/summary/index.d.ts +2 -0
- package/dist/types/components/composites/tx-preview/index.d.ts +17 -0
- package/dist/types/components/composites/tx-preview/operations/OperationBody.d.ts +15 -0
- package/dist/types/components/composites/tx-preview/operations/OperationsCard.d.ts +21 -0
- package/dist/types/components/composites/tx-preview/operations/PoolDepositView.d.ts +11 -0
- package/dist/types/components/composites/tx-preview/operations/PoolRow.d.ts +8 -0
- package/dist/types/components/composites/tx-preview/operations/PoolWithdrawView.d.ts +11 -0
- package/dist/types/components/composites/tx-preview/operations/index.d.ts +5 -0
- package/dist/types/components/composites/tx-preview/state-change/BalanceChangeGroup.d.ts +11 -0
- package/dist/types/components/composites/tx-preview/state-change/BalanceChangeRow.d.ts +14 -0
- package/dist/types/components/composites/tx-preview/state-change/PoolStateChangeCard.d.ts +18 -0
- package/dist/types/components/composites/tx-preview/state-change/StateChangeCard.d.ts +21 -0
- package/dist/types/components/composites/tx-preview/state-change/index.d.ts +4 -0
- package/dist/types/components/composites/tx-preview/types.d.ts +19 -0
- package/dist/types/components/composites/tx-preview/utils/addressLabels.d.ts +16 -0
- package/dist/types/components/composites/tx-preview/utils/index.d.ts +2 -0
- package/dist/types/components/composites/tx-preview/utils/poolTokenInfo.d.ts +14 -0
- package/dist/types/components/confirm-menu/confirm-menu.d.ts +4 -2
- package/dist/types/components/graph/graph.d.ts +112 -2
- package/dist/types/components/graph/index.d.ts +1 -1
- package/dist/types/components/health-factor/health-factor.d.ts +6 -3
- package/dist/types/components/help-tip/help-tip.d.ts +2 -2
- package/dist/types/components/index.d.ts +1 -0
- package/dist/types/components/layout/app-footer/app-footer.d.ts +62 -0
- package/dist/types/components/layout/app-footer/index.d.ts +1 -0
- package/dist/types/components/layout/app-header/app-header.d.ts +67 -0
- package/dist/types/components/layout/app-header/index.d.ts +1 -0
- package/dist/types/components/layout/index.d.ts +2 -0
- package/dist/types/components/layout/main-aside-layout/main-aside-layout.d.ts +42 -0
- package/dist/types/components/legal-agreement/index.d.ts +5 -1
- package/dist/types/components/legal-agreement/legal-agreement-awaiting-panel.d.ts +10 -0
- package/dist/types/components/legal-agreement/legal-agreement-dialog.d.ts +19 -52
- package/dist/types/components/legal-agreement/legal-agreement-link.d.ts +11 -0
- package/dist/types/components/legal-agreement/legal-agreement-panel.d.ts +16 -0
- package/dist/types/components/legal-agreement/legal-agreement-theme.d.ts +36 -0
- package/dist/types/components/legal-agreement/legal-agreement.stories-config.d.ts +11 -0
- package/dist/types/components/smart-number-input/smart-number-input.d.ts +19 -0
- package/dist/types/components/tip-card/tip-card.d.ts +1 -1
- package/dist/types/components/trading-view/trading-view.d.ts +15 -1
- package/dist/types/components/vertical-indicator/vertical-indicator.d.ts +6 -0
- package/dist/types/configs/tailwind-preset.d.ts +1 -0
- package/dist/types/hooks/use-filter.d.ts +46 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/locale/en.json.d.ts +13 -0
- package/dist/types/test-ids/index.d.ts +1 -0
- package/dist/types/test-ids/notification-center.d.ts +13 -0
- package/dist/types/types/footer.d.ts +24 -3
- package/package.json +17 -4
- package/src/styles/base.css +2 -0
- package/src/styles/theme.css +1 -0
|
@@ -18,21 +18,24 @@ export interface HealthFactorProps extends React.HTMLAttributes<HTMLSpanElement>
|
|
|
18
18
|
/** Pre-computed zone; if not set, derived from value. */
|
|
19
19
|
zone?: HFZones | null;
|
|
20
20
|
/**
|
|
21
|
-
* How to indicate zone: "color" (text color only)
|
|
21
|
+
* How to indicate zone: "color" (text color only), "bars" (StatusBars before value),
|
|
22
|
+
* or "dot" (HealthDot after value, text stays default color).
|
|
22
23
|
* @default "color"
|
|
23
24
|
*/
|
|
24
|
-
zoneType?: "color" | "bars";
|
|
25
|
+
zoneType?: "color" | "bars" | "dot";
|
|
25
26
|
}
|
|
26
27
|
/**
|
|
27
28
|
* HealthFactor — displays health factor value with optional zone color or StatusBars.
|
|
28
29
|
*
|
|
29
30
|
* @usage
|
|
30
31
|
* Use for account/collateral health: value in basis points, zero debt shows "N/A".
|
|
31
|
-
* zoneType "color" colors the text; zoneType "bars" shows StatusBars
|
|
32
|
+
* zoneType "color" colors the text; zoneType "bars" shows StatusBars;
|
|
33
|
+
* zoneType "dot" shows a HealthDot dot after the value while keeping text default color.
|
|
32
34
|
*
|
|
33
35
|
* @example
|
|
34
36
|
* ```tsx
|
|
35
37
|
* <HealthFactor value={15000} debt={1000000n} />
|
|
38
|
+
* <HealthFactor value={15000} debt={1000000n} zoneType="dot" zone="good" />
|
|
36
39
|
* <HealthFactor value={12000} debt={1000000n} zoneType="bars" zone="medium" />
|
|
37
40
|
* <HealthFactor value={15000} debt={0n} /> // "N/A"
|
|
38
41
|
* ```
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { VariantProps } from 'class-variance-authority';
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
declare const iconColorVariants: (props?: ({
|
|
4
|
-
iconColor?: "muted" | "foreground" | "gray-
|
|
5
|
-
iconHoverColor?: "muted" | "foreground" | "gray-
|
|
4
|
+
iconColor?: "muted" | "foreground" | "gray-50" | "gray-10" | "gray-20" | "gray-30" | "gray-40" | "gray-60" | "gray-70" | "gray-80" | "gray-90" | "gray-100" | "gray-110" | null | undefined;
|
|
5
|
+
iconHoverColor?: "muted" | "foreground" | "gray-50" | "gray-10" | "gray-20" | "gray-30" | "gray-40" | "gray-60" | "gray-70" | "gray-80" | "gray-90" | "gray-100" | "gray-110" | null | undefined;
|
|
6
6
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
7
7
|
export interface HelpTipProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "title"> {
|
|
8
8
|
/** Tooltip popup content (what appears when hovering the icon). */
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { BlockSyncProps } from '../../../types/footer';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* A single legal/navigation link rendered in {@link AppFooter}.
|
|
5
|
+
*/
|
|
6
|
+
export interface AppFooterLink {
|
|
7
|
+
label: string;
|
|
8
|
+
href: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Default footer links used by the Gearbox App (client-v3) shell footer.
|
|
12
|
+
*
|
|
13
|
+
* `Support` points to the Gearbox Discord invite, matching `DISCORD_ADDR`
|
|
14
|
+
* in the app config.
|
|
15
|
+
*/
|
|
16
|
+
export declare const DEFAULT_APP_FOOTER_LINKS: ReadonlyArray<AppFooterLink>;
|
|
17
|
+
export interface AppFooterProps extends React.HTMLAttributes<HTMLElement> {
|
|
18
|
+
/**
|
|
19
|
+
* Legal / navigation links rendered on the right side.
|
|
20
|
+
* Defaults to {@link DEFAULT_APP_FOOTER_LINKS}.
|
|
21
|
+
*/
|
|
22
|
+
links?: ReadonlyArray<AppFooterLink>;
|
|
23
|
+
/**
|
|
24
|
+
* Copyright node on the left. Defaults to
|
|
25
|
+
* `© Gearbox Protocol, {year}`.
|
|
26
|
+
*/
|
|
27
|
+
copyright?: React.ReactNode;
|
|
28
|
+
/**
|
|
29
|
+
* Year used in the default copyright. Defaults to the current year.
|
|
30
|
+
*/
|
|
31
|
+
year?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Whether to show the status pill on the far right. Defaults to `true`.
|
|
34
|
+
*/
|
|
35
|
+
showStatus?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Label rendered inside the status pill. Defaults to `Status`.
|
|
38
|
+
*/
|
|
39
|
+
statusLabel?: React.ReactNode;
|
|
40
|
+
/**
|
|
41
|
+
* When provided, the status pill becomes a live network-synchronization
|
|
42
|
+
* indicator ({@link BlockSyncPill}): the dot color reflects the time since
|
|
43
|
+
* the last block update and hovering reveals per-chain block details.
|
|
44
|
+
* Without it, a static green status pill is rendered.
|
|
45
|
+
*/
|
|
46
|
+
blockSyncProps?: BlockSyncProps;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* AppFooter — minimal, Hyperliquid-style footer used by the Gearbox App
|
|
50
|
+
* (client-v3): one thin line with copyright on the left and legal links plus a
|
|
51
|
+
* status pill on the right.
|
|
52
|
+
*
|
|
53
|
+
* Presentational port of client-v3 `AppFooter`. All dynamic content is
|
|
54
|
+
* controlled through props; defaults reproduce the app exactly.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```tsx
|
|
58
|
+
* <AppFooter />
|
|
59
|
+
* <AppFooter links={myLinks} copyright="© Acme, 2026" showStatus={false} />
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare const AppFooter: React.ForwardRefExoticComponent<AppFooterProps & React.RefAttributes<HTMLElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './app-footer';
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface AppHeaderProps extends React.HTMLAttributes<HTMLElement> {
|
|
3
|
+
/**
|
|
4
|
+
* Home link target used by the default logos. Defaults to `/`.
|
|
5
|
+
*/
|
|
6
|
+
homeHref?: string;
|
|
7
|
+
/**
|
|
8
|
+
* Desktop logo block (visible at `lg` and up). Defaults to the full Gearbox
|
|
9
|
+
* wordmark linking to {@link AppHeaderProps.homeHref}.
|
|
10
|
+
*/
|
|
11
|
+
desktopLogo?: React.ReactNode;
|
|
12
|
+
/**
|
|
13
|
+
* Mobile logo block (visible below `lg`). Defaults to the Gearbox sign mark
|
|
14
|
+
* linking to {@link AppHeaderProps.homeHref}.
|
|
15
|
+
*/
|
|
16
|
+
mobileLogo?: React.ReactNode;
|
|
17
|
+
/**
|
|
18
|
+
* Mobile menu trigger (hamburger dropdown), visible below `lg`.
|
|
19
|
+
*/
|
|
20
|
+
mobileMenu?: React.ReactNode;
|
|
21
|
+
/**
|
|
22
|
+
* Center navigation tabs — typically a `TabControl`. Visible at `lg` and up.
|
|
23
|
+
*/
|
|
24
|
+
tabs?: React.ReactNode;
|
|
25
|
+
/**
|
|
26
|
+
* Optional actions placed left of the wallet button (e.g. migration button).
|
|
27
|
+
*/
|
|
28
|
+
actions?: React.ReactNode;
|
|
29
|
+
/**
|
|
30
|
+
* Wallet / connect button area, rendered on the right.
|
|
31
|
+
*/
|
|
32
|
+
wallet?: React.ReactNode;
|
|
33
|
+
/**
|
|
34
|
+
* Optional dots menu placed after the wallet (e.g. settings, docs links).
|
|
35
|
+
*/
|
|
36
|
+
extraMenu?: React.ReactNode;
|
|
37
|
+
/**
|
|
38
|
+
* Optional `data-testid` applied to the left side panel.
|
|
39
|
+
*/
|
|
40
|
+
leftTestId?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Optional `data-testid` applied to the center navigation area.
|
|
43
|
+
*/
|
|
44
|
+
centerTestId?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Optional `data-testid` applied to the right side panel.
|
|
47
|
+
*/
|
|
48
|
+
rightTestId?: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* AppHeader — three-column top navigation bar used by the **Gearbox App
|
|
52
|
+
* (client-v3)** shell: logo on the left, center `TabControl`, and wallet
|
|
53
|
+
* (plus optional actions) on the right.
|
|
54
|
+
*
|
|
55
|
+
* Presentational port of client-v3 `AppBarView`. Dynamic regions are exposed as
|
|
56
|
+
* slots; the logos default to the exact Gearbox assets used by the app.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```tsx
|
|
60
|
+
* <AppHeader
|
|
61
|
+
* mobileMenu={<HamburgerDropdown />}
|
|
62
|
+
* tabs={<TabControl state={tabState} tabs={tabs} showBorder={false} />}
|
|
63
|
+
* wallet={<Button variant="outline">Connect wallet</Button>}
|
|
64
|
+
* />
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export declare const AppHeader: React.ForwardRefExoticComponent<AppHeaderProps & React.RefAttributes<HTMLElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './app-header';
|
|
@@ -28,6 +28,37 @@ export interface MainAsideLayoutProps extends React.HTMLAttributes<HTMLDivElemen
|
|
|
28
28
|
* - pass `asideClassName` to override or augment aside classes (e.g. z-index)
|
|
29
29
|
*/
|
|
30
30
|
variant?: "default" | "detail";
|
|
31
|
+
/**
|
|
32
|
+
* Hybrid centring for the main column. Only meaningful with
|
|
33
|
+
* `variant="detail"`.
|
|
34
|
+
*
|
|
35
|
+
* - **`≥1520px`** — the main column is centred on the viewport (`mx-auto`),
|
|
36
|
+
* capped at `56rem`, with the aside in the left gutter (`absolute`).
|
|
37
|
+
* - **`lg`…`1519px`** — LP-style in-flow row (aside + main centred as one block).
|
|
38
|
+
*
|
|
39
|
+
* On screens below `lg` the layout falls back to the normal stacked column,
|
|
40
|
+
* so wrap usage in `hidden lg:block` if the mobile layout is handled
|
|
41
|
+
* separately.
|
|
42
|
+
*/
|
|
43
|
+
centeredMain?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Whether the detail-variant aside manages its own sticky / scroll behavior.
|
|
46
|
+
*
|
|
47
|
+
* - `true` (default) — ui-kit owns the aside positioning: built-in sticky
|
|
48
|
+
* (`top-4`) below `2450px`, `fixed` (`top-28`) at `≥2450px`, plus an
|
|
49
|
+
* internal `overflow-y-auto` / `max-h-[100vh]` scroll area.
|
|
50
|
+
* - `false` — the aside stays in normal document flow at all widths (no
|
|
51
|
+
* `fixed`, no internal scroll container), so the page keeps a single
|
|
52
|
+
* scrollbar and the consumer can run its own sticky controller. The detail
|
|
53
|
+
* centring wrapper + `max-width` cap are preserved. At `≥2450px` the row
|
|
54
|
+
* stays a flex row but centres the main column on the viewport
|
|
55
|
+
* (`justify-center`, main `80rem`) while the in-flow aside is pulled into
|
|
56
|
+
* the gutter via a negative margin — so the content reads centred with the
|
|
57
|
+
* form beside it, and the consumer's controller keeps managing stickiness.
|
|
58
|
+
*
|
|
59
|
+
* Only meaningful with `variant="detail"` and without `centeredMain`.
|
|
60
|
+
*/
|
|
61
|
+
stickyAside?: boolean;
|
|
31
62
|
}
|
|
32
63
|
/**
|
|
33
64
|
* MainAsideLayout — main column + optional sidebar in one row.
|
|
@@ -54,5 +85,16 @@ export interface MainAsideLayoutProps extends React.HTMLAttributes<HTMLDivElemen
|
|
|
54
85
|
* ```
|
|
55
86
|
* This reproduces the `PoolDetailsScreen` two-column layout:
|
|
56
87
|
* sticky aside below 2450 px viewport, fixed aside above it, correct max-widths.
|
|
88
|
+
*
|
|
89
|
+
* ### Detail variant — viewport-centred main (`centeredMain`)
|
|
90
|
+
* ```tsx
|
|
91
|
+
* <div className="hidden lg:block">
|
|
92
|
+
* <MainAsideLayout variant="detail" asidePosition="left" centeredMain aside={<Panel />}>
|
|
93
|
+
* <Content />
|
|
94
|
+
* </MainAsideLayout>
|
|
95
|
+
* </div>
|
|
96
|
+
* ```
|
|
97
|
+
* Centres the main column on the viewport (up to `56rem`) while the aside sits
|
|
98
|
+
* in the left gutter from `1520px`; below that the row behaves like LP detail.
|
|
57
99
|
*/
|
|
58
100
|
export declare const MainAsideLayout: React.ForwardRefExoticComponent<MainAsideLayoutProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { LegalAgreementAwaitingPanel, type LegalAgreementAwaitingPanelProps, LegalAgreementAwaitingPanelTest, } from './legal-agreement-awaiting-panel';
|
|
2
|
+
export { BlockedRegionDialog, type BlockedRegionDialogProps, type LegalAgreementCheckboxItem, LegalAgreementDialog, type LegalAgreementDialogConfig, type LegalAgreementDialogProps, } from './legal-agreement-dialog';
|
|
3
|
+
export { LegalAgreementLink, type LegalAgreementLinkProps, } from './legal-agreement-link';
|
|
4
|
+
export { LegalAgreementPanel, type LegalAgreementPanelProps, LegalAgreementPanelTest, } from './legal-agreement-panel';
|
|
5
|
+
export { type LegalAgreementThemeVariantProps, type LegalAgreementVisualTheme, legalAgreementAwaitingDescriptionVariants, legalAgreementAwaitingRootVariants, legalAgreementAwaitingTitleVariants, legalAgreementLinkVariants, legalAgreementPanelCheckboxLabelVariants, legalAgreementPanelCheckboxListTitleVariants, legalAgreementPanelCheckboxListVariants, legalAgreementPanelCheckboxRowVariants, legalAgreementPanelNotificationVariants, legalAgreementPanelRootVariants, legalAgreementPanelV2BannerVariants, } from './legal-agreement-theme';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { LegalAgreementVisualTheme } from './legal-agreement-theme';
|
|
3
|
+
export declare class LegalAgreementAwaitingPanelTest {
|
|
4
|
+
static root: string;
|
|
5
|
+
}
|
|
6
|
+
export interface LegalAgreementAwaitingPanelProps {
|
|
7
|
+
readonly waitingForSignatureText?: string;
|
|
8
|
+
readonly theme?: LegalAgreementVisualTheme;
|
|
9
|
+
}
|
|
10
|
+
export declare function LegalAgreementAwaitingPanel({ waitingForSignatureText, theme, }: LegalAgreementAwaitingPanelProps): React.ReactElement;
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
+
import { LegalAgreementVisualTheme } from './legal-agreement-theme';
|
|
1
2
|
import * as React from "react";
|
|
2
3
|
export interface LegalAgreementCheckboxItem {
|
|
3
4
|
id: string;
|
|
4
5
|
content: React.ReactNode;
|
|
5
6
|
}
|
|
6
|
-
export interface LegalAgreementDialogLinks {
|
|
7
|
-
termsOfService: string;
|
|
8
|
-
privacyNotice: string;
|
|
9
|
-
riskDisclosure: string;
|
|
10
|
-
}
|
|
11
7
|
export interface LegalAgreementDialogConfig {
|
|
12
8
|
/**
|
|
13
9
|
* Product/service name (e.g., "Permissionless Interface", "Permissionless Safe", "Gearbox App")
|
|
@@ -41,6 +37,15 @@ export interface LegalAgreementDialogConfig {
|
|
|
41
37
|
* Defaults to "Please sign the message in your wallet to agree to the Terms of Service."
|
|
42
38
|
*/
|
|
43
39
|
waitingForSignatureText?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Notice shown when terms are updated (hasV2Signature is true).
|
|
42
|
+
* Host app supplies legal copy; ui-kit only renders layout.
|
|
43
|
+
*/
|
|
44
|
+
updatedTermsNoticeText?: React.ReactNode;
|
|
45
|
+
/**
|
|
46
|
+
* Optional heading above checkbox list (e.g. warranty section title).
|
|
47
|
+
*/
|
|
48
|
+
checkboxListTitle?: React.ReactNode;
|
|
44
49
|
}
|
|
45
50
|
export interface LegalAgreementDialogProps {
|
|
46
51
|
open: boolean;
|
|
@@ -50,6 +55,7 @@ export interface LegalAgreementDialogProps {
|
|
|
50
55
|
hasV2Signature?: boolean;
|
|
51
56
|
isAwaitingSignature?: boolean;
|
|
52
57
|
config: LegalAgreementDialogConfig;
|
|
58
|
+
theme?: LegalAgreementVisualTheme;
|
|
53
59
|
}
|
|
54
60
|
/**
|
|
55
61
|
* LegalAgreementDialog — dialog component for legal agreement signing.
|
|
@@ -77,59 +83,20 @@ export interface LegalAgreementDialogProps {
|
|
|
77
83
|
* Note: Displays checkboxes for user agreement and handles signing flow.
|
|
78
84
|
* Shows waiting state during signature process.
|
|
79
85
|
*
|
|
80
|
-
* Example usage
|
|
86
|
+
* Example usage — host app supplies config (legal copy is app-owned):
|
|
81
87
|
* ```tsx
|
|
82
|
-
* import { LegalAgreementDialog,
|
|
88
|
+
* import { LegalAgreementDialog, LegalAgreementLink } from '@gearbox-protocol/ui-kit';
|
|
83
89
|
*
|
|
84
|
-
* const
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
90
|
+
* const config = {
|
|
91
|
+
* productName: 'My App',
|
|
92
|
+
* notificationText: <>…your legal copy with <LegalAgreementLink href="…">ToS</LegalAgreementLink>…</>,
|
|
93
|
+
* checkboxItems: [{ id: 'consent', content: <>…</> }],
|
|
88
94
|
* };
|
|
89
95
|
*
|
|
90
|
-
*
|
|
91
|
-
* // it uses simplified consent flow. For other names (e.g., "Gearbox App") it uses
|
|
92
|
-
* // extended consent flow with additional checkboxes.
|
|
93
|
-
* const config = createLegalAgreementConfig("Permissionless Interface", links);
|
|
94
|
-
*
|
|
95
|
-
* <LegalAgreementDialog
|
|
96
|
-
* open={isOpen}
|
|
97
|
-
* onClose={handleClose}
|
|
98
|
-
* onSign={handleSign}
|
|
99
|
-
* isSigning={isSigning}
|
|
100
|
-
* config={config}
|
|
101
|
-
* />
|
|
96
|
+
* <LegalAgreementDialog open={isOpen} onClose={handleClose} onSign={handleSign} isSigning={isSigning} config={config} />
|
|
102
97
|
* ```
|
|
103
98
|
*/
|
|
104
|
-
export declare function LegalAgreementDialog({ open, onClose, onSign, isSigning, hasV2Signature, isAwaitingSignature, config, }: LegalAgreementDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
105
|
-
export type AppName = string;
|
|
106
|
-
/**
|
|
107
|
-
* Creates configuration for legal agreement dialog based on app name.
|
|
108
|
-
* @param appName - Name of the application (any string, e.g., "Permissionless Interface", "Permissionless Safe", "Gearbox App", etc.)
|
|
109
|
-
* @param links - URLs for legal documents
|
|
110
|
-
* @param options - Optional configuration overrides
|
|
111
|
-
*/
|
|
112
|
-
export declare function createLegalAgreementConfig(appName: AppName, links: LegalAgreementDialogLinks, options?: {
|
|
113
|
-
agreeButtonText?: string;
|
|
114
|
-
}): LegalAgreementDialogConfig;
|
|
115
|
-
/**
|
|
116
|
-
* @deprecated Use createLegalAgreementConfig("Permissionless Interface", links, options) instead
|
|
117
|
-
*/
|
|
118
|
-
export declare function createPermissionlessInterfaceConfig(links: LegalAgreementDialogLinks, options?: {
|
|
119
|
-
agreeButtonText?: string;
|
|
120
|
-
}): LegalAgreementDialogConfig;
|
|
121
|
-
/**
|
|
122
|
-
* @deprecated Use createLegalAgreementConfig("Permissionless Safe", links, options) instead
|
|
123
|
-
*/
|
|
124
|
-
export declare function createPermissionlessSafeConfig(links: LegalAgreementDialogLinks, options?: {
|
|
125
|
-
agreeButtonText?: string;
|
|
126
|
-
}): LegalAgreementDialogConfig;
|
|
127
|
-
/**
|
|
128
|
-
* @deprecated Use createLegalAgreementConfig("Gearbox App", links, options) instead
|
|
129
|
-
*/
|
|
130
|
-
export declare function createGearboxAppConfig(links: LegalAgreementDialogLinks, options?: {
|
|
131
|
-
agreeButtonText?: string;
|
|
132
|
-
}): LegalAgreementDialogConfig;
|
|
99
|
+
export declare function LegalAgreementDialog({ open, onClose, onSign, isSigning, hasV2Signature, isAwaitingSignature, config, theme, }: LegalAgreementDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
133
100
|
export interface BlockedRegionDialogProps {
|
|
134
101
|
open: boolean;
|
|
135
102
|
onClose: () => void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { LegalAgreementVisualTheme } from './legal-agreement-theme';
|
|
3
|
+
export interface LegalAgreementLinkProps {
|
|
4
|
+
readonly href: string;
|
|
5
|
+
readonly children: React.ReactNode;
|
|
6
|
+
readonly theme?: LegalAgreementVisualTheme;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Styled external link for legal agreement copy supplied by the host app.
|
|
10
|
+
*/
|
|
11
|
+
export declare function LegalAgreementLink({ href, children, theme, }: LegalAgreementLinkProps): React.ReactElement;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { LegalAgreementDialogConfig } from './legal-agreement-dialog';
|
|
3
|
+
import { LegalAgreementVisualTheme } from './legal-agreement-theme';
|
|
4
|
+
export declare class LegalAgreementPanelTest {
|
|
5
|
+
static root: string;
|
|
6
|
+
}
|
|
7
|
+
export interface LegalAgreementPanelProps {
|
|
8
|
+
readonly config: LegalAgreementDialogConfig;
|
|
9
|
+
readonly checkedItems: Readonly<Record<string, boolean>>;
|
|
10
|
+
readonly onCheckedChange: (id: string) => void;
|
|
11
|
+
readonly hasV2Signature?: boolean;
|
|
12
|
+
readonly showTitle?: boolean;
|
|
13
|
+
readonly checkboxIdPrefix?: string;
|
|
14
|
+
readonly theme?: LegalAgreementVisualTheme;
|
|
15
|
+
}
|
|
16
|
+
export declare function LegalAgreementPanel({ config, checkedItems, onCheckedChange, hasV2Signature, showTitle, checkboxIdPrefix, theme, }: LegalAgreementPanelProps): React.ReactElement;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
export type LegalAgreementVisualTheme = "default" | "gearboxV3";
|
|
3
|
+
export declare const legalAgreementPanelRootVariants: (props?: ({
|
|
4
|
+
theme?: "default" | "gearboxV3" | null | undefined;
|
|
5
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
6
|
+
export declare const legalAgreementPanelNotificationVariants: (props?: ({
|
|
7
|
+
theme?: "default" | "gearboxV3" | null | undefined;
|
|
8
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
9
|
+
export declare const legalAgreementPanelCheckboxListVariants: (props?: ({
|
|
10
|
+
readonly theme?: "default" | "gearboxV3" | null | undefined;
|
|
11
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
12
|
+
export declare const legalAgreementPanelCheckboxListTitleVariants: (props?: ({
|
|
13
|
+
theme?: "default" | "gearboxV3" | null | undefined;
|
|
14
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
15
|
+
export declare const legalAgreementPanelCheckboxRowVariants: (props?: ({
|
|
16
|
+
theme?: "default" | "gearboxV3" | null | undefined;
|
|
17
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
18
|
+
export declare const legalAgreementPanelCheckboxLabelVariants: (props?: ({
|
|
19
|
+
theme?: "default" | "gearboxV3" | null | undefined;
|
|
20
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
21
|
+
export declare const legalAgreementPanelV2BannerVariants: (props?: ({
|
|
22
|
+
theme?: "default" | "gearboxV3" | null | undefined;
|
|
23
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
24
|
+
export declare const legalAgreementAwaitingRootVariants: (props?: ({
|
|
25
|
+
theme?: "default" | "gearboxV3" | null | undefined;
|
|
26
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
27
|
+
export declare const legalAgreementAwaitingTitleVariants: (props?: ({
|
|
28
|
+
theme?: "default" | "gearboxV3" | null | undefined;
|
|
29
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
30
|
+
export declare const legalAgreementAwaitingDescriptionVariants: (props?: ({
|
|
31
|
+
theme?: "default" | "gearboxV3" | null | undefined;
|
|
32
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
33
|
+
export declare const legalAgreementLinkVariants: (props?: ({
|
|
34
|
+
theme?: "default" | "gearboxV3" | null | undefined;
|
|
35
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
36
|
+
export type LegalAgreementThemeVariantProps = VariantProps<typeof legalAgreementPanelRootVariants>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { LegalAgreementDialogConfig } from './legal-agreement-dialog';
|
|
2
|
+
import { LegalAgreementVisualTheme } from './legal-agreement-theme';
|
|
3
|
+
export declare function createStoryPermissionlessLegalConfig(theme?: LegalAgreementVisualTheme): LegalAgreementDialogConfig;
|
|
4
|
+
export declare function createStoryExtendedLegalConfig(theme?: LegalAgreementVisualTheme): LegalAgreementDialogConfig;
|
|
5
|
+
export declare function createStoryRwaLegalConfig(theme?: LegalAgreementVisualTheme): LegalAgreementDialogConfig;
|
|
6
|
+
/** Storybook-only sample config (single-checkbox flow). Not exported from ui-kit. */
|
|
7
|
+
export declare const storyPermissionlessLegalConfig: LegalAgreementDialogConfig;
|
|
8
|
+
/** Storybook-only sample config (three-checkbox flow). Not exported from ui-kit. */
|
|
9
|
+
export declare const storyExtendedLegalConfig: LegalAgreementDialogConfig;
|
|
10
|
+
/** Storybook-only RWA sample config. Not exported from ui-kit. */
|
|
11
|
+
export declare const storyRwaLegalConfig: LegalAgreementDialogConfig;
|
|
@@ -71,6 +71,25 @@ export interface SmartNumberInputProps {
|
|
|
71
71
|
* When provided, the USD equivalent of the current amount is displayed below the input.
|
|
72
72
|
*/
|
|
73
73
|
usdPrice?: number;
|
|
74
|
+
/**
|
|
75
|
+
* When provided, renders a Health Factor slider in the balance row
|
|
76
|
+
* (replacing the max amount / "Can borrow" indicator).
|
|
77
|
+
* Intended for debt inputs where the user wants to target a specific HF.
|
|
78
|
+
*/
|
|
79
|
+
hfSlider?: HFSliderConfig;
|
|
80
|
+
}
|
|
81
|
+
/** Configuration for the inline Health Factor slider. */
|
|
82
|
+
export interface HFSliderConfig {
|
|
83
|
+
/** Current target HF as a float (e.g. 1.5 for 150%). */
|
|
84
|
+
value: number;
|
|
85
|
+
/** Minimum HF value. @default 1.0 */
|
|
86
|
+
min?: number;
|
|
87
|
+
/** Maximum HF value. @default 3.0 */
|
|
88
|
+
max?: number;
|
|
89
|
+
/** Slider step. @default 0.01 */
|
|
90
|
+
step?: number;
|
|
91
|
+
/** Called when the slider value changes. */
|
|
92
|
+
onChange: (value: number) => void;
|
|
74
93
|
}
|
|
75
94
|
/**
|
|
76
95
|
* SmartNumberInput — token amount input with balance display (matches interface).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VariantProps } from 'class-variance-authority';
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
declare const tipCardVariants: (props?: ({
|
|
4
|
-
backgroundColor?: "dark" | "transparent" | "light" | "gray-
|
|
4
|
+
backgroundColor?: "dark" | "transparent" | "light" | "gray-50" | "gray-10" | "gray-20" | "gray-30" | "gray-40" | "gray-60" | "gray-70" | "gray-80" | "gray-90" | "gray-100" | "gray-110" | null | undefined;
|
|
5
5
|
textColor?: "unset" | "dark" | "light" | null | undefined;
|
|
6
6
|
borderColor?: "none" | "dark" | "light" | "gradient" | null | undefined;
|
|
7
7
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { LineStyle } from 'lightweight-charts';
|
|
1
2
|
import { RangeButtonsProps } from '../buttons/range-buttons/range-buttons';
|
|
2
3
|
import { YMeasureUnits } from '../graph/formatters';
|
|
3
4
|
import { GraphViewWithDataProps } from '../graph/graph-view';
|
|
@@ -26,6 +27,12 @@ export interface GraphData {
|
|
|
26
27
|
topColor?: string;
|
|
27
28
|
/** Area fill gradient bottom */
|
|
28
29
|
bottomColor?: string;
|
|
30
|
+
/** Price scale when Graph `dualYAxis` is enabled. */
|
|
31
|
+
priceScaleId?: "left" | "right";
|
|
32
|
+
/** Render as line instead of area. */
|
|
33
|
+
seriesType?: "area" | "line";
|
|
34
|
+
/** Line dash style (line series). */
|
|
35
|
+
lineStyle?: LineStyle;
|
|
29
36
|
}
|
|
30
37
|
/**
|
|
31
38
|
* TradingView component props
|
|
@@ -61,6 +68,13 @@ export interface TradingViewProps<T extends string = string> extends Omit<GraphV
|
|
|
61
68
|
graphsWithNoData?: Set<T>;
|
|
62
69
|
/** Set of graph values that are currently loading */
|
|
63
70
|
loadingGraphs?: Set<T>;
|
|
71
|
+
/**
|
|
72
|
+
* Explicit loading state. When provided, it takes precedence over the loading
|
|
73
|
+
* state inferred from `loadingGraphs`/`data`. Use it when the series list is
|
|
74
|
+
* empty while the underlying query is still pending (otherwise the chart would
|
|
75
|
+
* briefly show "no data" before data arrives).
|
|
76
|
+
*/
|
|
77
|
+
isLoading?: boolean;
|
|
64
78
|
/** Message to show when user selects a graph with no data */
|
|
65
79
|
noDataMessage?: string;
|
|
66
80
|
/**
|
|
@@ -157,4 +171,4 @@ export interface TradingViewProps<T extends string = string> extends Omit<GraphV
|
|
|
157
171
|
* />
|
|
158
172
|
* ```
|
|
159
173
|
*/
|
|
160
|
-
export declare function TradingView<T extends string = string>({ data, yMeasureUnit, height, defaultGraph, onGraphSelected, graphs, isMultipleSelect, range, rangeList, setRange, onGraphExpanded, isGraphExpanded, onUnselectSeries, graphsWithNoData, loadingGraphs, noDataMessage, currentValueDecimals, containerClassName, useSharedPriceScale, showCurrentValue, yScaleMin, yScaleMinMultiple, seriesColorPersistenceKey, ...restProps }: TradingViewProps<T>): React.ReactElement;
|
|
174
|
+
export declare function TradingView<T extends string = string>({ data, yMeasureUnit, height, defaultGraph, onGraphSelected, graphs, isMultipleSelect, range, rangeList, setRange, onGraphExpanded, isGraphExpanded, onUnselectSeries, graphsWithNoData, loadingGraphs, isLoading: isLoadingProp, noDataMessage, currentValueDecimals, containerClassName, useSharedPriceScale, showCurrentValue, yScaleMin, yScaleMinMultiple, seriesColorPersistenceKey, ...restProps }: TradingViewProps<T>): React.ReactElement;
|
|
@@ -24,6 +24,12 @@ export interface VerticalIndicatorProps extends Omit<React.HTMLAttributes<HTMLDi
|
|
|
24
24
|
value?: React.ReactNode;
|
|
25
25
|
/** New value shown after an arrow (value → valueTo); the first value is shown with line-through */
|
|
26
26
|
valueTo?: React.ReactNode;
|
|
27
|
+
/**
|
|
28
|
+
* When true (default) and valueTo is provided, the old value (value) is rendered in
|
|
29
|
+
* secondary-foreground color to visually dim it. Set to false to keep the original color
|
|
30
|
+
* (e.g. for Health Factor which uses zone-based coloring).
|
|
31
|
+
*/
|
|
32
|
+
dimPreviousValue?: boolean;
|
|
27
33
|
/** Called when the tip icon is hovered */
|
|
28
34
|
onPointerEnterTip?: () => void;
|
|
29
35
|
}
|
|
@@ -23,6 +23,52 @@ export type SortSetterFunction<T> = (field: T, startFromSort?: SortType) => void
|
|
|
23
23
|
* Hook for managing sort state
|
|
24
24
|
*/
|
|
25
25
|
export declare function useSort<T>(initialState?: FilterSortField<T> | null): readonly [FilterSortField<T> | null, SortSetterFunction<T>];
|
|
26
|
+
/**
|
|
27
|
+
* Ordered list of active sort keys. The first entry is the primary sort key,
|
|
28
|
+
* the second is the tie-breaker, and so on. An empty array means "no sort".
|
|
29
|
+
*/
|
|
30
|
+
export type MultiSortField<T> = ReadonlyArray<FilterSortField<T>>;
|
|
31
|
+
/** Resolved sort state for a single column inside a {@link MultiSortField}. */
|
|
32
|
+
export interface MultiSortFieldState {
|
|
33
|
+
/** Sort direction for this field, or `undefined` when the field is inactive. */
|
|
34
|
+
sort: SortType | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* 1-based position of the field within the active sort keys, or `undefined`
|
|
37
|
+
* when the field is inactive. Use it to render a priority badge (1, 2, …).
|
|
38
|
+
*/
|
|
39
|
+
priority: number | undefined;
|
|
40
|
+
}
|
|
41
|
+
export type MultiSortSetterFunction<T> = (field: T, startFromSort?: SortType) => void;
|
|
42
|
+
/**
|
|
43
|
+
* Resolve the direction and priority of a single field within a multi-sort.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```tsx
|
|
47
|
+
* const { sort, priority } = getSortForFields("type", state);
|
|
48
|
+
* <HeadCell sortDirection={sort} sortPriority={state.length > 1 ? priority : undefined} />
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare const getSortForFields: <T>(field: T, state: MultiSortField<T> | null) => MultiSortFieldState;
|
|
52
|
+
/**
|
|
53
|
+
* Pure reducer behind {@link useMultiSort}. Each field cycles through three
|
|
54
|
+
* states on successive clicks: `startFromSort` → the opposite direction →
|
|
55
|
+
* removed. Clicking a brand-new field makes it the primary key (existing keys
|
|
56
|
+
* become tie-breakers) and the lowest-priority key is dropped once `maxFields`
|
|
57
|
+
* is reached.
|
|
58
|
+
*/
|
|
59
|
+
export declare function nextMultiSortState<T>(prev: MultiSortField<T>, field: T, startFromSort?: SortType, maxFields?: number): MultiSortField<T>;
|
|
60
|
+
export interface UseMultiSortOptions {
|
|
61
|
+
/** Maximum number of simultaneously active sort keys. Defaults to `2`. */
|
|
62
|
+
maxFields?: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Hook for managing sort state across multiple fields (e.g. sort by `type`,
|
|
66
|
+
* then by `apy`). Mirrors {@link useSort} but keeps an ordered list of keys.
|
|
67
|
+
*/
|
|
68
|
+
export declare function useMultiSort<T>(initialState?: MultiSortField<T> | null, { maxFields }?: UseMultiSortOptions): readonly [MultiSortField<T>, MultiSortSetterFunction<T>, {
|
|
69
|
+
readonly removeSortField: (field: T) => void;
|
|
70
|
+
readonly resetSort: () => void;
|
|
71
|
+
}];
|
|
26
72
|
interface GeneralRangeFilterState {
|
|
27
73
|
state: FilterRange | null;
|
|
28
74
|
}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export * from './components/avatar';
|
|
|
14
14
|
export * from './components/badge';
|
|
15
15
|
export * from './components/base-link';
|
|
16
16
|
export * from './components/block-sync';
|
|
17
|
+
export * from './components/block-sync-pill';
|
|
17
18
|
export * from './components/breadcrumbs';
|
|
18
19
|
export * from './components/button-checkbox';
|
|
19
20
|
export * from './components/buttons';
|
|
@@ -142,6 +143,7 @@ export * from './configs/variants';
|
|
|
142
143
|
export * from './hooks';
|
|
143
144
|
export type { LocaleKeys } from './locale';
|
|
144
145
|
export * from './locale';
|
|
146
|
+
export type { BlockSyncProps } from './types/footer';
|
|
145
147
|
export { EnglishLocale };
|
|
146
148
|
export * from './test-ids';
|
|
147
149
|
export * from './utils';
|
|
@@ -18,6 +18,19 @@ declare const _default: {
|
|
|
18
18
|
"components.footer.built": "Built at ETHGlobal MarketMake hackathon.",
|
|
19
19
|
"components.footer.version": "Version {value}",
|
|
20
20
|
|
|
21
|
+
"components.blockSyncPill.syncError": ", sync error",
|
|
22
|
+
"components.blockSyncPill.syncedAt": ", synced at {time}",
|
|
23
|
+
"components.blockSyncPill.syncing": ", syncing…",
|
|
24
|
+
|
|
25
|
+
"components.creditAccountHistory.table.protocol": "Protocol",
|
|
26
|
+
"components.creditAccountHistory.table.operation": "Operation",
|
|
27
|
+
"components.creditAccountHistory.table.details": "Details",
|
|
28
|
+
|
|
29
|
+
"components.notificationCenter.empty": "No notifications yet",
|
|
30
|
+
"components.notificationCenter.requests": "Requests",
|
|
31
|
+
"components.notificationCenter.recent": "Recent",
|
|
32
|
+
"components.notificationCenter.clear": "Clear all",
|
|
33
|
+
|
|
21
34
|
"components.liquidationPrice.check": "Check Area",
|
|
22
35
|
|
|
23
36
|
"components.loading.loading": "Loading",
|