@coinlist-co/react 0.12.1-rc.6b77fc6 → 0.12.1-rc.9aec85a
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/{chunk-DOSABR7Q.js → chunk-DCW7NQXH.js} +2 -2
- package/dist/{chunk-2YEJXE2V.js → chunk-MOE5S6CE.js} +193 -109
- package/dist/chunk-MOE5S6CE.js.map +1 -0
- package/dist/{chunk-DX4VTV7L.js → chunk-VH34YC3Q.js} +56 -4
- package/dist/chunk-VH34YC3Q.js.map +1 -0
- package/dist/client/index.cjs +1016 -517
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.d.cts +318 -143
- package/dist/client/index.d.ts +318 -143
- package/dist/client/index.js +804 -437
- package/dist/client/index.js.map +1 -1
- package/dist/server/index.cjs +149 -71
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.d.cts +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.js +2 -2
- package/dist/{collections-C6b-rJpx.d.ts → token-registry-snapshot-BNBNuDu1.d.ts} +65 -2
- package/dist/{collections-UYVlXbEh.d.cts → token-registry-snapshot-CqI6dXM_.d.cts} +65 -2
- package/dist/{tokens-namespace-C-BxcYMj.d.cts → tokens-namespace-CIWBtgt2.d.cts} +171 -46
- package/dist/{tokens-namespace-C-BxcYMj.d.ts → tokens-namespace-CIWBtgt2.d.ts} +171 -46
- package/dist/universal/index.cjs +218 -77
- package/dist/universal/index.cjs.map +1 -1
- package/dist/universal/index.d.cts +9 -14
- package/dist/universal/index.d.ts +9 -14
- package/dist/universal/index.js +14 -4
- package/package.json +1 -1
- package/dist/chunk-2YEJXE2V.js.map +0 -1
- package/dist/chunk-DX4VTV7L.js.map +0 -1
- /package/dist/{chunk-DOSABR7Q.js.map → chunk-DCW7NQXH.js.map} +0 -0
package/dist/client/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
SDK_LOGGER_NAME,
|
|
6
6
|
loggerOverPino,
|
|
7
7
|
publicClients
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-DCW7NQXH.js";
|
|
9
9
|
import {
|
|
10
10
|
AuthorizationCode,
|
|
11
11
|
CodeVerifier,
|
|
@@ -14,7 +14,6 @@ import {
|
|
|
14
14
|
DEFAULT_ONDO_SELL_TOKENS_TO_COMPUTE_PRICE,
|
|
15
15
|
DEFAULT_SLIPPAGE_BPS,
|
|
16
16
|
ONDO_POLL_INTERVAL_MS,
|
|
17
|
-
ONDO_QUOTE_EXPIRY_THRESHOLD_MS,
|
|
18
17
|
ONDO_SETTLEMENT_ASSET,
|
|
19
18
|
ONDO_SUPPORTED_INPUT_ASSETS,
|
|
20
19
|
OffersNamespaceImpl,
|
|
@@ -25,6 +24,7 @@ import {
|
|
|
25
24
|
SWAP_POLL_INTERVAL_MS,
|
|
26
25
|
SwapQuote,
|
|
27
26
|
TOKEN_REGISTRY,
|
|
27
|
+
TokenRegistrySnapshot,
|
|
28
28
|
USDC,
|
|
29
29
|
USDC_SYMBOL,
|
|
30
30
|
computeOndoBuyPrice,
|
|
@@ -35,9 +35,11 @@ import {
|
|
|
35
35
|
formattedPricePerShare,
|
|
36
36
|
generatePKCEParams,
|
|
37
37
|
isSwapAvailable,
|
|
38
|
+
offerDisplayTokens,
|
|
39
|
+
ondoQuoteOfferDeadline,
|
|
38
40
|
superstateSwapContractAddress,
|
|
39
41
|
swapSpender
|
|
40
|
-
} from "../chunk-
|
|
42
|
+
} from "../chunk-VH34YC3Q.js";
|
|
41
43
|
import {
|
|
42
44
|
API_VERSION,
|
|
43
45
|
AssetDecimals,
|
|
@@ -86,7 +88,7 @@ import {
|
|
|
86
88
|
shortenAddress,
|
|
87
89
|
txExplorerUrl,
|
|
88
90
|
usdAmount
|
|
89
|
-
} from "../chunk-
|
|
91
|
+
} from "../chunk-MOE5S6CE.js";
|
|
90
92
|
|
|
91
93
|
// src/client/CoinListProvider.tsx
|
|
92
94
|
import {
|
|
@@ -1094,7 +1096,7 @@ var CoinListProvider = CoinListContextProvider;
|
|
|
1094
1096
|
import { createContext as createContext4, useContext as useContext3 } from "react";
|
|
1095
1097
|
|
|
1096
1098
|
// src/client/generated/sdk-styles.gen.ts
|
|
1097
|
-
var sdkStyles = '/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--clcosdk-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--clcosdk-color-red-400:oklch(70.4% .191 22.216);--clcosdk-color-red-500:oklch(63.7% .237 25.331);--clcosdk-color-amber-500:oklch(76.9% .188 70.08);--clcosdk-color-gray-400:oklch(70.7% .022 261.325);--clcosdk-color-gray-500:oklch(55.1% .027 264.364);--clcosdk-color-black:#000;--clcosdk-spacing:.25rem;--clcosdk-container-sm:24rem;--clcosdk-container-md:28rem;--clcosdk-container-xl:36rem;--clcosdk-text-xs:.75rem;--clcosdk-text-xs--line-height:calc(1 / .75);--clcosdk-text-sm:.875rem;--clcosdk-text-sm--line-height:calc(1.25 / .875);--clcosdk-text-base:1rem;--clcosdk-text-base--line-height:calc(1.5 / 1);--clcosdk-text-lg:1.125rem;--clcosdk-text-lg--line-height:calc(1.75 / 1.125);--clcosdk-font-weight-normal:400;--clcosdk-font-weight-medium:500;--clcosdk-font-weight-semibold:600;--clcosdk-radius-md:.375rem;--clcosdk-radius-lg:.5rem;--clcosdk-radius-xl:.75rem;--clcosdk-radius-2xl:1rem;--clcosdk-ease-out:cubic-bezier(0, 0, .2, 1);--clcosdk-ease-in-out:cubic-bezier(.4, 0, .2, 1);--clcosdk-animate-spin:spin 1s linear infinite;--clcosdk-animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--clcosdk-color-brand-primary:var(--color-brand-primary)}}@layer base{.clco-sdk-root{--color-brand-primary:#171717;--color-brand-primary-hover:#000;--color-brand-primary-active:#262626;--color-accent:#2b3a67;--color-accent-hover:#243057;--color-accent-active:#1d2647;--color-accent-focus:#c7d2fe;--color-accent-subtle:#eef1f8;--color-text-primary:#171717;--color-text-secondary:#8c8c8c;--color-text-disabled:#d1d1d1;--color-text-inverse:#fff;--color-background:#fff;--color-surface:#fafafa;--color-section:#f3f3f3;--color-border:#e5e5e5;--color-divider:#ececec;--color-overlay:#00000080;--color-positive:#15803d;--color-positive-subtle:#dcfce7;--color-negative:#dc2626;--color-negative-subtle:#fee2e2;--color-success:#2c8c5e;--color-success-subtle:#e6f4ec;--color-success-border:#cfe9db;--color-warning:#e08a1a;--color-warning-subtle:#fff7ed;--color-warning-border:#fdead7;--color-error:#b42318;--color-error-subtle:#feeceb;--color-error-border:#fbd5d2;--shadow-step-active:0px 0px 10px 0px #0000001a;--shadow-dialog:0px 8px 32px 0px #0000001a;--btn-primary-gradient:linear-gradient(180deg, #262626 0%, #1c1c1c 50%, #0f0f0f 100%);--btn-primary-shadow:inset 0px -1px 3px 0px #00000059, inset 0px 1px 2px 0px #ffffff2e, inset 0px 1px 0px 0px #ffffff1a;--sale-card-surface:linear-gradient(to top, #0a0a0a 0%, #1a1a1a 100%);--color-sale-card-text:#f4f4f5;--color-sale-card-text-muted:#a1a1aa;--color-sale-card-text-strong:#fff;--color-sale-card-border:#ffffff40;--color-sale-card-chrome-border:#ffffff4d;--color-sale-card-chrome-bg:#ffffff26;--color-sale-card-chrome-emphasis-border:#fff6;--color-sale-card-chrome-emphasis-bg:#ffffff40;--color-sale-card-focus-ring:#ffffff80}@media (prefers-color-scheme:dark){.clco-sdk-root:not(:where(.light,.light *)){--color-brand-primary:#f4f4f5;--color-brand-primary-hover:#fff;--color-brand-primary-active:#e4e4e7;--color-accent:#6f82c9;--color-accent-hover:#8799e4;--color-accent-active:#5b6fcf;--color-accent-focus:#6f82c959;--color-accent-subtle:#6f82c91f;--color-text-primary:#f4f4f5;--color-text-secondary:#a1a1aa;--color-text-disabled:#71717a;--color-text-inverse:#171717;--color-background:#0f1115;--color-surface:#161a20;--color-section:#20242c;--color-border:#2a2e35;--color-divider:#323741;--color-overlay:#000000b3;--color-positive:#22c55e;--color-positive-subtle:#22c55e1f;--color-negative:#ef4444;--color-negative-subtle:#ef44441f;--color-success:#34d399;--color-success-subtle:#34d3991f;--color-success-border:#34d39940;--color-warning:#f59e0b;--color-warning-subtle:#f59e0b1f;--color-warning-border:#f59e0b40;--color-error:#f87171;--color-error-subtle:#f871711f;--color-error-border:#f8717140;--shadow-step-active:0px 0px 10px 0px #00000080;--shadow-dialog:0px 8px 32px 0px #0009;--btn-primary-gradient:linear-gradient(180deg, #fafafa 0%, #f0f0f0 50%, #e4e4e7 100%);--btn-primary-shadow:inset 0px -1px 3px 0px #0000001f, inset 0px 1px 2px 0px #fff9, inset 0px 1px 0px 0px #fff6}}:where(.dark,.dark *) .clco-sdk-root{--color-brand-primary:#f4f4f5;--color-brand-primary-hover:#fff;--color-brand-primary-active:#e4e4e7;--color-accent:#6f82c9;--color-accent-hover:#8799e4;--color-accent-active:#5b6fcf;--color-accent-focus:#6f82c959;--color-accent-subtle:#6f82c91f;--color-text-primary:#f4f4f5;--color-text-secondary:#a1a1aa;--color-text-disabled:#71717a;--color-text-inverse:#171717;--color-background:#0f1115;--color-surface:#161a20;--color-section:#20242c;--color-border:#2a2e35;--color-divider:#323741;--color-overlay:#000000b3;--color-positive:#22c55e;--color-positive-subtle:#22c55e1f;--color-negative:#ef4444;--color-negative-subtle:#ef44441f;--color-success:#34d399;--color-success-subtle:#34d3991f;--color-success-border:#34d39940;--color-warning:#f59e0b;--color-warning-subtle:#f59e0b1f;--color-warning-border:#f59e0b40;--color-error:#f87171;--color-error-subtle:#f871711f;--color-error-border:#f8717140;--shadow-step-active:0px 0px 10px 0px #00000080;--shadow-dialog:0px 8px 32px 0px #0009;--btn-primary-gradient:linear-gradient(180deg, #fafafa 0%, #f0f0f0 50%, #e4e4e7 100%);--btn-primary-shadow:inset 0px -1px 3px 0px #0000001f, inset 0px 1px 2px 0px #fff9, inset 0px 1px 0px 0px #fff6}.clco-sdk-root{color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.clco-sdk-root *,.clco-sdk-root :before,.clco-sdk-root :after{box-sizing:border-box}.clco-sdk-root button{appearance:none;cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;padding:0}.clco-sdk-root input,.clco-sdk-root textarea,.clco-sdk-root select{font:inherit;color:inherit;background:0 0;border:none;border-radius:0;padding:0}.clco-sdk-root a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}.clco-sdk-root ul,.clco-sdk-root ol{margin:0;padding:0;list-style:none}.clco-sdk-root h1,.clco-sdk-root h2,.clco-sdk-root h3,.clco-sdk-root h4,.clco-sdk-root h5,.clco-sdk-root h6,.clco-sdk-root p,.clco-sdk-root figure,.clco-sdk-root blockquote,.clco-sdk-root dl,.clco-sdk-root dd,.clco-sdk-root pre{margin:0}.clco-sdk-root img,.clco-sdk-root svg{max-width:100%;display:block}@keyframes clco-status-ping{0%{opacity:.7;transform:scale(1)}75%,to{opacity:0;transform:scale(3.25)}}.clco-sdk-root .clcosdk-status-dot-ping{animation:1.6s cubic-bezier(0,0,.2,1) infinite clco-status-ping}@media (prefers-reduced-motion:reduce){.clco-sdk-root .clcosdk-status-dot-ping{opacity:0;animation:none}}}@layer components;@layer utilities{.clcosdk\\:pointer-events-none{pointer-events:none}.clcosdk\\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.clcosdk\\:absolute{position:absolute}.clcosdk\\:fixed{position:fixed}.clcosdk\\:relative{position:relative}.clcosdk\\:inset-0{inset:0}.clcosdk\\:top-1\\/2{top:50%}.clcosdk\\:top-4{top:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:top-full{top:100%}.clcosdk\\:-right-0\\.5{right:calc(var(--clcosdk-spacing) * -.5)}.clcosdk\\:right-4{right:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:right-\\[-14\\%\\]{right:-14%}.clcosdk\\:-bottom-0\\.5{bottom:calc(var(--clcosdk-spacing) * -.5)}.clcosdk\\:bottom-full{bottom:100%}.clcosdk\\:left-1\\/2{left:50%}.clcosdk\\:z-0{z-index:0}.clcosdk\\:z-10{z-index:10}.clcosdk\\:z-50{z-index:50}.clcosdk\\:order-1{order:1}.clcosdk\\:order-2{order:2}.clcosdk\\:mt-2{margin-top:calc(var(--clcosdk-spacing) * 2)}.clcosdk\\:mt-4{margin-top:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:mt-auto{margin-top:auto}.clcosdk\\:mb-2{margin-bottom:calc(var(--clcosdk-spacing) * 2)}.clcosdk\\:flex{display:flex}.clcosdk\\:grid{display:grid}.clcosdk\\:inline-flex{display:inline-flex}.clcosdk\\:size-2{width:calc(var(--clcosdk-spacing) * 2);height:calc(var(--clcosdk-spacing) * 2)}.clcosdk\\:size-3{width:calc(var(--clcosdk-spacing) * 3);height:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:size-3\\.5{width:calc(var(--clcosdk-spacing) * 3.5);height:calc(var(--clcosdk-spacing) * 3.5)}.clcosdk\\:size-4{width:calc(var(--clcosdk-spacing) * 4);height:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:size-5{width:calc(var(--clcosdk-spacing) * 5);height:calc(var(--clcosdk-spacing) * 5)}.clcosdk\\:size-10{width:calc(var(--clcosdk-spacing) * 10);height:calc(var(--clcosdk-spacing) * 10)}.clcosdk\\:size-16{width:calc(var(--clcosdk-spacing) * 16);height:calc(var(--clcosdk-spacing) * 16)}.clcosdk\\:size-24{width:calc(var(--clcosdk-spacing) * 24);height:calc(var(--clcosdk-spacing) * 24)}.clcosdk\\:size-\\[15rem\\]{width:15rem;height:15rem}.clcosdk\\:size-full{width:100%;height:100%}.clcosdk\\:h-1{height:var(--clcosdk-spacing)}.clcosdk\\:h-3{height:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:h-4{height:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:h-5{height:calc(var(--clcosdk-spacing) * 5)}.clcosdk\\:h-6{height:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:h-8{height:calc(var(--clcosdk-spacing) * 8)}.clcosdk\\:h-9{height:calc(var(--clcosdk-spacing) * 9)}.clcosdk\\:h-10{height:calc(var(--clcosdk-spacing) * 10)}.clcosdk\\:h-11{height:calc(var(--clcosdk-spacing) * 11)}.clcosdk\\:h-12{height:calc(var(--clcosdk-spacing) * 12)}.clcosdk\\:h-14{height:calc(var(--clcosdk-spacing) * 14)}.clcosdk\\:h-\\[18px\\]{height:18px}.clcosdk\\:h-\\[54px\\]{height:54px}.clcosdk\\:h-\\[71px\\]{height:71px}.clcosdk\\:h-auto{height:auto}.clcosdk\\:h-full{height:100%}.clcosdk\\:h-px{height:1px}.clcosdk\\:max-h-\\[92vh\\]{max-height:92vh}.clcosdk\\:max-h-full{max-height:100%}.clcosdk\\:min-h-0{min-height:0}.clcosdk\\:min-h-9{min-height:calc(var(--clcosdk-spacing) * 9)}.clcosdk\\:min-h-40{min-height:calc(var(--clcosdk-spacing) * 40)}.clcosdk\\:min-h-screen{min-height:100vh}.clcosdk\\:w-1{width:var(--clcosdk-spacing)}.clcosdk\\:w-4{width:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:w-5{width:calc(var(--clcosdk-spacing) * 5)}.clcosdk\\:w-6{width:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:w-8{width:calc(var(--clcosdk-spacing) * 8)}.clcosdk\\:w-10{width:calc(var(--clcosdk-spacing) * 10)}.clcosdk\\:w-12{width:calc(var(--clcosdk-spacing) * 12)}.clcosdk\\:w-16{width:calc(var(--clcosdk-spacing) * 16)}.clcosdk\\:w-20{width:calc(var(--clcosdk-spacing) * 20)}.clcosdk\\:w-24{width:calc(var(--clcosdk-spacing) * 24)}.clcosdk\\:w-28{width:calc(var(--clcosdk-spacing) * 28)}.clcosdk\\:w-32{width:calc(var(--clcosdk-spacing) * 32)}.clcosdk\\:w-40{width:calc(var(--clcosdk-spacing) * 40)}.clcosdk\\:w-48{width:calc(var(--clcosdk-spacing) * 48)}.clcosdk\\:w-80{width:calc(var(--clcosdk-spacing) * 80)}.clcosdk\\:w-96{width:calc(var(--clcosdk-spacing) * 96)}.clcosdk\\:w-\\[16px\\]{width:16px}.clcosdk\\:w-\\[28rem\\]{width:28rem}.clcosdk\\:w-\\[448px\\]{width:448px}.clcosdk\\:w-auto{width:auto}.clcosdk\\:w-component{width:448px}.clcosdk\\:w-fit{width:fit-content}.clcosdk\\:w-full{width:100%}.clcosdk\\:w-max{width:max-content}.clcosdk\\:max-w-\\[16rem\\]{max-width:16rem}.clcosdk\\:max-w-\\[28rem\\]{max-width:28rem}.clcosdk\\:max-w-\\[30rem\\]{max-width:30rem}.clcosdk\\:max-w-\\[40rem\\]{max-width:40rem}.clcosdk\\:max-w-\\[56rem\\]{max-width:56rem}.clcosdk\\:max-w-\\[64rem\\]{max-width:64rem}.clcosdk\\:max-w-\\[760px\\]{max-width:760px}.clcosdk\\:max-w-full{max-width:100%}.clcosdk\\:max-w-md{max-width:var(--clcosdk-container-md)}.clcosdk\\:max-w-sm{max-width:var(--clcosdk-container-sm)}.clcosdk\\:max-w-xl{max-width:var(--clcosdk-container-xl)}.clcosdk\\:min-w-0{min-width:0}.clcosdk\\:flex-1{flex:1}.clcosdk\\:shrink-0{flex-shrink:0}.clcosdk\\:-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.clcosdk\\:-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.clcosdk\\:rotate-90{rotate:90deg}.clcosdk\\:rotate-180{rotate:180deg}.clcosdk\\:animate-pulse{animation:var(--clcosdk-animate-pulse)}.clcosdk\\:animate-spin{animation:var(--clcosdk-animate-spin)}.clcosdk\\:cursor-pointer{cursor:pointer}.clcosdk\\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.clcosdk\\:grid-rows-\\[0fr\\]{grid-template-rows:0fr}.clcosdk\\:grid-rows-\\[1fr\\]{grid-template-rows:1fr}.clcosdk\\:flex-col{flex-direction:column}.clcosdk\\:flex-wrap{flex-wrap:wrap}.clcosdk\\:items-center{align-items:center}.clcosdk\\:items-end{align-items:flex-end}.clcosdk\\:items-start{align-items:flex-start}.clcosdk\\:justify-between{justify-content:space-between}.clcosdk\\:justify-center{justify-content:center}.clcosdk\\:justify-end{justify-content:flex-end}.clcosdk\\:gap-1{gap:var(--clcosdk-spacing)}.clcosdk\\:gap-1\\.5{gap:calc(var(--clcosdk-spacing) * 1.5)}.clcosdk\\:gap-2{gap:calc(var(--clcosdk-spacing) * 2)}.clcosdk\\:gap-2\\.5{gap:calc(var(--clcosdk-spacing) * 2.5)}.clcosdk\\:gap-3{gap:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:gap-4{gap:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:gap-6{gap:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:gap-\\[5px\\]{gap:5px}:where(.clcosdk\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--clcosdk-spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--clcosdk-spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.clcosdk\\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--clcosdk-spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--clcosdk-spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.clcosdk\\:divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.clcosdk\\:divide-border>:not(:last-child)){border-color:var(--color-border)}:where(.clcosdk\\:divide-divider>:not(:last-child)){border-color:var(--color-divider)}.clcosdk\\:self-start{align-self:flex-start}.clcosdk\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.clcosdk\\:overflow-hidden{overflow:hidden}.clcosdk\\:overflow-y-auto{overflow-y:auto}.clcosdk\\:rounded{border-radius:.25rem}.clcosdk\\:rounded-2xl{border-radius:var(--clcosdk-radius-2xl)}.clcosdk\\:rounded-\\[20px\\]{border-radius:20px}.clcosdk\\:rounded-\\[28px\\]{border-radius:28px}.clcosdk\\:rounded-btn{border-radius:12px}.clcosdk\\:rounded-card{border-radius:24px}.clcosdk\\:rounded-full{border-radius:3.40282e38px}.clcosdk\\:rounded-lg{border-radius:var(--clcosdk-radius-lg)}.clcosdk\\:rounded-md{border-radius:var(--clcosdk-radius-md)}.clcosdk\\:rounded-xl{border-radius:var(--clcosdk-radius-xl)}.clcosdk\\:border{border-style:var(--tw-border-style);border-width:1px}.clcosdk\\:border-2{border-style:var(--tw-border-style);border-width:2px}.clcosdk\\:border-\\[1\\.5px\\]{border-style:var(--tw-border-style);border-width:1.5px}.clcosdk\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.clcosdk\\:border-accent\\/60{border-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.clcosdk\\:border-accent\\/60{border-color:color-mix(in oklab, var(--color-accent) 60%, transparent)}}.clcosdk\\:border-amber-500{border-color:var(--clcosdk-color-amber-500)}.clcosdk\\:border-background{border-color:var(--color-background)}.clcosdk\\:border-border{border-color:var(--color-border)}.clcosdk\\:border-brand-primary{border-color:var(--color-brand-primary)}.clcosdk\\:border-current{border-color:currentColor}.clcosdk\\:border-divider{border-color:var(--color-divider)}.clcosdk\\:border-error-border{border-color:var(--color-error-border)}.clcosdk\\:border-sale-card-border{border-color:var(--color-sale-card-border)}.clcosdk\\:border-sale-card-chrome-border{border-color:var(--color-sale-card-chrome-border)}.clcosdk\\:border-success-border{border-color:var(--color-success-border)}.clcosdk\\:border-warning-border{border-color:var(--color-warning-border)}.clcosdk\\:border-t-transparent{border-top-color:#0000}.clcosdk\\:bg-background{background-color:var(--color-background)}.clcosdk\\:bg-black\\/50{background-color:var(--clcosdk-color-black)}@supports (color:color-mix(in lab, red, red)){.clcosdk\\:bg-black\\/50{background-color:color-mix(in oklab, var(--clcosdk-color-black) 50%, transparent)}}.clcosdk\\:bg-brand-primary{background-color:var(--color-brand-primary)}.clcosdk\\:bg-divider{background-color:var(--color-divider)}.clcosdk\\:bg-error-subtle{background-color:var(--color-error-subtle)}.clcosdk\\:bg-overlay{background-color:var(--color-overlay)}.clcosdk\\:bg-positive{background-color:var(--color-positive)}.clcosdk\\:bg-positive-subtle{background-color:var(--color-positive-subtle)}.clcosdk\\:bg-sale-card-chrome-bg{background-color:var(--color-sale-card-chrome-bg)}.clcosdk\\:bg-section{background-color:var(--color-section)}.clcosdk\\:bg-success-subtle{background-color:var(--color-success-subtle)}.clcosdk\\:bg-surface{background-color:var(--color-surface)}.clcosdk\\:bg-text-disabled{background-color:var(--color-text-disabled)}.clcosdk\\:bg-text-primary{background-color:var(--color-text-primary)}.clcosdk\\:bg-transparent{background-color:#0000}.clcosdk\\:bg-warning-subtle{background-color:var(--color-warning-subtle)}.clcosdk\\:bg-\\[image\\:var\\(--btn-primary-gradient\\)\\]{background-image:var(--btn-primary-gradient)}.clcosdk\\:bg-\\[image\\:var\\(--sale-card-surface\\)\\]{background-image:var(--sale-card-surface)}.clcosdk\\:object-contain{object-fit:contain}.clcosdk\\:object-cover{object-fit:cover}.clcosdk\\:p-0{padding:0}.clcosdk\\:p-1\\.5{padding:calc(var(--clcosdk-spacing) * 1.5)}.clcosdk\\:p-3{padding:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:p-3\\.5{padding:calc(var(--clcosdk-spacing) * 3.5)}.clcosdk\\:p-4{padding:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:p-5{padding:calc(var(--clcosdk-spacing) * 5)}.clcosdk\\:p-6{padding:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:p-8{padding:calc(var(--clcosdk-spacing) * 8)}.clcosdk\\:p-16{padding:calc(var(--clcosdk-spacing) * 16)}.clcosdk\\:px-2{padding-inline:calc(var(--clcosdk-spacing) * 2)}.clcosdk\\:px-3{padding-inline:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:px-4{padding-inline:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:px-5{padding-inline:calc(var(--clcosdk-spacing) * 5)}.clcosdk\\:px-6{padding-inline:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:py-1\\.5{padding-block:calc(var(--clcosdk-spacing) * 1.5)}.clcosdk\\:py-2{padding-block:calc(var(--clcosdk-spacing) * 2)}.clcosdk\\:py-3{padding-block:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:py-8{padding-block:calc(var(--clcosdk-spacing) * 8)}.clcosdk\\:py-12{padding-block:calc(var(--clcosdk-spacing) * 12)}.clcosdk\\:pt-1{padding-top:var(--clcosdk-spacing)}.clcosdk\\:pt-4{padding-top:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:pt-14{padding-top:calc(var(--clcosdk-spacing) * 14)}.clcosdk\\:pr-1\\.5{padding-right:calc(var(--clcosdk-spacing) * 1.5)}.clcosdk\\:pr-3{padding-right:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:pr-4{padding-right:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:pb-4{padding-bottom:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:pl-3{padding-left:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:text-center{text-align:center}.clcosdk\\:text-left{text-align:left}.clcosdk\\:text-right{text-align:right}.clcosdk\\:font-mono{font-family:var(--clcosdk-font-mono)}.clcosdk\\:text-base{font-size:var(--clcosdk-text-base);line-height:var(--tw-leading,var(--clcosdk-text-base--line-height))}.clcosdk\\:text-lg{font-size:var(--clcosdk-text-lg);line-height:var(--tw-leading,var(--clcosdk-text-lg--line-height))}.clcosdk\\:text-sm{font-size:var(--clcosdk-text-sm);line-height:var(--tw-leading,var(--clcosdk-text-sm--line-height))}.clcosdk\\:text-xs{font-size:var(--clcosdk-text-xs);line-height:var(--tw-leading,var(--clcosdk-text-xs--line-height))}.clcosdk\\:text-\\[11px\\]{font-size:11px}.clcosdk\\:text-\\[12px\\]{font-size:12px}.clcosdk\\:text-\\[13px\\]{font-size:13px}.clcosdk\\:text-\\[14px\\]{font-size:14px}.clcosdk\\:text-\\[15px\\]{font-size:15px}.clcosdk\\:text-\\[16px\\]{font-size:16px}.clcosdk\\:text-\\[18px\\]{font-size:18px}.clcosdk\\:text-\\[22px\\]{font-size:22px}.clcosdk\\:text-\\[28px\\]{font-size:28px}.clcosdk\\:text-\\[36px\\]{font-size:36px}.clcosdk\\:text-\\[48px\\]{font-size:48px}.clcosdk\\:text-\\[64px\\]{font-size:64px}.clcosdk\\:leading-\\[105\\%\\]{--tw-leading:105%;line-height:105%}.clcosdk\\:leading-\\[108\\%\\]{--tw-leading:108%;line-height:108%}.clcosdk\\:leading-\\[110\\%\\]{--tw-leading:110%;line-height:110%}.clcosdk\\:leading-\\[120\\%\\]{--tw-leading:120%;line-height:120%}.clcosdk\\:leading-\\[130\\%\\]{--tw-leading:130%;line-height:130%}.clcosdk\\:leading-\\[140\\%\\]{--tw-leading:140%;line-height:140%}.clcosdk\\:leading-\\[150\\%\\]{--tw-leading:150%;line-height:150%}.clcosdk\\:leading-\\[160\\%\\]{--tw-leading:160%;line-height:160%}.clcosdk\\:font-medium{--tw-font-weight:var(--clcosdk-font-weight-medium);font-weight:var(--clcosdk-font-weight-medium)}.clcosdk\\:font-normal{--tw-font-weight:var(--clcosdk-font-weight-normal);font-weight:var(--clcosdk-font-weight-normal)}.clcosdk\\:font-semibold{--tw-font-weight:var(--clcosdk-font-weight-semibold);font-weight:var(--clcosdk-font-weight-semibold)}.clcosdk\\:tracking-\\[0\\.12px\\]{--tw-tracking:.12px;letter-spacing:.12px}.clcosdk\\:tracking-\\[0\\.28px\\]{--tw-tracking:.28px;letter-spacing:.28px}.clcosdk\\:break-words{overflow-wrap:break-word}.clcosdk\\:whitespace-nowrap{white-space:nowrap}.clcosdk\\:text-background{color:var(--color-background)}.clcosdk\\:text-brand-primary{color:var(--color-brand-primary)}.clcosdk\\:text-error{color:var(--color-error)}.clcosdk\\:text-positive{color:var(--color-positive)}.clcosdk\\:text-sale-card-text{color:var(--color-sale-card-text)}.clcosdk\\:text-sale-card-text-muted{color:var(--color-sale-card-text-muted)}.clcosdk\\:text-sale-card-text-strong{color:var(--color-sale-card-text-strong)}.clcosdk\\:text-success{color:var(--color-success)}.clcosdk\\:text-text-disabled{color:var(--color-text-disabled)}.clcosdk\\:text-text-inverse{color:var(--color-text-inverse)}.clcosdk\\:text-text-primary{color:var(--color-text-primary)}.clcosdk\\:text-text-secondary{color:var(--color-text-secondary)}.clcosdk\\:text-warning{color:var(--color-warning)}.clcosdk\\:capitalize{text-transform:capitalize}.clcosdk\\:lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.clcosdk\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.clcosdk\\:no-underline{text-decoration-line:none}.clcosdk\\:underline{text-decoration-line:underline}.clcosdk\\:underline-offset-2{text-underline-offset:2px}.clcosdk\\:underline-offset-4{text-underline-offset:4px}.clcosdk\\:opacity-0{opacity:0}.clcosdk\\:opacity-60{opacity:.6}.clcosdk\\:shadow-\\[0_0_0_3px_rgba\\(59\\,130\\,246\\,0\\.2\\)\\]{--tw-shadow:0 0 0 3px var(--tw-shadow-color,#3b82f633);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.clcosdk\\:shadow-\\[0px_1px_1px_0px_rgba\\(10\\,10\\,10\\,0\\.04\\)\\,0px_8px_12px_0px_rgba\\(10\\,10\\,10\\,0\\.08\\)\\]{--tw-shadow:0px 1px 1px 0px var(--tw-shadow-color,#0a0a0a0a), 0px 8px 12px 0px var(--tw-shadow-color,#0a0a0a14);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.clcosdk\\:shadow-\\[0px_4px_12px_0px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\,0px_12px_28px_0px_rgba\\(0\\,0\\,0\\,0\\.13\\)\\]{--tw-shadow:0px 4px 12px 0px var(--tw-shadow-color,#00000014), 0px 12px 28px 0px var(--tw-shadow-color,#00000021);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.clcosdk\\:shadow-\\[var\\(--btn-primary-shadow\\)\\]{--tw-shadow:var(--btn-primary-shadow);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.clcosdk\\:shadow-card{--tw-shadow:0px 4px 6px -2px var(--tw-shadow-color,#0000000d), 0px 12px 24px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.clcosdk\\:shadow-dialog{--tw-shadow:var(--shadow-dialog);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.clcosdk\\:shadow-step-active{--tw-shadow:var(--shadow-step-active);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.clcosdk\\:transition-\\[background-color\\,border-color\\]{transition-property:background-color,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.clcosdk\\:transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.clcosdk\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.clcosdk\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.clcosdk\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.clcosdk\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.clcosdk\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.clcosdk\\:duration-500{--tw-duration:.5s;transition-duration:.5s}.clcosdk\\:ease-in-out{--tw-ease:var(--clcosdk-ease-in-out);transition-timing-function:var(--clcosdk-ease-in-out)}.clcosdk\\:ease-out{--tw-ease:var(--clcosdk-ease-out);transition-timing-function:var(--clcosdk-ease-out)}.clcosdk\\:outline-none{--tw-outline-style:none;outline-style:none}.clcosdk\\:group-focus-within\\:opacity-100:is(:where(.clcosdk\\:group):focus-within *){opacity:1}@media (hover:hover){.clcosdk\\:group-hover\\:border-sale-card-chrome-emphasis-border:is(:where(.clcosdk\\:group):hover *){border-color:var(--color-sale-card-chrome-emphasis-border)}.clcosdk\\:group-hover\\:bg-sale-card-chrome-emphasis-bg:is(:where(.clcosdk\\:group):hover *){background-color:var(--color-sale-card-chrome-emphasis-bg)}.clcosdk\\:group-hover\\:opacity-100:is(:where(.clcosdk\\:group):hover *){opacity:1}}.clcosdk\\:group-focus-visible\\:border-sale-card-chrome-emphasis-border:is(:where(.clcosdk\\:group):focus-visible *){border-color:var(--color-sale-card-chrome-emphasis-border)}.clcosdk\\:group-focus-visible\\:bg-sale-card-chrome-emphasis-bg:is(:where(.clcosdk\\:group):focus-visible *){background-color:var(--color-sale-card-chrome-emphasis-bg)}.clcosdk\\:placeholder\\:text-text-disabled::placeholder{color:var(--color-text-disabled)}@media (hover:hover){.clcosdk\\:hover\\:scale-\\[1\\.02\\]:hover{scale:1.02}.clcosdk\\:hover\\:border-text-disabled:hover{border-color:var(--color-text-disabled)}.clcosdk\\:hover\\:bg-\\[\\#fcdcd8\\]:hover{background-color:#fcdcd8}.clcosdk\\:hover\\:bg-border:hover{background-color:var(--color-border)}.clcosdk\\:hover\\:bg-brand-primary:hover{background-color:var(--color-brand-primary)}.clcosdk\\:hover\\:bg-brand-primary-hover:hover{background-color:var(--color-brand-primary-hover)}.clcosdk\\:hover\\:bg-section:hover{background-color:var(--color-section)}.clcosdk\\:hover\\:bg-surface:hover{background-color:var(--color-surface)}.clcosdk\\:hover\\:text-\\[\\#8b1a13\\]:hover{color:#8b1a13}.clcosdk\\:hover\\:text-text-primary:hover{color:var(--color-text-primary)}.clcosdk\\:hover\\:underline:hover{text-decoration-line:underline}.clcosdk\\:hover\\:opacity-80:hover{opacity:.8}.clcosdk\\:hover\\:opacity-90:hover{opacity:.9}}.clcosdk\\:focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.clcosdk\\:focus-visible\\:ring-gray-400:focus-visible{--tw-ring-color:var(--clcosdk-color-gray-400)}.clcosdk\\:focus-visible\\:ring-gray-500:focus-visible{--tw-ring-color:var(--clcosdk-color-gray-500)}.clcosdk\\:focus-visible\\:ring-red-400:focus-visible{--tw-ring-color:var(--clcosdk-color-red-400)}.clcosdk\\:focus-visible\\:ring-red-500:focus-visible{--tw-ring-color:var(--clcosdk-color-red-500)}.clcosdk\\:focus-visible\\:ring-sale-card-focus-ring:focus-visible{--tw-ring-color:var(--color-sale-card-focus-ring)}.clcosdk\\:focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.clcosdk\\:focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.clcosdk\\:active\\:bg-\\[\\#d9d9d9\\]:active{background-color:#d9d9d9}.clcosdk\\:active\\:bg-\\[\\#f9c9c4\\]:active{background-color:#f9c9c4}.clcosdk\\:active\\:bg-border:active{background-color:var(--color-border)}.clcosdk\\:active\\:bg-brand-primary-active:active{background-color:var(--color-brand-primary-active)}.clcosdk\\:active\\:text-\\[\\#6d1510\\]:active{color:#6d1510}.clcosdk\\:active\\:opacity-80:active{opacity:.8}.clcosdk\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.clcosdk\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.clcosdk\\:disabled\\:opacity-40:disabled{opacity:.4}.clcosdk\\:disabled\\:opacity-50:disabled{opacity:.5}.clcosdk\\:aria-disabled\\:cursor-not-allowed[aria-disabled=true]{cursor:not-allowed}.clcosdk\\:aria-disabled\\:opacity-50[aria-disabled=true]{opacity:.5}@media not all and (min-width:48rem){.clcosdk\\:max-md\\:hidden{display:none}.clcosdk\\:max-md\\:w-full{width:100%}.clcosdk\\:max-md\\:justify-start{justify-content:flex-start}.clcosdk\\:max-md\\:gap-4{gap:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:max-md\\:rounded-none{border-radius:0}.clcosdk\\:max-md\\:border-0{border-style:var(--tw-border-style);border-width:0}.clcosdk\\:max-md\\:bg-transparent{background-color:#0000}.clcosdk\\:max-md\\:p-0{padding:0}@media (hover:hover){.clcosdk\\:max-md\\:hover\\:scale-100:hover{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}@media (min-width:40rem){.clcosdk\\:sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:48rem){.clcosdk\\:md\\:right-\\[-10\\%\\]{right:-10%}.clcosdk\\:md\\:order-1{order:1}.clcosdk\\:md\\:order-2{order:2}.clcosdk\\:md\\:hidden{display:none}.clcosdk\\:md\\:size-\\[20rem\\]{width:20rem;height:20rem}.clcosdk\\:md\\:h-9{height:calc(var(--clcosdk-spacing) * 9)}.clcosdk\\:md\\:h-12{height:calc(var(--clcosdk-spacing) * 12)}.clcosdk\\:md\\:h-\\[54px\\]{height:54px}.clcosdk\\:md\\:w-9{width:calc(var(--clcosdk-spacing) * 9)}.clcosdk\\:md\\:w-12{width:calc(var(--clcosdk-spacing) * 12)}.clcosdk\\:md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.clcosdk\\:md\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.clcosdk\\:md\\:grid-cols-\\[minmax\\(0\\,11fr\\)_minmax\\(0\\,8fr\\)\\]{grid-template-columns:minmax(0,11fr) minmax(0,8fr)}.clcosdk\\:md\\:flex-row{flex-direction:row}.clcosdk\\:md\\:items-center{align-items:center}.clcosdk\\:md\\:items-end{align-items:flex-end}.clcosdk\\:md\\:justify-between{justify-content:space-between}.clcosdk\\:md\\:justify-end{justify-content:flex-end}.clcosdk\\:md\\:gap-3{gap:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:md\\:gap-6{gap:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:md\\:gap-x-12{column-gap:calc(var(--clcosdk-spacing) * 12)}.clcosdk\\:md\\:self-end{align-self:flex-end}.clcosdk\\:md\\:rounded-\\[40px\\]{border-radius:40px}.clcosdk\\:md\\:rounded-card{border-radius:24px}.clcosdk\\:md\\:rounded-dialog{border-radius:32px}.clcosdk\\:md\\:p-4{padding:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:md\\:p-6{padding:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:md\\:p-8{padding:calc(var(--clcosdk-spacing) * 8)}.clcosdk\\:md\\:px-6{padding-inline:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:md\\:px-8{padding-inline:calc(var(--clcosdk-spacing) * 8)}.clcosdk\\:md\\:py-2{padding-block:calc(var(--clcosdk-spacing) * 2)}.clcosdk\\:md\\:pr-2{padding-right:calc(var(--clcosdk-spacing) * 2)}.clcosdk\\:md\\:pr-4{padding-right:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:md\\:pl-4{padding-left:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:md\\:text-base{font-size:var(--clcosdk-text-base);line-height:var(--tw-leading,var(--clcosdk-text-base--line-height))}.clcosdk\\:md\\:text-\\[14px\\]{font-size:14px}.clcosdk\\:md\\:text-\\[16px\\]{font-size:16px}.clcosdk\\:md\\:text-\\[18px\\]{font-size:18px}.clcosdk\\:md\\:text-\\[28px\\]{font-size:28px}.clcosdk\\:md\\:leading-\\[120\\%\\]{--tw-leading:120%;line-height:120%}.clcosdk\\:md\\:leading-\\[160\\%\\]{--tw-leading:160%;line-height:160%}}@media (prefers-color-scheme:dark){@media (hover:hover){.clcosdk\\:dark\\:hover\\:bg-\\[rgba\\(248\\,113\\,113\\,0\\.20\\)\\]:not(:where(.light,.light *)):hover{background-color:#f8717133}}}@media (hover:hover){.clcosdk\\:dark\\:hover\\:bg-\\[rgba\\(248\\,113\\,113\\,0\\.20\\)\\]:where(.dark,.dark *):hover{background-color:#f8717133}}@media (prefers-color-scheme:dark){@media (hover:hover){.clcosdk\\:dark\\:hover\\:text-\\[\\#fca5a5\\]:not(:where(.light,.light *)):hover{color:#fca5a5}}}@media (hover:hover){.clcosdk\\:dark\\:hover\\:text-\\[\\#fca5a5\\]:where(.dark,.dark *):hover{color:#fca5a5}}@media (prefers-color-scheme:dark){.clcosdk\\:dark\\:active\\:bg-\\[rgba\\(248\\,113\\,113\\,0\\.30\\)\\]:not(:where(.light,.light *)):active{background-color:#f871714d}}.clcosdk\\:dark\\:active\\:bg-\\[rgba\\(248\\,113\\,113\\,0\\.30\\)\\]:where(.dark,.dark *):active{background-color:#f871714d}@media (prefers-color-scheme:dark){.clcosdk\\:dark\\:active\\:bg-divider:not(:where(.light,.light *)):active{background-color:var(--color-divider)}}.clcosdk\\:dark\\:active\\:bg-divider:where(.dark,.dark *):active{background-color:var(--color-divider)}@media (prefers-color-scheme:dark){.clcosdk\\:dark\\:active\\:text-\\[\\#f87171\\]:not(:where(.light,.light *)):active{color:#f87171}}.clcosdk\\:dark\\:active\\:text-\\[\\#f87171\\]:where(.dark,.dark *):active{color:#f87171}.clcosdk\\:\\[\\&_circle\\]\\:fill-error-subtle circle{fill:var(--color-error-subtle)}.clcosdk\\:\\[\\&_circle\\]\\:fill-success-subtle circle{fill:var(--color-success-subtle)}.clcosdk\\:\\[\\&_circle\\]\\:fill-warning-subtle circle{fill:var(--color-warning-subtle)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}';
|
|
1099
|
+
var sdkStyles = '/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--clcosdk-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--clcosdk-color-red-400:oklch(70.4% .191 22.216);--clcosdk-color-red-500:oklch(63.7% .237 25.331);--clcosdk-color-amber-500:oklch(76.9% .188 70.08);--clcosdk-color-gray-400:oklch(70.7% .022 261.325);--clcosdk-color-gray-500:oklch(55.1% .027 264.364);--clcosdk-color-black:#000;--clcosdk-spacing:.25rem;--clcosdk-container-sm:24rem;--clcosdk-container-md:28rem;--clcosdk-container-xl:36rem;--clcosdk-text-xs:.75rem;--clcosdk-text-xs--line-height:calc(1 / .75);--clcosdk-text-sm:.875rem;--clcosdk-text-sm--line-height:calc(1.25 / .875);--clcosdk-text-base:1rem;--clcosdk-text-base--line-height:calc(1.5 / 1);--clcosdk-text-lg:1.125rem;--clcosdk-text-lg--line-height:calc(1.75 / 1.125);--clcosdk-font-weight-normal:400;--clcosdk-font-weight-medium:500;--clcosdk-font-weight-semibold:600;--clcosdk-radius-md:.375rem;--clcosdk-radius-lg:.5rem;--clcosdk-radius-xl:.75rem;--clcosdk-radius-2xl:1rem;--clcosdk-ease-out:cubic-bezier(0, 0, .2, 1);--clcosdk-ease-in-out:cubic-bezier(.4, 0, .2, 1);--clcosdk-animate-spin:spin 1s linear infinite;--clcosdk-animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--clcosdk-color-brand-primary:var(--color-brand-primary)}}@layer base{.clco-sdk-root{--color-brand-primary:#171717;--color-brand-primary-hover:#000;--color-brand-primary-active:#262626;--color-accent:#2b3a67;--color-accent-hover:#243057;--color-accent-active:#1d2647;--color-accent-focus:#c7d2fe;--color-accent-subtle:#eef1f8;--color-text-primary:#171717;--color-text-secondary:#8c8c8c;--color-text-disabled:#d1d1d1;--color-text-inverse:#fff;--color-background:#fff;--color-surface:#fafafa;--color-section:#f3f3f3;--color-border:#e5e5e5;--color-divider:#ececec;--color-overlay:#00000080;--color-positive:#15803d;--color-positive-subtle:#dcfce7;--color-negative:#dc2626;--color-negative-subtle:#fee2e2;--color-success:#2c8c5e;--color-success-subtle:#e6f4ec;--color-success-border:#cfe9db;--color-warning:#e08a1a;--color-warning-subtle:#fff7ed;--color-warning-border:#fdead7;--color-error:#b42318;--color-error-subtle:#feeceb;--color-error-border:#fbd5d2;--shadow-step-active:0px 0px 10px 0px #0000001a;--shadow-dialog:0px 8px 32px 0px #0000001a;--btn-primary-gradient:linear-gradient(180deg, #262626 0%, #1c1c1c 50%, #0f0f0f 100%);--btn-primary-shadow:inset 0px -1px 3px 0px #00000059, inset 0px 1px 2px 0px #ffffff2e, inset 0px 1px 0px 0px #ffffff1a;--sale-card-surface:linear-gradient(to top, #0a0a0a 0%, #1a1a1a 100%);--color-sale-card-text:#f4f4f5;--color-sale-card-text-muted:#a1a1aa;--color-sale-card-text-strong:#fff;--color-sale-card-border:#ffffff40;--color-sale-card-chrome-border:#ffffff4d;--color-sale-card-chrome-bg:#ffffff26;--color-sale-card-chrome-emphasis-border:#fff6;--color-sale-card-chrome-emphasis-bg:#ffffff40;--color-sale-card-focus-ring:#ffffff80;--display-on-light:block;--display-on-dark:none}@media (prefers-color-scheme:dark){.clco-sdk-root:not(:where(.light,.light *)){--color-brand-primary:#f4f4f5;--color-brand-primary-hover:#fff;--color-brand-primary-active:#e4e4e7;--color-accent:#6f82c9;--color-accent-hover:#8799e4;--color-accent-active:#5b6fcf;--color-accent-focus:#6f82c959;--color-accent-subtle:#6f82c91f;--color-text-primary:#f4f4f5;--color-text-secondary:#a1a1aa;--color-text-disabled:#71717a;--color-text-inverse:#171717;--color-background:#0f1115;--color-surface:#161a20;--color-section:#20242c;--color-border:#2a2e35;--color-divider:#323741;--color-overlay:#000000b3;--color-positive:#22c55e;--color-positive-subtle:#22c55e1f;--color-negative:#ef4444;--color-negative-subtle:#ef44441f;--color-success:#34d399;--color-success-subtle:#34d3991f;--color-success-border:#34d39940;--color-warning:#f59e0b;--color-warning-subtle:#f59e0b1f;--color-warning-border:#f59e0b40;--color-error:#f87171;--color-error-subtle:#f871711f;--color-error-border:#f8717140;--shadow-step-active:0px 0px 10px 0px #00000080;--shadow-dialog:0px 8px 32px 0px #0009;--btn-primary-gradient:linear-gradient(180deg, #fafafa 0%, #f0f0f0 50%, #e4e4e7 100%);--btn-primary-shadow:inset 0px -1px 3px 0px #0000001f, inset 0px 1px 2px 0px #fff9, inset 0px 1px 0px 0px #fff6;--display-on-light:none;--display-on-dark:block}}:where(.dark,.dark *) .clco-sdk-root{--color-brand-primary:#f4f4f5;--color-brand-primary-hover:#fff;--color-brand-primary-active:#e4e4e7;--color-accent:#6f82c9;--color-accent-hover:#8799e4;--color-accent-active:#5b6fcf;--color-accent-focus:#6f82c959;--color-accent-subtle:#6f82c91f;--color-text-primary:#f4f4f5;--color-text-secondary:#a1a1aa;--color-text-disabled:#71717a;--color-text-inverse:#171717;--color-background:#0f1115;--color-surface:#161a20;--color-section:#20242c;--color-border:#2a2e35;--color-divider:#323741;--color-overlay:#000000b3;--color-positive:#22c55e;--color-positive-subtle:#22c55e1f;--color-negative:#ef4444;--color-negative-subtle:#ef44441f;--color-success:#34d399;--color-success-subtle:#34d3991f;--color-success-border:#34d39940;--color-warning:#f59e0b;--color-warning-subtle:#f59e0b1f;--color-warning-border:#f59e0b40;--color-error:#f87171;--color-error-subtle:#f871711f;--color-error-border:#f8717140;--shadow-step-active:0px 0px 10px 0px #00000080;--shadow-dialog:0px 8px 32px 0px #0009;--btn-primary-gradient:linear-gradient(180deg, #fafafa 0%, #f0f0f0 50%, #e4e4e7 100%);--btn-primary-shadow:inset 0px -1px 3px 0px #0000001f, inset 0px 1px 2px 0px #fff9, inset 0px 1px 0px 0px #fff6;--display-on-light:none;--display-on-dark:block}.clco-sdk-root{color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.clco-sdk-root *,.clco-sdk-root :before,.clco-sdk-root :after{box-sizing:border-box}.clco-sdk-root button{appearance:none;cursor:pointer;font:inherit;color:inherit;background:0 0;border:none;padding:0}.clco-sdk-root input,.clco-sdk-root textarea,.clco-sdk-root select{font:inherit;color:inherit;background:0 0;border:none;border-radius:0;padding:0}.clco-sdk-root a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}.clco-sdk-root ul,.clco-sdk-root ol{margin:0;padding:0;list-style:none}.clco-sdk-root h1,.clco-sdk-root h2,.clco-sdk-root h3,.clco-sdk-root h4,.clco-sdk-root h5,.clco-sdk-root h6,.clco-sdk-root p,.clco-sdk-root figure,.clco-sdk-root blockquote,.clco-sdk-root dl,.clco-sdk-root dd,.clco-sdk-root pre{margin:0}.clco-sdk-root img,.clco-sdk-root svg{max-width:100%;display:block}@keyframes clco-status-ping{0%{opacity:.7;transform:scale(1)}75%,to{opacity:0;transform:scale(3.25)}}.clco-sdk-root .clcosdk-status-dot-ping{animation:1.6s cubic-bezier(0,0,.2,1) infinite clco-status-ping}.clco-sdk-root .clcosdk-on-light{display:var(--display-on-light)}.clco-sdk-root .clcosdk-on-dark{display:var(--display-on-dark)}@media (prefers-reduced-motion:reduce){.clco-sdk-root .clcosdk-status-dot-ping{opacity:0;animation:none}}}@layer components;@layer utilities{.clcosdk\\:pointer-events-none{pointer-events:none}.clcosdk\\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.clcosdk\\:absolute{position:absolute}.clcosdk\\:fixed{position:fixed}.clcosdk\\:relative{position:relative}.clcosdk\\:inset-0{inset:0}.clcosdk\\:top-1\\/2{top:50%}.clcosdk\\:top-4{top:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:top-full{top:100%}.clcosdk\\:-right-0\\.5{right:calc(var(--clcosdk-spacing) * -.5)}.clcosdk\\:right-4{right:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:right-\\[-14\\%\\]{right:-14%}.clcosdk\\:-bottom-0\\.5{bottom:calc(var(--clcosdk-spacing) * -.5)}.clcosdk\\:bottom-full{bottom:100%}.clcosdk\\:left-1\\/2{left:50%}.clcosdk\\:z-0{z-index:0}.clcosdk\\:z-10{z-index:10}.clcosdk\\:z-50{z-index:50}.clcosdk\\:order-1{order:1}.clcosdk\\:order-2{order:2}.clcosdk\\:-mx-2{margin-inline:calc(var(--clcosdk-spacing) * -2)}.clcosdk\\:mt-2{margin-top:calc(var(--clcosdk-spacing) * 2)}.clcosdk\\:mt-4{margin-top:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:mt-auto{margin-top:auto}.clcosdk\\:mb-2{margin-bottom:calc(var(--clcosdk-spacing) * 2)}.clcosdk\\:flex{display:flex}.clcosdk\\:grid{display:grid}.clcosdk\\:inline-flex{display:inline-flex}.clcosdk\\:size-2{width:calc(var(--clcosdk-spacing) * 2);height:calc(var(--clcosdk-spacing) * 2)}.clcosdk\\:size-3{width:calc(var(--clcosdk-spacing) * 3);height:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:size-3\\.5{width:calc(var(--clcosdk-spacing) * 3.5);height:calc(var(--clcosdk-spacing) * 3.5)}.clcosdk\\:size-4{width:calc(var(--clcosdk-spacing) * 4);height:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:size-5{width:calc(var(--clcosdk-spacing) * 5);height:calc(var(--clcosdk-spacing) * 5)}.clcosdk\\:size-10{width:calc(var(--clcosdk-spacing) * 10);height:calc(var(--clcosdk-spacing) * 10)}.clcosdk\\:size-12{width:calc(var(--clcosdk-spacing) * 12);height:calc(var(--clcosdk-spacing) * 12)}.clcosdk\\:size-16{width:calc(var(--clcosdk-spacing) * 16);height:calc(var(--clcosdk-spacing) * 16)}.clcosdk\\:size-24{width:calc(var(--clcosdk-spacing) * 24);height:calc(var(--clcosdk-spacing) * 24)}.clcosdk\\:size-\\[15rem\\]{width:15rem;height:15rem}.clcosdk\\:size-full{width:100%;height:100%}.clcosdk\\:h-1{height:var(--clcosdk-spacing)}.clcosdk\\:h-3{height:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:h-4{height:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:h-5{height:calc(var(--clcosdk-spacing) * 5)}.clcosdk\\:h-6{height:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:h-8{height:calc(var(--clcosdk-spacing) * 8)}.clcosdk\\:h-9{height:calc(var(--clcosdk-spacing) * 9)}.clcosdk\\:h-10{height:calc(var(--clcosdk-spacing) * 10)}.clcosdk\\:h-11{height:calc(var(--clcosdk-spacing) * 11)}.clcosdk\\:h-12{height:calc(var(--clcosdk-spacing) * 12)}.clcosdk\\:h-14{height:calc(var(--clcosdk-spacing) * 14)}.clcosdk\\:h-\\[1em\\]{height:1em}.clcosdk\\:h-\\[18px\\]{height:18px}.clcosdk\\:h-\\[54px\\]{height:54px}.clcosdk\\:h-\\[71px\\]{height:71px}.clcosdk\\:h-auto{height:auto}.clcosdk\\:h-full{height:100%}.clcosdk\\:h-px{height:1px}.clcosdk\\:max-h-\\[92vh\\]{max-height:92vh}.clcosdk\\:max-h-full{max-height:100%}.clcosdk\\:min-h-0{min-height:0}.clcosdk\\:min-h-9{min-height:calc(var(--clcosdk-spacing) * 9)}.clcosdk\\:min-h-40{min-height:calc(var(--clcosdk-spacing) * 40)}.clcosdk\\:min-h-\\[1lh\\]{min-height:1lh}.clcosdk\\:min-h-screen{min-height:100vh}.clcosdk\\:w-1{width:var(--clcosdk-spacing)}.clcosdk\\:w-1\\/2{width:50%}.clcosdk\\:w-2\\/5{width:40%}.clcosdk\\:w-3\\/5{width:60%}.clcosdk\\:w-4{width:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:w-5{width:calc(var(--clcosdk-spacing) * 5)}.clcosdk\\:w-6{width:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:w-8{width:calc(var(--clcosdk-spacing) * 8)}.clcosdk\\:w-10{width:calc(var(--clcosdk-spacing) * 10)}.clcosdk\\:w-12{width:calc(var(--clcosdk-spacing) * 12)}.clcosdk\\:w-16{width:calc(var(--clcosdk-spacing) * 16)}.clcosdk\\:w-20{width:calc(var(--clcosdk-spacing) * 20)}.clcosdk\\:w-24{width:calc(var(--clcosdk-spacing) * 24)}.clcosdk\\:w-28{width:calc(var(--clcosdk-spacing) * 28)}.clcosdk\\:w-32{width:calc(var(--clcosdk-spacing) * 32)}.clcosdk\\:w-40{width:calc(var(--clcosdk-spacing) * 40)}.clcosdk\\:w-48{width:calc(var(--clcosdk-spacing) * 48)}.clcosdk\\:w-80{width:calc(var(--clcosdk-spacing) * 80)}.clcosdk\\:w-96{width:calc(var(--clcosdk-spacing) * 96)}.clcosdk\\:w-\\[16px\\]{width:16px}.clcosdk\\:w-\\[28rem\\]{width:28rem}.clcosdk\\:w-\\[448px\\]{width:448px}.clcosdk\\:w-\\[calc\\(100\\%\\+16px\\)\\]{width:calc(100% + 16px)}.clcosdk\\:w-auto{width:auto}.clcosdk\\:w-component{width:448px}.clcosdk\\:w-fit{width:fit-content}.clcosdk\\:w-full{width:100%}.clcosdk\\:w-max{width:max-content}.clcosdk\\:max-w-\\[16rem\\]{max-width:16rem}.clcosdk\\:max-w-\\[28rem\\]{max-width:28rem}.clcosdk\\:max-w-\\[30rem\\]{max-width:30rem}.clcosdk\\:max-w-\\[40rem\\]{max-width:40rem}.clcosdk\\:max-w-\\[56rem\\]{max-width:56rem}.clcosdk\\:max-w-\\[64rem\\]{max-width:64rem}.clcosdk\\:max-w-\\[760px\\]{max-width:760px}.clcosdk\\:max-w-full{max-width:100%}.clcosdk\\:max-w-md{max-width:var(--clcosdk-container-md)}.clcosdk\\:max-w-sm{max-width:var(--clcosdk-container-sm)}.clcosdk\\:max-w-xl{max-width:var(--clcosdk-container-xl)}.clcosdk\\:min-w-0{min-width:0}.clcosdk\\:flex-1{flex:1}.clcosdk\\:shrink-0{flex-shrink:0}.clcosdk\\:-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.clcosdk\\:-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.clcosdk\\:rotate-90{rotate:90deg}.clcosdk\\:rotate-180{rotate:180deg}.clcosdk\\:animate-pulse{animation:var(--clcosdk-animate-pulse)}.clcosdk\\:animate-spin{animation:var(--clcosdk-animate-spin)}.clcosdk\\:cursor-pointer{cursor:pointer}.clcosdk\\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.clcosdk\\:grid-rows-\\[0fr\\]{grid-template-rows:0fr}.clcosdk\\:grid-rows-\\[1fr\\]{grid-template-rows:1fr}.clcosdk\\:flex-col{flex-direction:column}.clcosdk\\:flex-row{flex-direction:row}.clcosdk\\:flex-wrap{flex-wrap:wrap}.clcosdk\\:items-center{align-items:center}.clcosdk\\:items-end{align-items:flex-end}.clcosdk\\:items-start{align-items:flex-start}.clcosdk\\:justify-between{justify-content:space-between}.clcosdk\\:justify-center{justify-content:center}.clcosdk\\:justify-end{justify-content:flex-end}.clcosdk\\:justify-start{justify-content:flex-start}.clcosdk\\:gap-1{gap:var(--clcosdk-spacing)}.clcosdk\\:gap-1\\.5{gap:calc(var(--clcosdk-spacing) * 1.5)}.clcosdk\\:gap-2{gap:calc(var(--clcosdk-spacing) * 2)}.clcosdk\\:gap-2\\.5{gap:calc(var(--clcosdk-spacing) * 2.5)}.clcosdk\\:gap-3{gap:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:gap-4{gap:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:gap-6{gap:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:gap-\\[5px\\]{gap:5px}:where(.clcosdk\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--clcosdk-spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--clcosdk-spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.clcosdk\\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--clcosdk-spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--clcosdk-spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.clcosdk\\:divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.clcosdk\\:divide-divider>:not(:last-child)){border-color:var(--color-divider)}.clcosdk\\:self-start{align-self:flex-start}.clcosdk\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.clcosdk\\:overflow-hidden{overflow:hidden}.clcosdk\\:overflow-y-auto{overflow-y:auto}.clcosdk\\:rounded{border-radius:.25rem}.clcosdk\\:rounded-2xl{border-radius:var(--clcosdk-radius-2xl)}.clcosdk\\:rounded-\\[20px\\]{border-radius:20px}.clcosdk\\:rounded-\\[28px\\]{border-radius:28px}.clcosdk\\:rounded-btn{border-radius:12px}.clcosdk\\:rounded-card{border-radius:24px}.clcosdk\\:rounded-full{border-radius:3.40282e38px}.clcosdk\\:rounded-lg{border-radius:var(--clcosdk-radius-lg)}.clcosdk\\:rounded-md{border-radius:var(--clcosdk-radius-md)}.clcosdk\\:rounded-xl{border-radius:var(--clcosdk-radius-xl)}.clcosdk\\:border{border-style:var(--tw-border-style);border-width:1px}.clcosdk\\:border-2{border-style:var(--tw-border-style);border-width:2px}.clcosdk\\:border-\\[1\\.5px\\]{border-style:var(--tw-border-style);border-width:1.5px}.clcosdk\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.clcosdk\\:border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.clcosdk\\:border-accent\\/60{border-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.clcosdk\\:border-accent\\/60{border-color:color-mix(in oklab, var(--color-accent) 60%, transparent)}}.clcosdk\\:border-amber-500{border-color:var(--clcosdk-color-amber-500)}.clcosdk\\:border-background{border-color:var(--color-background)}.clcosdk\\:border-border{border-color:var(--color-border)}.clcosdk\\:border-brand-primary{border-color:var(--color-brand-primary)}.clcosdk\\:border-current{border-color:currentColor}.clcosdk\\:border-divider{border-color:var(--color-divider)}.clcosdk\\:border-error-border{border-color:var(--color-error-border)}.clcosdk\\:border-sale-card-border{border-color:var(--color-sale-card-border)}.clcosdk\\:border-sale-card-chrome-border{border-color:var(--color-sale-card-chrome-border)}.clcosdk\\:border-success-border{border-color:var(--color-success-border)}.clcosdk\\:border-text-primary{border-color:var(--color-text-primary)}.clcosdk\\:border-transparent{border-color:#0000}.clcosdk\\:border-warning-border{border-color:var(--color-warning-border)}.clcosdk\\:border-t-transparent{border-top-color:#0000}.clcosdk\\:bg-background{background-color:var(--color-background)}.clcosdk\\:bg-black\\/50{background-color:var(--clcosdk-color-black)}@supports (color:color-mix(in lab, red, red)){.clcosdk\\:bg-black\\/50{background-color:color-mix(in oklab, var(--clcosdk-color-black) 50%, transparent)}}.clcosdk\\:bg-brand-primary{background-color:var(--color-brand-primary)}.clcosdk\\:bg-divider{background-color:var(--color-divider)}.clcosdk\\:bg-error-subtle{background-color:var(--color-error-subtle)}.clcosdk\\:bg-overlay{background-color:var(--color-overlay)}.clcosdk\\:bg-positive{background-color:var(--color-positive)}.clcosdk\\:bg-positive-subtle{background-color:var(--color-positive-subtle)}.clcosdk\\:bg-sale-card-chrome-bg{background-color:var(--color-sale-card-chrome-bg)}.clcosdk\\:bg-section{background-color:var(--color-section)}.clcosdk\\:bg-success-subtle{background-color:var(--color-success-subtle)}.clcosdk\\:bg-surface{background-color:var(--color-surface)}.clcosdk\\:bg-text-disabled{background-color:var(--color-text-disabled)}.clcosdk\\:bg-text-primary{background-color:var(--color-text-primary)}.clcosdk\\:bg-transparent{background-color:#0000}.clcosdk\\:bg-warning-subtle{background-color:var(--color-warning-subtle)}.clcosdk\\:bg-\\[image\\:var\\(--btn-primary-gradient\\)\\]{background-image:var(--btn-primary-gradient)}.clcosdk\\:bg-\\[image\\:var\\(--sale-card-surface\\)\\]{background-image:var(--sale-card-surface)}.clcosdk\\:object-contain{object-fit:contain}.clcosdk\\:object-cover{object-fit:cover}.clcosdk\\:p-0{padding:0}.clcosdk\\:p-1\\.5{padding:calc(var(--clcosdk-spacing) * 1.5)}.clcosdk\\:p-3{padding:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:p-3\\.5{padding:calc(var(--clcosdk-spacing) * 3.5)}.clcosdk\\:p-4{padding:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:p-5{padding:calc(var(--clcosdk-spacing) * 5)}.clcosdk\\:p-6{padding:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:p-8{padding:calc(var(--clcosdk-spacing) * 8)}.clcosdk\\:p-16{padding:calc(var(--clcosdk-spacing) * 16)}.clcosdk\\:px-2{padding-inline:calc(var(--clcosdk-spacing) * 2)}.clcosdk\\:px-3{padding-inline:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:px-4{padding-inline:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:px-5{padding-inline:calc(var(--clcosdk-spacing) * 5)}.clcosdk\\:px-6{padding-inline:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:py-1\\.5{padding-block:calc(var(--clcosdk-spacing) * 1.5)}.clcosdk\\:py-2{padding-block:calc(var(--clcosdk-spacing) * 2)}.clcosdk\\:py-3{padding-block:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:py-8{padding-block:calc(var(--clcosdk-spacing) * 8)}.clcosdk\\:py-12{padding-block:calc(var(--clcosdk-spacing) * 12)}.clcosdk\\:pt-1{padding-top:var(--clcosdk-spacing)}.clcosdk\\:pt-4{padding-top:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:pt-14{padding-top:calc(var(--clcosdk-spacing) * 14)}.clcosdk\\:pr-1\\.5{padding-right:calc(var(--clcosdk-spacing) * 1.5)}.clcosdk\\:pr-3{padding-right:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:pr-4{padding-right:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:pb-1{padding-bottom:var(--clcosdk-spacing)}.clcosdk\\:pb-4{padding-bottom:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:pl-3{padding-left:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:text-center{text-align:center}.clcosdk\\:text-left{text-align:left}.clcosdk\\:text-right{text-align:right}.clcosdk\\:font-mono{font-family:var(--clcosdk-font-mono)}.clcosdk\\:text-base{font-size:var(--clcosdk-text-base);line-height:var(--tw-leading,var(--clcosdk-text-base--line-height))}.clcosdk\\:text-lg{font-size:var(--clcosdk-text-lg);line-height:var(--tw-leading,var(--clcosdk-text-lg--line-height))}.clcosdk\\:text-sm{font-size:var(--clcosdk-text-sm);line-height:var(--tw-leading,var(--clcosdk-text-sm--line-height))}.clcosdk\\:text-xs{font-size:var(--clcosdk-text-xs);line-height:var(--tw-leading,var(--clcosdk-text-xs--line-height))}.clcosdk\\:text-\\[11px\\]{font-size:11px}.clcosdk\\:text-\\[12px\\]{font-size:12px}.clcosdk\\:text-\\[13px\\]{font-size:13px}.clcosdk\\:text-\\[14px\\]{font-size:14px}.clcosdk\\:text-\\[15px\\]{font-size:15px}.clcosdk\\:text-\\[16px\\]{font-size:16px}.clcosdk\\:text-\\[18px\\]{font-size:18px}.clcosdk\\:text-\\[22px\\]{font-size:22px}.clcosdk\\:text-\\[28px\\]{font-size:28px}.clcosdk\\:text-\\[36px\\]{font-size:36px}.clcosdk\\:text-\\[48px\\]{font-size:48px}.clcosdk\\:text-\\[64px\\]{font-size:64px}.clcosdk\\:leading-\\[105\\%\\]{--tw-leading:105%;line-height:105%}.clcosdk\\:leading-\\[108\\%\\]{--tw-leading:108%;line-height:108%}.clcosdk\\:leading-\\[110\\%\\]{--tw-leading:110%;line-height:110%}.clcosdk\\:leading-\\[120\\%\\]{--tw-leading:120%;line-height:120%}.clcosdk\\:leading-\\[130\\%\\]{--tw-leading:130%;line-height:130%}.clcosdk\\:leading-\\[140\\%\\]{--tw-leading:140%;line-height:140%}.clcosdk\\:leading-\\[150\\%\\]{--tw-leading:150%;line-height:150%}.clcosdk\\:leading-\\[160\\%\\]{--tw-leading:160%;line-height:160%}.clcosdk\\:font-medium{--tw-font-weight:var(--clcosdk-font-weight-medium);font-weight:var(--clcosdk-font-weight-medium)}.clcosdk\\:font-normal{--tw-font-weight:var(--clcosdk-font-weight-normal);font-weight:var(--clcosdk-font-weight-normal)}.clcosdk\\:font-semibold{--tw-font-weight:var(--clcosdk-font-weight-semibold);font-weight:var(--clcosdk-font-weight-semibold)}.clcosdk\\:tracking-\\[0\\.12px\\]{--tw-tracking:.12px;letter-spacing:.12px}.clcosdk\\:tracking-\\[0\\.28px\\]{--tw-tracking:.28px;letter-spacing:.28px}.clcosdk\\:break-words{overflow-wrap:break-word}.clcosdk\\:whitespace-nowrap{white-space:nowrap}.clcosdk\\:text-background{color:var(--color-background)}.clcosdk\\:text-brand-primary{color:var(--color-brand-primary)}.clcosdk\\:text-error{color:var(--color-error)}.clcosdk\\:text-positive{color:var(--color-positive)}.clcosdk\\:text-sale-card-text{color:var(--color-sale-card-text)}.clcosdk\\:text-sale-card-text-muted{color:var(--color-sale-card-text-muted)}.clcosdk\\:text-sale-card-text-strong{color:var(--color-sale-card-text-strong)}.clcosdk\\:text-success{color:var(--color-success)}.clcosdk\\:text-text-disabled{color:var(--color-text-disabled)}.clcosdk\\:text-text-inverse{color:var(--color-text-inverse)}.clcosdk\\:text-text-primary{color:var(--color-text-primary)}.clcosdk\\:text-text-secondary{color:var(--color-text-secondary)}.clcosdk\\:text-warning{color:var(--color-warning)}.clcosdk\\:capitalize{text-transform:capitalize}.clcosdk\\:lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.clcosdk\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.clcosdk\\:no-underline{text-decoration-line:none}.clcosdk\\:underline{text-decoration-line:underline}.clcosdk\\:underline-offset-2{text-underline-offset:2px}.clcosdk\\:underline-offset-4{text-underline-offset:4px}.clcosdk\\:opacity-0{opacity:0}.clcosdk\\:opacity-60{opacity:.6}.clcosdk\\:shadow-\\[0_0_0_3px_rgba\\(59\\,130\\,246\\,0\\.2\\)\\]{--tw-shadow:0 0 0 3px var(--tw-shadow-color,#3b82f633);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.clcosdk\\:shadow-\\[0px_1px_1px_0px_rgba\\(10\\,10\\,10\\,0\\.04\\)\\,0px_8px_12px_0px_rgba\\(10\\,10\\,10\\,0\\.08\\)\\]{--tw-shadow:0px 1px 1px 0px var(--tw-shadow-color,#0a0a0a0a), 0px 8px 12px 0px var(--tw-shadow-color,#0a0a0a14);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.clcosdk\\:shadow-\\[0px_4px_12px_0px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\,0px_12px_28px_0px_rgba\\(0\\,0\\,0\\,0\\.13\\)\\]{--tw-shadow:0px 4px 12px 0px var(--tw-shadow-color,#00000014), 0px 12px 28px 0px var(--tw-shadow-color,#00000021);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.clcosdk\\:shadow-\\[var\\(--btn-primary-shadow\\)\\]{--tw-shadow:var(--btn-primary-shadow);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.clcosdk\\:shadow-card{--tw-shadow:0px 4px 6px -2px var(--tw-shadow-color,#0000000d), 0px 12px 24px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.clcosdk\\:shadow-dialog{--tw-shadow:var(--shadow-dialog);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.clcosdk\\:shadow-step-active{--tw-shadow:var(--shadow-step-active);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.clcosdk\\:transition-\\[background-color\\,border-color\\]{transition-property:background-color,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.clcosdk\\:transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.clcosdk\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.clcosdk\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.clcosdk\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.clcosdk\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.clcosdk\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.clcosdk\\:duration-500{--tw-duration:.5s;transition-duration:.5s}.clcosdk\\:ease-in-out{--tw-ease:var(--clcosdk-ease-in-out);transition-timing-function:var(--clcosdk-ease-in-out)}.clcosdk\\:ease-out{--tw-ease:var(--clcosdk-ease-out);transition-timing-function:var(--clcosdk-ease-out)}.clcosdk\\:outline-none{--tw-outline-style:none;outline-style:none}.clcosdk\\:group-focus-within\\:opacity-100:is(:where(.clcosdk\\:group):focus-within *){opacity:1}@media (hover:hover){.clcosdk\\:group-hover\\:border-sale-card-chrome-emphasis-border:is(:where(.clcosdk\\:group):hover *){border-color:var(--color-sale-card-chrome-emphasis-border)}.clcosdk\\:group-hover\\:bg-sale-card-chrome-emphasis-bg:is(:where(.clcosdk\\:group):hover *){background-color:var(--color-sale-card-chrome-emphasis-bg)}.clcosdk\\:group-hover\\:opacity-100:is(:where(.clcosdk\\:group):hover *){opacity:1}}.clcosdk\\:group-focus-visible\\:border-sale-card-chrome-emphasis-border:is(:where(.clcosdk\\:group):focus-visible *){border-color:var(--color-sale-card-chrome-emphasis-border)}.clcosdk\\:group-focus-visible\\:bg-sale-card-chrome-emphasis-bg:is(:where(.clcosdk\\:group):focus-visible *){background-color:var(--color-sale-card-chrome-emphasis-bg)}.clcosdk\\:placeholder\\:text-text-disabled::placeholder{color:var(--color-text-disabled)}@media (hover:hover){.clcosdk\\:hover\\:scale-\\[1\\.02\\]:hover{scale:1.02}.clcosdk\\:hover\\:border-text-disabled:hover{border-color:var(--color-text-disabled)}.clcosdk\\:hover\\:bg-\\[\\#fcdcd8\\]:hover{background-color:#fcdcd8}.clcosdk\\:hover\\:bg-border:hover{background-color:var(--color-border)}.clcosdk\\:hover\\:bg-brand-primary:hover{background-color:var(--color-brand-primary)}.clcosdk\\:hover\\:bg-brand-primary-hover:hover{background-color:var(--color-brand-primary-hover)}.clcosdk\\:hover\\:bg-section:hover{background-color:var(--color-section)}.clcosdk\\:hover\\:bg-surface:hover{background-color:var(--color-surface)}.clcosdk\\:hover\\:text-\\[\\#8b1a13\\]:hover{color:#8b1a13}.clcosdk\\:hover\\:text-text-primary:hover{color:var(--color-text-primary)}.clcosdk\\:hover\\:underline:hover{text-decoration-line:underline}.clcosdk\\:hover\\:opacity-80:hover{opacity:.8}.clcosdk\\:hover\\:opacity-90:hover{opacity:.9}}.clcosdk\\:focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.clcosdk\\:focus-visible\\:ring-gray-400:focus-visible{--tw-ring-color:var(--clcosdk-color-gray-400)}.clcosdk\\:focus-visible\\:ring-gray-500:focus-visible{--tw-ring-color:var(--clcosdk-color-gray-500)}.clcosdk\\:focus-visible\\:ring-red-400:focus-visible{--tw-ring-color:var(--clcosdk-color-red-400)}.clcosdk\\:focus-visible\\:ring-red-500:focus-visible{--tw-ring-color:var(--clcosdk-color-red-500)}.clcosdk\\:focus-visible\\:ring-sale-card-focus-ring:focus-visible{--tw-ring-color:var(--color-sale-card-focus-ring)}.clcosdk\\:focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.clcosdk\\:focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.clcosdk\\:active\\:bg-\\[\\#d9d9d9\\]:active{background-color:#d9d9d9}.clcosdk\\:active\\:bg-\\[\\#f9c9c4\\]:active{background-color:#f9c9c4}.clcosdk\\:active\\:bg-border:active{background-color:var(--color-border)}.clcosdk\\:active\\:bg-brand-primary-active:active{background-color:var(--color-brand-primary-active)}.clcosdk\\:active\\:text-\\[\\#6d1510\\]:active{color:#6d1510}.clcosdk\\:active\\:opacity-80:active{opacity:.8}.clcosdk\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.clcosdk\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.clcosdk\\:disabled\\:opacity-40:disabled{opacity:.4}.clcosdk\\:disabled\\:opacity-50:disabled{opacity:.5}.clcosdk\\:aria-disabled\\:cursor-not-allowed[aria-disabled=true]{cursor:not-allowed}.clcosdk\\:aria-disabled\\:opacity-50[aria-disabled=true]{opacity:.5}@media not all and (min-width:48rem){.clcosdk\\:max-md\\:hidden{display:none}.clcosdk\\:max-md\\:w-full{width:100%}.clcosdk\\:max-md\\:justify-start{justify-content:flex-start}.clcosdk\\:max-md\\:gap-4{gap:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:max-md\\:rounded-none{border-radius:0}.clcosdk\\:max-md\\:border-0{border-style:var(--tw-border-style);border-width:0}.clcosdk\\:max-md\\:bg-transparent{background-color:#0000}.clcosdk\\:max-md\\:p-0{padding:0}@media (hover:hover){.clcosdk\\:max-md\\:hover\\:scale-100:hover{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}@media (min-width:40rem){.clcosdk\\:sm\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:48rem){.clcosdk\\:md\\:right-\\[-10\\%\\]{right:-10%}.clcosdk\\:md\\:order-1{order:1}.clcosdk\\:md\\:order-2{order:2}.clcosdk\\:md\\:hidden{display:none}.clcosdk\\:md\\:size-\\[20rem\\]{width:20rem;height:20rem}.clcosdk\\:md\\:h-9{height:calc(var(--clcosdk-spacing) * 9)}.clcosdk\\:md\\:h-12{height:calc(var(--clcosdk-spacing) * 12)}.clcosdk\\:md\\:h-\\[54px\\]{height:54px}.clcosdk\\:md\\:w-9{width:calc(var(--clcosdk-spacing) * 9)}.clcosdk\\:md\\:w-12{width:calc(var(--clcosdk-spacing) * 12)}.clcosdk\\:md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.clcosdk\\:md\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.clcosdk\\:md\\:grid-cols-\\[minmax\\(0\\,11fr\\)_minmax\\(0\\,8fr\\)\\]{grid-template-columns:minmax(0,11fr) minmax(0,8fr)}.clcosdk\\:md\\:flex-row{flex-direction:row}.clcosdk\\:md\\:items-center{align-items:center}.clcosdk\\:md\\:items-end{align-items:flex-end}.clcosdk\\:md\\:justify-between{justify-content:space-between}.clcosdk\\:md\\:justify-end{justify-content:flex-end}.clcosdk\\:md\\:gap-3{gap:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:md\\:gap-6{gap:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:md\\:gap-x-12{column-gap:calc(var(--clcosdk-spacing) * 12)}.clcosdk\\:md\\:self-end{align-self:flex-end}.clcosdk\\:md\\:rounded-\\[40px\\]{border-radius:40px}.clcosdk\\:md\\:rounded-card{border-radius:24px}.clcosdk\\:md\\:rounded-dialog{border-radius:32px}.clcosdk\\:md\\:p-4{padding:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:md\\:p-6{padding:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:md\\:p-8{padding:calc(var(--clcosdk-spacing) * 8)}.clcosdk\\:md\\:px-6{padding-inline:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:md\\:px-8{padding-inline:calc(var(--clcosdk-spacing) * 8)}.clcosdk\\:md\\:py-2{padding-block:calc(var(--clcosdk-spacing) * 2)}.clcosdk\\:md\\:pr-2{padding-right:calc(var(--clcosdk-spacing) * 2)}.clcosdk\\:md\\:pr-4{padding-right:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:md\\:pl-4{padding-left:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:md\\:text-base{font-size:var(--clcosdk-text-base);line-height:var(--tw-leading,var(--clcosdk-text-base--line-height))}.clcosdk\\:md\\:text-\\[14px\\]{font-size:14px}.clcosdk\\:md\\:text-\\[16px\\]{font-size:16px}.clcosdk\\:md\\:text-\\[18px\\]{font-size:18px}.clcosdk\\:md\\:text-\\[28px\\]{font-size:28px}.clcosdk\\:md\\:leading-\\[120\\%\\]{--tw-leading:120%;line-height:120%}.clcosdk\\:md\\:leading-\\[160\\%\\]{--tw-leading:160%;line-height:160%}}@media (prefers-color-scheme:dark){@media (hover:hover){.clcosdk\\:dark\\:hover\\:bg-\\[rgba\\(248\\,113\\,113\\,0\\.20\\)\\]:not(:where(.light,.light *)):hover{background-color:#f8717133}}}@media (hover:hover){.clcosdk\\:dark\\:hover\\:bg-\\[rgba\\(248\\,113\\,113\\,0\\.20\\)\\]:where(.dark,.dark *):hover{background-color:#f8717133}}@media (prefers-color-scheme:dark){@media (hover:hover){.clcosdk\\:dark\\:hover\\:text-\\[\\#fca5a5\\]:not(:where(.light,.light *)):hover{color:#fca5a5}}}@media (hover:hover){.clcosdk\\:dark\\:hover\\:text-\\[\\#fca5a5\\]:where(.dark,.dark *):hover{color:#fca5a5}}@media (prefers-color-scheme:dark){.clcosdk\\:dark\\:active\\:bg-\\[rgba\\(248\\,113\\,113\\,0\\.30\\)\\]:not(:where(.light,.light *)):active{background-color:#f871714d}}.clcosdk\\:dark\\:active\\:bg-\\[rgba\\(248\\,113\\,113\\,0\\.30\\)\\]:where(.dark,.dark *):active{background-color:#f871714d}@media (prefers-color-scheme:dark){.clcosdk\\:dark\\:active\\:bg-divider:not(:where(.light,.light *)):active{background-color:var(--color-divider)}}.clcosdk\\:dark\\:active\\:bg-divider:where(.dark,.dark *):active{background-color:var(--color-divider)}@media (prefers-color-scheme:dark){.clcosdk\\:dark\\:active\\:text-\\[\\#f87171\\]:not(:where(.light,.light *)):active{color:#f87171}}.clcosdk\\:dark\\:active\\:text-\\[\\#f87171\\]:where(.dark,.dark *):active{color:#f87171}.clcosdk\\:\\[\\&_circle\\]\\:fill-error-subtle circle{fill:var(--color-error-subtle)}.clcosdk\\:\\[\\&_circle\\]\\:fill-success-subtle circle{fill:var(--color-success-subtle)}.clcosdk\\:\\[\\&_circle\\]\\:fill-warning-subtle circle{fill:var(--color-warning-subtle)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}';
|
|
1098
1100
|
|
|
1099
1101
|
// src/client/CoinListStyleScope.tsx
|
|
1100
1102
|
import { Fragment, jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
@@ -1396,7 +1398,7 @@ function AlertBanner({
|
|
|
1396
1398
|
"aria-hidden": "true"
|
|
1397
1399
|
}
|
|
1398
1400
|
),
|
|
1399
|
-
/* @__PURE__ */ jsx6("p", { className: cn(typeClasses.
|
|
1401
|
+
/* @__PURE__ */ jsx6("p", { className: cn(typeClasses.bodySm, text), children: content })
|
|
1400
1402
|
]
|
|
1401
1403
|
}
|
|
1402
1404
|
);
|
|
@@ -2392,12 +2394,16 @@ function AssetSummaryRow({
|
|
|
2392
2394
|
] })
|
|
2393
2395
|
] }),
|
|
2394
2396
|
(value || caption) && /* @__PURE__ */ jsxs17("div", { className: "clcosdk:flex clcosdk:shrink-0 clcosdk:flex-col clcosdk:items-end clcosdk:justify-center", children: [
|
|
2395
|
-
value &&
|
|
2397
|
+
value && // `min-h-[1lh]` + flex center: a Skeleton sized to `1em` (cap
|
|
2398
|
+
// height) sits in the same line box as loaded copy, so leading
|
|
2399
|
+
// keeps the two rows apart instead of two full-lh bars colliding.
|
|
2400
|
+
/* @__PURE__ */ jsx23(
|
|
2396
2401
|
"div",
|
|
2397
2402
|
{
|
|
2398
2403
|
className: cn(
|
|
2399
2404
|
typeClasses.h4,
|
|
2400
|
-
"clcosdk:
|
|
2405
|
+
"clcosdk:flex clcosdk:min-h-[1lh] clcosdk:items-center",
|
|
2406
|
+
"clcosdk:justify-end clcosdk:text-text-primary"
|
|
2401
2407
|
),
|
|
2402
2408
|
children: value
|
|
2403
2409
|
}
|
|
@@ -2410,7 +2416,8 @@ function AssetSummaryRow({
|
|
|
2410
2416
|
{
|
|
2411
2417
|
className: cn(
|
|
2412
2418
|
typeClasses.subhead,
|
|
2413
|
-
"clcosdk:
|
|
2419
|
+
"clcosdk:flex clcosdk:min-h-[1lh] clcosdk:items-center",
|
|
2420
|
+
"clcosdk:justify-end clcosdk:text-text-secondary"
|
|
2414
2421
|
),
|
|
2415
2422
|
children: caption
|
|
2416
2423
|
}
|
|
@@ -3130,7 +3137,7 @@ function detailRows2(state) {
|
|
|
3130
3137
|
function PriceValue({ price }) {
|
|
3131
3138
|
switch (price.type) {
|
|
3132
3139
|
case "loading":
|
|
3133
|
-
return /* @__PURE__ */ jsx32(Skeleton, { className: "clcosdk:h-
|
|
3140
|
+
return /* @__PURE__ */ jsx32(Skeleton, { className: "clcosdk:h-[1em] clcosdk:w-24" });
|
|
3134
3141
|
case "known":
|
|
3135
3142
|
return price.price;
|
|
3136
3143
|
case "unavailable":
|
|
@@ -3144,7 +3151,7 @@ function PriceValue({ price }) {
|
|
|
3144
3151
|
function PriceCaption({ price }) {
|
|
3145
3152
|
switch (price.type) {
|
|
3146
3153
|
case "loading":
|
|
3147
|
-
return /* @__PURE__ */ jsx32(Skeleton, { className: "clcosdk:h-
|
|
3154
|
+
return /* @__PURE__ */ jsx32(Skeleton, { className: "clcosdk:h-[1em] clcosdk:w-20" });
|
|
3148
3155
|
case "known":
|
|
3149
3156
|
return /* @__PURE__ */ jsx32(StatusIndicator, { status: price.market });
|
|
3150
3157
|
// Nothing to say about a market whose price never arrived: the order steps
|
|
@@ -3597,7 +3604,7 @@ function stablecoinIconUrl(symbol) {
|
|
|
3597
3604
|
}
|
|
3598
3605
|
}
|
|
3599
3606
|
function offerIconUrl(offer) {
|
|
3600
|
-
return offer.logoUrl
|
|
3607
|
+
return offer.logoUrl ? AssetIconUrl(offer.logoUrl) : null;
|
|
3601
3608
|
}
|
|
3602
3609
|
function tokenLogoUrl(logo, minWidth = 40) {
|
|
3603
3610
|
switch (logo.kind) {
|
|
@@ -3616,6 +3623,20 @@ function tokenLogoUrl(logo, minWidth = 40) {
|
|
|
3616
3623
|
}
|
|
3617
3624
|
}
|
|
3618
3625
|
}
|
|
3626
|
+
function tokenLogoSrcSet(logo) {
|
|
3627
|
+
switch (logo.kind) {
|
|
3628
|
+
case "VECTOR":
|
|
3629
|
+
return null;
|
|
3630
|
+
case "RASTER": {
|
|
3631
|
+
const candidates = logo.variants.length > 0 ? logo.variants : [logo.original];
|
|
3632
|
+
return [...candidates].sort((a, b) => a.width - b.width).map((image) => `${image.url} ${image.width}w`).join(", ");
|
|
3633
|
+
}
|
|
3634
|
+
default: {
|
|
3635
|
+
const exhaustive = logo;
|
|
3636
|
+
return exhaustive;
|
|
3637
|
+
}
|
|
3638
|
+
}
|
|
3639
|
+
}
|
|
3619
3640
|
function offerAssetIconUrl(offer, tokenMetadata) {
|
|
3620
3641
|
return (tokenMetadata ? tokenLogoUrl(tokenMetadata.logo) : null) ?? offerIconUrl(offer);
|
|
3621
3642
|
}
|
|
@@ -4064,7 +4085,7 @@ function toInputAssetUi({
|
|
|
4064
4085
|
}
|
|
4065
4086
|
|
|
4066
4087
|
// src/client/hooks/checkout/ondo/buy/review/useOndoBuyReviewViewModel.ts
|
|
4067
|
-
import { useEffect as useEffect7, useRef as useRef5, useState as useState6 } from "react";
|
|
4088
|
+
import { useEffect as useEffect7, useMemo as useMemo4, useRef as useRef5, useState as useState6 } from "react";
|
|
4068
4089
|
|
|
4069
4090
|
// src/client/hooks/checkout/ondo/buy/data/useOndoBuyTransaction.ts
|
|
4070
4091
|
import { useCallback as useCallback2, useEffect as useEffect5, useRef as useRef4, useState as useState5 } from "react";
|
|
@@ -4222,8 +4243,12 @@ function useOndoBuyReviewViewModel({
|
|
|
4222
4243
|
}
|
|
4223
4244
|
}, [stepInput.type]);
|
|
4224
4245
|
const transaction = transactionState.type === "CONTENT" ? transactionState.transaction : null;
|
|
4246
|
+
const offerUntil = useMemo4(
|
|
4247
|
+
() => transaction === null ? null : ondoQuoteOfferDeadline(transaction.expiresAt),
|
|
4248
|
+
[transaction]
|
|
4249
|
+
);
|
|
4225
4250
|
const secondsLeft = useCountdown({
|
|
4226
|
-
until:
|
|
4251
|
+
until: offerUntil,
|
|
4227
4252
|
enabled
|
|
4228
4253
|
});
|
|
4229
4254
|
const quoteStatus = toQuoteStatusUi(transactionState, secondsLeft);
|
|
@@ -4347,14 +4372,11 @@ function toQuoteStatusUi(state, secondsLeft) {
|
|
|
4347
4372
|
message: refreshErrorMessage(state.refreshError)
|
|
4348
4373
|
};
|
|
4349
4374
|
}
|
|
4350
|
-
if (secondsLeft === null ||
|
|
4375
|
+
if (secondsLeft === null || secondsLeft === 0) {
|
|
4351
4376
|
return { type: "expired" };
|
|
4352
4377
|
}
|
|
4353
4378
|
return { type: "valid", expiresInLabel: expiresInLabel(secondsLeft) };
|
|
4354
4379
|
}
|
|
4355
|
-
function isTooCloseToExpiry(secondsLeft) {
|
|
4356
|
-
return secondsLeft * 1e3 <= ONDO_QUOTE_EXPIRY_THRESHOLD_MS;
|
|
4357
|
-
}
|
|
4358
4380
|
function expiresInLabel(secondsLeft) {
|
|
4359
4381
|
const unit = secondsLeft === 1 ? "second" : "seconds";
|
|
4360
4382
|
return `Quote expires in ${secondsLeft} ${unit}`;
|
|
@@ -4846,8 +4868,9 @@ var NO_TOKEN_ADDRESS = EvmContractAddress(
|
|
|
4846
4868
|
"0x0000000000000000000000000000000000000000"
|
|
4847
4869
|
);
|
|
4848
4870
|
function offerTokenIdentifier(offer, chain) {
|
|
4849
|
-
const
|
|
4850
|
-
|
|
4871
|
+
const asset = offerDisplayTokens(offer).find(
|
|
4872
|
+
(token) => token.chain === chain
|
|
4873
|
+
);
|
|
4851
4874
|
return asset === void 0 ? null : { chain, address: asset.address };
|
|
4852
4875
|
}
|
|
4853
4876
|
function tokenMetadataOf(state) {
|
|
@@ -6163,7 +6186,7 @@ function preparationErrorMessage2(error) {
|
|
|
6163
6186
|
}
|
|
6164
6187
|
|
|
6165
6188
|
// src/client/hooks/checkout/ondo/sell/review/useOndoSellReviewViewModel.ts
|
|
6166
|
-
import { useEffect as useEffect14, useRef as useRef11, useState as useState15 } from "react";
|
|
6189
|
+
import { useEffect as useEffect14, useMemo as useMemo5, useRef as useRef11, useState as useState15 } from "react";
|
|
6167
6190
|
|
|
6168
6191
|
// src/client/hooks/checkout/ondo/sell/data/useOndoSellTransaction.ts
|
|
6169
6192
|
import { useCallback as useCallback4, useEffect as useEffect13, useRef as useRef10, useState as useState14 } from "react";
|
|
@@ -6284,8 +6307,12 @@ function useOndoSellReviewViewModel({
|
|
|
6284
6307
|
}
|
|
6285
6308
|
}, [stepInput.type]);
|
|
6286
6309
|
const transaction = transactionState.type === "CONTENT" ? transactionState.transaction : null;
|
|
6310
|
+
const offerUntil = useMemo5(
|
|
6311
|
+
() => transaction === null ? null : ondoQuoteOfferDeadline(transaction.expiresAt),
|
|
6312
|
+
[transaction]
|
|
6313
|
+
);
|
|
6287
6314
|
const secondsLeft = useCountdown({
|
|
6288
|
-
until:
|
|
6315
|
+
until: offerUntil,
|
|
6289
6316
|
enabled
|
|
6290
6317
|
});
|
|
6291
6318
|
const quoteStatus = toQuoteStatusUi2(transactionState, secondsLeft);
|
|
@@ -6414,14 +6441,11 @@ function toQuoteStatusUi2(state, secondsLeft) {
|
|
|
6414
6441
|
message: refreshErrorMessage2(state.refreshError)
|
|
6415
6442
|
};
|
|
6416
6443
|
}
|
|
6417
|
-
if (secondsLeft === null ||
|
|
6444
|
+
if (secondsLeft === null || secondsLeft === 0) {
|
|
6418
6445
|
return { type: "expired" };
|
|
6419
6446
|
}
|
|
6420
6447
|
return { type: "valid", expiresInLabel: expiresInLabel2(secondsLeft) };
|
|
6421
6448
|
}
|
|
6422
|
-
function isTooCloseToExpiry2(secondsLeft) {
|
|
6423
|
-
return secondsLeft * 1e3 <= ONDO_QUOTE_EXPIRY_THRESHOLD_MS;
|
|
6424
|
-
}
|
|
6425
6449
|
function expiresInLabel2(secondsLeft) {
|
|
6426
6450
|
const unit = secondsLeft === 1 ? "second" : "seconds";
|
|
6427
6451
|
return `Quote expires in ${secondsLeft} ${unit}`;
|
|
@@ -7509,7 +7533,7 @@ function LiveDot() {
|
|
|
7509
7533
|
function PriceValue2({ price }) {
|
|
7510
7534
|
switch (price.type) {
|
|
7511
7535
|
case "loading":
|
|
7512
|
-
return /* @__PURE__ */ jsx46(Skeleton, { className: "clcosdk:h-
|
|
7536
|
+
return /* @__PURE__ */ jsx46(Skeleton, { className: "clcosdk:h-[1em] clcosdk:w-24" });
|
|
7513
7537
|
case "known":
|
|
7514
7538
|
return price.price;
|
|
7515
7539
|
default: {
|
|
@@ -9105,11 +9129,11 @@ function CheckoutContainer({
|
|
|
9105
9129
|
enabled = true,
|
|
9106
9130
|
className
|
|
9107
9131
|
}) {
|
|
9108
|
-
return renderOffer(offer
|
|
9109
|
-
ondo: () => /* @__PURE__ */ jsx50(
|
|
9132
|
+
return renderOffer(offer, {
|
|
9133
|
+
ondo: (ondoOffer) => /* @__PURE__ */ jsx50(
|
|
9110
9134
|
OndoCheckoutContainer,
|
|
9111
9135
|
{
|
|
9112
|
-
offer,
|
|
9136
|
+
offer: ondoOffer,
|
|
9113
9137
|
chain,
|
|
9114
9138
|
wallets,
|
|
9115
9139
|
config: config["ondo::swap"],
|
|
@@ -9117,10 +9141,10 @@ function CheckoutContainer({
|
|
|
9117
9141
|
className
|
|
9118
9142
|
}
|
|
9119
9143
|
),
|
|
9120
|
-
superstate: () => /* @__PURE__ */ jsx50(
|
|
9144
|
+
superstate: (superstateOffer) => /* @__PURE__ */ jsx50(
|
|
9121
9145
|
SuperstateSwapCheckoutContainer,
|
|
9122
9146
|
{
|
|
9123
|
-
offer,
|
|
9147
|
+
offer: superstateOffer,
|
|
9124
9148
|
chain,
|
|
9125
9149
|
wallets,
|
|
9126
9150
|
enabled,
|
|
@@ -9128,7 +9152,7 @@ function CheckoutContainer({
|
|
|
9128
9152
|
className
|
|
9129
9153
|
}
|
|
9130
9154
|
),
|
|
9131
|
-
tokenSale: () => config["coinlist::token_sale"].render(
|
|
9155
|
+
tokenSale: (tokenSaleOffer) => config["coinlist::token_sale"].render(tokenSaleOffer)
|
|
9132
9156
|
});
|
|
9133
9157
|
}
|
|
9134
9158
|
function OndoCheckoutContainer({
|
|
@@ -9168,16 +9192,16 @@ function OndoCheckoutContainer({
|
|
|
9168
9192
|
)
|
|
9169
9193
|
});
|
|
9170
9194
|
}
|
|
9171
|
-
function renderOffer(
|
|
9172
|
-
switch (type) {
|
|
9195
|
+
function renderOffer(offer, branches) {
|
|
9196
|
+
switch (offer.type) {
|
|
9173
9197
|
case "ondo::swap":
|
|
9174
|
-
return branches.ondo();
|
|
9198
|
+
return branches.ondo(offer);
|
|
9175
9199
|
case "superstate::swap":
|
|
9176
|
-
return branches.superstate();
|
|
9200
|
+
return branches.superstate(offer);
|
|
9177
9201
|
case "coinlist::token_sale":
|
|
9178
|
-
return branches.tokenSale();
|
|
9202
|
+
return branches.tokenSale(offer);
|
|
9179
9203
|
default: {
|
|
9180
|
-
const exhaustive =
|
|
9204
|
+
const exhaustive = offer;
|
|
9181
9205
|
return exhaustive;
|
|
9182
9206
|
}
|
|
9183
9207
|
}
|
|
@@ -9195,6 +9219,58 @@ function renderOndoSide(side, branches) {
|
|
|
9195
9219
|
}
|
|
9196
9220
|
}
|
|
9197
9221
|
|
|
9222
|
+
// src/client/components/design-system/ThemedImage.tsx
|
|
9223
|
+
import { Fragment as Fragment9, jsx as jsx51, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
9224
|
+
function ThemedImage({
|
|
9225
|
+
light,
|
|
9226
|
+
dark,
|
|
9227
|
+
sizes,
|
|
9228
|
+
alt,
|
|
9229
|
+
width,
|
|
9230
|
+
height,
|
|
9231
|
+
className,
|
|
9232
|
+
style
|
|
9233
|
+
}) {
|
|
9234
|
+
const shared = { width, height, style };
|
|
9235
|
+
if (!dark) {
|
|
9236
|
+
return /* @__PURE__ */ jsx51(
|
|
9237
|
+
"img",
|
|
9238
|
+
{
|
|
9239
|
+
src: light.src,
|
|
9240
|
+
srcSet: light.srcSet,
|
|
9241
|
+
sizes: light.srcSet ? sizes : void 0,
|
|
9242
|
+
className,
|
|
9243
|
+
alt,
|
|
9244
|
+
...shared
|
|
9245
|
+
}
|
|
9246
|
+
);
|
|
9247
|
+
}
|
|
9248
|
+
return /* @__PURE__ */ jsxs37(Fragment9, { children: [
|
|
9249
|
+
/* @__PURE__ */ jsx51(
|
|
9250
|
+
"img",
|
|
9251
|
+
{
|
|
9252
|
+
src: light.src,
|
|
9253
|
+
srcSet: light.srcSet,
|
|
9254
|
+
sizes: light.srcSet ? sizes : void 0,
|
|
9255
|
+
className: cn("clcosdk-on-light", className),
|
|
9256
|
+
alt,
|
|
9257
|
+
...shared
|
|
9258
|
+
}
|
|
9259
|
+
),
|
|
9260
|
+
/* @__PURE__ */ jsx51(
|
|
9261
|
+
"img",
|
|
9262
|
+
{
|
|
9263
|
+
src: dark.src,
|
|
9264
|
+
srcSet: dark.srcSet,
|
|
9265
|
+
sizes: dark.srcSet ? sizes : void 0,
|
|
9266
|
+
className: cn("clcosdk-on-dark", className),
|
|
9267
|
+
alt,
|
|
9268
|
+
...shared
|
|
9269
|
+
}
|
|
9270
|
+
)
|
|
9271
|
+
] });
|
|
9272
|
+
}
|
|
9273
|
+
|
|
9198
9274
|
// src/client/components/offers/shared/offer-card-keyboard.ts
|
|
9199
9275
|
function onOfferCardKeyDown(event, onClick) {
|
|
9200
9276
|
if (event.key !== "Enter" && event.key !== " ") return;
|
|
@@ -9203,7 +9279,8 @@ function onOfferCardKeyDown(event, onClick) {
|
|
|
9203
9279
|
}
|
|
9204
9280
|
|
|
9205
9281
|
// src/client/components/offers/shared/OfferAssetCard.tsx
|
|
9206
|
-
import { jsx as
|
|
9282
|
+
import { jsx as jsx52, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
9283
|
+
var LOGO_SIZES = "(min-width: 768px) 48px, 40px";
|
|
9207
9284
|
function OfferAssetCard({
|
|
9208
9285
|
offer,
|
|
9209
9286
|
onClick,
|
|
@@ -9211,7 +9288,7 @@ function OfferAssetCard({
|
|
|
9211
9288
|
containerClassName
|
|
9212
9289
|
}) {
|
|
9213
9290
|
const interactive = onClick !== void 0;
|
|
9214
|
-
const card = /* @__PURE__ */
|
|
9291
|
+
const card = /* @__PURE__ */ jsx52(
|
|
9215
9292
|
"article",
|
|
9216
9293
|
{
|
|
9217
9294
|
className: cn(
|
|
@@ -9225,11 +9302,13 @@ function OfferAssetCard({
|
|
|
9225
9302
|
tabIndex: interactive ? 0 : void 0,
|
|
9226
9303
|
onClick,
|
|
9227
9304
|
onKeyDown: interactive ? (event) => onOfferCardKeyDown(event, onClick) : void 0,
|
|
9228
|
-
children: /* @__PURE__ */
|
|
9229
|
-
offer.
|
|
9230
|
-
|
|
9305
|
+
children: /* @__PURE__ */ jsxs38("div", { className: "clcosdk:flex clcosdk:min-w-0 clcosdk:flex-1 clcosdk:items-center clcosdk:gap-2.5 clcosdk:pr-3 clcosdk:md:gap-3 clcosdk:md:pr-4", children: [
|
|
9306
|
+
offer.logo ? /* @__PURE__ */ jsx52("div", { className: "clcosdk:h-10 clcosdk:w-10 clcosdk:shrink-0 clcosdk:overflow-hidden clcosdk:rounded-full clcosdk:md:h-12 clcosdk:md:w-12", children: /* @__PURE__ */ jsx52(
|
|
9307
|
+
ThemedImage,
|
|
9231
9308
|
{
|
|
9232
|
-
|
|
9309
|
+
light: offer.logo.light,
|
|
9310
|
+
dark: offer.logo.dark ?? void 0,
|
|
9311
|
+
sizes: LOGO_SIZES,
|
|
9233
9312
|
alt: "",
|
|
9234
9313
|
width: 48,
|
|
9235
9314
|
height: 48,
|
|
@@ -9237,8 +9316,8 @@ function OfferAssetCard({
|
|
|
9237
9316
|
style: { maxWidth: "none", width: "100%", height: "100%" }
|
|
9238
9317
|
}
|
|
9239
9318
|
) }) : null,
|
|
9240
|
-
/* @__PURE__ */
|
|
9241
|
-
offer.name ? /* @__PURE__ */
|
|
9319
|
+
/* @__PURE__ */ jsxs38("div", { className: "clcosdk:flex clcosdk:min-w-0 clcosdk:flex-1 clcosdk:flex-col clcosdk:items-start clcosdk:justify-center", children: [
|
|
9320
|
+
offer.name ? /* @__PURE__ */ jsx52(
|
|
9242
9321
|
"h2",
|
|
9243
9322
|
{
|
|
9244
9323
|
className: cn(
|
|
@@ -9247,13 +9326,13 @@ function OfferAssetCard({
|
|
|
9247
9326
|
children: offer.name
|
|
9248
9327
|
}
|
|
9249
9328
|
) : null,
|
|
9250
|
-
offer.symbol ? /* @__PURE__ */
|
|
9329
|
+
offer.symbol ? /* @__PURE__ */ jsx52("p", { className: "clcosdk:w-full clcosdk:truncate clcosdk:text-[13px] clcosdk:leading-[150%] clcosdk:font-normal clcosdk:text-text-secondary clcosdk:md:text-[14px]", children: offer.symbol }) : null
|
|
9251
9330
|
] })
|
|
9252
9331
|
] })
|
|
9253
9332
|
}
|
|
9254
9333
|
);
|
|
9255
|
-
const wrapped = containerClassName ? /* @__PURE__ */
|
|
9256
|
-
return /* @__PURE__ */
|
|
9334
|
+
const wrapped = containerClassName ? /* @__PURE__ */ jsx52("div", { className: containerClassName, children: card }) : card;
|
|
9335
|
+
return /* @__PURE__ */ jsx52(CoinListStyleScope, { children: wrapped });
|
|
9257
9336
|
}
|
|
9258
9337
|
function cardActionLabel(offer) {
|
|
9259
9338
|
const parts = [offer.name, offer.symbol].filter(Boolean);
|
|
@@ -9261,7 +9340,7 @@ function cardActionLabel(offer) {
|
|
|
9261
9340
|
}
|
|
9262
9341
|
|
|
9263
9342
|
// src/client/components/offers/grid/OffersAssetGrid.tsx
|
|
9264
|
-
import { jsx as
|
|
9343
|
+
import { jsx as jsx53 } from "react/jsx-runtime";
|
|
9265
9344
|
var DEFAULT_MAX_COLUMNS = 3;
|
|
9266
9345
|
function OffersAssetGrid({
|
|
9267
9346
|
offers,
|
|
@@ -9276,14 +9355,14 @@ function OffersAssetGrid({
|
|
|
9276
9355
|
);
|
|
9277
9356
|
const maxGridWidth = `calc(${cols} * 20rem + ${Math.max(cols - 1, 0)} * 1.5rem)`;
|
|
9278
9357
|
const interactive = onOfferClick !== void 0;
|
|
9279
|
-
return /* @__PURE__ */
|
|
9358
|
+
return /* @__PURE__ */ jsx53(CoinListStyleScope, { children: /* @__PURE__ */ jsx53(
|
|
9280
9359
|
"div",
|
|
9281
9360
|
{
|
|
9282
9361
|
className: cn(
|
|
9283
9362
|
"clcosdk:flex clcosdk:w-full clcosdk:justify-center",
|
|
9284
9363
|
containerClassName
|
|
9285
9364
|
),
|
|
9286
|
-
children: /* @__PURE__ */
|
|
9365
|
+
children: /* @__PURE__ */ jsx53(
|
|
9287
9366
|
"div",
|
|
9288
9367
|
{
|
|
9289
9368
|
className: cn(
|
|
@@ -9293,7 +9372,7 @@ function OffersAssetGrid({
|
|
|
9293
9372
|
className
|
|
9294
9373
|
),
|
|
9295
9374
|
style: { maxWidth: maxGridWidth },
|
|
9296
|
-
children: offers.map((offer) => /* @__PURE__ */
|
|
9375
|
+
children: offers.map((offer) => /* @__PURE__ */ jsx53(
|
|
9297
9376
|
OfferAssetCard,
|
|
9298
9377
|
{
|
|
9299
9378
|
offer,
|
|
@@ -9335,7 +9414,9 @@ function saleCardStatus({
|
|
|
9335
9414
|
}
|
|
9336
9415
|
|
|
9337
9416
|
// src/client/components/offers/shared/OfferSaleCard.tsx
|
|
9338
|
-
import { jsx as
|
|
9417
|
+
import { jsx as jsx54, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
9418
|
+
var HEADER_LOGO_SIZES = "(min-width: 768px) 36px, 32px";
|
|
9419
|
+
var WATERMARK_SIZES = "(min-width: 768px) 20rem, 15rem";
|
|
9339
9420
|
function OfferSaleCard({
|
|
9340
9421
|
offer,
|
|
9341
9422
|
onClick,
|
|
@@ -9350,7 +9431,8 @@ function OfferSaleCard({
|
|
|
9350
9431
|
secondsLeft
|
|
9351
9432
|
});
|
|
9352
9433
|
const interactive = onClick !== void 0;
|
|
9353
|
-
const
|
|
9434
|
+
const logo = offer.logo ? offer.logo.dark ?? offer.logo.light : null;
|
|
9435
|
+
const card = /* @__PURE__ */ jsxs39(
|
|
9354
9436
|
"article",
|
|
9355
9437
|
{
|
|
9356
9438
|
className: cn(
|
|
@@ -9365,16 +9447,17 @@ function OfferSaleCard({
|
|
|
9365
9447
|
onClick,
|
|
9366
9448
|
onKeyDown: interactive ? (event) => onOfferCardKeyDown(event, onClick) : void 0,
|
|
9367
9449
|
children: [
|
|
9368
|
-
|
|
9450
|
+
logo ? /* @__PURE__ */ jsx54(
|
|
9369
9451
|
"div",
|
|
9370
9452
|
{
|
|
9371
9453
|
"aria-hidden": "true",
|
|
9372
9454
|
className: "clcosdk:pointer-events-none clcosdk:absolute clcosdk:top-1/2 clcosdk:right-[-14%] clcosdk:z-0 clcosdk:size-[15rem] clcosdk:-translate-y-1/2 clcosdk:md:right-[-10%] clcosdk:md:size-[20rem]",
|
|
9373
9455
|
style: { mixBlendMode: "overlay" },
|
|
9374
|
-
children: /* @__PURE__ */
|
|
9375
|
-
|
|
9456
|
+
children: /* @__PURE__ */ jsx54(
|
|
9457
|
+
ThemedImage,
|
|
9376
9458
|
{
|
|
9377
|
-
|
|
9459
|
+
light: logo,
|
|
9460
|
+
sizes: WATERMARK_SIZES,
|
|
9378
9461
|
alt: "",
|
|
9379
9462
|
className: "clcosdk:size-full clcosdk:rounded-full clcosdk:object-cover",
|
|
9380
9463
|
style: { maxWidth: "none", width: "100%", height: "100%" }
|
|
@@ -9382,12 +9465,13 @@ function OfferSaleCard({
|
|
|
9382
9465
|
)
|
|
9383
9466
|
}
|
|
9384
9467
|
) : null,
|
|
9385
|
-
/* @__PURE__ */
|
|
9386
|
-
/* @__PURE__ */
|
|
9387
|
-
|
|
9388
|
-
|
|
9468
|
+
/* @__PURE__ */ jsxs39("div", { className: "clcosdk:relative clcosdk:z-10 clcosdk:flex clcosdk:flex-col clcosdk:gap-2 clcosdk:md:gap-3", children: [
|
|
9469
|
+
/* @__PURE__ */ jsxs39("div", { className: "clcosdk:flex clcosdk:min-w-0 clcosdk:items-center clcosdk:gap-2.5 clcosdk:md:gap-3", children: [
|
|
9470
|
+
logo ? /* @__PURE__ */ jsx54("div", { className: "clcosdk:h-8 clcosdk:w-8 clcosdk:shrink-0 clcosdk:overflow-hidden clcosdk:rounded-full clcosdk:md:h-9 clcosdk:md:w-9", children: /* @__PURE__ */ jsx54(
|
|
9471
|
+
ThemedImage,
|
|
9389
9472
|
{
|
|
9390
|
-
|
|
9473
|
+
light: logo,
|
|
9474
|
+
sizes: HEADER_LOGO_SIZES,
|
|
9391
9475
|
alt: "",
|
|
9392
9476
|
width: 36,
|
|
9393
9477
|
height: 36,
|
|
@@ -9395,7 +9479,7 @@ function OfferSaleCard({
|
|
|
9395
9479
|
style: { maxWidth: "none", width: "100%", height: "100%" }
|
|
9396
9480
|
}
|
|
9397
9481
|
) }) : null,
|
|
9398
|
-
offer.name ? /* @__PURE__ */
|
|
9482
|
+
offer.name ? /* @__PURE__ */ jsx54(
|
|
9399
9483
|
"h2",
|
|
9400
9484
|
{
|
|
9401
9485
|
className: cn(
|
|
@@ -9405,7 +9489,7 @@ function OfferSaleCard({
|
|
|
9405
9489
|
}
|
|
9406
9490
|
) : null
|
|
9407
9491
|
] }),
|
|
9408
|
-
offer.tagline ? /* @__PURE__ */
|
|
9492
|
+
offer.tagline ? /* @__PURE__ */ jsx54(
|
|
9409
9493
|
"p",
|
|
9410
9494
|
{
|
|
9411
9495
|
className: cn(
|
|
@@ -9416,20 +9500,20 @@ function OfferSaleCard({
|
|
|
9416
9500
|
}
|
|
9417
9501
|
) : null
|
|
9418
9502
|
] }),
|
|
9419
|
-
/* @__PURE__ */
|
|
9420
|
-
/* @__PURE__ */
|
|
9421
|
-
status.phase === "live" ? /* @__PURE__ */
|
|
9503
|
+
/* @__PURE__ */ jsxs39("div", { className: "clcosdk:relative clcosdk:z-10 clcosdk:mt-auto clcosdk:flex clcosdk:h-11 clcosdk:w-full clcosdk:min-w-0 clcosdk:items-center clcosdk:justify-between clcosdk:gap-2 clcosdk:rounded-full clcosdk:border clcosdk:border-sale-card-chrome-border clcosdk:bg-sale-card-chrome-bg clcosdk:py-1.5 clcosdk:pr-1.5 clcosdk:pl-3 clcosdk:md:h-[54px] clcosdk:md:gap-3 clcosdk:md:py-2 clcosdk:md:pr-2 clcosdk:md:pl-4", children: [
|
|
9504
|
+
/* @__PURE__ */ jsxs39("div", { className: "clcosdk:flex clcosdk:min-w-0 clcosdk:items-center clcosdk:gap-2 clcosdk:md:gap-3", children: [
|
|
9505
|
+
status.phase === "live" ? /* @__PURE__ */ jsxs39(
|
|
9422
9506
|
"span",
|
|
9423
9507
|
{
|
|
9424
9508
|
className: "clcosdk:relative clcosdk:inline-flex clcosdk:size-2 clcosdk:shrink-0",
|
|
9425
9509
|
"aria-hidden": "true",
|
|
9426
9510
|
children: [
|
|
9427
|
-
/* @__PURE__ */
|
|
9428
|
-
/* @__PURE__ */
|
|
9511
|
+
/* @__PURE__ */ jsx54("span", { className: "clcosdk-status-dot-ping clcosdk:absolute clcosdk:inset-0 clcosdk:rounded-full clcosdk:bg-positive" }),
|
|
9512
|
+
/* @__PURE__ */ jsx54("span", { className: "clcosdk:relative clcosdk:inline-flex clcosdk:size-full clcosdk:rounded-full clcosdk:bg-positive" })
|
|
9429
9513
|
]
|
|
9430
9514
|
}
|
|
9431
9515
|
) : null,
|
|
9432
|
-
/* @__PURE__ */
|
|
9516
|
+
/* @__PURE__ */ jsx54(
|
|
9433
9517
|
"p",
|
|
9434
9518
|
{
|
|
9435
9519
|
className: cn(
|
|
@@ -9440,7 +9524,7 @@ function OfferSaleCard({
|
|
|
9440
9524
|
}
|
|
9441
9525
|
)
|
|
9442
9526
|
] }),
|
|
9443
|
-
/* @__PURE__ */
|
|
9527
|
+
/* @__PURE__ */ jsxs39(
|
|
9444
9528
|
"span",
|
|
9445
9529
|
{
|
|
9446
9530
|
className: cn(
|
|
@@ -9450,8 +9534,8 @@ function OfferSaleCard({
|
|
|
9450
9534
|
"aria-hidden": "true",
|
|
9451
9535
|
children: [
|
|
9452
9536
|
"View",
|
|
9453
|
-
/* @__PURE__ */
|
|
9454
|
-
/* @__PURE__ */
|
|
9537
|
+
/* @__PURE__ */ jsx54("span", { className: "clcosdk:max-md:hidden", children: " offer" }),
|
|
9538
|
+
/* @__PURE__ */ jsx54(ArrowRight, { className: "clcosdk:size-4", "aria-hidden": true })
|
|
9455
9539
|
]
|
|
9456
9540
|
}
|
|
9457
9541
|
)
|
|
@@ -9459,8 +9543,8 @@ function OfferSaleCard({
|
|
|
9459
9543
|
]
|
|
9460
9544
|
}
|
|
9461
9545
|
);
|
|
9462
|
-
const wrapped = containerClassName ? /* @__PURE__ */
|
|
9463
|
-
return /* @__PURE__ */
|
|
9546
|
+
const wrapped = containerClassName ? /* @__PURE__ */ jsx54("div", { className: containerClassName, children: card }) : card;
|
|
9547
|
+
return /* @__PURE__ */ jsx54(CoinListStyleScope, { children: wrapped });
|
|
9464
9548
|
}
|
|
9465
9549
|
var SALE_PHASE_LABEL = {
|
|
9466
9550
|
upcoming: "Upcoming",
|
|
@@ -9473,10 +9557,10 @@ function cardActionLabel2(offer, phase) {
|
|
|
9473
9557
|
}
|
|
9474
9558
|
|
|
9475
9559
|
// src/client/components/offers/grid/OffersGridView.tsx
|
|
9476
|
-
import { jsx as
|
|
9560
|
+
import { jsx as jsx55, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
9477
9561
|
var DEFAULT_MAX_COLUMNS2 = 2;
|
|
9478
9562
|
function OffersGridView(props) {
|
|
9479
|
-
return /* @__PURE__ */
|
|
9563
|
+
return /* @__PURE__ */ jsx55(CoinListStyleScope, { children: /* @__PURE__ */ jsx55(OffersGridViewBody, { ...props }) });
|
|
9480
9564
|
}
|
|
9481
9565
|
function OffersGridViewBody({
|
|
9482
9566
|
state,
|
|
@@ -9490,13 +9574,13 @@ function OffersGridViewBody({
|
|
|
9490
9574
|
}) {
|
|
9491
9575
|
switch (state.type) {
|
|
9492
9576
|
case "loading":
|
|
9493
|
-
return loading ?? /* @__PURE__ */
|
|
9577
|
+
return loading ?? /* @__PURE__ */ jsx55(LoadingState, {});
|
|
9494
9578
|
case "error":
|
|
9495
|
-
return error ?? /* @__PURE__ */
|
|
9579
|
+
return error ?? /* @__PURE__ */ jsx55(ErrorState, { message: state.message });
|
|
9496
9580
|
case "empty":
|
|
9497
|
-
return emptyState ?? /* @__PURE__ */
|
|
9581
|
+
return emptyState ?? /* @__PURE__ */ jsx55(EmptyState, {});
|
|
9498
9582
|
case "content":
|
|
9499
|
-
return /* @__PURE__ */
|
|
9583
|
+
return /* @__PURE__ */ jsx55(
|
|
9500
9584
|
OffersGridContent,
|
|
9501
9585
|
{
|
|
9502
9586
|
offers: state.offers,
|
|
@@ -9526,14 +9610,14 @@ function OffersGridContent({
|
|
|
9526
9610
|
Math.max(1, maxColumns ?? DEFAULT_MAX_COLUMNS2)
|
|
9527
9611
|
);
|
|
9528
9612
|
const maxGridWidth = `calc(${cols} * 28rem + ${Math.max(cols - 1, 0)} * 1.5rem)`;
|
|
9529
|
-
return /* @__PURE__ */
|
|
9613
|
+
return /* @__PURE__ */ jsx55(
|
|
9530
9614
|
"div",
|
|
9531
9615
|
{
|
|
9532
9616
|
className: cn(
|
|
9533
9617
|
"clcosdk:flex clcosdk:w-full clcosdk:justify-center",
|
|
9534
9618
|
containerClassName
|
|
9535
9619
|
),
|
|
9536
|
-
children: /* @__PURE__ */
|
|
9620
|
+
children: /* @__PURE__ */ jsx55(
|
|
9537
9621
|
"div",
|
|
9538
9622
|
{
|
|
9539
9623
|
className: cn(
|
|
@@ -9542,7 +9626,7 @@ function OffersGridContent({
|
|
|
9542
9626
|
className
|
|
9543
9627
|
),
|
|
9544
9628
|
style: { maxWidth: maxGridWidth },
|
|
9545
|
-
children: offers.map((offer) => /* @__PURE__ */
|
|
9629
|
+
children: offers.map((offer) => /* @__PURE__ */ jsx55(
|
|
9546
9630
|
OfferSaleCard,
|
|
9547
9631
|
{
|
|
9548
9632
|
offer,
|
|
@@ -9556,17 +9640,17 @@ function OffersGridContent({
|
|
|
9556
9640
|
);
|
|
9557
9641
|
}
|
|
9558
9642
|
function LoadingState() {
|
|
9559
|
-
return /* @__PURE__ */
|
|
9643
|
+
return /* @__PURE__ */ jsx55(
|
|
9560
9644
|
"output",
|
|
9561
9645
|
{
|
|
9562
9646
|
"aria-live": "polite",
|
|
9563
9647
|
className: "clcosdk:flex clcosdk:min-h-40 clcosdk:items-center clcosdk:justify-center clcosdk:rounded-2xl clcosdk:border clcosdk:border-border clcosdk:bg-background clcosdk:p-6",
|
|
9564
|
-
children: /* @__PURE__ */
|
|
9648
|
+
children: /* @__PURE__ */ jsx55("p", { className: cn(typeClasses.body, "clcosdk:text-text-secondary"), children: "Loading offers..." })
|
|
9565
9649
|
}
|
|
9566
9650
|
);
|
|
9567
9651
|
}
|
|
9568
9652
|
function ErrorState({ message }) {
|
|
9569
|
-
return /* @__PURE__ */
|
|
9653
|
+
return /* @__PURE__ */ jsx55(
|
|
9570
9654
|
AlertBanner,
|
|
9571
9655
|
{
|
|
9572
9656
|
variant: "error",
|
|
@@ -9577,13 +9661,13 @@ function ErrorState({ message }) {
|
|
|
9577
9661
|
);
|
|
9578
9662
|
}
|
|
9579
9663
|
function EmptyState() {
|
|
9580
|
-
return /* @__PURE__ */
|
|
9664
|
+
return /* @__PURE__ */ jsxs40(
|
|
9581
9665
|
"output",
|
|
9582
9666
|
{
|
|
9583
9667
|
"aria-live": "polite",
|
|
9584
9668
|
className: "clcosdk:flex clcosdk:min-h-40 clcosdk:flex-col clcosdk:items-center clcosdk:justify-center clcosdk:gap-2 clcosdk:rounded-2xl clcosdk:border clcosdk:border-border clcosdk:bg-background clcosdk:p-6 clcosdk:text-center",
|
|
9585
9669
|
children: [
|
|
9586
|
-
/* @__PURE__ */
|
|
9670
|
+
/* @__PURE__ */ jsx55(
|
|
9587
9671
|
"p",
|
|
9588
9672
|
{
|
|
9589
9673
|
className: cn(
|
|
@@ -9593,14 +9677,14 @@ function EmptyState() {
|
|
|
9593
9677
|
children: "No offers available"
|
|
9594
9678
|
}
|
|
9595
9679
|
),
|
|
9596
|
-
/* @__PURE__ */
|
|
9680
|
+
/* @__PURE__ */ jsx55("p", { className: cn(typeClasses.subhead, "clcosdk:text-text-secondary"), children: "Check back soon for upcoming opportunities." })
|
|
9597
9681
|
]
|
|
9598
9682
|
}
|
|
9599
9683
|
);
|
|
9600
9684
|
}
|
|
9601
9685
|
|
|
9602
9686
|
// src/client/hooks/offers/grid/useOffersGridViewModel.ts
|
|
9603
|
-
import { useCallback as
|
|
9687
|
+
import { useCallback as useCallback7, useMemo as useMemo6 } from "react";
|
|
9604
9688
|
|
|
9605
9689
|
// src/client/hooks/offers/data/useOffers.ts
|
|
9606
9690
|
import { useEffect as useEffect20, useState as useState24 } from "react";
|
|
@@ -9658,36 +9742,147 @@ function useOffers(options = {}) {
|
|
|
9658
9742
|
return { offersState };
|
|
9659
9743
|
}
|
|
9660
9744
|
|
|
9745
|
+
// src/client/hooks/offers/shared/offer-logo.types.ts
|
|
9746
|
+
var CARD_LOGO_WIDTH = 96;
|
|
9747
|
+
var OfferLogoUi = {
|
|
9748
|
+
/**
|
|
9749
|
+
* The registry's logo for the token an offer is about, or the offer's own
|
|
9750
|
+
* artwork otherwise, or `null` when neither exists.
|
|
9751
|
+
*
|
|
9752
|
+
* The registry wins when both exist because it is the token's real artwork
|
|
9753
|
+
* where `Offer.logoUrl` is catalogue artwork, and because a swap publishes
|
|
9754
|
+
* without artwork more often than not - which is why `logoUrl` is `null`
|
|
9755
|
+
* on the swap variants.
|
|
9756
|
+
*/
|
|
9757
|
+
fromOffer: (offer, tokenMetadata) => {
|
|
9758
|
+
const light = tokenMetadata ? logoImage(tokenMetadata.logo) : null;
|
|
9759
|
+
if (light !== null) {
|
|
9760
|
+
const dark = tokenMetadata?.logoDark ? logoImage(tokenMetadata.logoDark) : null;
|
|
9761
|
+
return { light, dark };
|
|
9762
|
+
}
|
|
9763
|
+
return offer.logoUrl ? { light: { src: offer.logoUrl }, dark: null } : null;
|
|
9764
|
+
}
|
|
9765
|
+
};
|
|
9766
|
+
function logoImage(logo) {
|
|
9767
|
+
const src = tokenLogoUrl(logo, CARD_LOGO_WIDTH);
|
|
9768
|
+
if (src === null) {
|
|
9769
|
+
return null;
|
|
9770
|
+
}
|
|
9771
|
+
const srcSet = tokenLogoSrcSet(logo);
|
|
9772
|
+
return srcSet === null ? { src } : { src, srcSet };
|
|
9773
|
+
}
|
|
9774
|
+
|
|
9661
9775
|
// src/client/hooks/offers/shared/offer-sale-card.types.ts
|
|
9662
9776
|
var OfferSaleCardUi = {
|
|
9663
|
-
|
|
9777
|
+
/**
|
|
9778
|
+
* `tokenMetadata` is the registry's entry for the token the offer is about
|
|
9779
|
+
* (`TokenRegistrySnapshot.forOffer`), or `null` when it lists none. The
|
|
9780
|
+
* registry names win over the offer's own where both exist: they are the
|
|
9781
|
+
* token's canonical name and artwork, where the offer's are catalogue copy.
|
|
9782
|
+
*/
|
|
9783
|
+
fromOffer: (offer, tokenMetadata = null) => ({
|
|
9664
9784
|
id: offer.id,
|
|
9665
|
-
|
|
9666
|
-
|
|
9667
|
-
|
|
9785
|
+
...tokenMetadata ? { name: tokenMetadata.name } : {},
|
|
9786
|
+
...saleWindow(offer),
|
|
9787
|
+
logo: OfferLogoUi.fromOffer(offer, tokenMetadata),
|
|
9668
9788
|
endsAt: offer.endsAt
|
|
9669
9789
|
}),
|
|
9670
|
-
fromDetail: (detail) => ({
|
|
9790
|
+
fromDetail: (detail, tokenMetadata = null) => ({
|
|
9671
9791
|
id: detail.id,
|
|
9672
|
-
name: detail.name,
|
|
9673
|
-
|
|
9674
|
-
|
|
9675
|
-
startsAt: detail.startsAt,
|
|
9792
|
+
name: tokenMetadata?.name ?? detail.name,
|
|
9793
|
+
...saleWindow(detail),
|
|
9794
|
+
logo: OfferLogoUi.fromOffer(detail, tokenMetadata),
|
|
9676
9795
|
endsAt: detail.endsAt
|
|
9677
9796
|
})
|
|
9678
9797
|
};
|
|
9798
|
+
function saleWindow(offer) {
|
|
9799
|
+
switch (offer.type) {
|
|
9800
|
+
case "coinlist::token_sale":
|
|
9801
|
+
case "superstate::swap":
|
|
9802
|
+
return { tagline: offer.tagline, startsAt: offer.startsAt };
|
|
9803
|
+
case "ondo::swap":
|
|
9804
|
+
return { tagline: null, startsAt: null };
|
|
9805
|
+
default: {
|
|
9806
|
+
const exhaustive = offer;
|
|
9807
|
+
return exhaustive;
|
|
9808
|
+
}
|
|
9809
|
+
}
|
|
9810
|
+
}
|
|
9811
|
+
|
|
9812
|
+
// src/client/hooks/shared/useTokenRegistry.ts
|
|
9813
|
+
import { useCallback as useCallback6, useEffect as useEffect21, useState as useState25 } from "react";
|
|
9814
|
+
var DISABLED_STATE2 = { type: "DISABLED" };
|
|
9815
|
+
var LOADING_STATE4 = { type: "LOADING" };
|
|
9816
|
+
function useTokenRegistry(options = {}) {
|
|
9817
|
+
const { data, enabled = true } = options;
|
|
9818
|
+
const { coinlist, isReady } = useCoinList();
|
|
9819
|
+
const log = useLogger("useTokenRegistry");
|
|
9820
|
+
const [state, setState] = useState25(
|
|
9821
|
+
() => data !== void 0 ? { type: "CONTENT", registry: TokenRegistrySnapshot.fromTokens(data) } : LOADING_STATE4
|
|
9822
|
+
);
|
|
9823
|
+
const [refetchCount, setRefetchCount] = useState25(0);
|
|
9824
|
+
const refetch = useCallback6(() => {
|
|
9825
|
+
setRefetchCount((count) => count + 1);
|
|
9826
|
+
}, []);
|
|
9827
|
+
useEffect21(() => {
|
|
9828
|
+
let isCancelled = false;
|
|
9829
|
+
const seedActive = data !== void 0 && refetchCount === 0;
|
|
9830
|
+
if (!isReady || !enabled || seedActive) {
|
|
9831
|
+
return () => {
|
|
9832
|
+
isCancelled = true;
|
|
9833
|
+
};
|
|
9834
|
+
}
|
|
9835
|
+
setState(LOADING_STATE4);
|
|
9836
|
+
coinlist.tokens.list().then((tokens) => {
|
|
9837
|
+
if (!isCancelled) {
|
|
9838
|
+
log.debug(() => ({
|
|
9839
|
+
msg: "settled",
|
|
9840
|
+
fields: { state: "CONTENT", count: tokens.length }
|
|
9841
|
+
}));
|
|
9842
|
+
setState({
|
|
9843
|
+
type: "CONTENT",
|
|
9844
|
+
registry: TokenRegistrySnapshot.fromTokens(tokens)
|
|
9845
|
+
});
|
|
9846
|
+
}
|
|
9847
|
+
}).catch((error) => {
|
|
9848
|
+
if (!isCancelled) {
|
|
9849
|
+
log.failure(
|
|
9850
|
+
() => ({
|
|
9851
|
+
msg: "settled",
|
|
9852
|
+
fields: { state: "ERROR", reason: "generic-error" }
|
|
9853
|
+
}),
|
|
9854
|
+
error
|
|
9855
|
+
);
|
|
9856
|
+
setState({ type: "ERROR", reason: "generic-error" });
|
|
9857
|
+
}
|
|
9858
|
+
});
|
|
9859
|
+
return () => {
|
|
9860
|
+
isCancelled = true;
|
|
9861
|
+
};
|
|
9862
|
+
}, [coinlist, isReady, enabled, data, refetchCount, log]);
|
|
9863
|
+
return {
|
|
9864
|
+
// LOADING would be a lie while disabled: nothing is in flight and nothing
|
|
9865
|
+
// will replace it. Settled states (a seed, a previous answer) survive.
|
|
9866
|
+
state: !enabled && state.type === "LOADING" ? DISABLED_STATE2 : state,
|
|
9867
|
+
refetch
|
|
9868
|
+
};
|
|
9869
|
+
}
|
|
9679
9870
|
|
|
9680
9871
|
// src/client/hooks/offers/grid/useOffersGridViewModel.ts
|
|
9681
9872
|
var NOT_AUTHENTICATED_MESSAGE = "Sign in to view available offers.";
|
|
9682
9873
|
var GENERIC_ERROR_MESSAGE = "Unable to load offers right now. Please try again.";
|
|
9683
9874
|
function useOffersGridViewModel(options = {}) {
|
|
9684
9875
|
const { data, onOfferClick, enabled = true } = options;
|
|
9685
|
-
const { offersState } = useOffers({ data, enabled });
|
|
9686
|
-
const state =
|
|
9687
|
-
|
|
9688
|
-
|
|
9876
|
+
const { offersState } = useOffers({ data: data?.offers, enabled });
|
|
9877
|
+
const { state: registryState } = useTokenRegistry({
|
|
9878
|
+
data: data?.tokens,
|
|
9879
|
+
enabled
|
|
9880
|
+
});
|
|
9881
|
+
const state = useMemo6(
|
|
9882
|
+
() => toUiState(offersState, registryState, onOfferClick !== void 0),
|
|
9883
|
+
[offersState, registryState, onOfferClick]
|
|
9689
9884
|
);
|
|
9690
|
-
const onEvent =
|
|
9885
|
+
const onEvent = useCallback7(
|
|
9691
9886
|
(event) => {
|
|
9692
9887
|
switch (event.type) {
|
|
9693
9888
|
case "ON_OFFER_CLICK": {
|
|
@@ -9710,7 +9905,7 @@ function useOffersGridViewModel(options = {}) {
|
|
|
9710
9905
|
);
|
|
9711
9906
|
return { state, onEvent };
|
|
9712
9907
|
}
|
|
9713
|
-
function toUiState(offersState, interactive) {
|
|
9908
|
+
function toUiState(offersState, registryState, interactive) {
|
|
9714
9909
|
switch (offersState.type) {
|
|
9715
9910
|
case "LOADING":
|
|
9716
9911
|
return { type: "loading" };
|
|
@@ -9723,9 +9918,18 @@ function toUiState(offersState, interactive) {
|
|
|
9723
9918
|
if (offersState.offers.length === 0) {
|
|
9724
9919
|
return { type: "empty" };
|
|
9725
9920
|
}
|
|
9921
|
+
if (registryState.type === "LOADING") {
|
|
9922
|
+
return { type: "loading" };
|
|
9923
|
+
}
|
|
9924
|
+
const registry = registryState.type === "CONTENT" ? registryState.registry : null;
|
|
9726
9925
|
return {
|
|
9727
9926
|
type: "content",
|
|
9728
|
-
offers: offersState.offers.map(
|
|
9927
|
+
offers: offersState.offers.map(
|
|
9928
|
+
(offer) => OfferSaleCardUi.fromOffer(
|
|
9929
|
+
offer,
|
|
9930
|
+
registry ? TokenRegistrySnapshot.forOffer(registry, offer) : null
|
|
9931
|
+
)
|
|
9932
|
+
),
|
|
9729
9933
|
interactive
|
|
9730
9934
|
};
|
|
9731
9935
|
}
|
|
@@ -9737,7 +9941,7 @@ function toUiState(offersState, interactive) {
|
|
|
9737
9941
|
}
|
|
9738
9942
|
|
|
9739
9943
|
// src/client/components/offers/grid/OffersGridContainer.tsx
|
|
9740
|
-
import { jsx as
|
|
9944
|
+
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
9741
9945
|
function OffersGridContainer({
|
|
9742
9946
|
data,
|
|
9743
9947
|
onOfferClick,
|
|
@@ -9749,17 +9953,17 @@ function OffersGridContainer({
|
|
|
9749
9953
|
onOfferClick,
|
|
9750
9954
|
enabled
|
|
9751
9955
|
});
|
|
9752
|
-
return /* @__PURE__ */
|
|
9956
|
+
return /* @__PURE__ */ jsx56(OffersGridView, { state, onEvent, ...viewProps });
|
|
9753
9957
|
}
|
|
9754
9958
|
|
|
9755
9959
|
// src/client/components/requirements/ConnectedWalletList.tsx
|
|
9756
|
-
import { useState as
|
|
9757
|
-
import { jsx as
|
|
9960
|
+
import { useState as useState26 } from "react";
|
|
9961
|
+
import { jsx as jsx57, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
9758
9962
|
function ConnectedWalletRow({
|
|
9759
9963
|
wallet,
|
|
9760
9964
|
onRemove
|
|
9761
9965
|
}) {
|
|
9762
|
-
const [state, setState] =
|
|
9966
|
+
const [state, setState] = useState26("idle");
|
|
9763
9967
|
const remove = async () => {
|
|
9764
9968
|
if (!onRemove) return;
|
|
9765
9969
|
setState("removing");
|
|
@@ -9770,8 +9974,8 @@ function ConnectedWalletRow({
|
|
|
9770
9974
|
setState("error");
|
|
9771
9975
|
}
|
|
9772
9976
|
};
|
|
9773
|
-
return /* @__PURE__ */
|
|
9774
|
-
/* @__PURE__ */
|
|
9977
|
+
return /* @__PURE__ */ jsxs41("div", { className: "clcosdk:flex clcosdk:min-h-9 clcosdk:flex-wrap clcosdk:items-center clcosdk:justify-between clcosdk:gap-2", children: [
|
|
9978
|
+
/* @__PURE__ */ jsx57(
|
|
9775
9979
|
"span",
|
|
9776
9980
|
{
|
|
9777
9981
|
title: wallet.address,
|
|
@@ -9782,16 +9986,16 @@ function ConnectedWalletRow({
|
|
|
9782
9986
|
children: wallet.shortAddress
|
|
9783
9987
|
}
|
|
9784
9988
|
),
|
|
9785
|
-
onRemove != null && (state === "confirming" ? /* @__PURE__ */
|
|
9786
|
-
/* @__PURE__ */
|
|
9989
|
+
onRemove != null && (state === "confirming" ? /* @__PURE__ */ jsxs41("div", { className: "clcosdk:flex clcosdk:items-center clcosdk:gap-2", children: [
|
|
9990
|
+
/* @__PURE__ */ jsx57(
|
|
9787
9991
|
"span",
|
|
9788
9992
|
{
|
|
9789
9993
|
className: cn(typeClasses.subhead, "clcosdk:text-text-secondary"),
|
|
9790
9994
|
children: "Remove?"
|
|
9791
9995
|
}
|
|
9792
9996
|
),
|
|
9793
|
-
/* @__PURE__ */
|
|
9794
|
-
/* @__PURE__ */
|
|
9997
|
+
/* @__PURE__ */ jsx57(ClButton, { size: "sm", variant: "destructive", onClick: remove, children: "Remove" }),
|
|
9998
|
+
/* @__PURE__ */ jsx57(
|
|
9795
9999
|
ClButton,
|
|
9796
10000
|
{
|
|
9797
10001
|
size: "sm",
|
|
@@ -9800,9 +10004,9 @@ function ConnectedWalletRow({
|
|
|
9800
10004
|
children: "Cancel"
|
|
9801
10005
|
}
|
|
9802
10006
|
)
|
|
9803
|
-
] }) : state === "error" ? /* @__PURE__ */
|
|
9804
|
-
/* @__PURE__ */
|
|
9805
|
-
/* @__PURE__ */
|
|
10007
|
+
] }) : state === "error" ? /* @__PURE__ */ jsxs41("div", { className: "clcosdk:flex clcosdk:items-center clcosdk:gap-2", children: [
|
|
10008
|
+
/* @__PURE__ */ jsx57("span", { className: cn(typeClasses.subhead, "clcosdk:text-error"), children: "Couldn't remove." }),
|
|
10009
|
+
/* @__PURE__ */ jsx57(
|
|
9806
10010
|
ClButton,
|
|
9807
10011
|
{
|
|
9808
10012
|
size: "sm",
|
|
@@ -9811,7 +10015,7 @@ function ConnectedWalletRow({
|
|
|
9811
10015
|
children: "Try again"
|
|
9812
10016
|
}
|
|
9813
10017
|
)
|
|
9814
|
-
] }) : /* @__PURE__ */
|
|
10018
|
+
] }) : /* @__PURE__ */ jsx57(
|
|
9815
10019
|
ClButton,
|
|
9816
10020
|
{
|
|
9817
10021
|
size: "sm",
|
|
@@ -9824,7 +10028,7 @@ function ConnectedWalletRow({
|
|
|
9824
10028
|
] });
|
|
9825
10029
|
}
|
|
9826
10030
|
function ConnectedWalletList(props) {
|
|
9827
|
-
return /* @__PURE__ */
|
|
10031
|
+
return /* @__PURE__ */ jsx57(CoinListStyleScope, { children: /* @__PURE__ */ jsx57(ConnectedWalletListBody, { ...props }) });
|
|
9828
10032
|
}
|
|
9829
10033
|
function ConnectedWalletListBody({
|
|
9830
10034
|
wallets,
|
|
@@ -9834,18 +10038,18 @@ function ConnectedWalletListBody({
|
|
|
9834
10038
|
status = "ready",
|
|
9835
10039
|
className
|
|
9836
10040
|
}) {
|
|
9837
|
-
return /* @__PURE__ */
|
|
10041
|
+
return /* @__PURE__ */ jsxs41(
|
|
9838
10042
|
"div",
|
|
9839
10043
|
{
|
|
9840
10044
|
className: cn("clcosdk:flex clcosdk:flex-col clcosdk:gap-2", className),
|
|
9841
10045
|
children: [
|
|
9842
|
-
status === "loading" ? /* @__PURE__ */
|
|
10046
|
+
status === "loading" ? /* @__PURE__ */ jsx57(AlertBanner, { variant: "info", content: "Loading your connected wallets\u2026" }) : status === "error" ? /* @__PURE__ */ jsx57(
|
|
9843
10047
|
AlertBanner,
|
|
9844
10048
|
{
|
|
9845
10049
|
variant: "error",
|
|
9846
10050
|
content: "Couldn't load your connected wallets."
|
|
9847
10051
|
}
|
|
9848
|
-
) : wallets.length === 0 ? /* @__PURE__ */
|
|
10052
|
+
) : wallets.length === 0 ? /* @__PURE__ */ jsx57(AlertBanner, { variant: "info", content: "No wallets connected yet." }) : /* @__PURE__ */ jsx57("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:divide-y clcosdk:divide-divider", children: wallets.map((wallet) => /* @__PURE__ */ jsx57(
|
|
9849
10053
|
ConnectedWalletRow,
|
|
9850
10054
|
{
|
|
9851
10055
|
wallet,
|
|
@@ -9853,7 +10057,7 @@ function ConnectedWalletListBody({
|
|
|
9853
10057
|
},
|
|
9854
10058
|
wallet.id
|
|
9855
10059
|
)) }),
|
|
9856
|
-
onAdd != null && status !== "loading" && /* @__PURE__ */
|
|
10060
|
+
onAdd != null && status !== "loading" && /* @__PURE__ */ jsx57(
|
|
9857
10061
|
ClButton,
|
|
9858
10062
|
{
|
|
9859
10063
|
size: "sm",
|
|
@@ -9870,9 +10074,9 @@ function ConnectedWalletListBody({
|
|
|
9870
10074
|
|
|
9871
10075
|
// src/client/components/requirements/identity-verification/IdentityVerificationView.tsx
|
|
9872
10076
|
import SumsubWebSdk from "@sumsub/websdk-react";
|
|
9873
|
-
import { jsx as
|
|
10077
|
+
import { jsx as jsx58, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
9874
10078
|
function IdentityVerificationView(props) {
|
|
9875
|
-
return /* @__PURE__ */
|
|
10079
|
+
return /* @__PURE__ */ jsx58(CoinListStyleScope, { children: /* @__PURE__ */ jsx58(IdentityVerificationViewBody, { ...props }) });
|
|
9876
10080
|
}
|
|
9877
10081
|
function IdentityVerificationViewBody({
|
|
9878
10082
|
state,
|
|
@@ -9881,7 +10085,7 @@ function IdentityVerificationViewBody({
|
|
|
9881
10085
|
}) {
|
|
9882
10086
|
switch (state.type) {
|
|
9883
10087
|
case "loading":
|
|
9884
|
-
return /* @__PURE__ */
|
|
10088
|
+
return /* @__PURE__ */ jsx58(
|
|
9885
10089
|
"output",
|
|
9886
10090
|
{
|
|
9887
10091
|
"aria-live": "polite",
|
|
@@ -9889,11 +10093,11 @@ function IdentityVerificationViewBody({
|
|
|
9889
10093
|
"clcosdk:flex clcosdk:min-h-40 clcosdk:items-center clcosdk:justify-center",
|
|
9890
10094
|
className
|
|
9891
10095
|
),
|
|
9892
|
-
children: /* @__PURE__ */
|
|
10096
|
+
children: /* @__PURE__ */ jsx58("p", { className: cn(typeClasses.body, "clcosdk:text-text-secondary"), children: "Loading identity verification..." })
|
|
9893
10097
|
}
|
|
9894
10098
|
);
|
|
9895
10099
|
case "error":
|
|
9896
|
-
return /* @__PURE__ */
|
|
10100
|
+
return /* @__PURE__ */ jsxs42(
|
|
9897
10101
|
"div",
|
|
9898
10102
|
{
|
|
9899
10103
|
className: cn(
|
|
@@ -9901,13 +10105,13 @@ function IdentityVerificationViewBody({
|
|
|
9901
10105
|
className
|
|
9902
10106
|
),
|
|
9903
10107
|
children: [
|
|
9904
|
-
/* @__PURE__ */
|
|
9905
|
-
state.retryable && /* @__PURE__ */
|
|
10108
|
+
/* @__PURE__ */ jsx58(AlertBanner, { variant: "error", icon: true, content: state.message }),
|
|
10109
|
+
state.retryable && /* @__PURE__ */ jsx58(ClButton, { size: "sm", onClick: () => onEvent({ type: "ON_RETRY" }), children: "Try again" })
|
|
9906
10110
|
]
|
|
9907
10111
|
}
|
|
9908
10112
|
);
|
|
9909
10113
|
case "ready":
|
|
9910
|
-
return /* @__PURE__ */
|
|
10114
|
+
return /* @__PURE__ */ jsx58("div", { className: cn("clcosdk:w-full", className), children: /* @__PURE__ */ jsx58(
|
|
9911
10115
|
SumsubWebSdk,
|
|
9912
10116
|
{
|
|
9913
10117
|
accessToken: state.accessToken,
|
|
@@ -9947,25 +10151,25 @@ function toError(error) {
|
|
|
9947
10151
|
}
|
|
9948
10152
|
|
|
9949
10153
|
// src/client/hooks/requirements/identity-verification/useIdentityVerificationViewModel.ts
|
|
9950
|
-
import { useCallback as
|
|
10154
|
+
import { useCallback as useCallback9, useEffect as useEffect23, useMemo as useMemo7, useRef as useRef15 } from "react";
|
|
9951
10155
|
|
|
9952
10156
|
// src/client/hooks/requirements/data/useKycToken.ts
|
|
9953
|
-
import { useCallback as
|
|
10157
|
+
import { useCallback as useCallback8, useEffect as useEffect22, useRef as useRef14, useState as useState27 } from "react";
|
|
9954
10158
|
var IDLE_STATE = { type: "IDLE" };
|
|
9955
|
-
var
|
|
10159
|
+
var LOADING_STATE5 = { type: "LOADING" };
|
|
9956
10160
|
function useKycToken(levelName, reset) {
|
|
9957
10161
|
const { coinlist } = useCoinList();
|
|
9958
10162
|
const log = useLogger("useKycToken");
|
|
9959
|
-
const [kycTokenState, setKycTokenState] =
|
|
10163
|
+
const [kycTokenState, setKycTokenState] = useState27(IDLE_STATE);
|
|
9960
10164
|
const resetPendingRef = useRef14(reset === true);
|
|
9961
10165
|
const tokenIssuedRef = useRef14(false);
|
|
9962
|
-
|
|
10166
|
+
useEffect22(() => {
|
|
9963
10167
|
if (!tokenIssuedRef.current) {
|
|
9964
10168
|
resetPendingRef.current = reset === true;
|
|
9965
10169
|
}
|
|
9966
10170
|
}, [reset]);
|
|
9967
|
-
const fetchToken =
|
|
9968
|
-
setKycTokenState(
|
|
10171
|
+
const fetchToken = useCallback8(async () => {
|
|
10172
|
+
setKycTokenState(LOADING_STATE5);
|
|
9969
10173
|
try {
|
|
9970
10174
|
const kycToken = await coinlist.requirements.createKycToken({
|
|
9971
10175
|
levelName,
|
|
@@ -9999,7 +10203,7 @@ function useIdentityVerificationViewModel(options = {}) {
|
|
|
9999
10203
|
const { levelName, reset, locale, onSubmitted, onError } = options;
|
|
10000
10204
|
const { kycTokenState, fetchToken } = useKycToken(levelName, reset);
|
|
10001
10205
|
const fetchedRef = useRef15(false);
|
|
10002
|
-
|
|
10206
|
+
useEffect23(() => {
|
|
10003
10207
|
if (fetchedRef.current) {
|
|
10004
10208
|
return;
|
|
10005
10209
|
}
|
|
@@ -10007,7 +10211,7 @@ function useIdentityVerificationViewModel(options = {}) {
|
|
|
10007
10211
|
fetchToken().catch(() => {
|
|
10008
10212
|
});
|
|
10009
10213
|
}, [fetchToken]);
|
|
10010
|
-
const state =
|
|
10214
|
+
const state = useMemo7(() => {
|
|
10011
10215
|
switch (kycTokenState.type) {
|
|
10012
10216
|
case "IDLE":
|
|
10013
10217
|
case "LOADING":
|
|
@@ -10033,7 +10237,7 @@ function useIdentityVerificationViewModel(options = {}) {
|
|
|
10033
10237
|
}
|
|
10034
10238
|
}
|
|
10035
10239
|
}, [kycTokenState, locale, fetchToken]);
|
|
10036
|
-
const onEvent =
|
|
10240
|
+
const onEvent = useCallback9(
|
|
10037
10241
|
(event) => {
|
|
10038
10242
|
switch (event.type) {
|
|
10039
10243
|
case "ON_RETRY":
|
|
@@ -10058,7 +10262,7 @@ function useIdentityVerificationViewModel(options = {}) {
|
|
|
10058
10262
|
}
|
|
10059
10263
|
|
|
10060
10264
|
// src/client/components/requirements/identity-verification/IdentityVerificationContainer.tsx
|
|
10061
|
-
import { jsx as
|
|
10265
|
+
import { jsx as jsx59 } from "react/jsx-runtime";
|
|
10062
10266
|
function IdentityVerificationContainer({
|
|
10063
10267
|
levelName,
|
|
10064
10268
|
reset,
|
|
@@ -10074,7 +10278,7 @@ function IdentityVerificationContainer({
|
|
|
10074
10278
|
onSubmitted,
|
|
10075
10279
|
onError
|
|
10076
10280
|
});
|
|
10077
|
-
return /* @__PURE__ */
|
|
10281
|
+
return /* @__PURE__ */ jsx59(
|
|
10078
10282
|
IdentityVerificationView,
|
|
10079
10283
|
{
|
|
10080
10284
|
state,
|
|
@@ -10089,7 +10293,7 @@ import { ChevronRight } from "lucide-react";
|
|
|
10089
10293
|
|
|
10090
10294
|
// src/client/components/design-system/StepStatusIcon.tsx
|
|
10091
10295
|
import { CircleCheck as CircleCheck2, CircleX, Info as Info5 } from "lucide-react";
|
|
10092
|
-
import { jsx as
|
|
10296
|
+
import { jsx as jsx60 } from "react/jsx-runtime";
|
|
10093
10297
|
var statusConfig = {
|
|
10094
10298
|
required: {
|
|
10095
10299
|
Icon: Info5,
|
|
@@ -10114,7 +10318,7 @@ var statusConfig = {
|
|
|
10114
10318
|
};
|
|
10115
10319
|
function StepStatusIcon({ status, className }) {
|
|
10116
10320
|
const { Icon, colorClass, fillClass } = statusConfig[status];
|
|
10117
|
-
return /* @__PURE__ */
|
|
10321
|
+
return /* @__PURE__ */ jsx60(
|
|
10118
10322
|
Icon,
|
|
10119
10323
|
{
|
|
10120
10324
|
className: cn(
|
|
@@ -10129,49 +10333,90 @@ function StepStatusIcon({ status, className }) {
|
|
|
10129
10333
|
}
|
|
10130
10334
|
|
|
10131
10335
|
// src/client/components/requirements/RequirementItem.tsx
|
|
10132
|
-
import { Fragment as
|
|
10336
|
+
import { Fragment as Fragment10, jsx as jsx61, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
10337
|
+
var DEFAULT_PENDING = "Under review. We'll notify you when complete.";
|
|
10338
|
+
var DEFAULT_REJECTED = "Verification rejected.";
|
|
10339
|
+
var SUPPORT_LINK = "Contact support";
|
|
10133
10340
|
function VerificationActionZone({
|
|
10134
10341
|
status,
|
|
10342
|
+
statusMessages,
|
|
10135
10343
|
onAction,
|
|
10136
10344
|
onContactSupport
|
|
10137
10345
|
}) {
|
|
10138
10346
|
switch (status) {
|
|
10139
10347
|
case "required":
|
|
10140
10348
|
if (onAction === null) return null;
|
|
10141
|
-
return /* @__PURE__ */
|
|
10349
|
+
return /* @__PURE__ */ jsx61(ClButton, { size: "sm", className: "clcosdk:self-start", onClick: onAction, children: "Continue" });
|
|
10142
10350
|
case "pending":
|
|
10143
|
-
return /* @__PURE__ */
|
|
10351
|
+
return /* @__PURE__ */ jsx61(
|
|
10144
10352
|
AlertBanner,
|
|
10145
10353
|
{
|
|
10146
10354
|
variant: "warning",
|
|
10147
|
-
content:
|
|
10355
|
+
content: statusMessages?.pending ?? DEFAULT_PENDING
|
|
10148
10356
|
}
|
|
10149
10357
|
);
|
|
10150
10358
|
case "completed":
|
|
10151
|
-
return /* @__PURE__ */
|
|
10359
|
+
return /* @__PURE__ */ jsx61(
|
|
10360
|
+
AlertBanner,
|
|
10361
|
+
{
|
|
10362
|
+
variant: "success",
|
|
10363
|
+
content: statusMessages?.completed ?? "Identity verified."
|
|
10364
|
+
}
|
|
10365
|
+
);
|
|
10152
10366
|
case "rejected":
|
|
10153
|
-
return /* @__PURE__ */
|
|
10367
|
+
return /* @__PURE__ */ jsx61(
|
|
10154
10368
|
AlertBanner,
|
|
10155
10369
|
{
|
|
10156
10370
|
variant: "error",
|
|
10157
|
-
content:
|
|
10158
|
-
|
|
10159
|
-
|
|
10160
|
-
|
|
10161
|
-
|
|
10162
|
-
|
|
10163
|
-
|
|
10164
|
-
onClick: onContactSupport,
|
|
10165
|
-
className: "clcosdk:underline",
|
|
10166
|
-
children: "Contact support"
|
|
10167
|
-
}
|
|
10168
|
-
),
|
|
10169
|
-
"."
|
|
10170
|
-
] })
|
|
10371
|
+
content: /* @__PURE__ */ jsx61(
|
|
10372
|
+
RejectedMessage,
|
|
10373
|
+
{
|
|
10374
|
+
message: statusMessages?.rejected ?? DEFAULT_REJECTED,
|
|
10375
|
+
onContactSupport
|
|
10376
|
+
}
|
|
10377
|
+
)
|
|
10171
10378
|
}
|
|
10172
10379
|
);
|
|
10173
10380
|
}
|
|
10174
10381
|
}
|
|
10382
|
+
function RejectedMessage({
|
|
10383
|
+
message,
|
|
10384
|
+
onContactSupport
|
|
10385
|
+
}) {
|
|
10386
|
+
const linkAt = message.indexOf(SUPPORT_LINK);
|
|
10387
|
+
if (onContactSupport == null) {
|
|
10388
|
+
return message;
|
|
10389
|
+
}
|
|
10390
|
+
if (linkAt === -1) {
|
|
10391
|
+
return /* @__PURE__ */ jsxs43(Fragment10, { children: [
|
|
10392
|
+
message,
|
|
10393
|
+
" ",
|
|
10394
|
+
/* @__PURE__ */ jsx61(
|
|
10395
|
+
"button",
|
|
10396
|
+
{
|
|
10397
|
+
type: "button",
|
|
10398
|
+
onClick: onContactSupport,
|
|
10399
|
+
className: "clcosdk:underline",
|
|
10400
|
+
children: SUPPORT_LINK
|
|
10401
|
+
}
|
|
10402
|
+
),
|
|
10403
|
+
"."
|
|
10404
|
+
] });
|
|
10405
|
+
}
|
|
10406
|
+
return /* @__PURE__ */ jsxs43(Fragment10, { children: [
|
|
10407
|
+
message.slice(0, linkAt),
|
|
10408
|
+
/* @__PURE__ */ jsx61(
|
|
10409
|
+
"button",
|
|
10410
|
+
{
|
|
10411
|
+
type: "button",
|
|
10412
|
+
onClick: onContactSupport,
|
|
10413
|
+
className: "clcosdk:underline",
|
|
10414
|
+
children: SUPPORT_LINK
|
|
10415
|
+
}
|
|
10416
|
+
),
|
|
10417
|
+
message.slice(linkAt + SUPPORT_LINK.length)
|
|
10418
|
+
] });
|
|
10419
|
+
}
|
|
10175
10420
|
function WalletActionZone({
|
|
10176
10421
|
status,
|
|
10177
10422
|
multiWallet,
|
|
@@ -10181,8 +10426,8 @@ function WalletActionZone({
|
|
|
10181
10426
|
onRemoveWallet
|
|
10182
10427
|
}) {
|
|
10183
10428
|
if (multiWallet) {
|
|
10184
|
-
return /* @__PURE__ */
|
|
10185
|
-
/* @__PURE__ */
|
|
10429
|
+
return /* @__PURE__ */ jsxs43(Fragment10, { children: [
|
|
10430
|
+
/* @__PURE__ */ jsx61(
|
|
10186
10431
|
ConnectedWalletList,
|
|
10187
10432
|
{
|
|
10188
10433
|
wallets: connectedWallets,
|
|
@@ -10191,7 +10436,7 @@ function WalletActionZone({
|
|
|
10191
10436
|
status: walletsStatus
|
|
10192
10437
|
}
|
|
10193
10438
|
),
|
|
10194
|
-
status === "rejected" && /* @__PURE__ */
|
|
10439
|
+
status === "rejected" && /* @__PURE__ */ jsx61(
|
|
10195
10440
|
AlertBanner,
|
|
10196
10441
|
{
|
|
10197
10442
|
variant: "error",
|
|
@@ -10202,21 +10447,30 @@ function WalletActionZone({
|
|
|
10202
10447
|
}
|
|
10203
10448
|
if (status === "completed") {
|
|
10204
10449
|
const connected = connectedWallets[0];
|
|
10205
|
-
return /* @__PURE__ */
|
|
10206
|
-
onAction !== null && /* @__PURE__ */
|
|
10207
|
-
|
|
10450
|
+
return /* @__PURE__ */ jsxs43(Fragment10, { children: [
|
|
10451
|
+
onAction !== null && /* @__PURE__ */ jsx61(
|
|
10452
|
+
ClButton,
|
|
10453
|
+
{
|
|
10454
|
+
size: "sm",
|
|
10455
|
+
variant: "secondary",
|
|
10456
|
+
className: "clcosdk:self-start",
|
|
10457
|
+
onClick: onAction,
|
|
10458
|
+
children: "Change wallet"
|
|
10459
|
+
}
|
|
10460
|
+
),
|
|
10461
|
+
walletsStatus === "loading" ? /* @__PURE__ */ jsx61(
|
|
10208
10462
|
AlertBanner,
|
|
10209
10463
|
{
|
|
10210
10464
|
variant: "info",
|
|
10211
10465
|
content: "Loading your connected wallet\u2026"
|
|
10212
10466
|
}
|
|
10213
|
-
) : walletsStatus === "error" ? /* @__PURE__ */
|
|
10467
|
+
) : walletsStatus === "error" ? /* @__PURE__ */ jsx61(
|
|
10214
10468
|
AlertBanner,
|
|
10215
10469
|
{
|
|
10216
10470
|
variant: "error",
|
|
10217
10471
|
content: "Couldn't load your connected wallet."
|
|
10218
10472
|
}
|
|
10219
|
-
) : /* @__PURE__ */
|
|
10473
|
+
) : /* @__PURE__ */ jsx61(
|
|
10220
10474
|
AlertBanner,
|
|
10221
10475
|
{
|
|
10222
10476
|
variant: "success",
|
|
@@ -10226,9 +10480,9 @@ function WalletActionZone({
|
|
|
10226
10480
|
] });
|
|
10227
10481
|
}
|
|
10228
10482
|
if (status === "rejected") {
|
|
10229
|
-
return /* @__PURE__ */
|
|
10230
|
-
onAction !== null && /* @__PURE__ */
|
|
10231
|
-
/* @__PURE__ */
|
|
10483
|
+
return /* @__PURE__ */ jsxs43(Fragment10, { children: [
|
|
10484
|
+
onAction !== null && /* @__PURE__ */ jsx61(ClButton, { size: "sm", className: "clcosdk:self-start", onClick: onAction, children: "Connect wallet" }),
|
|
10485
|
+
/* @__PURE__ */ jsx61(
|
|
10232
10486
|
AlertBanner,
|
|
10233
10487
|
{
|
|
10234
10488
|
variant: "error",
|
|
@@ -10238,7 +10492,7 @@ function WalletActionZone({
|
|
|
10238
10492
|
] });
|
|
10239
10493
|
}
|
|
10240
10494
|
if (onAction === null) return null;
|
|
10241
|
-
return /* @__PURE__ */
|
|
10495
|
+
return /* @__PURE__ */ jsx61(ClButton, { size: "sm", className: "clcosdk:self-start", onClick: onAction, children: "Connect wallet" });
|
|
10242
10496
|
}
|
|
10243
10497
|
function RequirementItem({
|
|
10244
10498
|
ui,
|
|
@@ -10248,9 +10502,10 @@ function RequirementItem({
|
|
|
10248
10502
|
onAction,
|
|
10249
10503
|
onRemoveWallet,
|
|
10250
10504
|
walletsStatus,
|
|
10251
|
-
onContactSupport
|
|
10505
|
+
onContactSupport,
|
|
10506
|
+
spaceBeforeNextRow = true
|
|
10252
10507
|
}) {
|
|
10253
|
-
return /* @__PURE__ */
|
|
10508
|
+
return /* @__PURE__ */ jsx61(CoinListStyleScope, { children: /* @__PURE__ */ jsxs43(
|
|
10254
10509
|
"div",
|
|
10255
10510
|
{
|
|
10256
10511
|
className: cn(
|
|
@@ -10258,17 +10513,17 @@ function RequirementItem({
|
|
|
10258
10513
|
className
|
|
10259
10514
|
),
|
|
10260
10515
|
children: [
|
|
10261
|
-
/* @__PURE__ */
|
|
10516
|
+
/* @__PURE__ */ jsxs43(
|
|
10262
10517
|
"button",
|
|
10263
10518
|
{
|
|
10264
10519
|
type: "button",
|
|
10265
10520
|
onClick: onToggle,
|
|
10266
10521
|
"aria-expanded": expanded,
|
|
10267
|
-
className: "clcosdk:flex clcosdk:h-14 clcosdk:w-
|
|
10522
|
+
className: "clcosdk:-mx-2 clcosdk:flex clcosdk:h-14 clcosdk:w-[calc(100%+16px)] clcosdk:cursor-pointer clcosdk:items-center clcosdk:justify-between clcosdk:rounded-2xl clcosdk:px-2 clcosdk:transition-colors clcosdk:hover:bg-surface",
|
|
10268
10523
|
children: [
|
|
10269
|
-
/* @__PURE__ */
|
|
10270
|
-
/* @__PURE__ */
|
|
10271
|
-
/* @__PURE__ */
|
|
10524
|
+
/* @__PURE__ */ jsxs43("div", { className: "clcosdk:flex clcosdk:items-center clcosdk:gap-3", children: [
|
|
10525
|
+
/* @__PURE__ */ jsx61(StepStatusIcon, { status: ui.status }),
|
|
10526
|
+
/* @__PURE__ */ jsx61(
|
|
10272
10527
|
"span",
|
|
10273
10528
|
{
|
|
10274
10529
|
className: cn(
|
|
@@ -10279,7 +10534,7 @@ function RequirementItem({
|
|
|
10279
10534
|
}
|
|
10280
10535
|
)
|
|
10281
10536
|
] }),
|
|
10282
|
-
/* @__PURE__ */
|
|
10537
|
+
/* @__PURE__ */ jsx61(
|
|
10283
10538
|
ChevronRight,
|
|
10284
10539
|
{
|
|
10285
10540
|
className: cn(
|
|
@@ -10292,43 +10547,53 @@ function RequirementItem({
|
|
|
10292
10547
|
]
|
|
10293
10548
|
}
|
|
10294
10549
|
),
|
|
10295
|
-
/* @__PURE__ */
|
|
10550
|
+
/* @__PURE__ */ jsx61(
|
|
10296
10551
|
"div",
|
|
10297
10552
|
{
|
|
10298
10553
|
className: cn(
|
|
10299
10554
|
"clcosdk:grid clcosdk:transition-[grid-template-rows] clcosdk:duration-300 clcosdk:ease-in-out",
|
|
10300
10555
|
expanded ? "clcosdk:grid-rows-[1fr]" : "clcosdk:grid-rows-[0fr]"
|
|
10301
10556
|
),
|
|
10302
|
-
children: /* @__PURE__ */
|
|
10303
|
-
|
|
10304
|
-
|
|
10305
|
-
|
|
10306
|
-
|
|
10307
|
-
|
|
10308
|
-
|
|
10557
|
+
children: /* @__PURE__ */ jsx61("div", { className: "clcosdk:min-h-0 clcosdk:overflow-hidden", children: /* @__PURE__ */ jsxs43(
|
|
10558
|
+
"div",
|
|
10559
|
+
{
|
|
10560
|
+
className: cn(
|
|
10561
|
+
"clcosdk:flex clcosdk:flex-col clcosdk:gap-4",
|
|
10562
|
+
spaceBeforeNextRow && "clcosdk:pb-4"
|
|
10563
|
+
),
|
|
10564
|
+
children: [
|
|
10565
|
+
/* @__PURE__ */ jsx61(
|
|
10566
|
+
"p",
|
|
10567
|
+
{
|
|
10568
|
+
className: cn(
|
|
10569
|
+
typeClasses.bodySm,
|
|
10570
|
+
"clcosdk:text-text-secondary"
|
|
10571
|
+
),
|
|
10572
|
+
children: ui.description
|
|
10573
|
+
}
|
|
10309
10574
|
),
|
|
10310
|
-
|
|
10311
|
-
|
|
10312
|
-
|
|
10313
|
-
|
|
10314
|
-
|
|
10315
|
-
|
|
10316
|
-
|
|
10317
|
-
|
|
10318
|
-
|
|
10319
|
-
|
|
10320
|
-
|
|
10321
|
-
|
|
10322
|
-
|
|
10323
|
-
|
|
10324
|
-
|
|
10325
|
-
|
|
10326
|
-
|
|
10327
|
-
|
|
10328
|
-
|
|
10329
|
-
|
|
10330
|
-
|
|
10331
|
-
|
|
10575
|
+
ui.variant === "verification" ? /* @__PURE__ */ jsx61(
|
|
10576
|
+
VerificationActionZone,
|
|
10577
|
+
{
|
|
10578
|
+
status: ui.status,
|
|
10579
|
+
statusMessages: ui.statusMessages,
|
|
10580
|
+
onAction,
|
|
10581
|
+
onContactSupport
|
|
10582
|
+
}
|
|
10583
|
+
) : /* @__PURE__ */ jsx61(
|
|
10584
|
+
WalletActionZone,
|
|
10585
|
+
{
|
|
10586
|
+
status: ui.status,
|
|
10587
|
+
multiWallet: ui.multiWallet,
|
|
10588
|
+
connectedWallets: ui.connectedWallets,
|
|
10589
|
+
walletsStatus,
|
|
10590
|
+
onAction,
|
|
10591
|
+
onRemoveWallet
|
|
10592
|
+
}
|
|
10593
|
+
)
|
|
10594
|
+
]
|
|
10595
|
+
}
|
|
10596
|
+
) })
|
|
10332
10597
|
}
|
|
10333
10598
|
)
|
|
10334
10599
|
]
|
|
@@ -10337,35 +10602,29 @@ function RequirementItem({
|
|
|
10337
10602
|
}
|
|
10338
10603
|
|
|
10339
10604
|
// src/client/components/requirements/RequirementsChecklistView.tsx
|
|
10340
|
-
import { jsx as
|
|
10605
|
+
import { Fragment as Fragment11, jsx as jsx62, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
10341
10606
|
function RequirementsChecklistView(props) {
|
|
10342
|
-
return /* @__PURE__ */
|
|
10607
|
+
return /* @__PURE__ */ jsx62(CoinListStyleScope, { children: /* @__PURE__ */ jsx62(RequirementsChecklistViewBody, { ...props }) });
|
|
10343
10608
|
}
|
|
10344
10609
|
function RequirementsChecklistViewBody({
|
|
10345
10610
|
state,
|
|
10346
10611
|
onEvent,
|
|
10347
10612
|
loading,
|
|
10348
10613
|
error,
|
|
10349
|
-
unauthenticatedState,
|
|
10350
10614
|
className
|
|
10351
10615
|
}) {
|
|
10352
10616
|
switch (state.type) {
|
|
10353
10617
|
case "loading":
|
|
10354
|
-
return loading ?? /* @__PURE__ */
|
|
10355
|
-
|
|
10356
|
-
return unauthenticatedState ?? null;
|
|
10357
|
-
case "error":
|
|
10358
|
-
return error ?? /* @__PURE__ */ jsx61(
|
|
10359
|
-
AlertBanner,
|
|
10618
|
+
return loading ?? /* @__PURE__ */ jsx62(
|
|
10619
|
+
LoadingState2,
|
|
10360
10620
|
{
|
|
10361
|
-
|
|
10362
|
-
|
|
10363
|
-
|
|
10364
|
-
className: "clcosdk:w-full clcosdk:max-w-[28rem]"
|
|
10621
|
+
title: state.title,
|
|
10622
|
+
description: state.description,
|
|
10623
|
+
className
|
|
10365
10624
|
}
|
|
10366
10625
|
);
|
|
10367
|
-
case "
|
|
10368
|
-
return /* @__PURE__ */
|
|
10626
|
+
case "error":
|
|
10627
|
+
return /* @__PURE__ */ jsxs44(
|
|
10369
10628
|
"div",
|
|
10370
10629
|
{
|
|
10371
10630
|
className: cn(
|
|
@@ -10373,46 +10632,91 @@ function RequirementsChecklistViewBody({
|
|
|
10373
10632
|
className
|
|
10374
10633
|
),
|
|
10375
10634
|
children: [
|
|
10376
|
-
/* @__PURE__ */
|
|
10377
|
-
|
|
10378
|
-
/* @__PURE__ */ jsx61("p", { className: cn(typeClasses.body, "clcosdk:text-text-secondary"), children: state.description })
|
|
10379
|
-
] }),
|
|
10380
|
-
/* @__PURE__ */ jsx61("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:divide-y clcosdk:divide-divider", children: state.items.map((row) => /* @__PURE__ */ jsx61(
|
|
10381
|
-
RequirementItem,
|
|
10382
|
-
{
|
|
10383
|
-
ui: row.item,
|
|
10384
|
-
expanded: row.expanded,
|
|
10385
|
-
onToggle: () => onEvent({ type: "ON_TOGGLE_ITEM", requirementId: row.id }),
|
|
10386
|
-
onAction: row.actionEnabled ? () => onEvent({
|
|
10387
|
-
type: "ON_REQUIREMENT_ACTION",
|
|
10388
|
-
requirementId: row.id
|
|
10389
|
-
}) : null,
|
|
10390
|
-
onRemoveWallet: row.wallets ? (id) => state.removeWallet(id) : void 0,
|
|
10391
|
-
walletsStatus: row.wallets?.status,
|
|
10392
|
-
onContactSupport: row.contactSupportEnabled ? () => onEvent({
|
|
10393
|
-
type: "ON_CONTACT_SUPPORT",
|
|
10394
|
-
requirementId: row.id
|
|
10395
|
-
}) : null
|
|
10396
|
-
},
|
|
10397
|
-
row.id
|
|
10398
|
-
)) }),
|
|
10399
|
-
state.ineligible && /* @__PURE__ */ jsx61(
|
|
10635
|
+
/* @__PURE__ */ jsx62("h3", { className: cn(typeClasses.h3, "clcosdk:text-text-primary"), children: state.title }),
|
|
10636
|
+
error ?? /* @__PURE__ */ jsx62(
|
|
10400
10637
|
AlertBanner,
|
|
10401
10638
|
{
|
|
10402
10639
|
variant: "error",
|
|
10403
10640
|
icon: true,
|
|
10404
|
-
content: "
|
|
10641
|
+
content: "Unable to load requirements. Refresh the page to try again."
|
|
10405
10642
|
}
|
|
10406
|
-
)
|
|
10407
|
-
|
|
10643
|
+
)
|
|
10644
|
+
]
|
|
10645
|
+
}
|
|
10646
|
+
);
|
|
10647
|
+
case "content":
|
|
10648
|
+
return /* @__PURE__ */ jsxs44(
|
|
10649
|
+
"div",
|
|
10650
|
+
{
|
|
10651
|
+
className: cn(
|
|
10652
|
+
"clcosdk:flex clcosdk:w-full clcosdk:flex-col clcosdk:gap-4",
|
|
10653
|
+
className
|
|
10654
|
+
),
|
|
10655
|
+
children: [
|
|
10656
|
+
/* @__PURE__ */ jsxs44("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-2", children: [
|
|
10657
|
+
/* @__PURE__ */ jsx62("h3", { className: cn(typeClasses.h3, "clcosdk:text-text-primary"), children: state.title }),
|
|
10658
|
+
state.blockedMessage == null && /* @__PURE__ */ jsx62(
|
|
10659
|
+
"p",
|
|
10660
|
+
{
|
|
10661
|
+
className: cn(typeClasses.body, "clcosdk:text-text-secondary"),
|
|
10662
|
+
children: state.items.length === 0 ? "No requirements to complete." : state.description
|
|
10663
|
+
}
|
|
10664
|
+
)
|
|
10665
|
+
] }),
|
|
10666
|
+
state.blockedMessage != null ? /* @__PURE__ */ jsx62(AlertBanner, { variant: "info", icon: true, content: state.blockedMessage }) : state.items.length === 0 ? state.continueAction && /* @__PURE__ */ jsx62(
|
|
10408
10667
|
ClButton,
|
|
10409
10668
|
{
|
|
10669
|
+
variant: "primary",
|
|
10410
10670
|
fullWidth: true,
|
|
10411
10671
|
disabled: !state.continueAction.enabled,
|
|
10412
10672
|
onClick: () => onEvent({ type: "ON_CONTINUE" }),
|
|
10413
10673
|
children: "Continue"
|
|
10414
10674
|
}
|
|
10415
|
-
)
|
|
10675
|
+
) : /* @__PURE__ */ jsxs44(Fragment11, { children: [
|
|
10676
|
+
/* @__PURE__ */ jsx62("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:divide-y clcosdk:divide-divider", children: state.items.map((row, index) => /* @__PURE__ */ jsx62(
|
|
10677
|
+
RequirementItem,
|
|
10678
|
+
{
|
|
10679
|
+
ui: row.item,
|
|
10680
|
+
expanded: row.expanded,
|
|
10681
|
+
spaceBeforeNextRow: index < state.items.length - 1,
|
|
10682
|
+
onToggle: () => onEvent({ type: "ON_TOGGLE_ITEM", requirementId: row.id }),
|
|
10683
|
+
onAction: row.actionEnabled ? () => onEvent({
|
|
10684
|
+
type: "ON_REQUIREMENT_ACTION",
|
|
10685
|
+
requirementId: row.id
|
|
10686
|
+
}) : null,
|
|
10687
|
+
onRemoveWallet: row.wallets ? (id) => state.removeWallet(id) : void 0,
|
|
10688
|
+
walletsStatus: row.wallets?.status,
|
|
10689
|
+
onContactSupport: row.contactSupportEnabled ? () => onEvent({
|
|
10690
|
+
type: "ON_CONTACT_SUPPORT",
|
|
10691
|
+
requirementId: row.id
|
|
10692
|
+
}) : null
|
|
10693
|
+
},
|
|
10694
|
+
row.id
|
|
10695
|
+
)) }),
|
|
10696
|
+
/* @__PURE__ */ jsxs44("div", { className: "clcosdk:flex clcosdk:flex-row clcosdk:items-center clcosdk:justify-between clcosdk:gap-6", children: [
|
|
10697
|
+
/* @__PURE__ */ jsx62(
|
|
10698
|
+
"span",
|
|
10699
|
+
{
|
|
10700
|
+
className: cn(
|
|
10701
|
+
typeClasses.subhead,
|
|
10702
|
+
"clcosdk:min-w-0",
|
|
10703
|
+
state.ineligible ? "clcosdk:text-error" : "clcosdk:text-text-secondary"
|
|
10704
|
+
),
|
|
10705
|
+
children: state.ineligible ? "You are not eligible to invest." : completedLabel(state.items)
|
|
10706
|
+
}
|
|
10707
|
+
),
|
|
10708
|
+
state.continueAction && /* @__PURE__ */ jsx62(
|
|
10709
|
+
ClButton,
|
|
10710
|
+
{
|
|
10711
|
+
variant: "primary",
|
|
10712
|
+
disabled: !state.continueAction.enabled,
|
|
10713
|
+
onClick: () => onEvent({ type: "ON_CONTINUE" }),
|
|
10714
|
+
className: "clcosdk:shrink-0",
|
|
10715
|
+
children: "Continue"
|
|
10716
|
+
}
|
|
10717
|
+
)
|
|
10718
|
+
] })
|
|
10719
|
+
] })
|
|
10416
10720
|
]
|
|
10417
10721
|
}
|
|
10418
10722
|
);
|
|
@@ -10422,19 +10726,43 @@ function RequirementsChecklistViewBody({
|
|
|
10422
10726
|
}
|
|
10423
10727
|
}
|
|
10424
10728
|
}
|
|
10425
|
-
function
|
|
10426
|
-
|
|
10427
|
-
"
|
|
10729
|
+
function completedLabel(items) {
|
|
10730
|
+
const completed = items.filter(
|
|
10731
|
+
(row) => row.item.status === "completed"
|
|
10732
|
+
).length;
|
|
10733
|
+
return `${completed}/${items.length} completed`;
|
|
10734
|
+
}
|
|
10735
|
+
var LOADING_ROW_WIDTHS = [
|
|
10736
|
+
"clcosdk:w-3/5",
|
|
10737
|
+
"clcosdk:w-2/5",
|
|
10738
|
+
"clcosdk:w-1/2"
|
|
10739
|
+
];
|
|
10740
|
+
function LoadingState2({
|
|
10741
|
+
title: title2,
|
|
10742
|
+
description: description2,
|
|
10743
|
+
className
|
|
10744
|
+
}) {
|
|
10745
|
+
return /* @__PURE__ */ jsxs44(
|
|
10746
|
+
"div",
|
|
10428
10747
|
{
|
|
10429
|
-
|
|
10430
|
-
|
|
10431
|
-
|
|
10748
|
+
className: cn(
|
|
10749
|
+
"clcosdk:flex clcosdk:w-full clcosdk:flex-col clcosdk:gap-4",
|
|
10750
|
+
className
|
|
10751
|
+
),
|
|
10752
|
+
children: [
|
|
10753
|
+
/* @__PURE__ */ jsx62("output", { className: "clcosdk:sr-only", children: "Loading requirements..." }),
|
|
10754
|
+
/* @__PURE__ */ jsxs44("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-2", children: [
|
|
10755
|
+
/* @__PURE__ */ jsx62("h3", { className: cn(typeClasses.h3, "clcosdk:text-text-primary"), children: title2 }),
|
|
10756
|
+
/* @__PURE__ */ jsx62("p", { className: cn(typeClasses.body, "clcosdk:text-text-secondary"), children: description2 })
|
|
10757
|
+
] }),
|
|
10758
|
+
/* @__PURE__ */ jsx62("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-3", children: LOADING_ROW_WIDTHS.map((width) => /* @__PURE__ */ jsx62(Skeleton, { className: cn("clcosdk:h-8", width) }, width)) })
|
|
10759
|
+
]
|
|
10432
10760
|
}
|
|
10433
10761
|
);
|
|
10434
10762
|
}
|
|
10435
10763
|
|
|
10436
10764
|
// src/client/components/requirements/tax-document/TaxDocumentModalView.tsx
|
|
10437
|
-
import { jsx as
|
|
10765
|
+
import { jsx as jsx63, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
10438
10766
|
function TaxDocumentModalView({
|
|
10439
10767
|
state,
|
|
10440
10768
|
onEvent,
|
|
@@ -10443,7 +10771,7 @@ function TaxDocumentModalView({
|
|
|
10443
10771
|
if (state.type === "hidden") {
|
|
10444
10772
|
return null;
|
|
10445
10773
|
}
|
|
10446
|
-
return /* @__PURE__ */
|
|
10774
|
+
return /* @__PURE__ */ jsx63(CoinListStyleScope, { children: /* @__PURE__ */ jsx63("div", { className: "clcosdk:fixed clcosdk:inset-0 clcosdk:z-50 clcosdk:flex clcosdk:items-center clcosdk:justify-center clcosdk:bg-black/50 clcosdk:p-4", children: /* @__PURE__ */ jsxs45(
|
|
10447
10775
|
"div",
|
|
10448
10776
|
{
|
|
10449
10777
|
className: cn(
|
|
@@ -10451,11 +10779,11 @@ function TaxDocumentModalView({
|
|
|
10451
10779
|
className
|
|
10452
10780
|
),
|
|
10453
10781
|
children: [
|
|
10454
|
-
/* @__PURE__ */
|
|
10455
|
-
/* @__PURE__ */
|
|
10456
|
-
/* @__PURE__ */
|
|
10782
|
+
/* @__PURE__ */ jsxs45("div", { className: "clcosdk:flex clcosdk:items-start clcosdk:justify-between clcosdk:gap-4", children: [
|
|
10783
|
+
/* @__PURE__ */ jsx63("h3", { className: cn(typeClasses.h3, "clcosdk:text-text-primary"), children: state.title }),
|
|
10784
|
+
/* @__PURE__ */ jsx63(CloseButton, { onClick: () => onEvent({ type: "ON_CLOSE" }) })
|
|
10457
10785
|
] }),
|
|
10458
|
-
/* @__PURE__ */
|
|
10786
|
+
/* @__PURE__ */ jsx63(Screen, { screen: state.screen, onEvent })
|
|
10459
10787
|
]
|
|
10460
10788
|
}
|
|
10461
10789
|
) }) });
|
|
@@ -10466,11 +10794,11 @@ function Screen({
|
|
|
10466
10794
|
}) {
|
|
10467
10795
|
switch (screen.type) {
|
|
10468
10796
|
case "loading":
|
|
10469
|
-
return /* @__PURE__ */
|
|
10797
|
+
return /* @__PURE__ */ jsx63(LoadingScreen, {});
|
|
10470
10798
|
case "error":
|
|
10471
|
-
return /* @__PURE__ */
|
|
10799
|
+
return /* @__PURE__ */ jsx63(AlertBanner, { variant: "error", icon: true, content: screen.message });
|
|
10472
10800
|
case "review":
|
|
10473
|
-
return /* @__PURE__ */
|
|
10801
|
+
return /* @__PURE__ */ jsx63(
|
|
10474
10802
|
ReviewScreen,
|
|
10475
10803
|
{
|
|
10476
10804
|
fields: screen.fields,
|
|
@@ -10481,9 +10809,9 @@ function Screen({
|
|
|
10481
10809
|
}
|
|
10482
10810
|
);
|
|
10483
10811
|
case "editing":
|
|
10484
|
-
return /* @__PURE__ */
|
|
10812
|
+
return /* @__PURE__ */ jsx63(EditScreen, { fields: screen.fields, onEvent });
|
|
10485
10813
|
case "sign-only":
|
|
10486
|
-
return /* @__PURE__ */
|
|
10814
|
+
return /* @__PURE__ */ jsx63(
|
|
10487
10815
|
SignOnlyScreen,
|
|
10488
10816
|
{
|
|
10489
10817
|
signing: screen.signing,
|
|
@@ -10498,14 +10826,14 @@ function Screen({
|
|
|
10498
10826
|
}
|
|
10499
10827
|
}
|
|
10500
10828
|
function LoadingScreen() {
|
|
10501
|
-
return /* @__PURE__ */
|
|
10829
|
+
return /* @__PURE__ */ jsx63(
|
|
10502
10830
|
"output",
|
|
10503
10831
|
{
|
|
10504
10832
|
"aria-live": "polite",
|
|
10505
10833
|
className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-4",
|
|
10506
|
-
children: [0, 1, 2, 3, 4].map((row) => /* @__PURE__ */
|
|
10507
|
-
/* @__PURE__ */
|
|
10508
|
-
/* @__PURE__ */
|
|
10834
|
+
children: [0, 1, 2, 3, 4].map((row) => /* @__PURE__ */ jsxs45("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-1", children: [
|
|
10835
|
+
/* @__PURE__ */ jsx63("div", { className: "clcosdk:h-3 clcosdk:w-28 clcosdk:animate-pulse clcosdk:rounded clcosdk:bg-surface" }),
|
|
10836
|
+
/* @__PURE__ */ jsx63("div", { className: "clcosdk:h-5 clcosdk:w-48 clcosdk:animate-pulse clcosdk:rounded clcosdk:bg-surface" })
|
|
10509
10837
|
] }, row))
|
|
10510
10838
|
}
|
|
10511
10839
|
);
|
|
@@ -10517,9 +10845,9 @@ function ReviewScreen({
|
|
|
10517
10845
|
signError,
|
|
10518
10846
|
onEvent
|
|
10519
10847
|
}) {
|
|
10520
|
-
return /* @__PURE__ */
|
|
10521
|
-
/* @__PURE__ */
|
|
10522
|
-
piiUnavailable && /* @__PURE__ */
|
|
10848
|
+
return /* @__PURE__ */ jsxs45("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-6", children: [
|
|
10849
|
+
/* @__PURE__ */ jsx63("p", { className: cn(typeClasses.body, "clcosdk:text-text-secondary"), children: "Review your information below. If anything looks incorrect, edit before signing." }),
|
|
10850
|
+
piiUnavailable && /* @__PURE__ */ jsx63(
|
|
10523
10851
|
AlertBanner,
|
|
10524
10852
|
{
|
|
10525
10853
|
variant: "info",
|
|
@@ -10527,27 +10855,27 @@ function ReviewScreen({
|
|
|
10527
10855
|
content: "We don't have this information on file yet \u2014 please fill it in below."
|
|
10528
10856
|
}
|
|
10529
10857
|
),
|
|
10530
|
-
/* @__PURE__ */
|
|
10858
|
+
/* @__PURE__ */ jsx63("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-4 clcosdk:border-t clcosdk:border-divider clcosdk:pt-4", children: fields.map(({ field, label, displayValue }) => /* @__PURE__ */ jsxs45(
|
|
10531
10859
|
"div",
|
|
10532
10860
|
{
|
|
10533
10861
|
className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-1",
|
|
10534
10862
|
children: [
|
|
10535
|
-
/* @__PURE__ */
|
|
10863
|
+
/* @__PURE__ */ jsx63(
|
|
10536
10864
|
"span",
|
|
10537
10865
|
{
|
|
10538
10866
|
className: cn(typeClasses.label, "clcosdk:text-text-secondary"),
|
|
10539
10867
|
children: label
|
|
10540
10868
|
}
|
|
10541
10869
|
),
|
|
10542
|
-
/* @__PURE__ */
|
|
10870
|
+
/* @__PURE__ */ jsx63("span", { className: cn(typeClasses.body, "clcosdk:text-text-primary"), children: displayValue })
|
|
10543
10871
|
]
|
|
10544
10872
|
},
|
|
10545
10873
|
field
|
|
10546
10874
|
)) }),
|
|
10547
|
-
/* @__PURE__ */
|
|
10548
|
-
signError && /* @__PURE__ */
|
|
10549
|
-
/* @__PURE__ */
|
|
10550
|
-
/* @__PURE__ */
|
|
10875
|
+
/* @__PURE__ */ jsx63("p", { className: cn(typeClasses.caption, "clcosdk:text-text-secondary"), children: "By signing, you certify that the information above is accurate and that you are the beneficial owner of the income this form relates to. This document cannot be edited once signed." }),
|
|
10876
|
+
signError && /* @__PURE__ */ jsx63(AlertBanner, { variant: "error", icon: true, content: signError }),
|
|
10877
|
+
/* @__PURE__ */ jsxs45("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-2", children: [
|
|
10878
|
+
/* @__PURE__ */ jsx63(
|
|
10551
10879
|
ClButton,
|
|
10552
10880
|
{
|
|
10553
10881
|
fullWidth: true,
|
|
@@ -10557,7 +10885,7 @@ function ReviewScreen({
|
|
|
10557
10885
|
children: "Sign W-8BEN"
|
|
10558
10886
|
}
|
|
10559
10887
|
),
|
|
10560
|
-
/* @__PURE__ */
|
|
10888
|
+
/* @__PURE__ */ jsx63(
|
|
10561
10889
|
ClButton,
|
|
10562
10890
|
{
|
|
10563
10891
|
fullWidth: true,
|
|
@@ -10574,20 +10902,20 @@ function EditScreen({
|
|
|
10574
10902
|
fields,
|
|
10575
10903
|
onEvent
|
|
10576
10904
|
}) {
|
|
10577
|
-
return /* @__PURE__ */
|
|
10578
|
-
/* @__PURE__ */
|
|
10905
|
+
return /* @__PURE__ */ jsxs45("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-6", children: [
|
|
10906
|
+
/* @__PURE__ */ jsx63("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-4 clcosdk:border-t clcosdk:border-divider clcosdk:pt-4", children: fields.map(({ field, label, placeholder, value }) => /* @__PURE__ */ jsxs45(
|
|
10579
10907
|
"label",
|
|
10580
10908
|
{
|
|
10581
10909
|
className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-1",
|
|
10582
10910
|
children: [
|
|
10583
|
-
/* @__PURE__ */
|
|
10911
|
+
/* @__PURE__ */ jsx63(
|
|
10584
10912
|
"span",
|
|
10585
10913
|
{
|
|
10586
10914
|
className: cn(typeClasses.label, "clcosdk:text-text-secondary"),
|
|
10587
10915
|
children: label
|
|
10588
10916
|
}
|
|
10589
10917
|
),
|
|
10590
|
-
/* @__PURE__ */
|
|
10918
|
+
/* @__PURE__ */ jsx63(
|
|
10591
10919
|
"input",
|
|
10592
10920
|
{
|
|
10593
10921
|
type: "text",
|
|
@@ -10608,9 +10936,9 @@ function EditScreen({
|
|
|
10608
10936
|
},
|
|
10609
10937
|
field
|
|
10610
10938
|
)) }),
|
|
10611
|
-
/* @__PURE__ */
|
|
10612
|
-
/* @__PURE__ */
|
|
10613
|
-
/* @__PURE__ */
|
|
10939
|
+
/* @__PURE__ */ jsxs45("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-2", children: [
|
|
10940
|
+
/* @__PURE__ */ jsx63(ClButton, { fullWidth: true, onClick: () => onEvent({ type: "ON_SAVE_EDIT" }), children: "Save & review" }),
|
|
10941
|
+
/* @__PURE__ */ jsx63(
|
|
10614
10942
|
ClButton,
|
|
10615
10943
|
{
|
|
10616
10944
|
fullWidth: true,
|
|
@@ -10627,10 +10955,10 @@ function SignOnlyScreen({
|
|
|
10627
10955
|
signError,
|
|
10628
10956
|
onEvent
|
|
10629
10957
|
}) {
|
|
10630
|
-
return /* @__PURE__ */
|
|
10631
|
-
/* @__PURE__ */
|
|
10632
|
-
signError && /* @__PURE__ */
|
|
10633
|
-
/* @__PURE__ */
|
|
10958
|
+
return /* @__PURE__ */ jsxs45("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-6", children: [
|
|
10959
|
+
/* @__PURE__ */ jsx63("p", { className: cn(typeClasses.body, "clcosdk:text-text-secondary"), children: "As an entity investor, you must complete a W-8BEN-E to confirm your foreign tax status and claim applicable treaty benefits. You'll receive an email to complete the signing." }),
|
|
10960
|
+
signError && /* @__PURE__ */ jsx63(AlertBanner, { variant: "error", icon: true, content: signError }),
|
|
10961
|
+
/* @__PURE__ */ jsx63(
|
|
10634
10962
|
ClButton,
|
|
10635
10963
|
{
|
|
10636
10964
|
fullWidth: true,
|
|
@@ -10644,12 +10972,12 @@ function SignOnlyScreen({
|
|
|
10644
10972
|
}
|
|
10645
10973
|
|
|
10646
10974
|
// src/client/hooks/requirements/tax-document/useTaxDocumentModalViewModel.ts
|
|
10647
|
-
import { useCallback as
|
|
10975
|
+
import { useCallback as useCallback11, useEffect as useEffect25, useMemo as useMemo8 } from "react";
|
|
10648
10976
|
|
|
10649
10977
|
// src/client/hooks/requirements/data/useTaxDocument.ts
|
|
10650
|
-
import { useCallback as
|
|
10978
|
+
import { useCallback as useCallback10, useEffect as useEffect24, useState as useState28 } from "react";
|
|
10651
10979
|
var IDLE_SIGN = { type: "idle", error: null };
|
|
10652
|
-
var
|
|
10980
|
+
var LOADING_STATE6 = { type: "LOADING" };
|
|
10653
10981
|
var SIGN_FAILED_MESSAGE = "Unable to sign document. Please try again.";
|
|
10654
10982
|
var DOB_INVALID_MESSAGE = "Enter your date of birth as MM/DD/YYYY.";
|
|
10655
10983
|
var FIELD_KEYS = {
|
|
@@ -10722,8 +11050,8 @@ function useTaxDocument({
|
|
|
10722
11050
|
}) {
|
|
10723
11051
|
const { coinlist, isReady } = useCoinList();
|
|
10724
11052
|
const log = useLogger("useTaxDocument");
|
|
10725
|
-
const [state, setState] =
|
|
10726
|
-
|
|
11053
|
+
const [state, setState] = useState28(LOADING_STATE6);
|
|
11054
|
+
useEffect24(() => {
|
|
10727
11055
|
let isCancelled = false;
|
|
10728
11056
|
if (!isOpen) {
|
|
10729
11057
|
return () => {
|
|
@@ -10731,12 +11059,12 @@ function useTaxDocument({
|
|
|
10731
11059
|
};
|
|
10732
11060
|
}
|
|
10733
11061
|
if (!isReady) {
|
|
10734
|
-
setState(
|
|
11062
|
+
setState(LOADING_STATE6);
|
|
10735
11063
|
return () => {
|
|
10736
11064
|
isCancelled = true;
|
|
10737
11065
|
};
|
|
10738
11066
|
}
|
|
10739
|
-
setState(
|
|
11067
|
+
setState(LOADING_STATE6);
|
|
10740
11068
|
coinlist.requirements.getPii().then((pii) => {
|
|
10741
11069
|
if (isCancelled) return;
|
|
10742
11070
|
if (pii.kind === "company") {
|
|
@@ -10764,7 +11092,7 @@ function useTaxDocument({
|
|
|
10764
11092
|
isCancelled = true;
|
|
10765
11093
|
};
|
|
10766
11094
|
}, [coinlist, isReady, isOpen, log]);
|
|
10767
|
-
const onEditField =
|
|
11095
|
+
const onEditField = useCallback10(
|
|
10768
11096
|
(field, value) => {
|
|
10769
11097
|
setState(
|
|
10770
11098
|
(prev) => prev.type === "EDITING" ? { ...prev, fields: { ...prev.fields, [field]: value } } : prev
|
|
@@ -10772,7 +11100,7 @@ function useTaxDocument({
|
|
|
10772
11100
|
},
|
|
10773
11101
|
[]
|
|
10774
11102
|
);
|
|
10775
|
-
const onStartEdit =
|
|
11103
|
+
const onStartEdit = useCallback10(() => {
|
|
10776
11104
|
setState(
|
|
10777
11105
|
(prev) => prev.type === "REVIEW" ? {
|
|
10778
11106
|
type: "EDITING",
|
|
@@ -10783,7 +11111,7 @@ function useTaxDocument({
|
|
|
10783
11111
|
} : prev
|
|
10784
11112
|
);
|
|
10785
11113
|
}, []);
|
|
10786
|
-
const onSaveEdit =
|
|
11114
|
+
const onSaveEdit = useCallback10(() => {
|
|
10787
11115
|
setState(
|
|
10788
11116
|
(prev) => prev.type === "EDITING" ? {
|
|
10789
11117
|
type: "REVIEW",
|
|
@@ -10794,7 +11122,7 @@ function useTaxDocument({
|
|
|
10794
11122
|
} : prev
|
|
10795
11123
|
);
|
|
10796
11124
|
}, []);
|
|
10797
|
-
const onCancelEdit =
|
|
11125
|
+
const onCancelEdit = useCallback10(() => {
|
|
10798
11126
|
setState(
|
|
10799
11127
|
(prev) => prev.type === "EDITING" ? {
|
|
10800
11128
|
type: "REVIEW",
|
|
@@ -10805,7 +11133,7 @@ function useTaxDocument({
|
|
|
10805
11133
|
} : prev
|
|
10806
11134
|
);
|
|
10807
11135
|
}, []);
|
|
10808
|
-
const onSign =
|
|
11136
|
+
const onSign = useCallback10(() => {
|
|
10809
11137
|
if (state.type !== "REVIEW" && state.type !== "SIGN_ONLY") return;
|
|
10810
11138
|
if (state.type === "REVIEW" && state.fields.dob.trim() !== "" && !isValidUsDate(state.fields.dob)) {
|
|
10811
11139
|
setState({
|
|
@@ -10847,19 +11175,19 @@ function useTaxDocumentModalViewModel({
|
|
|
10847
11175
|
onSubmitted
|
|
10848
11176
|
}) {
|
|
10849
11177
|
const { state, onEditField, onStartEdit, onSaveEdit, onCancelEdit, onSign } = useTaxDocument({ isOpen });
|
|
10850
|
-
|
|
11178
|
+
useEffect25(() => {
|
|
10851
11179
|
if (state.type === "SUBMITTED") {
|
|
10852
11180
|
onSubmitted?.(state.submission);
|
|
10853
11181
|
onClose();
|
|
10854
11182
|
}
|
|
10855
11183
|
}, [state]);
|
|
10856
|
-
const uiState =
|
|
11184
|
+
const uiState = useMemo8(() => {
|
|
10857
11185
|
if (!isOpen || state.type === "SUBMITTED") {
|
|
10858
11186
|
return { type: "hidden" };
|
|
10859
11187
|
}
|
|
10860
11188
|
return { type: "content", title: toTitle(state), screen: toScreen(state) };
|
|
10861
11189
|
}, [isOpen, state]);
|
|
10862
|
-
const onEvent =
|
|
11190
|
+
const onEvent = useCallback11(
|
|
10863
11191
|
(event) => {
|
|
10864
11192
|
switch (event.type) {
|
|
10865
11193
|
case "ON_CLOSE":
|
|
@@ -10942,7 +11270,7 @@ function toFieldsUi(fields) {
|
|
|
10942
11270
|
}
|
|
10943
11271
|
|
|
10944
11272
|
// src/client/components/requirements/tax-document/TaxDocumentModalContainer.tsx
|
|
10945
|
-
import { jsx as
|
|
11273
|
+
import { jsx as jsx64 } from "react/jsx-runtime";
|
|
10946
11274
|
function TaxDocumentModalContainer({
|
|
10947
11275
|
isOpen,
|
|
10948
11276
|
onClose,
|
|
@@ -10954,7 +11282,7 @@ function TaxDocumentModalContainer({
|
|
|
10954
11282
|
onClose,
|
|
10955
11283
|
onSubmitted
|
|
10956
11284
|
});
|
|
10957
|
-
return /* @__PURE__ */
|
|
11285
|
+
return /* @__PURE__ */ jsx64(
|
|
10958
11286
|
TaxDocumentModalView,
|
|
10959
11287
|
{
|
|
10960
11288
|
state,
|
|
@@ -10965,26 +11293,26 @@ function TaxDocumentModalContainer({
|
|
|
10965
11293
|
}
|
|
10966
11294
|
|
|
10967
11295
|
// src/client/components/requirements/VerificationOverlay.tsx
|
|
10968
|
-
import { jsx as
|
|
11296
|
+
import { jsx as jsx65, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
10969
11297
|
function VerificationOverlay({
|
|
10970
11298
|
onClose,
|
|
10971
11299
|
children
|
|
10972
11300
|
}) {
|
|
10973
|
-
return /* @__PURE__ */
|
|
11301
|
+
return /* @__PURE__ */ jsx65(CoinListStyleScope, { children: /* @__PURE__ */ jsx65(VerificationOverlayBody, { onClose, children }) });
|
|
10974
11302
|
}
|
|
10975
11303
|
function VerificationOverlayBody({
|
|
10976
11304
|
onClose,
|
|
10977
11305
|
children
|
|
10978
11306
|
}) {
|
|
10979
|
-
return /* @__PURE__ */
|
|
11307
|
+
return /* @__PURE__ */ jsx65(
|
|
10980
11308
|
"div",
|
|
10981
11309
|
{
|
|
10982
11310
|
role: "dialog",
|
|
10983
11311
|
"aria-modal": "true",
|
|
10984
11312
|
"aria-label": "Identity verification",
|
|
10985
11313
|
className: "clcosdk:fixed clcosdk:inset-0 clcosdk:z-50 clcosdk:flex clcosdk:items-center clcosdk:justify-center clcosdk:bg-overlay clcosdk:p-4",
|
|
10986
|
-
children: /* @__PURE__ */
|
|
10987
|
-
/* @__PURE__ */
|
|
11314
|
+
children: /* @__PURE__ */ jsxs46("div", { className: "clcosdk:relative clcosdk:flex clcosdk:max-h-[92vh] clcosdk:w-full clcosdk:max-w-[760px] clcosdk:flex-col clcosdk:overflow-y-auto clcosdk:rounded-2xl clcosdk:bg-background clcosdk:p-6 clcosdk:pt-14", children: [
|
|
11315
|
+
/* @__PURE__ */ jsx65(
|
|
10988
11316
|
CloseButton,
|
|
10989
11317
|
{
|
|
10990
11318
|
onClick: onClose,
|
|
@@ -10999,7 +11327,7 @@ function VerificationOverlayBody({
|
|
|
10999
11327
|
|
|
11000
11328
|
// src/client/components/requirements/wallet/ConnectWalletModalView.tsx
|
|
11001
11329
|
import { useId as useId5 } from "react";
|
|
11002
|
-
import { jsx as
|
|
11330
|
+
import { jsx as jsx66, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
11003
11331
|
function ConnectWalletModalView({
|
|
11004
11332
|
state,
|
|
11005
11333
|
onEvent,
|
|
@@ -11009,7 +11337,7 @@ function ConnectWalletModalView({
|
|
|
11009
11337
|
if (state.type === "hidden") {
|
|
11010
11338
|
return null;
|
|
11011
11339
|
}
|
|
11012
|
-
return /* @__PURE__ */
|
|
11340
|
+
return /* @__PURE__ */ jsx66(CoinListStyleScope, { children: /* @__PURE__ */ jsx66("div", { className: "clcosdk:fixed clcosdk:inset-0 clcosdk:z-50 clcosdk:flex clcosdk:items-center clcosdk:justify-center clcosdk:bg-black/50 clcosdk:p-4", children: /* @__PURE__ */ jsxs47(
|
|
11013
11341
|
"div",
|
|
11014
11342
|
{
|
|
11015
11343
|
role: "dialog",
|
|
@@ -11020,8 +11348,8 @@ function ConnectWalletModalView({
|
|
|
11020
11348
|
className
|
|
11021
11349
|
),
|
|
11022
11350
|
children: [
|
|
11023
|
-
/* @__PURE__ */
|
|
11024
|
-
/* @__PURE__ */
|
|
11351
|
+
/* @__PURE__ */ jsxs47("div", { className: "clcosdk:flex clcosdk:items-start clcosdk:justify-between clcosdk:gap-4", children: [
|
|
11352
|
+
/* @__PURE__ */ jsx66(
|
|
11025
11353
|
"h3",
|
|
11026
11354
|
{
|
|
11027
11355
|
id: titleId,
|
|
@@ -11029,9 +11357,9 @@ function ConnectWalletModalView({
|
|
|
11029
11357
|
children: "Connect your wallet"
|
|
11030
11358
|
}
|
|
11031
11359
|
),
|
|
11032
|
-
/* @__PURE__ */
|
|
11360
|
+
/* @__PURE__ */ jsx66(CloseButton, { onClick: () => onEvent({ type: "ON_CLOSE" }) })
|
|
11033
11361
|
] }),
|
|
11034
|
-
/* @__PURE__ */
|
|
11362
|
+
/* @__PURE__ */ jsx66(
|
|
11035
11363
|
Screen2,
|
|
11036
11364
|
{
|
|
11037
11365
|
screen: state.screen,
|
|
@@ -11050,9 +11378,9 @@ function Screen2({
|
|
|
11050
11378
|
}) {
|
|
11051
11379
|
switch (screen.type) {
|
|
11052
11380
|
case "needs-wallet":
|
|
11053
|
-
return /* @__PURE__ */
|
|
11054
|
-
/* @__PURE__ */
|
|
11055
|
-
canRequestConnect && /* @__PURE__ */
|
|
11381
|
+
return /* @__PURE__ */ jsxs47("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-6", children: [
|
|
11382
|
+
/* @__PURE__ */ jsx66("p", { className: cn(typeClasses.body, "clcosdk:text-text-secondary"), children: "Connect an external wallet to prove ownership and bind it to this offer." }),
|
|
11383
|
+
canRequestConnect && /* @__PURE__ */ jsx66(
|
|
11056
11384
|
ClButton,
|
|
11057
11385
|
{
|
|
11058
11386
|
fullWidth: true,
|
|
@@ -11062,23 +11390,23 @@ function Screen2({
|
|
|
11062
11390
|
)
|
|
11063
11391
|
] });
|
|
11064
11392
|
case "ready":
|
|
11065
|
-
return /* @__PURE__ */
|
|
11066
|
-
/* @__PURE__ */
|
|
11067
|
-
/* @__PURE__ */
|
|
11068
|
-
/* @__PURE__ */
|
|
11393
|
+
return /* @__PURE__ */ jsxs47("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-6", children: [
|
|
11394
|
+
/* @__PURE__ */ jsx66("p", { className: cn(typeClasses.body, "clcosdk:text-text-secondary"), children: "Sign a message with your connected wallet to prove you own it. This does not cost gas or move any funds." }),
|
|
11395
|
+
/* @__PURE__ */ jsxs47("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-1 clcosdk:border-t clcosdk:border-divider clcosdk:pt-4", children: [
|
|
11396
|
+
/* @__PURE__ */ jsx66(
|
|
11069
11397
|
"span",
|
|
11070
11398
|
{
|
|
11071
11399
|
className: cn(typeClasses.label, "clcosdk:text-text-secondary"),
|
|
11072
11400
|
children: "Wallet address"
|
|
11073
11401
|
}
|
|
11074
11402
|
),
|
|
11075
|
-
/* @__PURE__ */
|
|
11403
|
+
/* @__PURE__ */ jsx66("span", { className: cn(typeClasses.body, "clcosdk:text-text-primary"), children: screen.shortAddress })
|
|
11076
11404
|
] }),
|
|
11077
11405
|
screen.signError && // Live region: the error is inserted async after a failed attempt,
|
|
11078
11406
|
// so screen readers need it announced rather than silently
|
|
11079
11407
|
// rendered.
|
|
11080
|
-
/* @__PURE__ */
|
|
11081
|
-
/* @__PURE__ */
|
|
11408
|
+
/* @__PURE__ */ jsx66("div", { role: "alert", children: /* @__PURE__ */ jsx66(AlertBanner, { variant: "error", icon: true, content: screen.signError }) }),
|
|
11409
|
+
/* @__PURE__ */ jsx66(
|
|
11082
11410
|
ClButton,
|
|
11083
11411
|
{
|
|
11084
11412
|
fullWidth: true,
|
|
@@ -11089,7 +11417,7 @@ function Screen2({
|
|
|
11089
11417
|
children: "Sign & connect"
|
|
11090
11418
|
}
|
|
11091
11419
|
),
|
|
11092
|
-
canRequestConnect && /* @__PURE__ */
|
|
11420
|
+
canRequestConnect && /* @__PURE__ */ jsx66(
|
|
11093
11421
|
ClButton,
|
|
11094
11422
|
{
|
|
11095
11423
|
fullWidth: true,
|
|
@@ -11108,10 +11436,10 @@ function Screen2({
|
|
|
11108
11436
|
}
|
|
11109
11437
|
|
|
11110
11438
|
// src/client/hooks/requirements/wallet/useConnectWalletModalViewModel.ts
|
|
11111
|
-
import { useCallback as
|
|
11439
|
+
import { useCallback as useCallback13, useEffect as useEffect27, useMemo as useMemo9 } from "react";
|
|
11112
11440
|
|
|
11113
11441
|
// src/client/hooks/requirements/data/useConnectWallet.ts
|
|
11114
|
-
import { useCallback as
|
|
11442
|
+
import { useCallback as useCallback12, useEffect as useEffect26, useRef as useRef16, useState as useState29 } from "react";
|
|
11115
11443
|
|
|
11116
11444
|
// src/client/core/wallets/connect-external-wallet.ts
|
|
11117
11445
|
var DEFAULT_STATEMENT = "Sign this message to prove you own this wallet. This does not cost gas or move funds.";
|
|
@@ -11242,24 +11570,24 @@ function useConnectWallet({
|
|
|
11242
11570
|
statement
|
|
11243
11571
|
}) {
|
|
11244
11572
|
const { coinlist } = useCoinList();
|
|
11245
|
-
const [state, setState] =
|
|
11573
|
+
const [state, setState] = useState29(
|
|
11246
11574
|
() => wallet ? { type: "READY", address: wallet.address, sign: IDLE_SIGN2 } : { type: "NEEDS_WALLET" }
|
|
11247
11575
|
);
|
|
11248
11576
|
const attempt = useRef16(0);
|
|
11249
|
-
|
|
11577
|
+
useEffect26(() => {
|
|
11250
11578
|
attempt.current += 1;
|
|
11251
11579
|
if (!isOpen) return;
|
|
11252
11580
|
setState(
|
|
11253
11581
|
wallet ? { type: "READY", address: wallet.address, sign: IDLE_SIGN2 } : { type: "NEEDS_WALLET" }
|
|
11254
11582
|
);
|
|
11255
11583
|
}, [isOpen, wallet?.address]);
|
|
11256
|
-
|
|
11584
|
+
useEffect26(
|
|
11257
11585
|
() => () => {
|
|
11258
11586
|
attempt.current += 1;
|
|
11259
11587
|
},
|
|
11260
11588
|
[]
|
|
11261
11589
|
);
|
|
11262
|
-
const onSign =
|
|
11590
|
+
const onSign = useCallback12(() => {
|
|
11263
11591
|
if (!wallet || state.type !== "READY") return;
|
|
11264
11592
|
attempt.current += 1;
|
|
11265
11593
|
const gen = attempt.current;
|
|
@@ -11321,13 +11649,13 @@ function useConnectWalletModalViewModel({
|
|
|
11321
11649
|
challengeType,
|
|
11322
11650
|
statement
|
|
11323
11651
|
});
|
|
11324
|
-
|
|
11652
|
+
useEffect27(() => {
|
|
11325
11653
|
if (state.type === "CONNECTED") {
|
|
11326
11654
|
onConnected?.(state.binding);
|
|
11327
11655
|
onClose();
|
|
11328
11656
|
}
|
|
11329
11657
|
}, [state]);
|
|
11330
|
-
const uiState =
|
|
11658
|
+
const uiState = useMemo9(() => {
|
|
11331
11659
|
if (!isOpen || state.type === "CONNECTED") {
|
|
11332
11660
|
return { type: "hidden" };
|
|
11333
11661
|
}
|
|
@@ -11352,7 +11680,7 @@ function useConnectWalletModalViewModel({
|
|
|
11352
11680
|
canRequestConnect
|
|
11353
11681
|
};
|
|
11354
11682
|
}, [isOpen, state, onRequestConnect]);
|
|
11355
|
-
const onEvent =
|
|
11683
|
+
const onEvent = useCallback13(
|
|
11356
11684
|
(event) => {
|
|
11357
11685
|
switch (event.type) {
|
|
11358
11686
|
case "ON_CLOSE":
|
|
@@ -11376,13 +11704,13 @@ function useConnectWalletModalViewModel({
|
|
|
11376
11704
|
}
|
|
11377
11705
|
|
|
11378
11706
|
// src/client/components/requirements/wallet/ConnectWalletModalContainer.tsx
|
|
11379
|
-
import { jsx as
|
|
11707
|
+
import { jsx as jsx67 } from "react/jsx-runtime";
|
|
11380
11708
|
function ConnectWalletModalContainer({
|
|
11381
11709
|
className,
|
|
11382
11710
|
...options
|
|
11383
11711
|
}) {
|
|
11384
11712
|
const { state, onEvent } = useConnectWalletModalViewModel(options);
|
|
11385
|
-
return /* @__PURE__ */
|
|
11713
|
+
return /* @__PURE__ */ jsx67(
|
|
11386
11714
|
ConnectWalletModalView,
|
|
11387
11715
|
{
|
|
11388
11716
|
state,
|
|
@@ -11393,11 +11721,11 @@ function ConnectWalletModalContainer({
|
|
|
11393
11721
|
}
|
|
11394
11722
|
|
|
11395
11723
|
// src/client/hooks/requirements/useRequirementsChecklistViewModel.ts
|
|
11396
|
-
import { useCallback as
|
|
11724
|
+
import { useCallback as useCallback16, useEffect as useEffect30, useMemo as useMemo10, useRef as useRef17, useState as useState32 } from "react";
|
|
11397
11725
|
|
|
11398
11726
|
// src/client/hooks/requirements/data/useOptionAddresses.ts
|
|
11399
|
-
import { useCallback as
|
|
11400
|
-
var
|
|
11727
|
+
import { useCallback as useCallback14, useEffect as useEffect28, useState as useState30 } from "react";
|
|
11728
|
+
var LOADING_STATE7 = { type: "LOADING" };
|
|
11401
11729
|
var EMPTY_STATE = {
|
|
11402
11730
|
type: "CONTENT",
|
|
11403
11731
|
addresses: []
|
|
@@ -11406,19 +11734,19 @@ function useOptionAddresses(offerId, offerOptionId, options = {}) {
|
|
|
11406
11734
|
const { coinlist, isReady } = useCoinList();
|
|
11407
11735
|
const log = useLogger("useOptionAddresses");
|
|
11408
11736
|
const { data, enabled = true } = options;
|
|
11409
|
-
const [addressesState, setAddressesState] =
|
|
11410
|
-
data !== void 0 ? { type: "CONTENT", addresses: data } :
|
|
11737
|
+
const [addressesState, setAddressesState] = useState30(
|
|
11738
|
+
data !== void 0 ? { type: "CONTENT", addresses: data } : LOADING_STATE7
|
|
11411
11739
|
);
|
|
11412
|
-
const [fetchKey, setFetchKey] =
|
|
11413
|
-
const refetch =
|
|
11414
|
-
const disconnect =
|
|
11740
|
+
const [fetchKey, setFetchKey] = useState30(0);
|
|
11741
|
+
const refetch = useCallback14(() => setFetchKey((k) => k + 1), []);
|
|
11742
|
+
const disconnect = useCallback14(
|
|
11415
11743
|
async (addressId) => {
|
|
11416
11744
|
await coinlist.wallets.remove({ offerId, addressId });
|
|
11417
11745
|
refetch();
|
|
11418
11746
|
},
|
|
11419
11747
|
[coinlist, offerId, refetch]
|
|
11420
11748
|
);
|
|
11421
|
-
|
|
11749
|
+
useEffect28(() => {
|
|
11422
11750
|
let isCancelled = false;
|
|
11423
11751
|
if (!enabled) {
|
|
11424
11752
|
setAddressesState(
|
|
@@ -11430,7 +11758,7 @@ function useOptionAddresses(offerId, offerOptionId, options = {}) {
|
|
|
11430
11758
|
}
|
|
11431
11759
|
if (!isReady) {
|
|
11432
11760
|
if (data === void 0) {
|
|
11433
|
-
setAddressesState(
|
|
11761
|
+
setAddressesState(LOADING_STATE7);
|
|
11434
11762
|
}
|
|
11435
11763
|
return () => {
|
|
11436
11764
|
isCancelled = true;
|
|
@@ -11447,7 +11775,7 @@ function useOptionAddresses(offerId, offerOptionId, options = {}) {
|
|
|
11447
11775
|
isCancelled = true;
|
|
11448
11776
|
};
|
|
11449
11777
|
}
|
|
11450
|
-
setAddressesState(
|
|
11778
|
+
setAddressesState(LOADING_STATE7);
|
|
11451
11779
|
coinlist.wallets.list({ offerId, offerOptionId }).then((addresses) => {
|
|
11452
11780
|
if (!isCancelled) {
|
|
11453
11781
|
log.debug(() => ({
|
|
@@ -11474,18 +11802,18 @@ function useOptionAddresses(offerId, offerOptionId, options = {}) {
|
|
|
11474
11802
|
}
|
|
11475
11803
|
|
|
11476
11804
|
// src/client/hooks/requirements/data/useRequirements.ts
|
|
11477
|
-
import { useCallback as
|
|
11478
|
-
var
|
|
11805
|
+
import { useCallback as useCallback15, useEffect as useEffect29, useState as useState31 } from "react";
|
|
11806
|
+
var LOADING_STATE8 = { type: "LOADING" };
|
|
11479
11807
|
function useRequirements(offerId, options = {}) {
|
|
11480
11808
|
const { coinlist, isReady } = useCoinList();
|
|
11481
11809
|
const log = useLogger("useRequirements");
|
|
11482
11810
|
const { data, enabled = true } = options;
|
|
11483
|
-
const [requirementsState, setRequirementsState] =
|
|
11484
|
-
data !== void 0 ? { type: "CONTENT", ...data } :
|
|
11811
|
+
const [requirementsState, setRequirementsState] = useState31(
|
|
11812
|
+
data !== void 0 ? { type: "CONTENT", ...data } : LOADING_STATE8
|
|
11485
11813
|
);
|
|
11486
|
-
const [fetchKey, setFetchKey] =
|
|
11487
|
-
const refetch =
|
|
11488
|
-
|
|
11814
|
+
const [fetchKey, setFetchKey] = useState31(0);
|
|
11815
|
+
const refetch = useCallback15(() => setFetchKey((k) => k + 1), []);
|
|
11816
|
+
useEffect29(() => {
|
|
11489
11817
|
let isCancelled = false;
|
|
11490
11818
|
if (!enabled) {
|
|
11491
11819
|
return () => {
|
|
@@ -11494,7 +11822,7 @@ function useRequirements(offerId, options = {}) {
|
|
|
11494
11822
|
}
|
|
11495
11823
|
if (!isReady) {
|
|
11496
11824
|
if (data === void 0) {
|
|
11497
|
-
setRequirementsState(
|
|
11825
|
+
setRequirementsState(LOADING_STATE8);
|
|
11498
11826
|
}
|
|
11499
11827
|
return () => {
|
|
11500
11828
|
isCancelled = true;
|
|
@@ -11511,7 +11839,7 @@ function useRequirements(offerId, options = {}) {
|
|
|
11511
11839
|
isCancelled = true;
|
|
11512
11840
|
};
|
|
11513
11841
|
}
|
|
11514
|
-
setRequirementsState(
|
|
11842
|
+
setRequirementsState(LOADING_STATE8);
|
|
11515
11843
|
Promise.all([
|
|
11516
11844
|
coinlist.requirements.forOffer(offerId),
|
|
11517
11845
|
coinlist.requirements.statuses(offerId)
|
|
@@ -11553,7 +11881,7 @@ var RequirementItemUi = {
|
|
|
11553
11881
|
fromDomain(req, statusInfo, label, description2, addresses = []) {
|
|
11554
11882
|
return {
|
|
11555
11883
|
variant: RequirementVariant.fromType(req.type),
|
|
11556
|
-
status:
|
|
11884
|
+
status: requirementStatus(req, statusInfo),
|
|
11557
11885
|
label,
|
|
11558
11886
|
description: description2,
|
|
11559
11887
|
multiWallet: req.type === "whitelisted_wallet",
|
|
@@ -11561,10 +11889,44 @@ var RequirementItemUi = {
|
|
|
11561
11889
|
id: address.id,
|
|
11562
11890
|
address: address.address,
|
|
11563
11891
|
shortAddress: shortenAddress(address.address)
|
|
11564
|
-
}))
|
|
11892
|
+
})),
|
|
11893
|
+
statusMessages: statusMessagesFor(req.type)
|
|
11565
11894
|
};
|
|
11566
11895
|
}
|
|
11567
11896
|
};
|
|
11897
|
+
var IDENTITY_STATUS_MESSAGES = {
|
|
11898
|
+
pending: "Verification under review. We'll notify you when it's complete.",
|
|
11899
|
+
completed: "Identity verified.",
|
|
11900
|
+
rejected: "We couldn't verify your identity. Contact support for help."
|
|
11901
|
+
};
|
|
11902
|
+
var ACCREDITATION_STATUS_MESSAGES = {
|
|
11903
|
+
pending: "Accreditation under review. We'll notify you when it's complete.",
|
|
11904
|
+
completed: "Accreditation verified.",
|
|
11905
|
+
rejected: "We couldn't verify your accreditation. Contact support for help."
|
|
11906
|
+
};
|
|
11907
|
+
var TAX_DOCUMENTATION_STATUS_MESSAGES = {
|
|
11908
|
+
completed: "Tax documentation completed.",
|
|
11909
|
+
rejected: "We couldn't accept your tax documentation. Contact support for help."
|
|
11910
|
+
};
|
|
11911
|
+
function statusMessagesFor(type) {
|
|
11912
|
+
switch (type) {
|
|
11913
|
+
case "kyc_approved":
|
|
11914
|
+
return IDENTITY_STATUS_MESSAGES;
|
|
11915
|
+
case "accreditation":
|
|
11916
|
+
return ACCREDITATION_STATUS_MESSAGES;
|
|
11917
|
+
case "document":
|
|
11918
|
+
return TAX_DOCUMENTATION_STATUS_MESSAGES;
|
|
11919
|
+
default:
|
|
11920
|
+
return void 0;
|
|
11921
|
+
}
|
|
11922
|
+
}
|
|
11923
|
+
function requirementStatus(req, statusInfo) {
|
|
11924
|
+
if (!statusInfo) return "required";
|
|
11925
|
+
if (req.type === "document" && statusInfo.status === "in_progress") {
|
|
11926
|
+
return "required";
|
|
11927
|
+
}
|
|
11928
|
+
return RequirementStatus.fromStatusValue(statusInfo.status);
|
|
11929
|
+
}
|
|
11568
11930
|
var RequirementVariant = {
|
|
11569
11931
|
fromType(type) {
|
|
11570
11932
|
switch (type) {
|
|
@@ -11601,20 +11963,20 @@ var ChecklistStatus = {
|
|
|
11601
11963
|
|
|
11602
11964
|
// src/client/hooks/requirements/useRequirementsChecklistViewModel.ts
|
|
11603
11965
|
var DEFAULT_LABELS = {
|
|
11604
|
-
kyc_approved: "
|
|
11966
|
+
kyc_approved: "Identity Verification",
|
|
11605
11967
|
external_wallet: "External Wallet",
|
|
11606
11968
|
whitelisted_wallet: "Whitelisted Wallet",
|
|
11607
11969
|
jurisdiction: "Jurisdiction Check",
|
|
11608
11970
|
accreditation: "Accreditation",
|
|
11609
|
-
document: "
|
|
11971
|
+
document: "Tax Documentation"
|
|
11610
11972
|
};
|
|
11611
11973
|
var DEFAULT_DESCRIPTIONS = {
|
|
11612
|
-
kyc_approved: "Complete Know Your Customer verification.",
|
|
11974
|
+
kyc_approved: "Complete Know Your Customer (KYC) verification.",
|
|
11613
11975
|
external_wallet: "Connect an external wallet.",
|
|
11614
11976
|
whitelisted_wallet: "Connect a whitelisted wallet.",
|
|
11615
11977
|
jurisdiction: "Confirm your jurisdiction eligibility.",
|
|
11616
|
-
accreditation: "
|
|
11617
|
-
document: "
|
|
11978
|
+
accreditation: "Confirm that you meet accredited investor requirements.",
|
|
11979
|
+
document: "Review and sign the required tax documentation."
|
|
11618
11980
|
};
|
|
11619
11981
|
var VERIFICATION_POLL_INTERVAL_MS = 5e3;
|
|
11620
11982
|
var VERIFICATION_POLL_TIMEOUT_MS = 12e4;
|
|
@@ -11645,19 +12007,19 @@ function useRequirementsChecklistViewModel(options) {
|
|
|
11645
12007
|
data,
|
|
11646
12008
|
enabled
|
|
11647
12009
|
});
|
|
11648
|
-
const [expandedId, setExpandedId] =
|
|
11649
|
-
const [taxDocumentOpen, setTaxDocumentOpen] =
|
|
11650
|
-
const [connectWalletOpen, setConnectWalletOpen] =
|
|
11651
|
-
const [verifyingRequirementId, setVerifyingRequirementId] =
|
|
12010
|
+
const [expandedId, setExpandedId] = useState32(null);
|
|
12011
|
+
const [taxDocumentOpen, setTaxDocumentOpen] = useState32(false);
|
|
12012
|
+
const [connectWalletOpen, setConnectWalletOpen] = useState32(false);
|
|
12013
|
+
const [verifyingRequirementId, setVerifyingRequirementId] = useState32(null);
|
|
11652
12014
|
const isMountedRef = useRef17(true);
|
|
11653
|
-
|
|
12015
|
+
useEffect30(() => {
|
|
11654
12016
|
isMountedRef.current = true;
|
|
11655
12017
|
return () => {
|
|
11656
12018
|
isMountedRef.current = false;
|
|
11657
12019
|
};
|
|
11658
12020
|
}, []);
|
|
11659
|
-
const [hasWalletRequirement, setHasWalletRequirement] =
|
|
11660
|
-
|
|
12021
|
+
const [hasWalletRequirement, setHasWalletRequirement] = useState32(false);
|
|
12022
|
+
useEffect30(() => {
|
|
11661
12023
|
if (requirementsState.type === "CONTENT") {
|
|
11662
12024
|
setHasWalletRequirement(
|
|
11663
12025
|
(requirementsState.requirements[optionId] ?? []).some(
|
|
@@ -11673,14 +12035,14 @@ function useRequirementsChecklistViewModel(options) {
|
|
|
11673
12035
|
} = useOptionAddresses(offerId, optionId, {
|
|
11674
12036
|
enabled: enabled && hasWalletRequirement
|
|
11675
12037
|
});
|
|
11676
|
-
const removeWallet =
|
|
12038
|
+
const removeWallet = useCallback16(
|
|
11677
12039
|
async (addressId) => {
|
|
11678
12040
|
await disconnect(OfferOptionAddressId(addressId));
|
|
11679
12041
|
refetch();
|
|
11680
12042
|
},
|
|
11681
12043
|
[disconnect, refetch]
|
|
11682
12044
|
);
|
|
11683
|
-
const awaitVerificationResult =
|
|
12045
|
+
const awaitVerificationResult = useCallback16(
|
|
11684
12046
|
(requirementId, statusBeforeSubmit) => {
|
|
11685
12047
|
void (async () => {
|
|
11686
12048
|
const deadline = Date.now() + VERIFICATION_POLL_TIMEOUT_MS;
|
|
@@ -11707,11 +12069,11 @@ function useRequirementsChecklistViewModel(options) {
|
|
|
11707
12069
|
},
|
|
11708
12070
|
[coinlist, offerId, refetch, log]
|
|
11709
12071
|
);
|
|
11710
|
-
const requirements =
|
|
12072
|
+
const requirements = useMemo10(
|
|
11711
12073
|
() => requirementsState.type === "CONTENT" ? requirementsState.requirements[optionId] ?? [] : [],
|
|
11712
12074
|
[requirementsState, optionId]
|
|
11713
12075
|
);
|
|
11714
|
-
const statusById =
|
|
12076
|
+
const statusById = useMemo10(() => {
|
|
11715
12077
|
if (requirementsState.type !== "CONTENT") {
|
|
11716
12078
|
return /* @__PURE__ */ new Map();
|
|
11717
12079
|
}
|
|
@@ -11720,12 +12082,12 @@ function useRequirementsChecklistViewModel(options) {
|
|
|
11720
12082
|
requirementsState.statuses.filter((s) => ids.has(s.id)).map((s) => [s.id, s])
|
|
11721
12083
|
);
|
|
11722
12084
|
}, [requirementsState, requirements]);
|
|
11723
|
-
const state =
|
|
12085
|
+
const state = useMemo10(() => {
|
|
11724
12086
|
switch (requirementsState.type) {
|
|
11725
12087
|
case "LOADING":
|
|
11726
|
-
return { type: "loading" };
|
|
12088
|
+
return { type: "loading", title: title2, description: description2 };
|
|
11727
12089
|
case "ERROR":
|
|
11728
|
-
return
|
|
12090
|
+
return { type: "error", title: title2 };
|
|
11729
12091
|
case "CONTENT": {
|
|
11730
12092
|
const optionStatuses = [...statusById.values()];
|
|
11731
12093
|
const checklistStatus = ChecklistStatus.derive(optionStatuses);
|
|
@@ -11789,7 +12151,7 @@ function useRequirementsChecklistViewModel(options) {
|
|
|
11789
12151
|
identityVerificationOptions,
|
|
11790
12152
|
removeWallet
|
|
11791
12153
|
]);
|
|
11792
|
-
const handleRequirementAction =
|
|
12154
|
+
const handleRequirementAction = useCallback16(
|
|
11793
12155
|
(requirement) => {
|
|
11794
12156
|
const inlineVerification = statusById.get(requirement.id)?.kycLevel !== void 0 && onRequirementActionOverride === void 0;
|
|
11795
12157
|
if (inlineVerification) {
|
|
@@ -11821,7 +12183,7 @@ function useRequirementsChecklistViewModel(options) {
|
|
|
11821
12183
|
coinlist
|
|
11822
12184
|
]
|
|
11823
12185
|
);
|
|
11824
|
-
const onEvent =
|
|
12186
|
+
const onEvent = useCallback16(
|
|
11825
12187
|
(event) => {
|
|
11826
12188
|
switch (event.type) {
|
|
11827
12189
|
case "ON_TOGGLE_ITEM":
|
|
@@ -11919,11 +12281,10 @@ function toVerificationUi(verifyingRequirementId, statusById, identityVerificati
|
|
|
11919
12281
|
}
|
|
11920
12282
|
|
|
11921
12283
|
// src/client/components/requirements/RequirementsChecklistContainer.tsx
|
|
11922
|
-
import { Fragment as
|
|
12284
|
+
import { Fragment as Fragment12, jsx as jsx68, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
11923
12285
|
function RequirementsChecklistContainer({
|
|
11924
12286
|
loading,
|
|
11925
12287
|
error,
|
|
11926
|
-
unauthenticatedState,
|
|
11927
12288
|
className,
|
|
11928
12289
|
enabled = true,
|
|
11929
12290
|
...options
|
|
@@ -11932,24 +12293,19 @@ function RequirementsChecklistContainer({
|
|
|
11932
12293
|
...options,
|
|
11933
12294
|
enabled
|
|
11934
12295
|
});
|
|
11935
|
-
return /* @__PURE__ */
|
|
11936
|
-
/* @__PURE__ */
|
|
12296
|
+
return /* @__PURE__ */ jsxs48(Fragment12, { children: [
|
|
12297
|
+
/* @__PURE__ */ jsx68(
|
|
11937
12298
|
RequirementsChecklistView,
|
|
11938
12299
|
{
|
|
11939
12300
|
state,
|
|
11940
12301
|
onEvent,
|
|
11941
12302
|
loading,
|
|
11942
12303
|
error,
|
|
11943
|
-
unauthenticatedState: (
|
|
11944
|
-
// The sign-in default lives here, not in the View: it is a connected
|
|
11945
|
-
// component, and a View must render from what it is handed.
|
|
11946
|
-
unauthenticatedState !== void 0 ? unauthenticatedState : /* @__PURE__ */ jsx67(CoinListSignInCardContainer, {})
|
|
11947
|
-
),
|
|
11948
12304
|
className
|
|
11949
12305
|
}
|
|
11950
12306
|
),
|
|
11951
|
-
state.type === "content" && /* @__PURE__ */
|
|
11952
|
-
/* @__PURE__ */
|
|
12307
|
+
state.type === "content" && /* @__PURE__ */ jsxs48(Fragment12, { children: [
|
|
12308
|
+
/* @__PURE__ */ jsx68(
|
|
11953
12309
|
TaxDocumentModalContainer,
|
|
11954
12310
|
{
|
|
11955
12311
|
isOpen: state.taxDocumentOpen,
|
|
@@ -11957,11 +12313,11 @@ function RequirementsChecklistContainer({
|
|
|
11957
12313
|
onSubmitted: () => onEvent({ type: "ON_TAX_DOCUMENT_SUBMITTED" })
|
|
11958
12314
|
}
|
|
11959
12315
|
),
|
|
11960
|
-
state.verification && /* @__PURE__ */
|
|
12316
|
+
state.verification && /* @__PURE__ */ jsx68(
|
|
11961
12317
|
VerificationOverlay,
|
|
11962
12318
|
{
|
|
11963
12319
|
onClose: () => onEvent({ type: "ON_CLOSE_VERIFICATION" }),
|
|
11964
|
-
children: /* @__PURE__ */
|
|
12320
|
+
children: /* @__PURE__ */ jsx68(
|
|
11965
12321
|
IdentityVerificationContainer,
|
|
11966
12322
|
{
|
|
11967
12323
|
levelName: state.verification.levelName,
|
|
@@ -11972,7 +12328,7 @@ function RequirementsChecklistContainer({
|
|
|
11972
12328
|
)
|
|
11973
12329
|
}
|
|
11974
12330
|
),
|
|
11975
|
-
/* @__PURE__ */
|
|
12331
|
+
/* @__PURE__ */ jsx68(
|
|
11976
12332
|
ConnectWalletModalContainer,
|
|
11977
12333
|
{
|
|
11978
12334
|
isOpen: state.connectWalletOpen,
|
|
@@ -12005,7 +12361,7 @@ function pinoClientLogger(options) {
|
|
|
12005
12361
|
}
|
|
12006
12362
|
|
|
12007
12363
|
// src/client/hooks/auth/useCompleteOAuth.ts
|
|
12008
|
-
import { useEffect as
|
|
12364
|
+
import { useEffect as useEffect31, useRef as useRef18 } from "react";
|
|
12009
12365
|
function useCompleteOAuth(options) {
|
|
12010
12366
|
const { coinlist } = useCoinList();
|
|
12011
12367
|
const log = useLogger("useCompleteOAuth");
|
|
@@ -12016,7 +12372,7 @@ function useCompleteOAuth(options) {
|
|
|
12016
12372
|
onFailureRef.current = options.onFailure;
|
|
12017
12373
|
onSuccessRef.current = options.onSuccess;
|
|
12018
12374
|
const hasStartedExchangeRef = useRef18(false);
|
|
12019
|
-
|
|
12375
|
+
useEffect31(() => {
|
|
12020
12376
|
if (typeof window === "undefined") return;
|
|
12021
12377
|
const params = new URLSearchParams(window.location.search);
|
|
12022
12378
|
if (!params.has("code") && !params.has("error")) return;
|
|
@@ -12080,16 +12436,16 @@ function useCompleteOAuth(options) {
|
|
|
12080
12436
|
}
|
|
12081
12437
|
|
|
12082
12438
|
// src/client/hooks/checkout/coin-list/token-sale/data/useParticipations.ts
|
|
12083
|
-
import { useEffect as
|
|
12084
|
-
var
|
|
12439
|
+
import { useEffect as useEffect32, useState as useState33 } from "react";
|
|
12440
|
+
var LOADING_STATE9 = { type: "LOADING" };
|
|
12085
12441
|
function useParticipations(offerId, options = {}) {
|
|
12086
12442
|
const { coinlist, isReady } = useCoinList();
|
|
12087
12443
|
const log = useLogger("useParticipations");
|
|
12088
12444
|
const { data, enabled = true } = options;
|
|
12089
|
-
const [participationsState, setParticipationsState] =
|
|
12090
|
-
data !== void 0 ? { type: "CONTENT", participations: data } :
|
|
12445
|
+
const [participationsState, setParticipationsState] = useState33(
|
|
12446
|
+
data !== void 0 ? { type: "CONTENT", participations: data } : LOADING_STATE9
|
|
12091
12447
|
);
|
|
12092
|
-
|
|
12448
|
+
useEffect32(() => {
|
|
12093
12449
|
let isCancelled = false;
|
|
12094
12450
|
if (!enabled) {
|
|
12095
12451
|
return () => {
|
|
@@ -12098,7 +12454,7 @@ function useParticipations(offerId, options = {}) {
|
|
|
12098
12454
|
}
|
|
12099
12455
|
if (!isReady) {
|
|
12100
12456
|
if (data === void 0) {
|
|
12101
|
-
setParticipationsState(
|
|
12457
|
+
setParticipationsState(LOADING_STATE9);
|
|
12102
12458
|
}
|
|
12103
12459
|
return () => {
|
|
12104
12460
|
isCancelled = true;
|
|
@@ -12109,7 +12465,7 @@ function useParticipations(offerId, options = {}) {
|
|
|
12109
12465
|
isCancelled = true;
|
|
12110
12466
|
};
|
|
12111
12467
|
}
|
|
12112
|
-
setParticipationsState(
|
|
12468
|
+
setParticipationsState(LOADING_STATE9);
|
|
12113
12469
|
coinlist.tokenSale.list(offerId).then((participations) => {
|
|
12114
12470
|
if (!isCancelled) {
|
|
12115
12471
|
log.debug(() => ({
|
|
@@ -12136,16 +12492,16 @@ function useParticipations(offerId, options = {}) {
|
|
|
12136
12492
|
}
|
|
12137
12493
|
|
|
12138
12494
|
// src/client/hooks/offers/data/useOfferDetails.ts
|
|
12139
|
-
import { useEffect as
|
|
12140
|
-
var
|
|
12495
|
+
import { useEffect as useEffect33, useState as useState34 } from "react";
|
|
12496
|
+
var LOADING_STATE10 = { type: "LOADING" };
|
|
12141
12497
|
function useOfferDetails(offerId, options = {}) {
|
|
12142
12498
|
const { coinlist, isReady } = useCoinList();
|
|
12143
12499
|
const log = useLogger("useOfferDetails");
|
|
12144
12500
|
const { data, enabled = true } = options;
|
|
12145
|
-
const [offerDetailsState, setOfferDetailsState] =
|
|
12146
|
-
data !== void 0 ? { type: "CONTENT", offerDetail: data } :
|
|
12501
|
+
const [offerDetailsState, setOfferDetailsState] = useState34(
|
|
12502
|
+
data !== void 0 ? { type: "CONTENT", offerDetail: data } : LOADING_STATE10
|
|
12147
12503
|
);
|
|
12148
|
-
|
|
12504
|
+
useEffect33(() => {
|
|
12149
12505
|
let isCancelled = false;
|
|
12150
12506
|
if (!enabled) {
|
|
12151
12507
|
return () => {
|
|
@@ -12154,7 +12510,7 @@ function useOfferDetails(offerId, options = {}) {
|
|
|
12154
12510
|
}
|
|
12155
12511
|
if (!isReady) {
|
|
12156
12512
|
if (data === void 0) {
|
|
12157
|
-
setOfferDetailsState(
|
|
12513
|
+
setOfferDetailsState(LOADING_STATE10);
|
|
12158
12514
|
}
|
|
12159
12515
|
return () => {
|
|
12160
12516
|
isCancelled = true;
|
|
@@ -12165,7 +12521,7 @@ function useOfferDetails(offerId, options = {}) {
|
|
|
12165
12521
|
isCancelled = true;
|
|
12166
12522
|
};
|
|
12167
12523
|
}
|
|
12168
|
-
setOfferDetailsState(
|
|
12524
|
+
setOfferDetailsState(LOADING_STATE10);
|
|
12169
12525
|
coinlist.offers.get(offerId).then((offerDetail) => {
|
|
12170
12526
|
if (!isCancelled) {
|
|
12171
12527
|
log.debug(() => ({
|
|
@@ -12193,15 +12549,23 @@ function useOfferDetails(offerId, options = {}) {
|
|
|
12193
12549
|
|
|
12194
12550
|
// src/client/hooks/offers/shared/offer-asset-card.types.ts
|
|
12195
12551
|
var OfferAssetCardUi = {
|
|
12196
|
-
|
|
12552
|
+
/**
|
|
12553
|
+
* `tokenMetadata` is the registry's entry for the token the offer is about
|
|
12554
|
+
* (`TokenRegistrySnapshot.forOffer`), or `null` when it lists none. The
|
|
12555
|
+
* registry names win over the offer's own where both exist: they are the
|
|
12556
|
+
* token's canonical name, ticker and artwork, where the offer's are
|
|
12557
|
+
* catalogue copy.
|
|
12558
|
+
*/
|
|
12559
|
+
fromOffer: (offer, tokenMetadata = null) => ({
|
|
12197
12560
|
id: offer.id,
|
|
12198
|
-
|
|
12561
|
+
...tokenMetadata ? { name: tokenMetadata.name, symbol: String(tokenMetadata.symbol) } : {},
|
|
12562
|
+
logo: OfferLogoUi.fromOffer(offer, tokenMetadata)
|
|
12199
12563
|
}),
|
|
12200
|
-
fromDetail: (detail) => ({
|
|
12564
|
+
fromDetail: (detail, tokenMetadata = null) => ({
|
|
12201
12565
|
id: detail.id,
|
|
12202
|
-
name: detail.name,
|
|
12203
|
-
symbol: detail.asset.code,
|
|
12204
|
-
|
|
12566
|
+
name: tokenMetadata?.name ?? detail.name,
|
|
12567
|
+
symbol: tokenMetadata ? String(tokenMetadata.symbol) : detail.asset.code,
|
|
12568
|
+
logo: OfferLogoUi.fromOffer(detail, tokenMetadata)
|
|
12205
12569
|
})
|
|
12206
12570
|
};
|
|
12207
12571
|
|
|
@@ -12243,6 +12607,7 @@ export {
|
|
|
12243
12607
|
OAUTH_STATE_KEY,
|
|
12244
12608
|
OfferAssetCard,
|
|
12245
12609
|
OfferAssetCardUi,
|
|
12610
|
+
OfferLogoUi,
|
|
12246
12611
|
OfferSaleCard,
|
|
12247
12612
|
OfferSaleCardUi,
|
|
12248
12613
|
OffersAssetGrid,
|
|
@@ -12304,6 +12669,7 @@ export {
|
|
|
12304
12669
|
quoteOverAsks,
|
|
12305
12670
|
stablecoinIconUrl,
|
|
12306
12671
|
submitErc20Approval,
|
|
12672
|
+
tokenLogoSrcSet,
|
|
12307
12673
|
tokenLogoUrl,
|
|
12308
12674
|
tokenMetadataOf,
|
|
12309
12675
|
useCheckoutOfferTokenMetadata,
|
|
@@ -12346,6 +12712,7 @@ export {
|
|
|
12346
12712
|
useTaxDocument,
|
|
12347
12713
|
useTaxDocumentModalViewModel,
|
|
12348
12714
|
useTokenMetadata,
|
|
12715
|
+
useTokenRegistry,
|
|
12349
12716
|
validateAmount,
|
|
12350
12717
|
validateSellAmount,
|
|
12351
12718
|
validateSuperstateAmount
|