@turnkey/react-wallet-kit 1.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.MD +112 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.mjs +420 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.mjs.map +1 -0
- package/dist/components/auth/Action.d.ts +10 -0
- package/dist/components/auth/Action.d.ts.map +1 -0
- package/dist/components/auth/Action.js +76 -0
- package/dist/components/auth/Action.js.map +1 -0
- package/dist/components/auth/Action.mjs +97 -0
- package/dist/components/auth/Action.mjs.map +1 -0
- package/dist/components/auth/Email.d.ts +6 -0
- package/dist/components/auth/Email.d.ts.map +1 -0
- package/dist/components/auth/Email.js +73 -0
- package/dist/components/auth/Email.js.map +1 -0
- package/dist/components/auth/Email.mjs +95 -0
- package/dist/components/auth/Email.mjs.map +1 -0
- package/dist/components/auth/OAuth.d.ts +10 -0
- package/dist/components/auth/OAuth.d.ts.map +1 -0
- package/dist/components/auth/OAuth.js +42 -0
- package/dist/components/auth/OAuth.js.map +1 -0
- package/dist/components/auth/OAuth.mjs +46 -0
- package/dist/components/auth/OAuth.mjs.map +1 -0
- package/dist/components/auth/OTP.d.ts +19 -0
- package/dist/components/auth/OTP.d.ts.map +1 -0
- package/dist/components/auth/OTP.js +204 -0
- package/dist/components/auth/OTP.js.map +1 -0
- package/dist/components/auth/OTP.mjs +288 -0
- package/dist/components/auth/OTP.mjs.map +1 -0
- package/dist/components/auth/OrSeparator.d.ts +2 -0
- package/dist/components/auth/OrSeparator.d.ts.map +1 -0
- package/dist/components/auth/OrSeparator.js +20 -0
- package/dist/components/auth/OrSeparator.js.map +1 -0
- package/dist/components/auth/OrSeparator.mjs +18 -0
- package/dist/components/auth/OrSeparator.mjs.map +1 -0
- package/dist/components/auth/Passkey.d.ts +7 -0
- package/dist/components/auth/Passkey.d.ts.map +1 -0
- package/dist/components/auth/Passkey.js +26 -0
- package/dist/components/auth/Passkey.js.map +1 -0
- package/dist/components/auth/Passkey.mjs +22 -0
- package/dist/components/auth/Passkey.mjs.map +1 -0
- package/dist/components/auth/Phone.d.ts +6 -0
- package/dist/components/auth/Phone.d.ts.map +1 -0
- package/dist/components/auth/Phone.js +67 -0
- package/dist/components/auth/Phone.js.map +1 -0
- package/dist/components/auth/Phone.mjs +93 -0
- package/dist/components/auth/Phone.mjs.map +1 -0
- package/dist/components/auth/Wallet.d.ts +30 -0
- package/dist/components/auth/Wallet.d.ts.map +1 -0
- package/dist/components/auth/Wallet.js +408 -0
- package/dist/components/auth/Wallet.js.map +1 -0
- package/dist/components/auth/Wallet.mjs +509 -0
- package/dist/components/auth/Wallet.mjs.map +1 -0
- package/dist/components/auth/index.d.ts +2 -0
- package/dist/components/auth/index.d.ts.map +1 -0
- package/dist/components/auth/index.js +327 -0
- package/dist/components/auth/index.js.map +1 -0
- package/dist/components/auth/index.mjs +540 -0
- package/dist/components/auth/index.mjs.map +1 -0
- package/dist/components/design/Buttons.d.ts +26 -0
- package/dist/components/design/Buttons.d.ts.map +1 -0
- package/dist/components/design/Buttons.js +79 -0
- package/dist/components/design/Buttons.js.map +1 -0
- package/dist/components/design/Buttons.mjs +71 -0
- package/dist/components/design/Buttons.mjs.map +1 -0
- package/dist/components/design/Failure.d.ts +9 -0
- package/dist/components/design/Failure.d.ts.map +1 -0
- package/dist/components/design/Failure.js +33 -0
- package/dist/components/design/Failure.js.map +1 -0
- package/dist/components/design/Failure.mjs +34 -0
- package/dist/components/design/Failure.mjs.map +1 -0
- package/dist/components/design/Inputs.d.ts +9 -0
- package/dist/components/design/Inputs.d.ts.map +1 -0
- package/dist/components/design/Inputs.js +113 -0
- package/dist/components/design/Inputs.js.map +1 -0
- package/dist/components/design/Inputs.mjs +108 -0
- package/dist/components/design/Inputs.mjs.map +1 -0
- package/dist/components/design/Lottie/Dynamic.d.ts +2 -0
- package/dist/components/design/Lottie/Dynamic.d.ts.map +1 -0
- package/dist/components/design/Lottie/Dynamic.js +9 -0
- package/dist/components/design/Lottie/Dynamic.js.map +1 -0
- package/dist/components/design/Lottie/Dynamic.mjs +27 -0
- package/dist/components/design/Lottie/Dynamic.mjs.map +1 -0
- package/dist/components/design/Lottie/Wrapper.d.ts +8 -0
- package/dist/components/design/Lottie/Wrapper.d.ts.map +1 -0
- package/dist/components/design/Lottie/Wrapper.js +26 -0
- package/dist/components/design/Lottie/Wrapper.js.map +1 -0
- package/dist/components/design/Lottie/Wrapper.mjs +43 -0
- package/dist/components/design/Lottie/Wrapper.mjs.map +1 -0
- package/dist/components/design/Spinners.d.ts +9 -0
- package/dist/components/design/Spinners.d.ts.map +1 -0
- package/dist/components/design/Spinners.js +38 -0
- package/dist/components/design/Spinners.js.map +1 -0
- package/dist/components/design/Spinners.mjs +37 -0
- package/dist/components/design/Spinners.mjs.map +1 -0
- package/dist/components/design/Success.d.ts +8 -0
- package/dist/components/design/Success.d.ts.map +1 -0
- package/dist/components/design/Success.js +82 -0
- package/dist/components/design/Success.js.map +1 -0
- package/dist/components/design/Success.mjs +86 -0
- package/dist/components/design/Success.mjs.map +1 -0
- package/dist/components/design/Svg.d.ts +10 -0
- package/dist/components/design/Svg.d.ts.map +1 -0
- package/dist/components/design/Svg.js +156 -0
- package/dist/components/design/Svg.js.map +1 -0
- package/dist/components/design/Svg.mjs +153 -0
- package/dist/components/design/Svg.mjs.map +1 -0
- package/dist/components/export/Export.d.ts +9 -0
- package/dist/components/export/Export.d.ts.map +1 -0
- package/dist/components/export/Export.js +140 -0
- package/dist/components/export/Export.js.map +1 -0
- package/dist/components/export/Export.mjs +178 -0
- package/dist/components/export/Export.mjs.map +1 -0
- package/dist/components/export/ExportWarning.d.ts +12 -0
- package/dist/components/export/ExportWarning.d.ts.map +1 -0
- package/dist/components/export/ExportWarning.js +87 -0
- package/dist/components/export/ExportWarning.js.map +1 -0
- package/dist/components/export/ExportWarning.mjs +113 -0
- package/dist/components/export/ExportWarning.mjs.map +1 -0
- package/dist/components/import/Import.d.ts +14 -0
- package/dist/components/import/Import.d.ts.map +1 -0
- package/dist/components/import/Import.js +226 -0
- package/dist/components/import/Import.js.map +1 -0
- package/dist/components/import/Import.mjs +328 -0
- package/dist/components/import/Import.mjs.map +1 -0
- package/dist/components/sign/Message.d.ts +17 -0
- package/dist/components/sign/Message.d.ts.map +1 -0
- package/dist/components/sign/Message.js +127 -0
- package/dist/components/sign/Message.js.map +1 -0
- package/dist/components/sign/Message.mjs +145 -0
- package/dist/components/sign/Message.mjs.map +1 -0
- package/dist/components/user/LinkWallet.d.ts +8 -0
- package/dist/components/user/LinkWallet.d.ts.map +1 -0
- package/dist/components/user/LinkWallet.js +102 -0
- package/dist/components/user/LinkWallet.js.map +1 -0
- package/dist/components/user/LinkWallet.mjs +162 -0
- package/dist/components/user/LinkWallet.mjs.map +1 -0
- package/dist/components/user/RemoveEmail.d.ts +11 -0
- package/dist/components/user/RemoveEmail.d.ts.map +1 -0
- package/dist/components/user/RemoveEmail.js +101 -0
- package/dist/components/user/RemoveEmail.js.map +1 -0
- package/dist/components/user/RemoveEmail.mjs +122 -0
- package/dist/components/user/RemoveEmail.mjs.map +1 -0
- package/dist/components/user/RemoveOAuthProvider.d.ts +11 -0
- package/dist/components/user/RemoveOAuthProvider.d.ts.map +1 -0
- package/dist/components/user/RemoveOAuthProvider.js +106 -0
- package/dist/components/user/RemoveOAuthProvider.js.map +1 -0
- package/dist/components/user/RemoveOAuthProvider.mjs +129 -0
- package/dist/components/user/RemoveOAuthProvider.mjs.map +1 -0
- package/dist/components/user/RemovePasskey.d.ts +11 -0
- package/dist/components/user/RemovePasskey.d.ts.map +1 -0
- package/dist/components/user/RemovePasskey.js +109 -0
- package/dist/components/user/RemovePasskey.js.map +1 -0
- package/dist/components/user/RemovePasskey.mjs +132 -0
- package/dist/components/user/RemovePasskey.mjs.map +1 -0
- package/dist/components/user/RemovePhoneNumber.d.ts +11 -0
- package/dist/components/user/RemovePhoneNumber.d.ts.map +1 -0
- package/dist/components/user/RemovePhoneNumber.js +101 -0
- package/dist/components/user/RemovePhoneNumber.js.map +1 -0
- package/dist/components/user/RemovePhoneNumber.mjs +122 -0
- package/dist/components/user/RemovePhoneNumber.mjs.map +1 -0
- package/dist/components/user/UpdateEmail.d.ts +8 -0
- package/dist/components/user/UpdateEmail.d.ts.map +1 -0
- package/dist/components/user/UpdateEmail.js +139 -0
- package/dist/components/user/UpdateEmail.js.map +1 -0
- package/dist/components/user/UpdateEmail.mjs +186 -0
- package/dist/components/user/UpdateEmail.mjs.map +1 -0
- package/dist/components/user/UpdatePhoneNumber.d.ts +8 -0
- package/dist/components/user/UpdatePhoneNumber.d.ts.map +1 -0
- package/dist/components/user/UpdatePhoneNumber.js +136 -0
- package/dist/components/user/UpdatePhoneNumber.js.map +1 -0
- package/dist/components/user/UpdatePhoneNumber.mjs +187 -0
- package/dist/components/user/UpdatePhoneNumber.mjs.map +1 -0
- package/dist/components/user/UpdateUserName.d.ts +11 -0
- package/dist/components/user/UpdateUserName.d.ts.map +1 -0
- package/dist/components/user/UpdateUserName.js +112 -0
- package/dist/components/user/UpdateUserName.js.map +1 -0
- package/dist/components/user/UpdateUserName.mjs +139 -0
- package/dist/components/user/UpdateUserName.mjs.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +6 -0
- package/dist/index.mjs.map +1 -0
- package/dist/providers/TurnkeyProvider.d.ts +8 -0
- package/dist/providers/TurnkeyProvider.d.ts.map +1 -0
- package/dist/providers/TurnkeyProvider.js +35 -0
- package/dist/providers/TurnkeyProvider.js.map +1 -0
- package/dist/providers/TurnkeyProvider.mjs +33 -0
- package/dist/providers/TurnkeyProvider.mjs.map +1 -0
- package/dist/providers/client/Hook.d.ts +3 -0
- package/dist/providers/client/Hook.d.ts.map +1 -0
- package/dist/providers/client/Hook.js +14 -0
- package/dist/providers/client/Hook.js.map +1 -0
- package/dist/providers/client/Hook.mjs +12 -0
- package/dist/providers/client/Hook.mjs.map +1 -0
- package/dist/providers/client/Provider.d.ts +39 -0
- package/dist/providers/client/Provider.d.ts.map +1 -0
- package/dist/providers/client/Provider.js +2489 -0
- package/dist/providers/client/Provider.js.map +1 -0
- package/dist/providers/client/Provider.mjs +4744 -0
- package/dist/providers/client/Provider.mjs.map +1 -0
- package/dist/providers/client/Types.d.ts +524 -0
- package/dist/providers/client/Types.d.ts.map +1 -0
- package/dist/providers/client/Types.js +9 -0
- package/dist/providers/client/Types.js.map +1 -0
- package/dist/providers/client/Types.mjs +7 -0
- package/dist/providers/client/Types.mjs.map +1 -0
- package/dist/providers/index.d.ts +5 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/modal/Hook.d.ts +3 -0
- package/dist/providers/modal/Hook.d.ts.map +1 -0
- package/dist/providers/modal/Hook.js +14 -0
- package/dist/providers/modal/Hook.js.map +1 -0
- package/dist/providers/modal/Hook.mjs +12 -0
- package/dist/providers/modal/Hook.mjs.map +1 -0
- package/dist/providers/modal/Provider.d.ts +21 -0
- package/dist/providers/modal/Provider.d.ts.map +1 -0
- package/dist/providers/modal/Provider.js +37 -0
- package/dist/providers/modal/Provider.js.map +1 -0
- package/dist/providers/modal/Provider.mjs +48 -0
- package/dist/providers/modal/Provider.mjs.map +1 -0
- package/dist/providers/modal/Root.d.ts +7 -0
- package/dist/providers/modal/Root.d.ts.map +1 -0
- package/dist/providers/modal/Root.js +258 -0
- package/dist/providers/modal/Root.js.map +1 -0
- package/dist/providers/modal/Root.mjs +263 -0
- package/dist/providers/modal/Root.mjs.map +1 -0
- package/dist/providers/theme/Overrides.d.ts +18 -0
- package/dist/providers/theme/Overrides.d.ts.map +1 -0
- package/dist/providers/theme/Overrides.js +35 -0
- package/dist/providers/theme/Overrides.js.map +1 -0
- package/dist/providers/theme/Overrides.mjs +37 -0
- package/dist/providers/theme/Overrides.mjs.map +1 -0
- package/dist/styles.css +1 -0
- package/dist/types/base.d.ts +79 -0
- package/dist/types/base.d.ts.map +1 -0
- package/dist/types/base.js +19 -0
- package/dist/types/base.js.map +1 -0
- package/dist/types/base.mjs +19 -0
- package/dist/types/base.mjs.map +1 -0
- package/dist/utils.d.ts +72 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +211 -0
- package/dist/utils.js.map +1 -0
- package/dist/utils.mjs +307 -0
- package/dist/utils.mjs.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { WalletProvider } from "@turnkey/core";
|
|
2
|
+
interface WalletAuthButtonProps {
|
|
3
|
+
onContinue: () => Promise<void>;
|
|
4
|
+
}
|
|
5
|
+
export declare function WalletAuthButton(props: WalletAuthButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare function ExternalWalletChainSelector(props: ExternalWalletSelectorProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
interface ExternalWalletSelectorProps {
|
|
8
|
+
providers: WalletProvider[];
|
|
9
|
+
onUnlink?: ((provider: WalletProvider) => Promise<void>) | undefined;
|
|
10
|
+
onSelect: (provider: WalletProvider) => Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export declare function ExternalWalletSelector(props: ExternalWalletSelectorProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
interface UnlinkWalletScreenProps {
|
|
14
|
+
provider: WalletProvider;
|
|
15
|
+
onUnlink: (provider: WalletProvider) => Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
export declare function UnlinkWalletScreen(props: UnlinkWalletScreenProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
interface ConnectedIndicatorProps {
|
|
19
|
+
isPinging?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare function ConnectedIndicator(props: ConnectedIndicatorProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export interface WalletConnectScreenProps {
|
|
23
|
+
provider: WalletProvider;
|
|
24
|
+
successPageDuration: number | undefined;
|
|
25
|
+
onAction: (provider: WalletProvider) => Promise<void>;
|
|
26
|
+
onDisconnect?: (provider: WalletProvider) => Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
export declare function WalletConnectScreen(props: WalletConnectScreenProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=Wallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Wallet.d.ts","sourceRoot":"","sources":["../../../src/components/auth/Wallet.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAMpD,UAAU,qBAAqB;IAC7B,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AACD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,2CAwB5D;AAUD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,2BAA2B,2CA8EnC;AAED,UAAU,2BAA2B;IACnC,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IACrE,QAAQ,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AACD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,2CA8IxE;AAED,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CAsDhE;AAED,UAAU,uBAAuB;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AACD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CAUhE;AACD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,cAAc,CAAC;IACzB,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,2CA8KlE"}
|
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var Buttons = require('../design/Buttons.js');
|
|
5
|
+
var Hook = require('../../providers/modal/Hook.js');
|
|
6
|
+
var Svg = require('../design/Svg.js');
|
|
7
|
+
var reactFontawesome = require('@fortawesome/react-fontawesome');
|
|
8
|
+
var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons');
|
|
9
|
+
var react = require('react');
|
|
10
|
+
var clsx = require('clsx');
|
|
11
|
+
var qrcode_react = require('qrcode.react');
|
|
12
|
+
var Success = require('../design/Success.js');
|
|
13
|
+
var core = require('@turnkey/core');
|
|
14
|
+
var Hook$1 = require('../../providers/client/Hook.js');
|
|
15
|
+
|
|
16
|
+
function WalletAuthButton(props) {
|
|
17
|
+
const {
|
|
18
|
+
onContinue
|
|
19
|
+
} = props;
|
|
20
|
+
const [isLoading, setIsLoading] = react.useState(false);
|
|
21
|
+
const handleContinue = async () => {
|
|
22
|
+
setIsLoading(true);
|
|
23
|
+
try {
|
|
24
|
+
await Promise.resolve(onContinue());
|
|
25
|
+
} finally {
|
|
26
|
+
setIsLoading(false);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
return jsxRuntime.jsx("div", {
|
|
30
|
+
className: "flex flex-col w-full",
|
|
31
|
+
children: jsxRuntime.jsx(Buttons.ActionButton, {
|
|
32
|
+
onClick: handleContinue,
|
|
33
|
+
loading: isLoading,
|
|
34
|
+
className: "w-full text-inherit bg-button-light dark:bg-button-dark",
|
|
35
|
+
children: "Continue with wallet"
|
|
36
|
+
})
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
const canUnlink = (provider, shouldShowUnlink) => {
|
|
40
|
+
return shouldShowUnlink && provider.connectedAddresses && provider.connectedAddresses.length > 0;
|
|
41
|
+
};
|
|
42
|
+
function ExternalWalletChainSelector(props) {
|
|
43
|
+
const {
|
|
44
|
+
providers,
|
|
45
|
+
onSelect,
|
|
46
|
+
onUnlink
|
|
47
|
+
} = props;
|
|
48
|
+
const {
|
|
49
|
+
isMobile
|
|
50
|
+
} = Hook.useModal();
|
|
51
|
+
const shouldShowUnlink = onUnlink !== undefined;
|
|
52
|
+
const handleSelect = provider => {
|
|
53
|
+
if (canUnlink(provider, shouldShowUnlink)) {
|
|
54
|
+
onUnlink(provider);
|
|
55
|
+
} else {
|
|
56
|
+
onSelect(provider);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
return jsxRuntime.jsxs("div", {
|
|
60
|
+
className: clsx("flex flex-col w-72 gap-4 mt-11 items-center justify-center", isMobile ? "w-full" : "w-72"),
|
|
61
|
+
children: [jsxRuntime.jsx("img", {
|
|
62
|
+
src: providers[0]?.info.icon,
|
|
63
|
+
className: "size-14 rounded-full"
|
|
64
|
+
}), jsxRuntime.jsxs("span", {
|
|
65
|
+
className: "text-sm text-center text-icon-text-light dark:text-icon-text-dark",
|
|
66
|
+
children: [providers[0]?.info.name ?? "This wallet provider", " supports multiple chains. Select which chain you would like to use."]
|
|
67
|
+
}), jsxRuntime.jsx("div", {
|
|
68
|
+
className: "w-full flex flex-col gap-2",
|
|
69
|
+
children: providers.map(p => {
|
|
70
|
+
const [isHovering, setIsHovering] = react.useState(false);
|
|
71
|
+
return jsxRuntime.jsxs(Buttons.ActionButton, {
|
|
72
|
+
onClick: () => handleSelect(p),
|
|
73
|
+
onMouseEnter: () => setIsHovering(true),
|
|
74
|
+
onMouseLeave: () => setIsHovering(false),
|
|
75
|
+
className: "relative overflow-hidden flex items-center justify-start gap-2 w-full text-inherit bg-button-light dark:bg-button-dark",
|
|
76
|
+
children: [core.isEthereumWallet(p) ? jsxRuntime.jsxs("div", {
|
|
77
|
+
className: "relative",
|
|
78
|
+
children: [jsxRuntime.jsx(Svg.EthereumLogo, {
|
|
79
|
+
className: "size-5"
|
|
80
|
+
}), canUnlink(p, shouldShowUnlink) && jsxRuntime.jsx(ConnectedIndicator, {
|
|
81
|
+
isPinging: true
|
|
82
|
+
})]
|
|
83
|
+
}) : jsxRuntime.jsxs("div", {
|
|
84
|
+
className: "relative",
|
|
85
|
+
children: [jsxRuntime.jsx(Svg.SolanaLogo, {
|
|
86
|
+
className: "size-5"
|
|
87
|
+
}), canUnlink(p, shouldShowUnlink) && jsxRuntime.jsx(ConnectedIndicator, {
|
|
88
|
+
isPinging: true
|
|
89
|
+
})]
|
|
90
|
+
}), jsxRuntime.jsxs("div", {
|
|
91
|
+
className: "flex flex-col items-start",
|
|
92
|
+
children: [core.isEthereumWallet(p) ? "EVM" : "Solana", canUnlink(p, shouldShowUnlink) && jsxRuntime.jsxs("span", {
|
|
93
|
+
className: "text-xs text-icon-text-light dark:text-icon-text-dark",
|
|
94
|
+
children: ["Connected: ", p.connectedAddresses[0]?.slice(0, 4), "...", p.connectedAddresses[0]?.slice(-3)]
|
|
95
|
+
})]
|
|
96
|
+
}), jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
|
|
97
|
+
className: clsx(`absolute transition-all duration-200`, isHovering ? "right-4" : "-right-4", canUnlink(p, shouldShowUnlink) ? "text-danger-light dark:text-danger-dark" : "text-icon-text-light dark:text-icon-text-dark"),
|
|
98
|
+
size: canUnlink(p, shouldShowUnlink) ? "lg" : "1x",
|
|
99
|
+
icon: canUnlink(p, shouldShowUnlink) ? freeSolidSvgIcons.faClose : freeSolidSvgIcons.faChevronRight
|
|
100
|
+
})]
|
|
101
|
+
}, p.chainInfo.namespace);
|
|
102
|
+
})
|
|
103
|
+
})]
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
function ExternalWalletSelector(props) {
|
|
107
|
+
const {
|
|
108
|
+
providers,
|
|
109
|
+
onUnlink,
|
|
110
|
+
onSelect
|
|
111
|
+
} = props;
|
|
112
|
+
const {
|
|
113
|
+
pushPage,
|
|
114
|
+
popPage,
|
|
115
|
+
isMobile
|
|
116
|
+
} = Hook.useModal();
|
|
117
|
+
const shouldShowUnlink = onUnlink !== undefined;
|
|
118
|
+
// Group providers by name
|
|
119
|
+
const grouped = providers.reduce((acc, provider) => {
|
|
120
|
+
const name = provider.info.name;
|
|
121
|
+
if (!acc[name]) acc[name] = [];
|
|
122
|
+
acc[name].push(provider);
|
|
123
|
+
return acc;
|
|
124
|
+
}, {});
|
|
125
|
+
const handleSelectGroup = group => {
|
|
126
|
+
if (group.length === 1) {
|
|
127
|
+
if (canUnlink(group[0], shouldShowUnlink)) {
|
|
128
|
+
onUnlink(group[0]);
|
|
129
|
+
} else {
|
|
130
|
+
onSelect(group[0]);
|
|
131
|
+
}
|
|
132
|
+
} else {
|
|
133
|
+
pushPage({
|
|
134
|
+
key: `Select chain`,
|
|
135
|
+
content: jsxRuntime.jsx(ExternalWalletChainSelector, {
|
|
136
|
+
providers: group,
|
|
137
|
+
onUnlink: onUnlink,
|
|
138
|
+
onSelect: onSelect
|
|
139
|
+
})
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
react.useEffect(() => {
|
|
144
|
+
// Don't show the selector if there's only one wallet provider
|
|
145
|
+
const groupedValues = Object.values(grouped);
|
|
146
|
+
if (groupedValues.length === 1) {
|
|
147
|
+
popPage(); // Remove this page from the stack so user doesn't get stuck in an infinite loop when pressing back
|
|
148
|
+
handleSelectGroup(groupedValues[0]);
|
|
149
|
+
}
|
|
150
|
+
}, [grouped]);
|
|
151
|
+
return Object.keys(grouped).length === 0 ? jsxRuntime.jsxs("div", {
|
|
152
|
+
className: clsx("flex flex-col h-40 mt-4 gap-2 justify-center items-center text-xs text-center text-icon-text-light dark:text-icon-text-dark", isMobile ? "w-full" : "w-72"),
|
|
153
|
+
children: [jsxRuntime.jsx("span", {
|
|
154
|
+
className: "text-sm font-medium",
|
|
155
|
+
children: "No wallet providers available."
|
|
156
|
+
}), jsxRuntime.jsx("span", {
|
|
157
|
+
children: "Only wallets supporting EIP-1193 (Ethereum) or the Solana wallet standard are supported."
|
|
158
|
+
})]
|
|
159
|
+
}) : jsxRuntime.jsx("div", {
|
|
160
|
+
className: clsx("w-72 min-h-42 max-h-64 mt-12 overflow-y-auto tk-scrollbar p-0.5", isMobile ? "w-full" : "w-72"),
|
|
161
|
+
children: jsxRuntime.jsx("div", {
|
|
162
|
+
className: "flex flex-col gap-2",
|
|
163
|
+
children: Object.entries(grouped).map(([name, group]) => {
|
|
164
|
+
const [isHovering, setIsHovering] = react.useState(false);
|
|
165
|
+
const first = group[0];
|
|
166
|
+
return jsxRuntime.jsxs(Buttons.ActionButton, {
|
|
167
|
+
onMouseEnter: () => setIsHovering(true),
|
|
168
|
+
onMouseLeave: () => setIsHovering(false),
|
|
169
|
+
onClick: () => handleSelectGroup(group),
|
|
170
|
+
className: "relative flex items-center justify-between w-full text-inherit bg-button-light dark:bg-button-dark overflow-hidden",
|
|
171
|
+
children: [jsxRuntime.jsxs("div", {
|
|
172
|
+
className: "flex items-center gap-2 overflow-hidden",
|
|
173
|
+
children: [jsxRuntime.jsx("img", {
|
|
174
|
+
src: first?.info.icon,
|
|
175
|
+
alt: first?.info.name,
|
|
176
|
+
className: "size-6 rounded-full"
|
|
177
|
+
}), first?.info.name]
|
|
178
|
+
}), jsxRuntime.jsx("div", {
|
|
179
|
+
className: clsx(`flex items-center transition-all gap-1`),
|
|
180
|
+
children: group.map((c, idx) => {
|
|
181
|
+
const Logo = core.isEthereumWallet(c) ? Svg.EthereumLogo : Svg.SolanaLogo;
|
|
182
|
+
const delay = 50 + idx * 30; // Staggered delay: leftmost has largest
|
|
183
|
+
return jsxRuntime.jsxs("div", {
|
|
184
|
+
style: {
|
|
185
|
+
transitionDelay: `${delay}ms`
|
|
186
|
+
},
|
|
187
|
+
className: clsx("relative", "size-4", "transition-all duration-200", isHovering ? "-translate-x-8" : "translate-x-0"),
|
|
188
|
+
children: [jsxRuntime.jsx(Logo, {
|
|
189
|
+
className: "size-4"
|
|
190
|
+
}), canUnlink(c, shouldShowUnlink) && jsxRuntime.jsx(ConnectedIndicator, {
|
|
191
|
+
isPinging: isHovering
|
|
192
|
+
})]
|
|
193
|
+
}, c.chainInfo.namespace);
|
|
194
|
+
})
|
|
195
|
+
}), jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
|
|
196
|
+
className: clsx(`absolute transition-all duration-200`, isHovering ? "right-4" : "-right-4", group.length === 1 && canUnlink(group[0], shouldShowUnlink) ? "text-danger-light dark:text-danger-dark" : "text-icon-text-light dark:text-icon-text-dark"),
|
|
197
|
+
size: group.length === 1 && canUnlink(group[0], shouldShowUnlink) ? "lg" : "1x",
|
|
198
|
+
icon: group.length === 1 && canUnlink(group[0], shouldShowUnlink) ? freeSolidSvgIcons.faClose : freeSolidSvgIcons.faChevronRight
|
|
199
|
+
})]
|
|
200
|
+
}, name);
|
|
201
|
+
})
|
|
202
|
+
})
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
function UnlinkWalletScreen(props) {
|
|
206
|
+
const {
|
|
207
|
+
provider,
|
|
208
|
+
onUnlink
|
|
209
|
+
} = props;
|
|
210
|
+
const {
|
|
211
|
+
isMobile
|
|
212
|
+
} = Hook.useModal();
|
|
213
|
+
const [isLoading, setIsLoading] = react.useState(false);
|
|
214
|
+
const [hasError, setHasError] = react.useState(false);
|
|
215
|
+
const handleUnlink = async () => {
|
|
216
|
+
setIsLoading(true);
|
|
217
|
+
setHasError(false);
|
|
218
|
+
try {
|
|
219
|
+
await onUnlink(provider);
|
|
220
|
+
} catch (err) {
|
|
221
|
+
setHasError(true);
|
|
222
|
+
} finally {
|
|
223
|
+
setIsLoading(false);
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
return jsxRuntime.jsxs("div", {
|
|
227
|
+
className: clsx("mt-8", isMobile ? "w-full" : "w-96"),
|
|
228
|
+
children: [jsxRuntime.jsxs("div", {
|
|
229
|
+
className: "mt-6 mb-5 flex flex-col items-center gap-3",
|
|
230
|
+
children: [jsxRuntime.jsx("img", {
|
|
231
|
+
src: provider.info.icon ?? "",
|
|
232
|
+
className: "size-14 rounded-full"
|
|
233
|
+
}), jsxRuntime.jsx("div", {
|
|
234
|
+
className: clsx("text-2xl font-bold text-center", hasError && "text-danger-light dark:text-danger-dark"),
|
|
235
|
+
children: hasError ? "You can't unlink this wallet!" : `Unlink ${provider.info.name}`
|
|
236
|
+
}), jsxRuntime.jsx("div", {
|
|
237
|
+
className: "text-icon-text-light dark:text-icon-text-dark text-center !p-0",
|
|
238
|
+
children: hasError ? `Try unlinking directly from the ${provider.info.name} app` : "You can always link this wallet again later."
|
|
239
|
+
})]
|
|
240
|
+
}), jsxRuntime.jsx("div", {
|
|
241
|
+
className: "flex my-2 mt-0",
|
|
242
|
+
children: jsxRuntime.jsx(Buttons.ActionButton, {
|
|
243
|
+
onClick: handleUnlink,
|
|
244
|
+
loading: isLoading,
|
|
245
|
+
className: clsx("w-full max-w-md bg-danger-light dark:bg-danger-dark text-primary-text-light dark:text-primary-text-dark", hasError && "animate-shake opacity-50"),
|
|
246
|
+
spinnerClassName: "text-primary-danger-text-light dark:text-primary-danger-text-dark",
|
|
247
|
+
children: "Unlink Wallet"
|
|
248
|
+
})
|
|
249
|
+
})]
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
function ConnectedIndicator(props) {
|
|
253
|
+
const {
|
|
254
|
+
isPinging = false
|
|
255
|
+
} = props;
|
|
256
|
+
return jsxRuntime.jsxs("div", {
|
|
257
|
+
className: "flex absolute top-[-2px] right-0",
|
|
258
|
+
children: [isPinging && jsxRuntime.jsx("div", {
|
|
259
|
+
className: "absolute animate-ping size-[6px] bg-success-light dark:bg-success-dark rounded-full border border-modal-background-light dark:border-modal-background-dark"
|
|
260
|
+
}), jsxRuntime.jsx("div", {
|
|
261
|
+
className: "size-[6px] bg-success-light dark:bg-success-dark rounded-full border border-modal-background-light dark:border-modal-background-dark"
|
|
262
|
+
})]
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
function WalletConnectScreen(props) {
|
|
266
|
+
const {
|
|
267
|
+
provider,
|
|
268
|
+
successPageDuration,
|
|
269
|
+
onAction,
|
|
270
|
+
onDisconnect
|
|
271
|
+
} = props;
|
|
272
|
+
const {
|
|
273
|
+
pushPage,
|
|
274
|
+
closeModal,
|
|
275
|
+
isMobile
|
|
276
|
+
} = Hook.useModal();
|
|
277
|
+
const {
|
|
278
|
+
getWalletProviders
|
|
279
|
+
} = Hook$1.useTurnkey();
|
|
280
|
+
const hasRan = react.useRef(false);
|
|
281
|
+
const [walletConnectProvider, setWalletConnectProvider] = react.useState();
|
|
282
|
+
const connectedAccount = walletConnectProvider?.connectedAddresses[0];
|
|
283
|
+
react.useEffect(() => {
|
|
284
|
+
setWalletConnectProvider(provider);
|
|
285
|
+
}, [provider]);
|
|
286
|
+
const [isUnlinking, setIsUnlinking] = react.useState(false);
|
|
287
|
+
const [unlinkError, setUnlinkError] = react.useState(false);
|
|
288
|
+
// kick off authentication/pairing or signing on mount or when URI changes
|
|
289
|
+
react.useMemo(() => {
|
|
290
|
+
(async () => {
|
|
291
|
+
if (hasRan.current) return;
|
|
292
|
+
try {
|
|
293
|
+
await onAction(walletConnectProvider ?? provider);
|
|
294
|
+
hasRan.current = true;
|
|
295
|
+
pushPage({
|
|
296
|
+
key: "Link Success",
|
|
297
|
+
content: jsxRuntime.jsx(Success.SuccessPage, {
|
|
298
|
+
text: "Successfully linked WalletConnect!",
|
|
299
|
+
onComplete: closeModal,
|
|
300
|
+
duration: successPageDuration
|
|
301
|
+
}),
|
|
302
|
+
preventBack: true,
|
|
303
|
+
showTitle: false
|
|
304
|
+
});
|
|
305
|
+
} catch (e) {}
|
|
306
|
+
})();
|
|
307
|
+
}, [walletConnectProvider?.uri]);
|
|
308
|
+
const handleUnlink = async () => {
|
|
309
|
+
setIsUnlinking(true);
|
|
310
|
+
setUnlinkError(false);
|
|
311
|
+
try {
|
|
312
|
+
await onDisconnect?.(walletConnectProvider ?? provider);
|
|
313
|
+
const newProviders = await getWalletProviders();
|
|
314
|
+
setWalletConnectProvider(newProviders.find(p => p.interfaceType === provider.interfaceType));
|
|
315
|
+
} catch (err) {
|
|
316
|
+
setUnlinkError(true);
|
|
317
|
+
} finally {
|
|
318
|
+
setIsUnlinking(false);
|
|
319
|
+
}
|
|
320
|
+
};
|
|
321
|
+
return jsxRuntime.jsx("div", {
|
|
322
|
+
className: "p-3 flex flex-col items-center",
|
|
323
|
+
children: connectedAccount ? jsxRuntime.jsxs("div", {
|
|
324
|
+
className: clsx("mt-8 flex flex-col items-center gap-3", isMobile ? "w-full" : "w-96"),
|
|
325
|
+
children: [jsxRuntime.jsxs("div", {
|
|
326
|
+
className: "w-full justify-between flex items-center flex-1",
|
|
327
|
+
children: [jsxRuntime.jsx("div", {
|
|
328
|
+
className: clsx("flex items-center justify-center bg-icon-background-light dark:bg-icon-background-dark rounded-full p-2 text-icon-text-light dark:text-icon-text-dark", isMobile ? "size-18" : "size-24"),
|
|
329
|
+
children: jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
|
|
330
|
+
icon: freeSolidSvgIcons.faMobileScreen,
|
|
331
|
+
size: isMobile ? "3x" : "4x"
|
|
332
|
+
})
|
|
333
|
+
}), jsxRuntime.jsxs("div", {
|
|
334
|
+
className: "flex flex-row items-center justify-center space-x-2.5 font-medium text-icon-text-light dark:text-icon-text-dark",
|
|
335
|
+
children: [jsxRuntime.jsxs("div", {
|
|
336
|
+
className: "flex items-center justify-center",
|
|
337
|
+
children: [jsxRuntime.jsx("img", {
|
|
338
|
+
className: "size-5",
|
|
339
|
+
src: walletConnectProvider.info.icon,
|
|
340
|
+
alt: "Wallet connect logo"
|
|
341
|
+
}), jsxRuntime.jsx("img", {
|
|
342
|
+
className: "size-5 absolute animate-ping",
|
|
343
|
+
src: walletConnectProvider.info.icon,
|
|
344
|
+
alt: "Wallet connect logo"
|
|
345
|
+
})]
|
|
346
|
+
}), jsxRuntime.jsxs("span", {
|
|
347
|
+
children: [connectedAccount?.slice(0, 3), "...", connectedAccount?.slice(-3)]
|
|
348
|
+
})]
|
|
349
|
+
}), jsxRuntime.jsx("div", {
|
|
350
|
+
className: clsx("flex items-center justify-center bg-icon-background-light dark:bg-icon-background-dark rounded-full p-2 text-icon-text-light dark:text-icon-text-dark", isMobile ? "size-18" : "size-24"),
|
|
351
|
+
children: jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
|
|
352
|
+
icon: freeSolidSvgIcons.faLaptop,
|
|
353
|
+
size: isMobile ? "3x" : "4x"
|
|
354
|
+
})
|
|
355
|
+
})]
|
|
356
|
+
}), jsxRuntime.jsx("div", {
|
|
357
|
+
className: clsx("flex flex-row items-center mt-5 text-2xl font-bold text-center"),
|
|
358
|
+
children: "Already connected"
|
|
359
|
+
}), jsxRuntime.jsxs("div", {
|
|
360
|
+
className: "text-icon-text-light dark:text-icon-text-dark text-center text-xs flex flex-col space-y-2 !p-0",
|
|
361
|
+
children: [jsxRuntime.jsx("span", {
|
|
362
|
+
children: "Please open the wallet app on your phone to sign the message."
|
|
363
|
+
}), isUnlinking ? jsxRuntime.jsx("span", {
|
|
364
|
+
className: "text-danger-light dark:text-danger-dark opacity-50",
|
|
365
|
+
children: "Unlinking..."
|
|
366
|
+
}) : unlinkError ? jsxRuntime.jsx("span", {
|
|
367
|
+
className: "text-danger-light dark:text-danger-dark opacity-50",
|
|
368
|
+
children: "Error unlinking wallet."
|
|
369
|
+
}) : jsxRuntime.jsxs("span", {
|
|
370
|
+
children: ["Need to connect a different wallet?", " ", jsxRuntime.jsx("span", {
|
|
371
|
+
className: "text-danger-light dark:text-danger-dark cursor-pointer underline",
|
|
372
|
+
onClick: handleUnlink,
|
|
373
|
+
children: "Unlink"
|
|
374
|
+
}), " ", "this wallet first."]
|
|
375
|
+
})]
|
|
376
|
+
})]
|
|
377
|
+
}) : jsxRuntime.jsxs("div", {
|
|
378
|
+
className: clsx("mt-8 flex flex-col items-center gap-3", isMobile ? "w-full" : "w-96"),
|
|
379
|
+
children: [walletConnectProvider?.uri &&
|
|
380
|
+
// @ts-expect-error: qrcode.react uses a different React type version
|
|
381
|
+
jsxRuntime.jsx(qrcode_react.QRCodeSVG, {
|
|
382
|
+
className: " \n border border-modal-background-dark/20 dark:border-modal-background-light/20\n shadow-[0_0_42px] shadow-primary-light/50\n dark:shadow-[0_0_42px] dark:shadow-primary-dark/50",
|
|
383
|
+
value: walletConnectProvider.uri,
|
|
384
|
+
imageSettings: {
|
|
385
|
+
src: walletConnectProvider.info.icon ?? "",
|
|
386
|
+
width: 24,
|
|
387
|
+
height: 24,
|
|
388
|
+
excavate: true
|
|
389
|
+
},
|
|
390
|
+
size: 200
|
|
391
|
+
}), jsxRuntime.jsx("div", {
|
|
392
|
+
className: clsx("text-2xl font-bold text-center"),
|
|
393
|
+
children: "Use your phone"
|
|
394
|
+
}), jsxRuntime.jsx("div", {
|
|
395
|
+
className: "text-icon-text-light dark:text-icon-text-dark text-center !p-0",
|
|
396
|
+
children: "Scan this QR code with your WalletConnect-compatible wallet to link"
|
|
397
|
+
})]
|
|
398
|
+
})
|
|
399
|
+
});
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
exports.ConnectedIndicator = ConnectedIndicator;
|
|
403
|
+
exports.ExternalWalletChainSelector = ExternalWalletChainSelector;
|
|
404
|
+
exports.ExternalWalletSelector = ExternalWalletSelector;
|
|
405
|
+
exports.UnlinkWalletScreen = UnlinkWalletScreen;
|
|
406
|
+
exports.WalletAuthButton = WalletAuthButton;
|
|
407
|
+
exports.WalletConnectScreen = WalletConnectScreen;
|
|
408
|
+
//# sourceMappingURL=Wallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Wallet.js","sources":["../../../src/components/auth/Wallet.tsx"],"sourcesContent":[null],"names":["WalletAuthButton","props","onContinue","isLoading","setIsLoading","useState","handleContinue","Promise","resolve","_jsx","className","children","ActionButton","onClick","loading","canUnlink","provider","shouldShowUnlink","connectedAddresses","length","ExternalWalletChainSelector","providers","onSelect","onUnlink","isMobile","useModal","undefined","handleSelect","_jsxs","clsx","src","info","icon","name","map","p","isHovering","setIsHovering","onMouseEnter","onMouseLeave","isEthereumWallet","EthereumLogo","ConnectedIndicator","isPinging","SolanaLogo","slice","FontAwesomeIcon","size","faClose","faChevronRight","chainInfo","namespace","ExternalWalletSelector","pushPage","popPage","grouped","reduce","acc","push","handleSelectGroup","group","key","content","useEffect","groupedValues","Object","values","keys","entries","first","alt","c","idx","Logo","delay","style","transitionDelay","UnlinkWalletScreen","hasError","setHasError","handleUnlink","err","spinnerClassName","WalletConnectScreen","successPageDuration","onAction","onDisconnect","closeModal","getWalletProviders","useTurnkey","hasRan","useRef","walletConnectProvider","setWalletConnectProvider","connectedAccount","isUnlinking","setIsUnlinking","unlinkError","setUnlinkError","useMemo","current","SuccessPage","text","onComplete","duration","preventBack","showTitle","e","uri","newProviders","find","interfaceType","faMobileScreen","faLaptop","QRCode","value","imageSettings","width","height","excavate"],"mappings":";;;;;;;;;;;;;;;AAqBM,SAAUA,gBAAgBA,CAACC,KAA4B,EAAA;EAC3D,MAAM;AAAEC,IAAAA;AAAY,GAAA,GAAGD,KAAK;EAC5B,MAAM,CAACE,SAAS,EAAEC,YAAY,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC;AAEjD,EAAA,MAAMC,cAAc,GAAG,YAAW;IAChCF,YAAY,CAAC,IAAI,CAAC;IAElB,IAAI;AACF,MAAA,MAAMG,OAAO,CAACC,OAAO,CAACN,UAAU,EAAE,CAAC;AACrC,KAAC,SAAS;MACRE,YAAY,CAAC,KAAK,CAAC;AACrB;GACD;EACD,OACEK;AAAKC,IAAAA,SAAS,EAAC,sBAAsB;AACnCC,IAAAA,QAAA,EAAAF,cAAA,CAACG,oBAAY,EAAA;AACXC,MAAAA,OAAO,EAAEP,cAAc;AACvBQ,MAAAA,OAAO,EAAEX,SAAS;AAClBO,MAAAA,SAAS,EAAC,yDAAyD;AAAAC,MAAAA,QAAA,EAAA;KAAA;AAIjE,GAAA,CAAA;AAEV;AAEA,MAAMI,SAAS,GAAGA,CAACC,QAAwB,EAAEC,gBAA0B,KAAI;AACzE,EAAA,OACEA,gBAAgB,IAChBD,QAAQ,CAACE,kBAAkB,IAC3BF,QAAQ,CAACE,kBAAkB,CAACC,MAAM,GAAG,CAAC;AAE1C,CAAC;AAEK,SAAUC,2BAA2BA,CACzCnB,KAAkC,EAAA;EAElC,MAAM;IAAEoB,SAAS;IAAEC,QAAQ;AAAEC,IAAAA;AAAQ,GAAE,GAAGtB,KAAK;EAC/C,MAAM;AAAEuB,IAAAA;GAAU,GAAGC,aAAQ,EAAE;AAC/B,EAAA,MAAMR,gBAAgB,GAAGM,QAAQ,KAAKG,SAAS;EAE/C,MAAMC,YAAY,GAAIX,QAAwB,IAAI;AAChD,IAAA,IAAID,SAAS,CAACC,QAAQ,EAAEC,gBAAgB,CAAC,EAAE;MACzCM,QAAS,CAACP,QAAQ,CAAC;AACrB,KAAC,MAAM;MACLM,QAAQ,CAACN,QAAQ,CAAC;AACpB;GACD;EAED,OACEY,eAAA,CAAA,KAAA,EAAA;IACElB,SAAS,EAAEmB,IAAI,CACb,4DAA4D,EAC5DL,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAC7B;AAAAb,IAAAA,QAAA,EAAA,CAEDF,cAAK,CAAA,KAAA,EAAA;MAAAqB,GAAG,EAAET,SAAS,CAAC,CAAC,CAAC,EAAEU,IAAI,CAACC,IAAI;AAAEtB,MAAAA,SAAS,EAAC;AAAsB,KAAA,CAAG,EACtEkB,eAAA,CAAA,MAAA,EAAA;AAAMlB,MAAAA,SAAS,EAAC,mEAAmE;AAChFC,MAAAA,QAAA,EAAA,CAAAU,SAAS,CAAC,CAAC,CAAC,EAAEU,IAAI,CAACE,IAAI,IAAI,sBAAsB,EACjD,sEAAsE;AAClE,KAAA,CAAA,EACPxB,cAAK,CAAA,KAAA,EAAA;AAAAC,MAAAA,SAAS,EAAC,4BAA4B;AAAAC,MAAAA,QAAA,EACxCU,SAAS,CAACa,GAAG,CAAEC,CAAC,IAAI;QACnB,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGhC,cAAQ,CAAC,KAAK,CAAC;QACnD,OACEuB,gBAAChB,oBAAY,EAAA;AAEXC,UAAAA,OAAO,EAAEA,MAAMc,YAAY,CAACQ,CAAC,CAAC;AAC9BG,UAAAA,YAAY,EAAEA,MAAMD,aAAa,CAAC,IAAI,CAAC;AACvCE,UAAAA,YAAY,EAAEA,MAAMF,aAAa,CAAC,KAAK,CAAC;AACxC3B,UAAAA,SAAS,EAAC,wHAAwH;qBAEjI8B,qBAAgB,CAACL,CAAC,CAAC,GAClBP,eAAA,CAAA,KAAA,EAAA;AAAKlB,YAAAA,SAAS,EAAC,UAAU;uBACvBD,cAAC,CAAAgC,gBAAY;AAAC/B,cAAAA,SAAS,EAAC;AAAW,aAAA,CAAA,EAClCK,SAAS,CAACoB,CAAC,EAAElB,gBAAgB,CAAC,IAC7BR,cAAA,CAACiC,kBAAkB,EAAA;AAACC,cAAAA,SAAS,EAAA;AAAA,aAAA,CAC9B;AACG,WAAA,CAAA,GAENf,eAAK,CAAA,KAAA,EAAA;AAAAlB,YAAAA,SAAS,EAAC,UAAU;AAAAC,YAAAA,QAAA,EAAA,CACvBF,eAACmC,cAAU,EAAA;AAAClC,cAAAA,SAAS,EAAC;cAAW,EAChCK,SAAS,CAACoB,CAAC,EAAElB,gBAAgB,CAAC,IAC7BR,eAACiC,kBAAkB,EAAA;AAACC,cAAAA,SAAS,EAAG;AAAA,aAAA,CACjC;YAEJ,EACDf;AAAKlB,YAAAA,SAAS,EAAC,2BAA2B;YACvCC,QAAA,EAAA,CAAA6B,qBAAgB,CAACL,CAAC,CAAC,GAAG,KAAK,GAAG,QAAQ,EACtCpB,SAAS,CAACoB,CAAC,EAAElB,gBAAgB,CAAC,IAC7BW,eAAA,CAAA,MAAA,EAAA;AAAMlB,cAAAA,SAAS,EAAC,uDAAuD;wCACzDyB,CAAC,CAACjB,kBAAkB,CAAC,CAAC,CAAC,EAAE2B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/C,KAAA,EAAAV,CAAC,CAACjB,kBAAkB,CAAC,CAAC,CAAC,EAAE2B,KAAK,CAAC,EAAE,CAAC;AAAA,aAAA,CAEtC;AAAA,WAAA,CACG,EACNpC,cAAA,CAACqC,gCAAe,EACd;YAAApC,SAAS,EAAEmB,IAAI,CACb,CAAA,oCAAA,CAAsC,EACtCO,UAAU,GAAG,SAAS,GAAG,UAAU,EACnCrB,SAAS,CAACoB,CAAC,EAAElB,gBAAgB,CAAC,GAC1B,yCAAyC,GACzC,+CAA+C,CACpD;YACD8B,IAAI,EAAEhC,SAAS,CAACoB,CAAC,EAAElB,gBAAgB,CAAC,GAAG,IAAI,GAAG,IAAI;YAClDe,IAAI,EAAEjB,SAAS,CAACoB,CAAC,EAAElB,gBAAgB,CAAC,GAAG+B,yBAAO,GAAGC;AAAc,WAAA,CAC/D;WAxCGd,CAAC,CAACe,SAAS,CAACC,SAAS,CAyCb;OAElB;AAAC,KAAA,CACE;AACF,GAAA,CAAA;AAEV;AAOM,SAAUC,sBAAsBA,CAACnD,KAAkC,EAAA;EACvE,MAAM;IAAEoB,SAAS;IAAEE,QAAQ;AAAED,IAAAA;AAAQ,GAAE,GAAGrB,KAAK;EAC/C,MAAM;IAAEoD,QAAQ;IAAEC,OAAO;AAAE9B,IAAAA;GAAU,GAAGC,aAAQ,EAAE;AAElD,EAAA,MAAMR,gBAAgB,GAAGM,QAAQ,KAAKG,SAAS;AAE/C;EACA,MAAM6B,OAAO,GAAGlC,SAAS,CAACmC,MAAM,CAC9B,CAACC,GAAG,EAAEzC,QAAQ,KAAI;AAChB,IAAA,MAAMiB,IAAI,GAAGjB,QAAQ,CAACe,IAAI,CAACE,IAAI;IAC/B,IAAI,CAACwB,GAAG,CAACxB,IAAI,CAAC,EAAEwB,GAAG,CAACxB,IAAI,CAAC,GAAG,EAAE;AAC9BwB,IAAAA,GAAG,CAACxB,IAAI,CAAE,CAACyB,IAAI,CAAC1C,QAAQ,CAAC;AACzB,IAAA,OAAOyC,GAAG;GACX,EACD,EAAE,CACH;EAED,MAAME,iBAAiB,GAAIC,KAAuB,IAAI;AACpD,IAAA,IAAIA,KAAK,CAACzC,MAAM,KAAK,CAAC,EAAE;MACtB,IAAIJ,SAAS,CAAC6C,KAAK,CAAC,CAAC,CAAE,EAAE3C,gBAAgB,CAAC,EAAE;AAC1CM,QAAAA,QAAS,CAACqC,KAAK,CAAC,CAAC,CAAE,CAAC;AACtB,OAAC,MAAM;AACLtC,QAAAA,QAAQ,CAACsC,KAAK,CAAC,CAAC,CAAE,CAAC;AACrB;AACF,KAAC,MAAM;AACLP,MAAAA,QAAQ,CAAC;AACPQ,QAAAA,GAAG,EAAE,CAAc,YAAA,CAAA;AACnBC,QAAAA,OAAO,EACLrD,cAAA,CAACW,2BAA2B,EAAA;AAC1BC,UAAAA,SAAS,EAAEuC,KAAK;AAChBrC,UAAAA,QAAQ,EAAEA,QAAQ;AAClBD,UAAAA,QAAQ,EAAEA;;AAGf,OAAA,CAAC;AACJ;GACD;AAEDyC,EAAAA,eAAS,CAAC,MAAK;AACb;AACA,IAAA,MAAMC,aAAa,GAAGC,MAAM,CAACC,MAAM,CAACX,OAAO,CAAC;AAC5C,IAAA,IAAIS,aAAa,CAAC7C,MAAM,KAAK,CAAC,EAAE;MAC9BmC,OAAO,EAAE,CAAC;AACVK,MAAAA,iBAAiB,CAACK,aAAa,CAAC,CAAC,CAAE,CAAC;AACtC;AACF,GAAC,EAAE,CAACT,OAAO,CAAC,CAAC;AAEb,EAAA,OAAOU,MAAM,CAACE,IAAI,CAACZ,OAAO,CAAC,CAACpC,MAAM,KAAK,CAAC,GACtCS;IACElB,SAAS,EAAEmB,IAAI,CACb,6HAA6H,EAC7HL,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAC7B;AAEDb,IAAAA,QAAA,EAAA,CAAAF,cAAA,CAAA,MAAA,EAAA;AAAMC,MAAAA,SAAS,EAAC,qBAAqB;;MAE9B,EACPD,cAAA,CAAA,MAAA,EAAA;AAAAE,MAAAA,QAAA,EAAA;AAAA,KAAA,CAGO;IACH,GAENF,cACE,CAAA,KAAA,EAAA;IAAAC,SAAS,EAAEmB,IAAI,CACb,iEAAiE,EACjEL,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAC7B;AAEDb,IAAAA,QAAA,EAAAF,cAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,qBAAqB;AACjCC,MAAAA,QAAA,EAAAsD,MAAM,CAACG,OAAO,CAACb,OAAO,CAAC,CAACrB,GAAG,CAC1B,CAAC,CAACD,IAAI,EAAE2B,KAAK,CAA6B,KAAI;QAC5C,MAAM,CAACxB,UAAU,EAAEC,aAAa,CAAC,GAAGhC,cAAQ,CAAC,KAAK,CAAC;AACnD,QAAA,MAAMgE,KAAK,GAAGT,KAAK,CAAC,CAAC,CAAC;QAEtB,OACEhC,eAAC,CAAAhB,oBAAY;AAEX0B,UAAAA,YAAY,EAAEA,MAAMD,aAAa,CAAC,IAAI,CAAC;AACvCE,UAAAA,YAAY,EAAEA,MAAMF,aAAa,CAAC,KAAK,CAAC;AACxCxB,UAAAA,OAAO,EAAEA,MAAM8C,iBAAiB,CAACC,KAAK,CAAC;AACvClD,UAAAA,SAAS,EAAC,oHAAoH;AAAAC,UAAAA,QAAA,EAAA,CAE9HiB;AAAKlB,YAAAA,SAAS,EAAC,yCAAyC;AACtDC,YAAAA,QAAA,EAAA,CAAAF,cAAA,CAAA,KAAA,EAAA;AACEqB,cAAAA,GAAG,EAAEuC,KAAK,EAAEtC,IAAI,CAACC,IAAI;AACrBsC,cAAAA,GAAG,EAAED,KAAK,EAAEtC,IAAI,CAACE,IAAI;AACrBvB,cAAAA,SAAS,EAAC;AAAqB,aAAA,CAC/B,EACD2D,KAAK,EAAEtC,IAAI,CAACE,IAAI;YACb,EACNxB,cAAA,CAAA,KAAA,EAAA;AAAKC,YAAAA,SAAS,EAAEmB,IAAI,CAAC,CAAA,sCAAA,CAAwC,CAAC;sBAC3D+B,KAAK,CAAC1B,GAAG,CAAC,CAACqC,CAAC,EAAEC,GAAG,KAAI;cACpB,MAAMC,IAAI,GAAGjC,qBAAgB,CAAC+B,CAAC,CAAC,GAC5B9B,gBAAY,GACZG,cAAU;cACd,MAAM8B,KAAK,GAAG,EAAE,GAAGF,GAAG,GAAG,EAAE,CAAC;cAC5B,OACE5C,eAAA,CAAA,KAAA,EAAA;AAEE+C,gBAAAA,KAAK,EAAE;kBAAEC,eAAe,EAAE,GAAGF,KAAK,CAAA,EAAA;iBAAM;AACxChE,gBAAAA,SAAS,EAAEmB,IAAI,CACb,UAAU,EACV,QAAQ,EACR,6BAA6B,EAC7BO,UAAU,GAAG,gBAAgB,GAAG,eAAe,CAChD;AAEDzB,gBAAAA,QAAA,EAAA,CAAAF,cAAA,CAACgE,IAAI,EAAA;AAAC/D,kBAAAA,SAAS,EAAC;AAAQ,iBAAA,CAAG,EAC1BK,SAAS,CAACwD,CAAC,EAAEtD,gBAAgB,CAAC,IAC7BR,cAAC,CAAAiC,kBAAkB,EAAC;AAAAC,kBAAAA,SAAS,EAAEP;kBAChC;AAAA,eAAA,EAZImC,CAAC,CAACrB,SAAS,CAACC,SAAS,CAatB;aAET;AACG,WAAA,CAAA,EACN1C,cAAC,CAAAqC,gCAAe;AACdpC,YAAAA,SAAS,EAAEmB,IAAI,CACb,CAAA,oCAAA,CAAsC,EACtCO,UAAU,GAAG,SAAS,GAAG,UAAU,EACnCwB,KAAK,CAACzC,MAAM,KAAK,CAAC,IAAIJ,SAAS,CAAC6C,KAAK,CAAC,CAAC,CAAE,EAAE3C,gBAAgB,CAAC,GACxD,yCAAyC,GACzC,+CAA+C,CACpD;AACD8B,YAAAA,IAAI,EACFa,KAAK,CAACzC,MAAM,KAAK,CAAC,IAAIJ,SAAS,CAAC6C,KAAK,CAAC,CAAC,CAAE,EAAE3C,gBAAgB,CAAC,GACxD,IAAI,GACJ,IAAI;AAEVe,YAAAA,IAAI,EACF4B,KAAK,CAACzC,MAAM,KAAK,CAAC,IAAIJ,SAAS,CAAC6C,KAAK,CAAC,CAAC,CAAE,EAAE3C,gBAAgB,CAAC,GACxD+B,yBAAO,GACPC;AAAc,WAAA,CAEpB;WAzDGhB,IAAI,CA0DI;OAElB;KACF;AAEC,GAAA,CACP;AACH;AAOM,SAAU4C,kBAAkBA,CAAC5E,KAA8B,EAAA;EAC/D,MAAM;IAAEe,QAAQ;AAAEO,IAAAA;AAAU,GAAA,GAAGtB,KAAK;EACpC,MAAM;AAAEuB,IAAAA;GAAU,GAAGC,aAAQ,EAAE;EAC/B,MAAM,CAACtB,SAAS,EAAEC,YAAY,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAACyE,QAAQ,EAAEC,WAAW,CAAC,GAAG1E,cAAQ,CAAC,KAAK,CAAC;AAE/C,EAAA,MAAM2E,YAAY,GAAG,YAAW;IAC9B5E,YAAY,CAAC,IAAI,CAAC;IAClB2E,WAAW,CAAC,KAAK,CAAC;IAClB,IAAI;MACF,MAAMxD,QAAQ,CAACP,QAAQ,CAAC;KACzB,CAAC,OAAOiE,GAAG,EAAE;MACZF,WAAW,CAAC,IAAI,CAAC;AACnB,KAAC,SAAS;MACR3E,YAAY,CAAC,KAAK,CAAC;AACrB;GACD;EAED,OACEwB,eAAK,CAAA,KAAA,EAAA;IAAAlB,SAAS,EAAEmB,IAAI,CAAC,MAAM,EAAEL,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAAAb,IAAAA,QAAA,EAAA,CACxDiB;AAAKlB,MAAAA,SAAS,EAAC,4CAA4C;AAAAC,MAAAA,QAAA,EAAA,CACzDF,cAAK,CAAA,KAAA,EAAA;AAAAqB,QAAAA,GAAG,EAAEd,QAAQ,CAACe,IAAI,CAACC,IAAI,IAAI,EAAE;AAAEtB,QAAAA,SAAS,EAAC;AAAyB,OAAA,CAAA,EACvED;QACEC,SAAS,EAAEmB,IAAI,CACb,gCAAgC,EAChCiD,QAAQ,IAAI,yCAAyC,CACtD;QAAAnE,QAAA,EAEAmE,QAAQ,GACL,+BAA+B,GAC/B,UAAU9D,QAAQ,CAACe,IAAI,CAACE,IAAI,CAAA;AAAE,OAAA,CAC9B,EACNxB,cAAK,CAAA,KAAA,EAAA;AAAAC,QAAAA,SAAS,EAAC,gEAAgE;kBAC5EoE,QAAQ,GACL,CAAmC9D,gCAAAA,EAAAA,QAAQ,CAACe,IAAI,CAACE,IAAI,CAAA,IAAA,CAAM,GAC3D;AAA8C,OAAA,CAC9C;AACF,KAAA,CAAA,EAENxB;AAAKC,MAAAA,SAAS,EAAC,gBAAgB;AAAAC,MAAAA,QAAA,EAC7BF,eAACG,oBAAY,EAAA;AACXC,QAAAA,OAAO,EAAEmE,YAAY;AACrBlE,QAAAA,OAAO,EAAEX,SAAS;QAClBO,SAAS,EAAEmB,IAAI,CACb,yGAAyG,EACzGiD,QAAQ,IAAI,0BAA0B,CACvC;AACDI,QAAAA,gBAAgB,EAAC,mEAAmE;;;AAIlF,KAAA,CAAA;AAAA,GAAA,CACF;AAEV;AAKM,SAAUxC,kBAAkBA,CAACzC,KAA8B,EAAA;EAC/D,MAAM;AAAE0C,IAAAA,SAAS,GAAG;AAAO,GAAA,GAAG1C,KAAK;EACnC,OACE2B;AAAKlB,IAAAA,SAAS,EAAC,kCAAkC;AAC9CC,IAAAA,QAAA,EAAA,CAAAgC,SAAS,IACRlC,cAAK,CAAA,KAAA,EAAA;AAAAC,MAAAA,SAAS,EAAC;AAA4J,KAAA,CAC5K,EACDD,cAAK,CAAA,KAAA,EAAA;AAAAC,MAAAA,SAAS,EAAC;AAAsI,KAAA,CAAG;AACpJ,GAAA,CAAA;AAEV;AAQM,SAAUyE,mBAAmBA,CAAClF,KAA+B,EAAA;EACjE,MAAM;IAAEe,QAAQ;IAAEoE,mBAAmB;IAAEC,QAAQ;AAAEC,IAAAA;AAAY,GAAE,GAAGrF,KAAK;EACvE,MAAM;IAAEoD,QAAQ;IAAEkC,UAAU;AAAE/D,IAAAA;GAAU,GAAGC,aAAQ,EAAE;EACrD,MAAM;AAAE+D,IAAAA;GAAoB,GAAGC,iBAAU,EAAE;AAC3C,EAAA,MAAMC,MAAM,GAAGC,YAAM,CAAC,KAAK,CAAC;EAE5B,MAAM,CAACC,qBAAqB,EAAEC,wBAAwB,CAAC,GACrDxF,cAAQ,EAAkB;AAC5B,EAAA,MAAMyF,gBAAgB,GAAGF,qBAAqB,EAAE1E,kBAAkB,CAAC,CAAC,CAAC;AAErE6C,EAAAA,eAAS,CAAC,MAAK;IACb8B,wBAAwB,CAAC7E,QAAQ,CAAC;AACpC,GAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,MAAM,CAAC+E,WAAW,EAAEC,cAAc,CAAC,GAAG3F,cAAQ,CAAC,KAAK,CAAC;EACrD,MAAM,CAAC4F,WAAW,EAAEC,cAAc,CAAC,GAAG7F,cAAQ,CAAC,KAAK,CAAC;AAErD;AACA8F,EAAAA,aAAO,CAAC,MAAK;AACX,IAAA,CAAC,YAAW;MACV,IAAIT,MAAM,CAACU,OAAO,EAAE;MACpB,IAAI;AACF,QAAA,MAAMf,QAAQ,CAACO,qBAAqB,IAAI5E,QAAQ,CAAC;QACjD0E,MAAM,CAACU,OAAO,GAAG,IAAI;AACrB/C,QAAAA,QAAQ,CAAC;AACPQ,UAAAA,GAAG,EAAE,cAAc;AACnBC,UAAAA,OAAO,EACLrD,cAAA,CAAC4F,mBAAW,EAAA;AACVC,YAAAA,IAAI,EAAC,oCAAoC;AACzCC,YAAAA,UAAU,EAAEhB,UAAU;AACtBiB,YAAAA,QAAQ,EAAEpB;YAEb;AACDqB,UAAAA,WAAW,EAAE,IAAI;AACjBC,UAAAA,SAAS,EAAE;AACZ,SAAA,CAAC;AACJ,OAAC,CAAC,OAAOC,CAAC,EAAE;AACd,KAAC,GAAG;AACN,GAAC,EAAE,CAACf,qBAAqB,EAAEgB,GAAG,CAAC,CAAC;AAEhC,EAAA,MAAM5B,YAAY,GAAG,YAAW;IAC9BgB,cAAc,CAAC,IAAI,CAAC;IACpBE,cAAc,CAAC,KAAK,CAAC;IACrB,IAAI;AACF,MAAA,MAAMZ,YAAY,GAAGM,qBAAqB,IAAI5E,QAAQ,CAAC;AACvD,MAAA,MAAM6F,YAAY,GAAG,MAAMrB,kBAAkB,EAAE;AAC/CK,MAAAA,wBAAwB,CACtBgB,YAAY,CAACC,IAAI,CAAE3E,CAAC,IAAKA,CAAC,CAAC4E,aAAa,KAAK/F,QAAQ,CAAC+F,aAAa,CAAC,CACrE;KACF,CAAC,OAAO9B,GAAG,EAAE;MACZiB,cAAc,CAAC,IAAI,CAAC;AACtB,KAAC,SAAS;MACRF,cAAc,CAAC,KAAK,CAAC;AACvB;GACD;EACD,OACEvF,cAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,gCAAgC;AAAAC,IAAAA,QAAA,EAC5CmF,gBAAgB,GACflE,eAAA,CAAA,KAAA,EAAA;MACElB,SAAS,EAAEmB,IAAI,CACb,uCAAuC,EACvCL,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAC7B;AAAAb,MAAAA,QAAA,EAAA,CAEDiB;AAAKlB,QAAAA,SAAS,EAAC,iDAAiD;AAAAC,QAAAA,QAAA,EAAA,CAC9DF,cACE,CAAA,KAAA,EAAA;UAAAC,SAAS,EAAEmB,IAAI,CACb,uJAAuJ,EACvJL,QAAQ,GAAG,SAAS,GAAG,SAAS,CACjC;AAEDb,UAAAA,QAAA,EAAAF,cAAA,CAACqC,gCAAe,EAAA;AACdd,YAAAA,IAAI,EAAEgF,gCAAc;AACpBjE,YAAAA,IAAI,EAAEvB,QAAQ,GAAG,IAAI,GAAG;WACxB;AAAA,SAAA,CACE,EAENI,eAAA,CAAA,KAAA,EAAA;AAAKlB,UAAAA,SAAS,EAAC,iHAAiH;AAAAC,UAAAA,QAAA,EAAA,CAC9HiB,eAAK,CAAA,KAAA,EAAA;AAAAlB,YAAAA,SAAS,EAAC,kCAAkC;AAAAC,YAAAA,QAAA,EAAA,CAC/CF,cACE,CAAA,KAAA,EAAA;AAAAC,cAAAA,SAAS,EAAC,QAAQ;AAClBoB,cAAAA,GAAG,EAAE8D,qBAAqB,CAAC7D,IAAI,CAACC,IAAI;AACpCsC,cAAAA,GAAG,EAAC;AAAqB,aAAA,CACzB,EACF7D,cAAA,CAAA,KAAA,EAAA;AACEC,cAAAA,SAAS,EAAC,8BAA8B;AACxCoB,cAAAA,GAAG,EAAE8D,qBAAqB,CAAC7D,IAAI,CAACC,IAAI;AACpCsC,cAAAA,GAAG,EAAC;AACJ,aAAA,CAAA;AAAA,WAAA,CACE,EAEN1C,eAAA,CAAA,MAAA,EAAA;AAAAjB,YAAAA,QAAA,EAAA,CACGmF,gBAAgB,EAAEjD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAC7B,KAAA,EAAAiD,gBAAgB,EAAEjD,KAAK,CAAC,EAAE,CAAC;AAAA,WAAA,CACvB;AACH,SAAA,CAAA,EAENpC,cACE,CAAA,KAAA,EAAA;UAAAC,SAAS,EAAEmB,IAAI,CACb,uJAAuJ,EACvJL,QAAQ,GAAG,SAAS,GAAG,SAAS,CACjC;AAEDb,UAAAA,QAAA,EAAAF,cAAA,CAACqC,gCAAe,EAAA;AAACd,YAAAA,IAAI,EAAEiF,0BAAQ;AAAElE,YAAAA,IAAI,EAAEvB,QAAQ,GAAG,IAAI,GAAG;WAAQ;AAAA,SAAA,CAC7D;AACF,OAAA,CAAA,EAENf,cACE,CAAA,KAAA,EAAA;AAAAC,QAAAA,SAAS,EAAEmB,IAAI,CACb,gEAAgE,CACjE;AAGGlB,QAAAA,QAAA,EAAA;AAAA,OAAA,CAAA,EACNiB,eAAK,CAAA,KAAA,EAAA;AAAAlB,QAAAA,SAAS,EAAC,gGAAgG;AAC7GC,QAAAA,QAAA,EAAA,CAAAF,cAAA,CAAA,MAAA,EAAA;AAAAE,UAAAA,QAAA,EAAA;AAAA,SAAA,CAEO,EACNoF,WAAW,GACVtF,cAAA,CAAA,MAAA,EAAA;AAAMC,UAAAA,SAAS,EAAC,oDAAoD;AAAAC,UAAAA,QAAA,EAAA;AAAA,SAAA,CAE7D,GACLsF,WAAW,GACbxF,cAAA,CAAA,MAAA,EAAA;AAAMC,UAAAA,SAAS,EAAC,oDAAoD;AAE7DC,UAAAA,QAAA,EAAA;AAAA,SAAA,CAAA,GAEPiB,eACsC,CAAA,MAAA,EAAA;UAAAjB,QAAA,EAAA,CAAA,qCAAA,EAAA,GAAG,EACvCF,cAAA,CAAA,MAAA,EAAA;AACEC,YAAAA,SAAS,EAAC,kEAAkE;AAC5EG,YAAAA,OAAO,EAAEmE,YAAY;AAGhBrE,YAAAA,QAAA,EAAA;AAAA,WAAA,CAAA,EAAC,GAAG,EAAA,oBAAA;AAAA,SAAA,CAGd;AAAA,OAAA,CACG;AACF,KAAA,CAAA,GAENiB,eACE,CAAA,KAAA,EAAA;MAAAlB,SAAS,EAAEmB,IAAI,CACb,uCAAuC,EACvCL,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAC7B;AAAAb,MAAAA,QAAA,EAAA,CAEAiF,qBAAqB,EAAEgB,GAAG;AACzB;MACAnG,cAAA,CAACyG,sBAAM,EAAA;AACLxG,QAAAA,SAAS,EAAC,6NAGyC;QACnDyG,KAAK,EAAEvB,qBAAqB,CAACgB,GAAG;AAChCQ,QAAAA,aAAa,EAAE;AACbtF,UAAAA,GAAG,EAAE8D,qBAAqB,CAAC7D,IAAI,CAACC,IAAI,IAAI,EAAE;AAC1CqF,UAAAA,KAAK,EAAE,EAAE;AACTC,UAAAA,MAAM,EAAE,EAAE;AACVC,UAAAA,QAAQ,EAAE;SACX;AACDxE,QAAAA,IAAI,EAAE;AACN,OAAA,CACH,EACDtC,cAAK,CAAA,KAAA,EAAA;AAAAC,QAAAA,SAAS,EAAEmB,IAAI,CAAC,gCAAgC,CAAC;AAEhDlB,QAAAA,QAAA,EAAA;AAAA,OAAA,CAAA,EACNF,cAAK,CAAA,KAAA,EAAA;AAAAC,QAAAA,SAAS,EAAC,gEAAgE;;QAEzE;KACF;AAEJ,GAAA,CAAA;AAEV;;;;;;;;;"}
|