@gearbox-protocol/ui-kit 3.14.0-next.15 → 3.14.0-next.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/cjs/components/composites/tx-preview/confirm/dialog/TransactionConfirmDialogView.cjs +1 -1
  2. package/dist/cjs/components/composites/tx-preview/confirm/dialog/TransactionConfirmShell.cjs +1 -1
  3. package/dist/cjs/components/composites/tx-preview/confirm/dialog/constants.cjs +1 -1
  4. package/dist/cjs/components/composites/tx-preview/confirm/dialog/index.cjs +1 -1
  5. package/dist/cjs/components/composites/tx-preview/confirm/index.cjs +1 -1
  6. package/dist/cjs/components/composites/tx-preview/confirm/preview/OperationPreviewContent.cjs +1 -1
  7. package/dist/cjs/components/composites/tx-preview/confirm/stepper/index.cjs +1 -1
  8. package/dist/cjs/components/composites/tx-preview/confirm/stepper/transactionExecutionStepTypes.cjs +1 -0
  9. package/dist/cjs/components/composites/tx-preview/index.cjs +1 -1
  10. package/dist/esm/components/composites/tx-preview/confirm/dialog/TransactionConfirmDialogView.js +37 -28
  11. package/dist/esm/components/composites/tx-preview/confirm/dialog/TransactionConfirmShell.js +59 -45
  12. package/dist/esm/components/composites/tx-preview/confirm/dialog/constants.js +11 -5
  13. package/dist/esm/components/composites/tx-preview/confirm/dialog/index.js +14 -14
  14. package/dist/esm/components/composites/tx-preview/confirm/index.js +44 -52
  15. package/dist/esm/components/composites/tx-preview/confirm/preview/OperationPreviewContent.js +12 -24
  16. package/dist/esm/components/composites/tx-preview/confirm/stepper/index.js +6 -12
  17. package/dist/esm/components/composites/tx-preview/confirm/stepper/transactionExecutionStepTypes.js +6 -0
  18. package/dist/esm/components/composites/tx-preview/index.js +77 -96
  19. package/dist/globals.css +1 -1
  20. package/dist/types/components/composites/tx-preview/confirm/dialog/TransactionConfirmDialogView.d.ts +6 -2
  21. package/dist/types/components/composites/tx-preview/confirm/dialog/TransactionConfirmPageView.d.ts +1 -1
  22. package/dist/types/components/composites/tx-preview/confirm/dialog/TransactionConfirmShell.d.ts +1 -1
  23. package/dist/types/components/composites/tx-preview/confirm/dialog/constants.d.ts +7 -1
  24. package/dist/types/components/composites/tx-preview/confirm/dialog/index.d.ts +0 -1
  25. package/dist/types/components/composites/tx-preview/confirm/index.d.ts +0 -1
  26. package/dist/types/components/composites/tx-preview/confirm/preview/OperationPreviewContent.d.ts +1 -2
  27. package/dist/types/components/composites/tx-preview/confirm/stepper/TransactionProgressStepper.d.ts +1 -1
  28. package/dist/types/components/composites/tx-preview/confirm/stepper/index.d.ts +1 -2
  29. package/dist/types/components/composites/tx-preview/confirm/stepper/transactionExecutionStepTypes.d.ts +10 -0
  30. package/dist/types/components/composites/tx-preview/index.d.ts +0 -2
  31. package/package.json +1 -1
  32. package/dist/cjs/components/composites/tx-preview/confirm/dialog/useTransactionConfirmFlow.cjs +0 -1
  33. package/dist/cjs/components/composites/tx-preview/confirm/hooks/index.cjs +0 -1
  34. package/dist/cjs/components/composites/tx-preview/confirm/hooks/useCalldataOperationPreview.cjs +0 -1
  35. package/dist/cjs/components/composites/tx-preview/confirm/stepper/computeTransactionExecutionSteps.cjs +0 -1
  36. package/dist/cjs/components/composites/tx-preview/confirm/stepper/useCompletedStepsInSession.cjs +0 -1
  37. package/dist/cjs/components/composites/tx-preview/hooks/useParsedTransaction.cjs +0 -1
  38. package/dist/cjs/components/composites/tx-preview/prerequisites/PrerequisiteRow.cjs +0 -1
  39. package/dist/cjs/components/composites/tx-preview/prerequisites/PrerequisitesCard.cjs +0 -1
  40. package/dist/cjs/components/composites/tx-preview/prerequisites/index.cjs +0 -1
  41. package/dist/cjs/components/composites/tx-preview/prerequisites/prerequisiteDetails.cjs +0 -1
  42. package/dist/cjs/components/composites/tx-preview/prerequisites/usePrerequisites.cjs +0 -1
  43. package/dist/esm/components/composites/tx-preview/confirm/dialog/useTransactionConfirmFlow.js +0 -36
  44. package/dist/esm/components/composites/tx-preview/confirm/hooks/index.js +0 -4
  45. package/dist/esm/components/composites/tx-preview/confirm/hooks/useCalldataOperationPreview.js +0 -35
  46. package/dist/esm/components/composites/tx-preview/confirm/stepper/computeTransactionExecutionSteps.js +0 -55
  47. package/dist/esm/components/composites/tx-preview/confirm/stepper/useCompletedStepsInSession.js +0 -45
  48. package/dist/esm/components/composites/tx-preview/hooks/useParsedTransaction.js +0 -45
  49. package/dist/esm/components/composites/tx-preview/prerequisites/PrerequisiteRow.js +0 -21
  50. package/dist/esm/components/composites/tx-preview/prerequisites/PrerequisitesCard.js +0 -207
  51. package/dist/esm/components/composites/tx-preview/prerequisites/index.js +0 -11
  52. package/dist/esm/components/composites/tx-preview/prerequisites/prerequisiteDetails.js +0 -58
  53. package/dist/esm/components/composites/tx-preview/prerequisites/usePrerequisites.js +0 -39
  54. package/dist/types/components/composites/tx-preview/confirm/dialog/useTransactionConfirmFlow.d.ts +0 -14
  55. package/dist/types/components/composites/tx-preview/confirm/hooks/index.d.ts +0 -1
  56. package/dist/types/components/composites/tx-preview/confirm/hooks/useCalldataOperationPreview.d.ts +0 -19
  57. package/dist/types/components/composites/tx-preview/confirm/stepper/computeTransactionExecutionSteps.d.ts +0 -30
  58. package/dist/types/components/composites/tx-preview/confirm/stepper/useCompletedStepsInSession.d.ts +0 -16
  59. package/dist/types/components/composites/tx-preview/hooks/useParsedTransaction.d.ts +0 -40
  60. package/dist/types/components/composites/tx-preview/prerequisites/PrerequisiteRow.d.ts +0 -11
  61. package/dist/types/components/composites/tx-preview/prerequisites/PrerequisitesCard.d.ts +0 -17
  62. package/dist/types/components/composites/tx-preview/prerequisites/index.d.ts +0 -4
  63. package/dist/types/components/composites/tx-preview/prerequisites/prerequisiteDetails.d.ts +0 -17
  64. package/dist/types/components/composites/tx-preview/prerequisites/usePrerequisites.d.ts +0 -25
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
- import { TransactionExecutionStepView } from '../stepper/computeTransactionExecutionSteps';
2
+ import { TransactionExecutionStepView } from '../stepper/transactionExecutionStepTypes';
3
3
  import { TransactionConfirmPhase } from './transactionConfirmPhase';
4
4
  export interface TransactionConfirmDialogViewProps {
5
5
  readonly open: boolean;
@@ -11,10 +11,14 @@ export interface TransactionConfirmDialogViewProps {
11
11
  readonly previewLoading?: boolean;
12
12
  readonly previewError?: Error | null;
13
13
  readonly previewErrorTitle?: string;
14
+ readonly previewClassName?: string;
15
+ readonly containerClassName?: string;
16
+ readonly containerTestId?: string;
17
+ readonly shellTestId?: string;
14
18
  readonly execution: React.ReactNode;
15
19
  readonly progressSteps?: ReadonlyArray<TransactionExecutionStepView>;
16
20
  readonly renderProgressStepLabel?: (step: TransactionExecutionStepView) => React.ReactNode;
17
21
  readonly result?: React.ReactNode;
18
22
  readonly hideTitleAddonOnResult?: boolean;
19
23
  }
20
- export declare function TransactionConfirmDialogView({ open, onClose, phase, title, titleAddon, preview, previewLoading, previewError, previewErrorTitle, execution, progressSteps, renderProgressStepLabel, result, hideTitleAddonOnResult, }: TransactionConfirmDialogViewProps): React.ReactElement | null;
24
+ export declare function TransactionConfirmDialogView({ open, onClose, phase, title, titleAddon, preview, previewLoading, previewError, previewErrorTitle, previewClassName, containerClassName, containerTestId, shellTestId, execution, progressSteps, renderProgressStepLabel, result, hideTitleAddonOnResult, }: TransactionConfirmDialogViewProps): React.ReactElement | null;
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
- import { TransactionExecutionStepView } from '../stepper/computeTransactionExecutionSteps';
2
+ import { TransactionExecutionStepView } from '../stepper/transactionExecutionStepTypes';
3
3
  import { TransactionConfirmPhase } from './transactionConfirmPhase';
4
4
  export interface TransactionConfirmPageViewProps {
5
5
  readonly phase?: TransactionConfirmPhase;
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
- import { TransactionExecutionStepView } from '../stepper/computeTransactionExecutionSteps';
2
+ import { TransactionExecutionStepView } from '../stepper/transactionExecutionStepTypes';
3
3
  import { TransactionConfirmPhase } from './transactionConfirmPhase';
4
4
  export interface TransactionConfirmShellProps {
5
5
  readonly phase?: TransactionConfirmPhase;
@@ -6,6 +6,12 @@ export declare class TransactionConfirmDialogTest {
6
6
  }
7
7
  /** Outer dialog card: mobile-first full width, fixed 560px from md up. */
8
8
  export declare const transactionConfirmDialogShellVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
9
+ /**
10
+ * Modal confirm: use available viewport height; inner preview scrolls only when
11
+ * content overflows (see `transactionConfirmPreviewScrollVariants`).
12
+ */
13
+ export declare const transactionConfirmModalContainerVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
14
+ /** Scrollable preview column inside confirm / execute body. */
15
+ export declare const transactionConfirmPreviewScrollVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
9
16
  /** Inner shell content: fill the padded dialog container without re-applying width. */
10
17
  export declare const transactionConfirmShellContentVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
11
- export type TransactionConfirmAuthPhase = "agreement" | "awaiting_signature" | "blocked" | "ready";
@@ -6,4 +6,3 @@ export * from './TransactionConfirmShell';
6
6
  export * from './TransactionConfirmShell.constants';
7
7
  export * from './transactionConfirmPhase';
8
8
  export * from './useTransactionConfirmDialog';
9
- export * from './useTransactionConfirmFlow';
@@ -1,7 +1,6 @@
1
1
  export * from './amounts';
2
2
  export * from './dialog';
3
3
  export * from './execution';
4
- export * from './hooks';
5
4
  export * from './preview';
6
5
  export * from './result';
7
6
  export * from './stepper';
@@ -8,6 +8,5 @@ export interface OperationPreviewContentProps {
8
8
  simulation: PoolSimulationResult | undefined;
9
9
  isSimulating: boolean;
10
10
  wallet: Address;
11
- refreshNonce: number;
12
11
  }
13
- export declare function OperationPreviewContent({ sdk, operation, simulation, isSimulating, wallet, refreshNonce, }: OperationPreviewContentProps): React.ReactElement;
12
+ export declare function OperationPreviewContent({ sdk, operation, simulation, isSimulating, wallet, }: OperationPreviewContentProps): React.ReactElement;
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
- import { TransactionExecutionStepView } from './computeTransactionExecutionSteps';
2
+ import { TransactionExecutionStepView } from './transactionExecutionStepTypes';
3
3
  export interface TransactionProgressStepperProps {
4
4
  readonly steps: ReadonlyArray<TransactionExecutionStepView>;
5
5
  readonly renderLabel: (step: TransactionExecutionStepView) => React.ReactNode;
@@ -1,4 +1,3 @@
1
- export * from './computeTransactionExecutionSteps';
2
1
  export * from './constants';
3
2
  export * from './TransactionProgressStepper';
4
- export * from './useCompletedStepsInSession';
3
+ export * from './transactionExecutionStepTypes';
@@ -0,0 +1,10 @@
1
+ export type TransactionExecutionStepId = "approve" | "auth" | "execute";
2
+ export type TransactionExecutionPrerequisiteStepId = Exclude<TransactionExecutionStepId, "execute">;
3
+ export type StepStatus = "completed" | "active" | "upcoming";
4
+ export type TransactionExecutionStepLabelKey = "approve" | "approveBatch" | "auth" | "execute";
5
+ export interface TransactionExecutionStepView {
6
+ id: TransactionExecutionStepId;
7
+ labelKey: TransactionExecutionStepLabelKey;
8
+ status: StepStatus;
9
+ }
10
+ export declare function shouldShowTransactionProgressStepper(steps: ReadonlyArray<Pick<TransactionExecutionStepView, "id">>): boolean;
@@ -11,9 +11,7 @@
11
11
  */
12
12
  export * from './components';
13
13
  export * from './confirm';
14
- export * from './hooks/useParsedTransaction';
15
14
  export * from './operations';
16
- export * from './prerequisites';
17
15
  export * from './state-change';
18
16
  export * from './types';
19
17
  export * from './utils';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gearbox-protocol/ui-kit",
3
- "version": "3.14.0-next.15",
3
+ "version": "3.14.0-next.17",
4
4
  "description": "Internal UI components",
5
5
  "repository": "https://github.com/gearbox-protocol/ui-kit",
6
6
  "license": "MIT",
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react");function S(){const[l,c]=e.useState(!1),[u,s]=e.useState("confirm"),[i,o]=e.useState(void 0),[r,n]=e.useState(0),t=e.useCallback(()=>{s("confirm"),o(void 0),n(0)},[]),b=e.useCallback(()=>{t(),c(!0)},[t]),f=e.useCallback(()=>{c(!1),t()},[t]),m=e.useCallback(()=>{n(a=>a+1)},[]),k=e.useCallback(a=>{o(a),s("awaiting_receipt")},[]),C=e.useCallback(()=>{s("success")},[]),p=e.useCallback(()=>{s("failure")},[]);return{open:l,phase:u,submittedTx:i,refreshNonce:r,openDialog:b,closeDialog:f,bumpRefreshNonce:m,beginAwaitingReceipt:k,markSuccess:C,markFailure:p}}exports.useTransactionConfirmFlow=S;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./useCalldataOperationPreview.cjs");exports.useCalldataOperationPreview=e.useCalldataOperationPreview;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("../../hooks/useParsedTransaction.cjs"),P={chainId:0,tokensMeta:{get:()=>{}},plugins:{adapters:void 0},client:void 0},r="0x0000000000000000000000000000000000000000",p="0x";function m({enabled:d,sdk:i,to:o,calldata:t,wallet:n,refreshNonce:c}){const e=d&&!!i&&!!o&&!!t&&!!n,{data:a,error:u,simulation:l,isSimulating:s}=v.useParsedTransaction({enabled:e,sdk:i??P,to:o??r,calldata:t??p,sender:n??r,refreshNonce:c});return{operation:e?a:void 0,simulation:e?l:void 0,isSimulating:e?s:!1,parseError:e?u:null,isReady:e&&!!a&&!s}}exports.useCalldataOperationPreview=m;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function u(e){return{approve:!e.allowWalletBatching&&(e.needsApproval||e.isApprovalPending),auth:!e.isAuthReady}}function f(e){return!e.allowWalletBatching&&(e.isApprovalPending||e.needsApproval)}function c(e,t){return u(t)[e]}function a(e,t){return t.completedStepsInSession?.includes(e)??!1}function i(e,t){return c(e,t)||a(e,t)}function S(e){const t=[];return i("approve",e)&&t.push("approve"),i("auth",e)&&t.push("auth"),t.push("execute"),t}function d(e,t){return e.isCorrectChain?f(e)?"approve":c("auth",e)?"auth":"execute":t[0]??"execute"}function h(e,t,r,o){const n=o.indexOf(r);return o.indexOf(e)<n?!0:e==="execute"?!1:!!(a(e,t)&&!c(e,t))}function v(e,t){return e==="approve"&&t.allowWalletBatching?"approveBatch":e==="auth"?"auth":e}function s(e){return e.some(t=>t.id!=="execute")}function m(e){const t=S(e),r=d(e,t),o=t.map(n=>{const l=h(n,e,r,t)?"completed":n===r?"active":"upcoming";return{id:n,labelKey:v(n,e),status:l}});return{steps:o,activeStepId:r,showProgressStepper:s(o)}}exports.computeTransactionExecutionSteps=m;exports.getTransactionExecutionStepRequirements=u;exports.shouldShowTransactionProgressStepper=s;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("react"),m=require("./computeTransactionExecutionSteps.cjs");function i(e,n){const t=new Set(e);return n.approve&&t.add("approve"),n.auth&&t.add("auth"),[...t]}function c(e,n,t){const o=new Set(e);return n.includes("approve")&&!t.approve&&o.add("approve"),n.includes("auth")&&!t.auth&&o.add("auth"),[...o]}function l({sessionActive:e,needsApproval:n,isApprovalPending:t=!1,allowWalletBatching:o,isAuthReady:d}){const[u,S]=p.useState([]),[f,a]=p.useState([]),s=m.getTransactionExecutionStepRequirements({needsApproval:n,isApprovalPending:t,allowWalletBatching:o,isAuthReady:d});return p.useEffect(()=>{if(!e){S([]),a([]);return}S(r=>i(r,s))},[e,s.approve,s.auth]),p.useEffect(()=>{e&&a(r=>c(r,u,s))},[e,u,s.approve,s.auth]),f}exports.mergeCompletedStepsInSession=c;exports.mergeStepsSeenInSession=i;exports.useCompletedStepsInSession=l;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("@gearbox-protocol/sdk/preview"),m=require("@tanstack/react-query"),v=require("react");function O(y){const{sdk:n,to:e,calldata:t,sender:o,refreshNonce:c,enabled:s=!0}=y,{parsed:a,error:f}=v.useMemo(()=>{if(!s)return{parsed:void 0,error:null};try{return{parsed:l.parseOperationCalldata({sdk:n,to:e,calldata:t,sender:o}),error:null}}catch(u){return{parsed:void 0,error:u instanceof Error?u:new Error(String(u))}}},[s,n,e,t,o,c]),r=s&&a&&l.isPoolOperation(a)?a:void 0,d=m.useQuery({queryKey:["pool-simulation",e,t,o,c],enabled:s&&r!==void 0,queryFn:()=>l.simulatePoolOperation({sdk:n,operation:r,to:e,calldata:t,wallet:o}),staleTime:Number.POSITIVE_INFINITY,retry:!1}),i=d.data;let p=a;return r&&i?.status==="success"&&(p={...r,transfers:i.transfers}),{data:p,error:f,simulation:i,isSimulating:r!==void 0&&d.isLoading}}exports.useParsedTransaction=O;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("@fortawesome/free-solid-svg-icons"),r=require("../../../icons/fa-icon.cjs"),n=require("../../../vertical-indicator/vertical-indicator.cjs"),a=require("./prerequisiteDetails.cjs");function o({result:i,sdk:t}){const c=i.error?e.jsx(r.FaIcon,{icon:s.faTriangleExclamation,className:"size-4 text-warning"}):i.satisfied?e.jsx(r.FaIcon,{icon:s.faCircleCheck,className:"size-4 text-success"}):e.jsx(r.FaIcon,{icon:s.faXmark,className:"size-4 text-destructive"});return e.jsx(n.VerticalIndicator,{label:e.jsxs("span",{className:"flex items-center gap-2",children:[c,e.jsx("span",{children:i.title})]}),value:i.error?e.jsx("span",{className:"text-destructive text-sm",children:i.error.reason}):a.renderPrerequisiteDetail(i,t)})}exports.PrerequisiteRow=o;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),u=require("../../../cards/card/card.cjs"),d=require("../../../error-message/error-line-message.cjs");require("react-intl");require("../../../buttons/button/button.cjs");require("../../../dialog/dialog-container.cjs");require("react");require("@gearbox-protocol/sdk");require("clsx");require("tailwind-merge");require("sonner");require("@gearbox-protocol/sdk/common-utils");require("luxon");require("../../../../utils/z-index.cjs");const p=require("../../../skeleton/skeleton-stack.cjs");require("../components/AddressAvatar.cjs");require("@gearbox-protocol/static");require("@fortawesome/free-solid-svg-icons");require("../../../icons/fa-icon.cjs");require("../../../accordion/accordion.cjs");require("../../../alert-badge/alert-badge.cjs");require("../../../alert-dialog/alert-dialog.cjs");require("../../../alert-modal/alert-modal.cjs");require("../../../tooltip/simple-tooltip.cjs");require("../../../tooltip/tooltip.cjs");require("../../../arc-loader/arc-loader.cjs");require("../../../asset-line/asset-line.cjs");require("../../../buttons/back-button/back-button.cjs");require("../../../buttons/copy-button/copy-button.cjs");require("../../../buttons/external-button/external-button.cjs");require("../../../buttons/filter-button/filter-button.cjs");require("../../../buttons/navigation-button/navigation-button.cjs");require("../../../buttons/tab-button/tab-button.cjs");require("../../../token-icon/token-icon.cjs");require("wagmi");require("../../../auth/wallet-ui-context.cjs");require("../../../avatar/avatar.cjs");require("../../../badge/badge.cjs");require("../../../base-link/base-link.cjs");require("../../../navigation-context/navigation-context.cjs");require("../../../button-checkbox/button-checkbox.cjs");require("../../../card-grid/card-grid.cjs");require("../../../carousel/carousel.cjs");require("../../../checkbox/checkbox.cjs");require("../../../checkbox/checkbox-labeled.cjs");require("../../../checkbox-item/checkbox-item.cjs");require("../../../client-adapters/styled-button/styled-button.cjs");require("../../../client-adapters/styled-dialog-container/styled-dialog-container.cjs");require("../../../client-adapters/styled-rounded-image/styled-rounded-image.cjs");require("../../../colored-text/colored-text.cjs");require("../../../input/input.cjs");require("../../../with-title/with-title.cjs");require("../../../smart-number-input/balance-indicator.cjs");require("../../../smart-number-input/smart-number-input.cjs");require("../../../table/grid-table.cjs");require("../../../token-symbol/token-symbol.cjs");require("../../../typography/typography.cjs");require("../../../help-tip/help-tip.cjs");require("../../../description/description.cjs");require("../../../confirm-menu/confirm-menu.cjs");require("../../../dialog/dialog-modal-container.cjs");require("../../../text-button/text-button.cjs");require("../../../vertical-indicator/vertical-indicator.cjs");require("../../../points-icon/points-icon.cjs");require("../../../skeleton/skeleton.cjs");require("../../../vertical-list/vertical-list.cjs");require("../../../rounded-image/rounded-image.cjs");require("../../../progress/progress.cjs");require("../../../pool-indicator-icon/pool-indicator-icon.cjs");require("../../strategies-table/components/feature/feature.styles.cjs");require("viem");require("../../../icon-button/icon-button.cjs");require("../../../separate-line/separate-line.cjs");require("../../../tip-card/tip-card.cjs");require("../../strategies-table/components/rewards-tooltip/rewards-tooltip-root.cjs");require("../../../currency-button/currency-button.cjs");require("../../../detailed-apy/detailed-apy.cjs");require("../../../detailed-page-title/detailed-page-title.cjs");require("../../../detailed-page-title/detailed-page-title-copy-button.cjs");require("../../../detailed-page-title/detailed-page-title-explorer-dropdown.cjs");require("../../../modal/modal.cjs");require("@radix-ui/react-dialog");require("../../../dialog/dialog-content.cjs");require("../../../dialog/dialog-description.cjs");require("../../../dialog/dialog-footer.cjs");require("../../../dialog/dialog-header.cjs");require("../../../dialog/dialog-title.cjs");require("../../../dialog/dialog-overlay.cjs");require("../../../label/label.cjs");require("../../../dropdown-menu/dropdown-menu.cjs");require("../../../dropdown-menu/dropdown-menu-checkbox-item.cjs");require("../../../dropdown-menu/dropdown-menu-content.cjs");require("../../../dropdown-menu/dropdown-menu-item.cjs");require("../../../dropdown-menu/dropdown-menu-label.cjs");require("../../../dropdown-menu/dropdown-menu-radio-item.cjs");require("../../../dropdown-menu/dropdown-menu-separator.cjs");require("../../../dropdown-menu/dropdown-menu-shortcut.cjs");require("../../../dropdown-menu/dropdown-menu-sub-content.cjs");require("../../../dropdown-menu/dropdown-menu-sub-trigger.cjs");require("../../../edit-input/edit-input.cjs");require("../../../fadeout-loading/fadeout-loading.cjs");require("../../../filter/filter-block.cjs");require("../../../filter/filter-checkbox-item.cjs");require("../../../filter/filter-chip.cjs");require("../../../filter/filter-chips.cjs");require("../../../filter/filter-dropdown-item.cjs");require("../../../filter/filter-group.cjs");require("../../../filter/filter-label.cjs");require("../../../search-line/search-line.cjs");require("../../../tabs/tabs.cjs");require("../../../filter/filter-modal-item.cjs");require("../../../filter/filter-radio-item.cjs");require("../../../filter/filter-separator.cjs");require("../../../filter/variants.cjs");require("../../../graph/formatters.cjs");require("lightweight-charts");require("../../../graph/graph-view.cjs");require("../../../health-factor/health-factor.cjs");require("../../../horizontal-indicator/horizontal-indicator.cjs");require("../../../layout/col/col.cjs");require("../../../layout/container/container.cjs");require("../../../layout/footer/footer.cjs");require("../../../layout/grid/grid.cjs");require("../../../layout/header/header.cjs");require("../../../layout/layout/layout.cjs");require("../../../layout/main-aside-layout/main-aside-layout.cjs");require("../../../page-title/page-title.cjs");require("../../../layout/social-icons/social-icons.cjs");require("../../../legal-agreement/legal-agreement-theme.cjs");require("../../../link/link.cjs");require("../../../../utils/reactochart-compat.cjs");require("../../../status-elements/status-elements.cjs");require("../../../loader/loader.cjs");require("../../../loading/loading.cjs");require("../../../loading-bar/loading-bar.cjs");require("react-markdown");require("remark-gfm");require("../../../navbar/navbar.cjs");require("../../../navbar/navbar-indicator-context.cjs");require("../../../app-bar/app-bar.cjs");require("../../../navitem/navitem.cjs");require("../../../simple-dropdown/simple-dropdown.cjs");require("../../../progress-bar/progress-bar.cjs");require("../../../radio-group/radio-group.cjs");require("../../../search-bar/search-bar.cjs");require("../../../segmented-control/segmented-control.cjs");require("../../../select/select.cjs");require("../../../separator/separator.cjs");require("../../../simple-accordion/simple-accordion.cjs");require("../../../simple-dropdown/simple-dropdown-menu-item.cjs");require("../../../slider/slider.cjs");require("../../../slider/slider-context.cjs");require("@radix-ui/react-slider");require("../../../spinner/spinner.cjs");require("../../../spinner-loader/spinner-loader.cjs");require("../../../split-list/split-list.cjs");require("../../../stat-badge/stat-badge.cjs");require("../../../status-dot/status-dot.cjs");require("../../../stepper/stepper.cjs");require("../../../switch/switch.cjs");require("../../../table/table.cjs");require("../../../table/grid-table-loader.cjs");require("../../../textarea/textarea.cjs");require("../../../theme-provider.cjs");require("../../../time-to-liquidation/time-to-liquidation.cjs");require("../../../toggle/toggle.cjs");require("../../../with-filter-button/with-filter-button.cjs");const _=require("../components/CollapsibleCard.cjs"),m=require("./PrerequisiteRow.cjs"),x=require("./usePrerequisites.cjs");function P({sdk:q,operation:t,wallet:n,blockNumber:o,refreshNonce:c}){const{data:i,isLoading:a,error:s}=x.usePrerequisites({sdk:q,operation:t,wallet:n,blockNumber:o,refreshNonce:c});if(a)return e.jsxs(u.Card,{children:[e.jsx(u.CardHeader,{children:e.jsx(u.CardTitle,{children:"Prerequisites"})}),e.jsx(u.CardContent,{children:e.jsx(p.SkeletonStack,{lines:3})})]});if(s)return e.jsx(d.ErrorLineMessage,{err:s,title:"Failed to verify prerequisites"});if(!i||i.length===0)return null;const l=i.every(r=>!r.error&&r.satisfied);return e.jsx(_.CollapsibleCard,{value:"prerequisites",title:"Prerequisites",defaultOpen:!l,children:i.map(r=>e.jsx(m.PrerequisiteRow,{result:r,sdk:q},r.id))})}exports.PrerequisitesCard=P;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./PrerequisiteRow.cjs"),i=require("./PrerequisitesCard.cjs"),e=require("./prerequisiteDetails.cjs"),s=require("./usePrerequisites.cjs");exports.PrerequisiteRow=r.PrerequisiteRow;exports.PrerequisitesCard=i.PrerequisitesCard;exports.prerequisiteDetailRenderers=e.prerequisiteDetailRenderers;exports.renderPrerequisiteDetail=e.renderPrerequisiteDetail;exports.usePrerequisites=s.usePrerequisites;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),u=require("viem"),d=require("../../../token-icon/token-icon.cjs"),p=require("../../../token-template/token-template.cjs"),i=require("../utils/poolTokenInfo.cjs");function l({token:e,required:n,actual:r,actualLabel:c="Available"}){const m={symbol:e.symbol,title:e.symbol,decimals:e.decimals},t=o=>o===u.maxUint256?s.jsxs("span",{className:"flex items-center gap-1",title:"Unlimited",children:[s.jsx("span",{"aria-hidden":!0,children:"∞"}),s.jsx("span",{children:e.symbol})]}):s.jsx(p.TokenTemplate,{value:o,token:m,showSymbol:!0});return s.jsxs("span",{className:"flex flex-col items-end gap-0.5 text-sm",children:[s.jsxs("span",{className:"flex items-center gap-1",children:[s.jsx("span",{className:"text-muted-foreground",children:"Required"}),s.jsx(d.TokenIcon,{symbol:e.symbol,size:14}),t(n)]}),r!==void 0?s.jsxs("span",{className:"flex items-center gap-1",children:[s.jsx("span",{className:"text-muted-foreground",children:c}),t(r)]}):null]})}const a={allowance:(e,n)=>s.jsx(l,{token:i.resolveToken(n,e.token),required:e.required,actual:e.actual,actualLabel:"Approved"}),balance:(e,n)=>s.jsx(l,{token:i.resolveToken(n,e.token),required:e.required,actual:e.actual})};function x(e,n){const r=a[e.kind];return r(e.detail,n)}exports.prerequisiteDetailRenderers=a;exports.renderPrerequisiteDetail=x;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@gearbox-protocol/sdk"),i=require("@gearbox-protocol/sdk/preview"),o=require("@tanstack/react-query");function q({sdk:u,operation:e,wallet:r,blockNumber:s,refreshNonce:n}){return o.useQuery({queryKey:["prerequisites",c.json_stringify(e),r,s?.toString(),n],queryFn:()=>{const t={sdk:u,wallet:r,blockNumber:s};return i.verifyPrerequisites(i.buildPrerequisites(e,t),t)},staleTime:1e4,refetchOnWindowFocus:!0,refetchInterval:3e4,retry:!1})}exports.usePrerequisites=q;
@@ -1,36 +0,0 @@
1
- import { useState as o, useCallback as e } from "react";
2
- function k() {
3
- const [a, c] = o(!1), [u, s] = o("confirm"), [f, i] = o(void 0), [l, r] = o(0), t = e(() => {
4
- s("confirm"), i(void 0), r(0);
5
- }, []), m = e(() => {
6
- t(), c(!0);
7
- }, [t]), p = e(() => {
8
- c(!1), t();
9
- }, [t]), b = e(() => {
10
- r((n) => n + 1);
11
- }, []), g = e(
12
- (n) => {
13
- i(n), s("awaiting_receipt");
14
- },
15
- []
16
- ), h = e(() => {
17
- s("success");
18
- }, []), d = e(() => {
19
- s("failure");
20
- }, []);
21
- return {
22
- open: a,
23
- phase: u,
24
- submittedTx: f,
25
- refreshNonce: l,
26
- openDialog: m,
27
- closeDialog: p,
28
- bumpRefreshNonce: b,
29
- beginAwaitingReceipt: g,
30
- markSuccess: h,
31
- markFailure: d
32
- };
33
- }
34
- export {
35
- k as useTransactionConfirmFlow
36
- };
@@ -1,4 +0,0 @@
1
- import { useCalldataOperationPreview as r } from "./useCalldataOperationPreview.js";
2
- export {
3
- r as useCalldataOperationPreview
4
- };
@@ -1,35 +0,0 @@
1
- import { useParsedTransaction as p } from "../../hooks/useParsedTransaction.js";
2
- const v = {
3
- chainId: 0,
4
- tokensMeta: { get: () => {
5
- } },
6
- plugins: { adapters: void 0 },
7
- client: void 0
8
- }, s = "0x0000000000000000000000000000000000000000", m = "0x";
9
- function E({
10
- enabled: d,
11
- sdk: n,
12
- to: e,
13
- calldata: o,
14
- wallet: a,
15
- refreshNonce: c
16
- }) {
17
- const i = d && !!n && !!e && !!o && !!a, { data: t, error: l, simulation: u, isSimulating: r } = p({
18
- enabled: i,
19
- sdk: n ?? v,
20
- to: e ?? s,
21
- calldata: o ?? m,
22
- sender: a ?? s,
23
- refreshNonce: c
24
- });
25
- return {
26
- operation: i ? t : void 0,
27
- simulation: i ? u : void 0,
28
- isSimulating: i ? r : !1,
29
- parseError: i ? l : null,
30
- isReady: i && !!t && !r
31
- };
32
- }
33
- export {
34
- E as useCalldataOperationPreview
35
- };
@@ -1,55 +0,0 @@
1
- function p(e) {
2
- return {
3
- approve: !e.allowWalletBatching && (e.needsApproval || e.isApprovalPending),
4
- auth: !e.isAuthReady
5
- };
6
- }
7
- function l(e) {
8
- return !e.allowWalletBatching && (e.isApprovalPending || e.needsApproval);
9
- }
10
- function c(e, t) {
11
- return p(t)[e];
12
- }
13
- function u(e, t) {
14
- return t.completedStepsInSession?.includes(e) ?? !1;
15
- }
16
- function i(e, t) {
17
- return c(e, t) || u(e, t);
18
- }
19
- function f(e) {
20
- const t = [];
21
- return i("approve", e) && t.push("approve"), i("auth", e) && t.push("auth"), t.push("execute"), t;
22
- }
23
- function v(e, t) {
24
- return e.isCorrectChain ? l(e) ? "approve" : c("auth", e) ? "auth" : "execute" : t[0] ?? "execute";
25
- }
26
- function h(e, t, r, o) {
27
- const n = o.indexOf(r);
28
- return o.indexOf(e) < n ? !0 : e === "execute" ? !1 : !!(u(e, t) && !c(e, t));
29
- }
30
- function d(e, t) {
31
- return e === "approve" && t.allowWalletBatching ? "approveBatch" : e === "auth" ? "auth" : e;
32
- }
33
- function S(e) {
34
- return e.some((t) => t.id !== "execute");
35
- }
36
- function x(e) {
37
- const t = f(e), r = v(e, t), o = t.map((n) => {
38
- const s = h(n, e, r, t) ? "completed" : n === r ? "active" : "upcoming";
39
- return {
40
- id: n,
41
- labelKey: d(n, e),
42
- status: s
43
- };
44
- });
45
- return {
46
- steps: o,
47
- activeStepId: r,
48
- showProgressStepper: S(o)
49
- };
50
- }
51
- export {
52
- x as computeTransactionExecutionSteps,
53
- p as getTransactionExecutionStepRequirements,
54
- S as shouldShowTransactionProgressStepper
55
- };
@@ -1,45 +0,0 @@
1
- import { useState as S, useEffect as i } from "react";
2
- import { getTransactionExecutionStepRequirements as c } from "./computeTransactionExecutionSteps.js";
3
- function m(e, n) {
4
- const t = new Set(e);
5
- return n.approve && t.add("approve"), n.auth && t.add("auth"), [...t];
6
- }
7
- function h(e, n, t) {
8
- const p = new Set(e);
9
- return n.includes("approve") && !t.approve && p.add("approve"), n.includes("auth") && !t.auth && p.add("auth"), [...p];
10
- }
11
- function v({
12
- sessionActive: e,
13
- needsApproval: n,
14
- isApprovalPending: t = !1,
15
- allowWalletBatching: p,
16
- isAuthReady: d
17
- }) {
18
- const [s, a] = S([]), [f, u] = S([]), o = c({
19
- needsApproval: n,
20
- isApprovalPending: t,
21
- allowWalletBatching: p,
22
- isAuthReady: d
23
- });
24
- return i(() => {
25
- if (!e) {
26
- a([]), u([]);
27
- return;
28
- }
29
- a((r) => m(r, o));
30
- }, [e, o.approve, o.auth]), i(() => {
31
- e && u(
32
- (r) => h(r, s, o)
33
- );
34
- }, [
35
- e,
36
- s,
37
- o.approve,
38
- o.auth
39
- ]), f;
40
- }
41
- export {
42
- h as mergeCompletedStepsInSession,
43
- m as mergeStepsSeenInSession,
44
- v as useCompletedStepsInSession
45
- };
@@ -1,45 +0,0 @@
1
- import { parseOperationCalldata as f, isPoolOperation as y, simulatePoolOperation as v } from "@gearbox-protocol/sdk/preview";
2
- import { useQuery as I } from "@tanstack/react-query";
3
- import { useMemo as O } from "react";
4
- function g(c) {
5
- const { sdk: n, to: e, calldata: o, sender: t, refreshNonce: u, enabled: a = !0 } = c, { parsed: s, error: m } = O(() => {
6
- if (!a)
7
- return { parsed: void 0, error: null };
8
- try {
9
- return {
10
- parsed: f({
11
- sdk: n,
12
- to: e,
13
- calldata: o,
14
- sender: t
15
- }),
16
- error: null
17
- };
18
- } catch (l) {
19
- return { parsed: void 0, error: l instanceof Error ? l : new Error(String(l)) };
20
- }
21
- }, [a, n, e, o, t, u]), r = a && s && y(s) ? s : void 0, d = I({
22
- queryKey: ["pool-simulation", e, o, t, u],
23
- enabled: a && r !== void 0,
24
- queryFn: () => v({
25
- // `enabled` guarantees `poolOp` is defined when this runs.
26
- sdk: n,
27
- operation: r,
28
- to: e,
29
- calldata: o,
30
- wallet: t
31
- }),
32
- staleTime: Number.POSITIVE_INFINITY,
33
- retry: !1
34
- }), i = d.data;
35
- let p = s;
36
- return r && i?.status === "success" && (p = { ...r, transfers: i.transfers }), {
37
- data: p,
38
- error: m,
39
- simulation: i,
40
- isSimulating: r !== void 0 && d.isLoading
41
- };
42
- }
43
- export {
44
- g as useParsedTransaction
45
- };
@@ -1,21 +0,0 @@
1
- import { jsx as r, jsxs as s } from "react/jsx-runtime";
2
- import { faTriangleExclamation as c, faCircleCheck as o, faXmark as n } from "@fortawesome/free-solid-svg-icons";
3
- import { FaIcon as i } from "../../../icons/fa-icon.js";
4
- import { VerticalIndicator as m } from "../../../vertical-indicator/vertical-indicator.js";
5
- import { renderPrerequisiteDetail as l } from "./prerequisiteDetails.js";
6
- function h({ result: e, sdk: a }) {
7
- const t = e.error ? /* @__PURE__ */ r(i, { icon: c, className: "size-4 text-warning" }) : e.satisfied ? /* @__PURE__ */ r(i, { icon: o, className: "size-4 text-success" }) : /* @__PURE__ */ r(i, { icon: n, className: "size-4 text-destructive" });
8
- return /* @__PURE__ */ r(
9
- m,
10
- {
11
- label: /* @__PURE__ */ s("span", { className: "flex items-center gap-2", children: [
12
- t,
13
- /* @__PURE__ */ r("span", { children: e.title })
14
- ] }),
15
- value: e.error ? /* @__PURE__ */ r("span", { className: "text-destructive text-sm", children: e.error.reason }) : l(e, a)
16
- }
17
- );
18
- }
19
- export {
20
- h as PrerequisiteRow
21
- };