@gearbox-protocol/permissionless-ui 1.9.3 → 1.9.4
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/dist/cjs/components/auth/connect-required.cjs +38 -0
- package/dist/cjs/components/auth/index.cjs +2 -0
- package/dist/cjs/components/index.cjs +2 -0
- package/dist/cjs/components/table/editable-grid-table.cjs +1 -0
- package/dist/cjs/components/table/editable-table.cjs +1 -0
- package/dist/cjs/index.cjs +2 -0
- package/dist/esm/components/auth/connect-required.js +34 -0
- package/dist/esm/components/auth/index.js +1 -0
- package/dist/esm/components/index.js +1 -0
- package/dist/esm/components/table/editable-grid-table.js +1 -0
- package/dist/esm/components/table/editable-table.js +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/types/components/auth/connect-required.d.ts +32 -0
- package/dist/types/components/auth/index.d.ts +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
require('../buttons/back-button/back-button.cjs');
|
|
7
|
+
const components_buttons_button_button = require('../buttons/button/button.cjs');
|
|
8
|
+
require('../buttons/copy-button/copy-button.cjs');
|
|
9
|
+
require('../buttons/external-button/external-button.cjs');
|
|
10
|
+
require('../buttons/filter-button/filter-button.cjs');
|
|
11
|
+
require('../buttons/navigation-button/navigation-button.cjs');
|
|
12
|
+
require('react');
|
|
13
|
+
require('clsx');
|
|
14
|
+
require('tailwind-merge');
|
|
15
|
+
require('sonner');
|
|
16
|
+
require('@gearbox-protocol/sdk');
|
|
17
|
+
const components_buttons_tabButton_tabButton = require('../buttons/tab-button/tab-button.cjs');
|
|
18
|
+
const connectkit = require('connectkit');
|
|
19
|
+
const wagmi = require('wagmi');
|
|
20
|
+
|
|
21
|
+
function ConnectRequired({
|
|
22
|
+
children,
|
|
23
|
+
owner,
|
|
24
|
+
...customProps
|
|
25
|
+
}) {
|
|
26
|
+
const { setOpen } = connectkit.useModal();
|
|
27
|
+
const { isConnected, address } = wagmi.useAccount();
|
|
28
|
+
const ButtonComponent = Object.keys(customProps).length > 0 ? components_buttons_button_button.Button : components_buttons_tabButton_tabButton.TabButton;
|
|
29
|
+
if (isConnected && address) {
|
|
30
|
+
if (owner && address?.toLowerCase() !== owner.toLowerCase()) {
|
|
31
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ButtonComponent, { ...customProps, disabled: true, children: "You are not the author" });
|
|
32
|
+
}
|
|
33
|
+
return children;
|
|
34
|
+
}
|
|
35
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ButtonComponent, { ...customProps, onClick: () => setOpen(true), children: "Connect Wallet" });
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
exports.ConnectRequired = ConnectRequired;
|
|
@@ -4,8 +4,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4
4
|
|
|
5
5
|
const components_auth_signinRequired = require('./signin-required.cjs');
|
|
6
6
|
const components_auth_siweProvider = require('./siwe-provider.cjs');
|
|
7
|
+
const components_auth_connectRequired = require('./connect-required.cjs');
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
exports.SignInRequired = components_auth_signinRequired.SignInRequired;
|
|
11
12
|
exports.SIWEClientProvider = components_auth_siweProvider.SIWEClientProvider;
|
|
13
|
+
exports.ConnectRequired = components_auth_connectRequired.ConnectRequired;
|
|
@@ -8,6 +8,7 @@ const components_assetsListCell_assetsListCell = require('./assets-list-cell/ass
|
|
|
8
8
|
const components_assetsRatio_assetsRatio = require('./assets-ratio/assets-ratio.cjs');
|
|
9
9
|
const components_auth_signinRequired = require('./auth/signin-required.cjs');
|
|
10
10
|
const components_auth_siweProvider = require('./auth/siwe-provider.cjs');
|
|
11
|
+
const components_auth_connectRequired = require('./auth/connect-required.cjs');
|
|
11
12
|
const components_badge_badge = require('./badge/badge.cjs');
|
|
12
13
|
const components_baseLink_baseLink = require('./base-link/base-link.cjs');
|
|
13
14
|
const components_blockSync_blockSync = require('./block-sync/block-sync.cjs');
|
|
@@ -154,6 +155,7 @@ exports.AssetsListCell = components_assetsListCell_assetsListCell.AssetsListCell
|
|
|
154
155
|
exports.AssetsRatio = components_assetsRatio_assetsRatio.AssetsRatio;
|
|
155
156
|
exports.SignInRequired = components_auth_signinRequired.SignInRequired;
|
|
156
157
|
exports.SIWEClientProvider = components_auth_siweProvider.SIWEClientProvider;
|
|
158
|
+
exports.ConnectRequired = components_auth_connectRequired.ConnectRequired;
|
|
157
159
|
exports.Badge = components_badge_badge.Badge;
|
|
158
160
|
exports.badgeVariants = components_badge_badge.badgeVariants;
|
|
159
161
|
exports.BaseLink = components_baseLink_baseLink.BaseLink;
|
|
@@ -19,6 +19,7 @@ require('tailwind-merge');
|
|
|
19
19
|
require('sonner');
|
|
20
20
|
require('@gearbox-protocol/sdk');
|
|
21
21
|
const components_buttons_tabButton_tabButton = require('../buttons/tab-button/tab-button.cjs');
|
|
22
|
+
require('wagmi');
|
|
22
23
|
const components_tokenIcon_tokenIcon = require('../token-icon/token-icon.cjs');
|
|
23
24
|
const components_table_gridTable = require('./grid-table.cjs');
|
|
24
25
|
const components_table_updatedValue = require('./updated-value.cjs');
|
|
@@ -18,6 +18,7 @@ require('tailwind-merge');
|
|
|
18
18
|
require('sonner');
|
|
19
19
|
require('@gearbox-protocol/sdk');
|
|
20
20
|
const components_buttons_tabButton_tabButton = require('../buttons/tab-button/tab-button.cjs');
|
|
21
|
+
require('wagmi');
|
|
21
22
|
const components_tokenIcon_tokenIcon = require('../token-icon/token-icon.cjs');
|
|
22
23
|
const components_table_table = require('./table.cjs');
|
|
23
24
|
const components_table_updatedValue = require('./updated-value.cjs');
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -8,6 +8,7 @@ const components_assetsListCell_assetsListCell = require('./components/assets-li
|
|
|
8
8
|
const components_assetsRatio_assetsRatio = require('./components/assets-ratio/assets-ratio.cjs');
|
|
9
9
|
const components_auth_signinRequired = require('./components/auth/signin-required.cjs');
|
|
10
10
|
const components_auth_siweProvider = require('./components/auth/siwe-provider.cjs');
|
|
11
|
+
const components_auth_connectRequired = require('./components/auth/connect-required.cjs');
|
|
11
12
|
const components_badge_badge = require('./components/badge/badge.cjs');
|
|
12
13
|
const components_baseLink_baseLink = require('./components/base-link/base-link.cjs');
|
|
13
14
|
const components_blockSync_blockSync = require('./components/block-sync/block-sync.cjs');
|
|
@@ -174,6 +175,7 @@ exports.AssetsListCell = components_assetsListCell_assetsListCell.AssetsListCell
|
|
|
174
175
|
exports.AssetsRatio = components_assetsRatio_assetsRatio.AssetsRatio;
|
|
175
176
|
exports.SignInRequired = components_auth_signinRequired.SignInRequired;
|
|
176
177
|
exports.SIWEClientProvider = components_auth_siweProvider.SIWEClientProvider;
|
|
178
|
+
exports.ConnectRequired = components_auth_connectRequired.ConnectRequired;
|
|
177
179
|
exports.Badge = components_badge_badge.Badge;
|
|
178
180
|
exports.badgeVariants = components_badge_badge.badgeVariants;
|
|
179
181
|
exports.BaseLink = components_baseLink_baseLink.BaseLink;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import '../buttons/back-button/back-button.js';
|
|
3
|
+
import { Button } from '../buttons/button/button.js';
|
|
4
|
+
import '../buttons/copy-button/copy-button.js';
|
|
5
|
+
import '../buttons/external-button/external-button.js';
|
|
6
|
+
import '../buttons/filter-button/filter-button.js';
|
|
7
|
+
import '../buttons/navigation-button/navigation-button.js';
|
|
8
|
+
import 'react';
|
|
9
|
+
import 'clsx';
|
|
10
|
+
import 'tailwind-merge';
|
|
11
|
+
import 'sonner';
|
|
12
|
+
import '@gearbox-protocol/sdk';
|
|
13
|
+
import { TabButton } from '../buttons/tab-button/tab-button.js';
|
|
14
|
+
import { useModal } from 'connectkit';
|
|
15
|
+
import { useAccount } from 'wagmi';
|
|
16
|
+
|
|
17
|
+
function ConnectRequired({
|
|
18
|
+
children,
|
|
19
|
+
owner,
|
|
20
|
+
...customProps
|
|
21
|
+
}) {
|
|
22
|
+
const { setOpen } = useModal();
|
|
23
|
+
const { isConnected, address } = useAccount();
|
|
24
|
+
const ButtonComponent = Object.keys(customProps).length > 0 ? Button : TabButton;
|
|
25
|
+
if (isConnected && address) {
|
|
26
|
+
if (owner && address?.toLowerCase() !== owner.toLowerCase()) {
|
|
27
|
+
return /* @__PURE__ */ jsx(ButtonComponent, { ...customProps, disabled: true, children: "You are not the author" });
|
|
28
|
+
}
|
|
29
|
+
return children;
|
|
30
|
+
}
|
|
31
|
+
return /* @__PURE__ */ jsx(ButtonComponent, { ...customProps, onClick: () => setOpen(true), children: "Connect Wallet" });
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { ConnectRequired };
|
|
@@ -4,6 +4,7 @@ export { AssetsListCell } from './assets-list-cell/assets-list-cell.js';
|
|
|
4
4
|
export { AssetsRatio } from './assets-ratio/assets-ratio.js';
|
|
5
5
|
export { SignInRequired } from './auth/signin-required.js';
|
|
6
6
|
export { SIWEClientProvider } from './auth/siwe-provider.js';
|
|
7
|
+
export { ConnectRequired } from './auth/connect-required.js';
|
|
7
8
|
export { Badge, badgeVariants } from './badge/badge.js';
|
|
8
9
|
export { BaseLink } from './base-link/base-link.js';
|
|
9
10
|
export { BlockSync } from './block-sync/block-sync.js';
|
|
@@ -15,6 +15,7 @@ import 'tailwind-merge';
|
|
|
15
15
|
import 'sonner';
|
|
16
16
|
import '@gearbox-protocol/sdk';
|
|
17
17
|
import { TabButton } from '../buttons/tab-button/tab-button.js';
|
|
18
|
+
import 'wagmi';
|
|
18
19
|
import { TokenIcon } from '../token-icon/token-icon.js';
|
|
19
20
|
import { GridTableCell, GridTable } from './grid-table.js';
|
|
20
21
|
import { UpdatedValue } from './updated-value.js';
|
|
@@ -14,6 +14,7 @@ import 'tailwind-merge';
|
|
|
14
14
|
import 'sonner';
|
|
15
15
|
import '@gearbox-protocol/sdk';
|
|
16
16
|
import { TabButton } from '../buttons/tab-button/tab-button.js';
|
|
17
|
+
import 'wagmi';
|
|
17
18
|
import { TokenIcon } from '../token-icon/token-icon.js';
|
|
18
19
|
import { TableCell, Table } from './table.js';
|
|
19
20
|
import { UpdatedValue } from './updated-value.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export { AssetsListCell } from './components/assets-list-cell/assets-list-cell.j
|
|
|
4
4
|
export { AssetsRatio } from './components/assets-ratio/assets-ratio.js';
|
|
5
5
|
export { SignInRequired } from './components/auth/signin-required.js';
|
|
6
6
|
export { SIWEClientProvider } from './components/auth/siwe-provider.js';
|
|
7
|
+
export { ConnectRequired } from './components/auth/connect-required.js';
|
|
7
8
|
export { Badge, badgeVariants } from './components/badge/badge.js';
|
|
8
9
|
export { BaseLink } from './components/base-link/base-link.js';
|
|
9
10
|
export { BlockSync } from './components/block-sync/block-sync.js';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { TabButtonProps } from '../buttons';
|
|
2
|
+
import { ReactNode } from '../../../node_modules/.pnpm/react@19.2.0/node_modules/react';
|
|
3
|
+
import { Address } from 'viem';
|
|
4
|
+
/**
|
|
5
|
+
* SignInRequired — component that requires SIWE authentication to display content.
|
|
6
|
+
*
|
|
7
|
+
* @usage
|
|
8
|
+
* Use SignInRequired to protect content that requires authentication:
|
|
9
|
+
* action buttons, editable content, owner-specific features, authenticated actions.
|
|
10
|
+
*
|
|
11
|
+
* Props:
|
|
12
|
+
* - `owner` — optional address that must match signed-in address to display content.
|
|
13
|
+
* - `children` — content displayed when authenticated (required).
|
|
14
|
+
* - All Button props are supported (variant, size, className, onClick, etc.).
|
|
15
|
+
*
|
|
16
|
+
* Behavior:
|
|
17
|
+
* - If user is connected: renders children (or "You are not the author" if owner mismatch).
|
|
18
|
+
* - If wallet connected but not signed in: shows "Sign In as {address}" button or "Try Again" if rejected.
|
|
19
|
+
* - If wallet not connected: shows "Connect Wallet" button.
|
|
20
|
+
*
|
|
21
|
+
* Note: Uses TabButton by default, but switches to Button if custom props are provided.
|
|
22
|
+
* Button text changes based on authentication state and loading status.
|
|
23
|
+
*
|
|
24
|
+
* Do NOT use SignInRequired:
|
|
25
|
+
* - for public content that doesn't require authentication (render content directly).
|
|
26
|
+
* - when you need different authentication flow (use appropriate authentication components).
|
|
27
|
+
*/
|
|
28
|
+
export interface ConnectRequiredProps extends TabButtonProps {
|
|
29
|
+
owner?: Address;
|
|
30
|
+
children: ReactNode;
|
|
31
|
+
}
|
|
32
|
+
export declare function ConnectRequired({ children, owner, ...customProps }: ConnectRequiredProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').ReactPortal | import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').ReactElement<unknown, string | import('../../../node_modules/.pnpm/react@19.2.0/node_modules/react').JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
|