@gearbox-protocol/ui-kit 4.7.0 → 4.8.0-next.1
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 +5 -0
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/user-agreements/agreement-cache.cjs +1 -0
- package/dist/cjs/user-agreements/agreement-error.cjs +1 -0
- package/dist/cjs/user-agreements/agreement-service.cjs +1 -0
- package/dist/cjs/user-agreements/index.cjs +1 -0
- package/dist/cjs/user-agreements/legal-messages.cjs +18 -0
- package/dist/cjs/user-agreements/types.cjs +1 -0
- package/dist/cjs/user-agreements/use-agreement.cjs +1 -0
- package/dist/cjs/user-agreements/use-blocked-region.cjs +1 -0
- package/dist/cjs/utils/index.cjs +1 -1
- package/dist/cjs/utils/wallet.cjs +1 -0
- package/dist/esm/index.js +181 -176
- package/dist/esm/user-agreements/agreement-cache.js +15 -0
- package/dist/esm/user-agreements/agreement-error.js +44 -0
- package/dist/esm/user-agreements/agreement-service.js +122 -0
- package/dist/esm/user-agreements/index.js +25 -0
- package/dist/esm/user-agreements/legal-messages.js +61 -0
- package/dist/esm/user-agreements/types.js +1 -0
- package/dist/esm/user-agreements/use-agreement.js +130 -0
- package/dist/esm/user-agreements/use-blocked-region.js +24 -0
- package/dist/esm/utils/index.js +30 -25
- package/dist/esm/utils/wallet.js +37 -0
- package/dist/types/user-agreements/agreement-cache.d.ts +11 -0
- package/dist/types/user-agreements/agreement-error.d.ts +19 -0
- package/dist/types/user-agreements/agreement-service.d.ts +25 -0
- package/dist/types/user-agreements/index.d.ts +6 -0
- package/dist/types/user-agreements/legal-messages.d.ts +49 -0
- package/dist/types/user-agreements/types.d.ts +28 -0
- package/dist/types/user-agreements/use-agreement.d.ts +76 -0
- package/dist/types/user-agreements/use-blocked-region.d.ts +15 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/wallet.d.ts +25 -0
- package/package.json +20 -5
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Address } from 'viem';
|
|
2
|
+
import { AgreementRecord } from './agreement-cache';
|
|
3
|
+
import { AgreementError } from './agreement-error';
|
|
4
|
+
import { AgreementConfig, AgreementResult, AgreementStatus, CheckAgreementProps, SignAgreementProps } from './types';
|
|
5
|
+
export interface CheckAgreementErrorEvent {
|
|
6
|
+
error: AgreementError;
|
|
7
|
+
account: Address;
|
|
8
|
+
chainId: number;
|
|
9
|
+
}
|
|
10
|
+
export interface SignAgreementEvent {
|
|
11
|
+
account: Address;
|
|
12
|
+
chainId: number;
|
|
13
|
+
legalMessageVersion: number;
|
|
14
|
+
}
|
|
15
|
+
export interface SignAgreementSuccessEvent {
|
|
16
|
+
account: Address;
|
|
17
|
+
result: AgreementResult;
|
|
18
|
+
chainId: number;
|
|
19
|
+
legalMessageVersion: number;
|
|
20
|
+
}
|
|
21
|
+
export interface SignAgreementErrorEvent {
|
|
22
|
+
error: AgreementError;
|
|
23
|
+
account: Address;
|
|
24
|
+
chainId: number;
|
|
25
|
+
}
|
|
26
|
+
export interface UseAgreementOptions {
|
|
27
|
+
/** Agreement service configuration */
|
|
28
|
+
config: AgreementConfig;
|
|
29
|
+
/** Account address (optional, falls back to wagmi's useAccount) */
|
|
30
|
+
account?: Address;
|
|
31
|
+
/** Current chain ID (optional, falls back to wagmi's useChainId) */
|
|
32
|
+
chainId?: number;
|
|
33
|
+
/** Auto-check agreement status on mount */
|
|
34
|
+
autoCheck?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Constant reference with additional query key parts, used to namespace
|
|
37
|
+
* statuses, e.g. ["RWA"] or ["COMMON"] for the RWA or combined agreement
|
|
38
|
+
*/
|
|
39
|
+
additionalQueryDep?: string[];
|
|
40
|
+
onCheckAgreement?: (props: CheckAgreementProps) => void;
|
|
41
|
+
onCheckAgreementError?: (event: CheckAgreementErrorEvent) => void;
|
|
42
|
+
onSignAgreement?: (event: SignAgreementEvent) => void;
|
|
43
|
+
onSignAgreementSuccess?: (event: SignAgreementSuccessEvent) => void;
|
|
44
|
+
onSignAgreementError?: (event: SignAgreementErrorEvent) => void;
|
|
45
|
+
}
|
|
46
|
+
export interface UseAgreementReturn {
|
|
47
|
+
/** Current agreement status */
|
|
48
|
+
status: AgreementStatus | undefined;
|
|
49
|
+
/** Whether check is in progress */
|
|
50
|
+
isLoading: boolean;
|
|
51
|
+
/** Whether signing is in progress */
|
|
52
|
+
isSigning: boolean;
|
|
53
|
+
/** Error if check/sign failed */
|
|
54
|
+
error: Error | null;
|
|
55
|
+
/** Check agreement status */
|
|
56
|
+
checkAgreement: () => Promise<AgreementResult | undefined>;
|
|
57
|
+
/** Sign the legal agreement */
|
|
58
|
+
signAgreement: (props: SignAgreementProps) => Promise<AgreementResult | undefined>;
|
|
59
|
+
/** Whether user has an older signature (needs re-sign) */
|
|
60
|
+
hasV2Signature: boolean;
|
|
61
|
+
/** Legal message text */
|
|
62
|
+
legalMessage: string;
|
|
63
|
+
/** Legal message version */
|
|
64
|
+
legalMessageVersion: number;
|
|
65
|
+
/** All agreement statuses (for multiple accounts) */
|
|
66
|
+
allStatuses: AgreementRecord;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Checks and signs the legal agreement, caching statuses in react-query.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```tsx
|
|
73
|
+
* const { status, signAgreement } = useAgreement({ config: {} });
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export declare function useAgreement(options: UseAgreementOptions): UseAgreementReturn;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AgreementConfig } from './types';
|
|
2
|
+
export interface UseBlockedRegionReturn {
|
|
3
|
+
isBlocked: boolean;
|
|
4
|
+
isLoading: boolean;
|
|
5
|
+
isError: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Checks whether the user's region is blocked via the access check endpoint.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* const { isBlocked } = useBlockedRegion({});
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare function useBlockedRegion(config: AgreementConfig): UseBlockedRegionReturn;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type WalletType = "EOA" | "UNKNOWN_CONTRACT" | "UNKNOWN";
|
|
2
|
+
/**
|
|
3
|
+
* Minimal connector shape, compatible with any wagmi version
|
|
4
|
+
*/
|
|
5
|
+
export interface ConnectorLike {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
type?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Parent domains that embed the app as a Safe app
|
|
12
|
+
*/
|
|
13
|
+
export declare const DEFAULT_SAFE_DOMAINS: RegExp[];
|
|
14
|
+
export declare function isSafeAppsSDK(connector: ConnectorLike): boolean;
|
|
15
|
+
export declare function isBinanceSDK(connector: ConnectorLike): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Whether the app runs in an iframe embedded by one of the given domains.
|
|
18
|
+
* Always false outside the browser.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* isSafeDomain([...DEFAULT_SAFE_DOMAINS, /my-safe\.example\.com$/]);
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare function isSafeDomain(domains?: RegExp[]): boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gearbox-protocol/ui-kit",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.8.0-next.1",
|
|
4
4
|
"description": "Internal UI components",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -29,6 +29,11 @@
|
|
|
29
29
|
"import": "./dist/esm/configs/tailwind-preset.js",
|
|
30
30
|
"default": "./dist/cjs/configs/tailwind-preset.cjs"
|
|
31
31
|
},
|
|
32
|
+
"./user-agreements": {
|
|
33
|
+
"types": "./dist/types/user-agreements/index.d.ts",
|
|
34
|
+
"import": "./dist/esm/user-agreements/index.js",
|
|
35
|
+
"default": "./dist/cjs/user-agreements/index.cjs"
|
|
36
|
+
},
|
|
32
37
|
"./globals.css": "./dist/globals.css",
|
|
33
38
|
"./grid-safelist.css": "./dist/grid-safelist.css",
|
|
34
39
|
"./theme.css": "./src/styles/theme.css",
|
|
@@ -76,24 +81,29 @@
|
|
|
76
81
|
"@radix-ui/react-tooltip": "^1.1.6",
|
|
77
82
|
"class-variance-authority": "^0.7.1",
|
|
78
83
|
"clsx": "^2.1.1",
|
|
79
|
-
"react-markdown": "^10.1.0",
|
|
80
|
-
"remark-gfm": "^4.0.1",
|
|
81
84
|
"lightweight-charts": "^5.2.1",
|
|
82
85
|
"luxon": "^3.5.0",
|
|
86
|
+
"react-markdown": "^10.1.0",
|
|
87
|
+
"remark-gfm": "^4.0.1",
|
|
83
88
|
"tailwind-merge": "^3.4.0",
|
|
84
89
|
"tailwindcss-animate": "^1.0.7"
|
|
85
90
|
},
|
|
86
91
|
"peerDependencies": {
|
|
87
92
|
"@gearbox-protocol/sdk": "*",
|
|
93
|
+
"@tanstack/react-query": "^5.0.0",
|
|
88
94
|
"@types/react": "^18 || ^19",
|
|
89
95
|
"react": "^18 || ^19",
|
|
90
96
|
"react-intl": "^6.0.0 || ^7.0.0 || ^10.0.0",
|
|
91
97
|
"react-router-dom": "^6.0.0 || ^7.0.0",
|
|
92
98
|
"sonner": "^2.0.0",
|
|
93
99
|
"tailwindcss": "^4.0.0",
|
|
94
|
-
"viem": "^2.0.0"
|
|
100
|
+
"viem": "^2.0.0",
|
|
101
|
+
"wagmi": "^2.0.0 || ^3.0.0"
|
|
95
102
|
},
|
|
96
103
|
"peerDependenciesMeta": {
|
|
104
|
+
"@tanstack/react-query": {
|
|
105
|
+
"optional": true
|
|
106
|
+
},
|
|
97
107
|
"react-intl": {
|
|
98
108
|
"optional": true
|
|
99
109
|
},
|
|
@@ -102,6 +112,9 @@
|
|
|
102
112
|
},
|
|
103
113
|
"tailwindcss": {
|
|
104
114
|
"optional": true
|
|
115
|
+
},
|
|
116
|
+
"wagmi": {
|
|
117
|
+
"optional": true
|
|
105
118
|
}
|
|
106
119
|
},
|
|
107
120
|
"devDependencies": {
|
|
@@ -119,6 +132,7 @@
|
|
|
119
132
|
"@storybook/addon-vitest": "^10.0.8",
|
|
120
133
|
"@storybook/react-vite": "^10.0.8",
|
|
121
134
|
"@tailwindcss/postcss": "^4.3.3",
|
|
135
|
+
"@tanstack/react-query": "^5.104.1",
|
|
122
136
|
"@types/cross-spawn": "^6.0.6",
|
|
123
137
|
"@types/luxon": "^3.7.5",
|
|
124
138
|
"@types/react": "^19.2.18",
|
|
@@ -151,7 +165,8 @@
|
|
|
151
165
|
"vite": "^6.3.5",
|
|
152
166
|
"vite-plugin-dts": "^4.5.4",
|
|
153
167
|
"vite-tsconfig-paths": "^5.1.4",
|
|
154
|
-
"vitest": "^4.0.14"
|
|
168
|
+
"vitest": "^4.0.14",
|
|
169
|
+
"wagmi": "^3.7.7"
|
|
155
170
|
},
|
|
156
171
|
"commitlint": {
|
|
157
172
|
"extends": [
|