@coinlist-co/react 0.12.1-rc.e183ffd → 0.12.1-rc.f2804ef
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-ONLH57LF.js → chunk-VH34YC3Q.js} +55 -3
- package/dist/chunk-VH34YC3Q.js.map +1 -0
- package/dist/client/index.cjs +578 -329
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.d.cts +266 -108
- package/dist/client/index.d.ts +266 -108
- package/dist/client/index.js +520 -321
- package/dist/client/index.js.map +1 -1
- package/dist/{collections-Biy3pQQL.d.cts → token-registry-snapshot-BNBNuDu1.d.ts} +65 -2
- package/dist/{collections-JfNDG8Tc.d.ts → token-registry-snapshot-CqI6dXM_.d.cts} +65 -2
- package/dist/universal/index.cjs +58 -3
- package/dist/universal/index.cjs.map +1 -1
- package/dist/universal/index.d.cts +7 -12
- package/dist/universal/index.d.ts +7 -12
- package/dist/universal/index.js +9 -3
- package/package.json +1 -1
- package/dist/chunk-ONLH57LF.js.map +0 -1
package/dist/client/index.js
CHANGED
|
@@ -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,
|
|
@@ -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-\\[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-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\\: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-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}}';
|
|
1098
1100
|
|
|
1099
1101
|
// src/client/CoinListStyleScope.tsx
|
|
1100
1102
|
import { Fragment, jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
@@ -3621,6 +3623,20 @@ function tokenLogoUrl(logo, minWidth = 40) {
|
|
|
3621
3623
|
}
|
|
3622
3624
|
}
|
|
3623
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
|
+
}
|
|
3624
3640
|
function offerAssetIconUrl(offer, tokenMetadata) {
|
|
3625
3641
|
return (tokenMetadata ? tokenLogoUrl(tokenMetadata.logo) : null) ?? offerIconUrl(offer);
|
|
3626
3642
|
}
|
|
@@ -4069,7 +4085,7 @@ function toInputAssetUi({
|
|
|
4069
4085
|
}
|
|
4070
4086
|
|
|
4071
4087
|
// src/client/hooks/checkout/ondo/buy/review/useOndoBuyReviewViewModel.ts
|
|
4072
|
-
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";
|
|
4073
4089
|
|
|
4074
4090
|
// src/client/hooks/checkout/ondo/buy/data/useOndoBuyTransaction.ts
|
|
4075
4091
|
import { useCallback as useCallback2, useEffect as useEffect5, useRef as useRef4, useState as useState5 } from "react";
|
|
@@ -4227,8 +4243,12 @@ function useOndoBuyReviewViewModel({
|
|
|
4227
4243
|
}
|
|
4228
4244
|
}, [stepInput.type]);
|
|
4229
4245
|
const transaction = transactionState.type === "CONTENT" ? transactionState.transaction : null;
|
|
4246
|
+
const offerUntil = useMemo4(
|
|
4247
|
+
() => transaction === null ? null : ondoQuoteOfferDeadline(transaction.expiresAt),
|
|
4248
|
+
[transaction]
|
|
4249
|
+
);
|
|
4230
4250
|
const secondsLeft = useCountdown({
|
|
4231
|
-
until:
|
|
4251
|
+
until: offerUntil,
|
|
4232
4252
|
enabled
|
|
4233
4253
|
});
|
|
4234
4254
|
const quoteStatus = toQuoteStatusUi(transactionState, secondsLeft);
|
|
@@ -4352,14 +4372,11 @@ function toQuoteStatusUi(state, secondsLeft) {
|
|
|
4352
4372
|
message: refreshErrorMessage(state.refreshError)
|
|
4353
4373
|
};
|
|
4354
4374
|
}
|
|
4355
|
-
if (secondsLeft === null ||
|
|
4375
|
+
if (secondsLeft === null || secondsLeft === 0) {
|
|
4356
4376
|
return { type: "expired" };
|
|
4357
4377
|
}
|
|
4358
4378
|
return { type: "valid", expiresInLabel: expiresInLabel(secondsLeft) };
|
|
4359
4379
|
}
|
|
4360
|
-
function isTooCloseToExpiry(secondsLeft) {
|
|
4361
|
-
return secondsLeft * 1e3 <= ONDO_QUOTE_EXPIRY_THRESHOLD_MS;
|
|
4362
|
-
}
|
|
4363
4380
|
function expiresInLabel(secondsLeft) {
|
|
4364
4381
|
const unit = secondsLeft === 1 ? "second" : "seconds";
|
|
4365
4382
|
return `Quote expires in ${secondsLeft} ${unit}`;
|
|
@@ -4851,8 +4868,9 @@ var NO_TOKEN_ADDRESS = EvmContractAddress(
|
|
|
4851
4868
|
"0x0000000000000000000000000000000000000000"
|
|
4852
4869
|
);
|
|
4853
4870
|
function offerTokenIdentifier(offer, chain) {
|
|
4854
|
-
const
|
|
4855
|
-
|
|
4871
|
+
const asset = offerDisplayTokens(offer).find(
|
|
4872
|
+
(token) => token.chain === chain
|
|
4873
|
+
);
|
|
4856
4874
|
return asset === void 0 ? null : { chain, address: asset.address };
|
|
4857
4875
|
}
|
|
4858
4876
|
function tokenMetadataOf(state) {
|
|
@@ -6168,7 +6186,7 @@ function preparationErrorMessage2(error) {
|
|
|
6168
6186
|
}
|
|
6169
6187
|
|
|
6170
6188
|
// src/client/hooks/checkout/ondo/sell/review/useOndoSellReviewViewModel.ts
|
|
6171
|
-
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";
|
|
6172
6190
|
|
|
6173
6191
|
// src/client/hooks/checkout/ondo/sell/data/useOndoSellTransaction.ts
|
|
6174
6192
|
import { useCallback as useCallback4, useEffect as useEffect13, useRef as useRef10, useState as useState14 } from "react";
|
|
@@ -6289,8 +6307,12 @@ function useOndoSellReviewViewModel({
|
|
|
6289
6307
|
}
|
|
6290
6308
|
}, [stepInput.type]);
|
|
6291
6309
|
const transaction = transactionState.type === "CONTENT" ? transactionState.transaction : null;
|
|
6310
|
+
const offerUntil = useMemo5(
|
|
6311
|
+
() => transaction === null ? null : ondoQuoteOfferDeadline(transaction.expiresAt),
|
|
6312
|
+
[transaction]
|
|
6313
|
+
);
|
|
6292
6314
|
const secondsLeft = useCountdown({
|
|
6293
|
-
until:
|
|
6315
|
+
until: offerUntil,
|
|
6294
6316
|
enabled
|
|
6295
6317
|
});
|
|
6296
6318
|
const quoteStatus = toQuoteStatusUi2(transactionState, secondsLeft);
|
|
@@ -6419,14 +6441,11 @@ function toQuoteStatusUi2(state, secondsLeft) {
|
|
|
6419
6441
|
message: refreshErrorMessage2(state.refreshError)
|
|
6420
6442
|
};
|
|
6421
6443
|
}
|
|
6422
|
-
if (secondsLeft === null ||
|
|
6444
|
+
if (secondsLeft === null || secondsLeft === 0) {
|
|
6423
6445
|
return { type: "expired" };
|
|
6424
6446
|
}
|
|
6425
6447
|
return { type: "valid", expiresInLabel: expiresInLabel2(secondsLeft) };
|
|
6426
6448
|
}
|
|
6427
|
-
function isTooCloseToExpiry2(secondsLeft) {
|
|
6428
|
-
return secondsLeft * 1e3 <= ONDO_QUOTE_EXPIRY_THRESHOLD_MS;
|
|
6429
|
-
}
|
|
6430
6449
|
function expiresInLabel2(secondsLeft) {
|
|
6431
6450
|
const unit = secondsLeft === 1 ? "second" : "seconds";
|
|
6432
6451
|
return `Quote expires in ${secondsLeft} ${unit}`;
|
|
@@ -9200,6 +9219,58 @@ function renderOndoSide(side, branches) {
|
|
|
9200
9219
|
}
|
|
9201
9220
|
}
|
|
9202
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
|
+
|
|
9203
9274
|
// src/client/components/offers/shared/offer-card-keyboard.ts
|
|
9204
9275
|
function onOfferCardKeyDown(event, onClick) {
|
|
9205
9276
|
if (event.key !== "Enter" && event.key !== " ") return;
|
|
@@ -9208,7 +9279,8 @@ function onOfferCardKeyDown(event, onClick) {
|
|
|
9208
9279
|
}
|
|
9209
9280
|
|
|
9210
9281
|
// src/client/components/offers/shared/OfferAssetCard.tsx
|
|
9211
|
-
import { jsx as
|
|
9282
|
+
import { jsx as jsx52, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
9283
|
+
var LOGO_SIZES = "(min-width: 768px) 48px, 40px";
|
|
9212
9284
|
function OfferAssetCard({
|
|
9213
9285
|
offer,
|
|
9214
9286
|
onClick,
|
|
@@ -9216,7 +9288,7 @@ function OfferAssetCard({
|
|
|
9216
9288
|
containerClassName
|
|
9217
9289
|
}) {
|
|
9218
9290
|
const interactive = onClick !== void 0;
|
|
9219
|
-
const card = /* @__PURE__ */
|
|
9291
|
+
const card = /* @__PURE__ */ jsx52(
|
|
9220
9292
|
"article",
|
|
9221
9293
|
{
|
|
9222
9294
|
className: cn(
|
|
@@ -9230,11 +9302,13 @@ function OfferAssetCard({
|
|
|
9230
9302
|
tabIndex: interactive ? 0 : void 0,
|
|
9231
9303
|
onClick,
|
|
9232
9304
|
onKeyDown: interactive ? (event) => onOfferCardKeyDown(event, onClick) : void 0,
|
|
9233
|
-
children: /* @__PURE__ */
|
|
9234
|
-
offer.
|
|
9235
|
-
|
|
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,
|
|
9236
9308
|
{
|
|
9237
|
-
|
|
9309
|
+
light: offer.logo.light,
|
|
9310
|
+
dark: offer.logo.dark ?? void 0,
|
|
9311
|
+
sizes: LOGO_SIZES,
|
|
9238
9312
|
alt: "",
|
|
9239
9313
|
width: 48,
|
|
9240
9314
|
height: 48,
|
|
@@ -9242,8 +9316,8 @@ function OfferAssetCard({
|
|
|
9242
9316
|
style: { maxWidth: "none", width: "100%", height: "100%" }
|
|
9243
9317
|
}
|
|
9244
9318
|
) }) : null,
|
|
9245
|
-
/* @__PURE__ */
|
|
9246
|
-
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(
|
|
9247
9321
|
"h2",
|
|
9248
9322
|
{
|
|
9249
9323
|
className: cn(
|
|
@@ -9252,13 +9326,13 @@ function OfferAssetCard({
|
|
|
9252
9326
|
children: offer.name
|
|
9253
9327
|
}
|
|
9254
9328
|
) : null,
|
|
9255
|
-
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
|
|
9256
9330
|
] })
|
|
9257
9331
|
] })
|
|
9258
9332
|
}
|
|
9259
9333
|
);
|
|
9260
|
-
const wrapped = containerClassName ? /* @__PURE__ */
|
|
9261
|
-
return /* @__PURE__ */
|
|
9334
|
+
const wrapped = containerClassName ? /* @__PURE__ */ jsx52("div", { className: containerClassName, children: card }) : card;
|
|
9335
|
+
return /* @__PURE__ */ jsx52(CoinListStyleScope, { children: wrapped });
|
|
9262
9336
|
}
|
|
9263
9337
|
function cardActionLabel(offer) {
|
|
9264
9338
|
const parts = [offer.name, offer.symbol].filter(Boolean);
|
|
@@ -9266,7 +9340,7 @@ function cardActionLabel(offer) {
|
|
|
9266
9340
|
}
|
|
9267
9341
|
|
|
9268
9342
|
// src/client/components/offers/grid/OffersAssetGrid.tsx
|
|
9269
|
-
import { jsx as
|
|
9343
|
+
import { jsx as jsx53 } from "react/jsx-runtime";
|
|
9270
9344
|
var DEFAULT_MAX_COLUMNS = 3;
|
|
9271
9345
|
function OffersAssetGrid({
|
|
9272
9346
|
offers,
|
|
@@ -9281,14 +9355,14 @@ function OffersAssetGrid({
|
|
|
9281
9355
|
);
|
|
9282
9356
|
const maxGridWidth = `calc(${cols} * 20rem + ${Math.max(cols - 1, 0)} * 1.5rem)`;
|
|
9283
9357
|
const interactive = onOfferClick !== void 0;
|
|
9284
|
-
return /* @__PURE__ */
|
|
9358
|
+
return /* @__PURE__ */ jsx53(CoinListStyleScope, { children: /* @__PURE__ */ jsx53(
|
|
9285
9359
|
"div",
|
|
9286
9360
|
{
|
|
9287
9361
|
className: cn(
|
|
9288
9362
|
"clcosdk:flex clcosdk:w-full clcosdk:justify-center",
|
|
9289
9363
|
containerClassName
|
|
9290
9364
|
),
|
|
9291
|
-
children: /* @__PURE__ */
|
|
9365
|
+
children: /* @__PURE__ */ jsx53(
|
|
9292
9366
|
"div",
|
|
9293
9367
|
{
|
|
9294
9368
|
className: cn(
|
|
@@ -9298,7 +9372,7 @@ function OffersAssetGrid({
|
|
|
9298
9372
|
className
|
|
9299
9373
|
),
|
|
9300
9374
|
style: { maxWidth: maxGridWidth },
|
|
9301
|
-
children: offers.map((offer) => /* @__PURE__ */
|
|
9375
|
+
children: offers.map((offer) => /* @__PURE__ */ jsx53(
|
|
9302
9376
|
OfferAssetCard,
|
|
9303
9377
|
{
|
|
9304
9378
|
offer,
|
|
@@ -9340,7 +9414,9 @@ function saleCardStatus({
|
|
|
9340
9414
|
}
|
|
9341
9415
|
|
|
9342
9416
|
// src/client/components/offers/shared/OfferSaleCard.tsx
|
|
9343
|
-
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";
|
|
9344
9420
|
function OfferSaleCard({
|
|
9345
9421
|
offer,
|
|
9346
9422
|
onClick,
|
|
@@ -9355,7 +9431,8 @@ function OfferSaleCard({
|
|
|
9355
9431
|
secondsLeft
|
|
9356
9432
|
});
|
|
9357
9433
|
const interactive = onClick !== void 0;
|
|
9358
|
-
const
|
|
9434
|
+
const logo = offer.logo ? offer.logo.dark ?? offer.logo.light : null;
|
|
9435
|
+
const card = /* @__PURE__ */ jsxs39(
|
|
9359
9436
|
"article",
|
|
9360
9437
|
{
|
|
9361
9438
|
className: cn(
|
|
@@ -9370,16 +9447,17 @@ function OfferSaleCard({
|
|
|
9370
9447
|
onClick,
|
|
9371
9448
|
onKeyDown: interactive ? (event) => onOfferCardKeyDown(event, onClick) : void 0,
|
|
9372
9449
|
children: [
|
|
9373
|
-
|
|
9450
|
+
logo ? /* @__PURE__ */ jsx54(
|
|
9374
9451
|
"div",
|
|
9375
9452
|
{
|
|
9376
9453
|
"aria-hidden": "true",
|
|
9377
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]",
|
|
9378
9455
|
style: { mixBlendMode: "overlay" },
|
|
9379
|
-
children: /* @__PURE__ */
|
|
9380
|
-
|
|
9456
|
+
children: /* @__PURE__ */ jsx54(
|
|
9457
|
+
ThemedImage,
|
|
9381
9458
|
{
|
|
9382
|
-
|
|
9459
|
+
light: logo,
|
|
9460
|
+
sizes: WATERMARK_SIZES,
|
|
9383
9461
|
alt: "",
|
|
9384
9462
|
className: "clcosdk:size-full clcosdk:rounded-full clcosdk:object-cover",
|
|
9385
9463
|
style: { maxWidth: "none", width: "100%", height: "100%" }
|
|
@@ -9387,12 +9465,13 @@ function OfferSaleCard({
|
|
|
9387
9465
|
)
|
|
9388
9466
|
}
|
|
9389
9467
|
) : null,
|
|
9390
|
-
/* @__PURE__ */
|
|
9391
|
-
/* @__PURE__ */
|
|
9392
|
-
|
|
9393
|
-
|
|
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,
|
|
9394
9472
|
{
|
|
9395
|
-
|
|
9473
|
+
light: logo,
|
|
9474
|
+
sizes: HEADER_LOGO_SIZES,
|
|
9396
9475
|
alt: "",
|
|
9397
9476
|
width: 36,
|
|
9398
9477
|
height: 36,
|
|
@@ -9400,7 +9479,7 @@ function OfferSaleCard({
|
|
|
9400
9479
|
style: { maxWidth: "none", width: "100%", height: "100%" }
|
|
9401
9480
|
}
|
|
9402
9481
|
) }) : null,
|
|
9403
|
-
offer.name ? /* @__PURE__ */
|
|
9482
|
+
offer.name ? /* @__PURE__ */ jsx54(
|
|
9404
9483
|
"h2",
|
|
9405
9484
|
{
|
|
9406
9485
|
className: cn(
|
|
@@ -9410,7 +9489,7 @@ function OfferSaleCard({
|
|
|
9410
9489
|
}
|
|
9411
9490
|
) : null
|
|
9412
9491
|
] }),
|
|
9413
|
-
offer.tagline ? /* @__PURE__ */
|
|
9492
|
+
offer.tagline ? /* @__PURE__ */ jsx54(
|
|
9414
9493
|
"p",
|
|
9415
9494
|
{
|
|
9416
9495
|
className: cn(
|
|
@@ -9421,20 +9500,20 @@ function OfferSaleCard({
|
|
|
9421
9500
|
}
|
|
9422
9501
|
) : null
|
|
9423
9502
|
] }),
|
|
9424
|
-
/* @__PURE__ */
|
|
9425
|
-
/* @__PURE__ */
|
|
9426
|
-
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(
|
|
9427
9506
|
"span",
|
|
9428
9507
|
{
|
|
9429
9508
|
className: "clcosdk:relative clcosdk:inline-flex clcosdk:size-2 clcosdk:shrink-0",
|
|
9430
9509
|
"aria-hidden": "true",
|
|
9431
9510
|
children: [
|
|
9432
|
-
/* @__PURE__ */
|
|
9433
|
-
/* @__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" })
|
|
9434
9513
|
]
|
|
9435
9514
|
}
|
|
9436
9515
|
) : null,
|
|
9437
|
-
/* @__PURE__ */
|
|
9516
|
+
/* @__PURE__ */ jsx54(
|
|
9438
9517
|
"p",
|
|
9439
9518
|
{
|
|
9440
9519
|
className: cn(
|
|
@@ -9445,7 +9524,7 @@ function OfferSaleCard({
|
|
|
9445
9524
|
}
|
|
9446
9525
|
)
|
|
9447
9526
|
] }),
|
|
9448
|
-
/* @__PURE__ */
|
|
9527
|
+
/* @__PURE__ */ jsxs39(
|
|
9449
9528
|
"span",
|
|
9450
9529
|
{
|
|
9451
9530
|
className: cn(
|
|
@@ -9455,8 +9534,8 @@ function OfferSaleCard({
|
|
|
9455
9534
|
"aria-hidden": "true",
|
|
9456
9535
|
children: [
|
|
9457
9536
|
"View",
|
|
9458
|
-
/* @__PURE__ */
|
|
9459
|
-
/* @__PURE__ */
|
|
9537
|
+
/* @__PURE__ */ jsx54("span", { className: "clcosdk:max-md:hidden", children: " offer" }),
|
|
9538
|
+
/* @__PURE__ */ jsx54(ArrowRight, { className: "clcosdk:size-4", "aria-hidden": true })
|
|
9460
9539
|
]
|
|
9461
9540
|
}
|
|
9462
9541
|
)
|
|
@@ -9464,8 +9543,8 @@ function OfferSaleCard({
|
|
|
9464
9543
|
]
|
|
9465
9544
|
}
|
|
9466
9545
|
);
|
|
9467
|
-
const wrapped = containerClassName ? /* @__PURE__ */
|
|
9468
|
-
return /* @__PURE__ */
|
|
9546
|
+
const wrapped = containerClassName ? /* @__PURE__ */ jsx54("div", { className: containerClassName, children: card }) : card;
|
|
9547
|
+
return /* @__PURE__ */ jsx54(CoinListStyleScope, { children: wrapped });
|
|
9469
9548
|
}
|
|
9470
9549
|
var SALE_PHASE_LABEL = {
|
|
9471
9550
|
upcoming: "Upcoming",
|
|
@@ -9478,10 +9557,10 @@ function cardActionLabel2(offer, phase) {
|
|
|
9478
9557
|
}
|
|
9479
9558
|
|
|
9480
9559
|
// src/client/components/offers/grid/OffersGridView.tsx
|
|
9481
|
-
import { jsx as
|
|
9560
|
+
import { jsx as jsx55, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
9482
9561
|
var DEFAULT_MAX_COLUMNS2 = 2;
|
|
9483
9562
|
function OffersGridView(props) {
|
|
9484
|
-
return /* @__PURE__ */
|
|
9563
|
+
return /* @__PURE__ */ jsx55(CoinListStyleScope, { children: /* @__PURE__ */ jsx55(OffersGridViewBody, { ...props }) });
|
|
9485
9564
|
}
|
|
9486
9565
|
function OffersGridViewBody({
|
|
9487
9566
|
state,
|
|
@@ -9495,13 +9574,13 @@ function OffersGridViewBody({
|
|
|
9495
9574
|
}) {
|
|
9496
9575
|
switch (state.type) {
|
|
9497
9576
|
case "loading":
|
|
9498
|
-
return loading ?? /* @__PURE__ */
|
|
9577
|
+
return loading ?? /* @__PURE__ */ jsx55(LoadingState, {});
|
|
9499
9578
|
case "error":
|
|
9500
|
-
return error ?? /* @__PURE__ */
|
|
9579
|
+
return error ?? /* @__PURE__ */ jsx55(ErrorState, { message: state.message });
|
|
9501
9580
|
case "empty":
|
|
9502
|
-
return emptyState ?? /* @__PURE__ */
|
|
9581
|
+
return emptyState ?? /* @__PURE__ */ jsx55(EmptyState, {});
|
|
9503
9582
|
case "content":
|
|
9504
|
-
return /* @__PURE__ */
|
|
9583
|
+
return /* @__PURE__ */ jsx55(
|
|
9505
9584
|
OffersGridContent,
|
|
9506
9585
|
{
|
|
9507
9586
|
offers: state.offers,
|
|
@@ -9531,14 +9610,14 @@ function OffersGridContent({
|
|
|
9531
9610
|
Math.max(1, maxColumns ?? DEFAULT_MAX_COLUMNS2)
|
|
9532
9611
|
);
|
|
9533
9612
|
const maxGridWidth = `calc(${cols} * 28rem + ${Math.max(cols - 1, 0)} * 1.5rem)`;
|
|
9534
|
-
return /* @__PURE__ */
|
|
9613
|
+
return /* @__PURE__ */ jsx55(
|
|
9535
9614
|
"div",
|
|
9536
9615
|
{
|
|
9537
9616
|
className: cn(
|
|
9538
9617
|
"clcosdk:flex clcosdk:w-full clcosdk:justify-center",
|
|
9539
9618
|
containerClassName
|
|
9540
9619
|
),
|
|
9541
|
-
children: /* @__PURE__ */
|
|
9620
|
+
children: /* @__PURE__ */ jsx55(
|
|
9542
9621
|
"div",
|
|
9543
9622
|
{
|
|
9544
9623
|
className: cn(
|
|
@@ -9547,7 +9626,7 @@ function OffersGridContent({
|
|
|
9547
9626
|
className
|
|
9548
9627
|
),
|
|
9549
9628
|
style: { maxWidth: maxGridWidth },
|
|
9550
|
-
children: offers.map((offer) => /* @__PURE__ */
|
|
9629
|
+
children: offers.map((offer) => /* @__PURE__ */ jsx55(
|
|
9551
9630
|
OfferSaleCard,
|
|
9552
9631
|
{
|
|
9553
9632
|
offer,
|
|
@@ -9561,17 +9640,17 @@ function OffersGridContent({
|
|
|
9561
9640
|
);
|
|
9562
9641
|
}
|
|
9563
9642
|
function LoadingState() {
|
|
9564
|
-
return /* @__PURE__ */
|
|
9643
|
+
return /* @__PURE__ */ jsx55(
|
|
9565
9644
|
"output",
|
|
9566
9645
|
{
|
|
9567
9646
|
"aria-live": "polite",
|
|
9568
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",
|
|
9569
|
-
children: /* @__PURE__ */
|
|
9648
|
+
children: /* @__PURE__ */ jsx55("p", { className: cn(typeClasses.body, "clcosdk:text-text-secondary"), children: "Loading offers..." })
|
|
9570
9649
|
}
|
|
9571
9650
|
);
|
|
9572
9651
|
}
|
|
9573
9652
|
function ErrorState({ message }) {
|
|
9574
|
-
return /* @__PURE__ */
|
|
9653
|
+
return /* @__PURE__ */ jsx55(
|
|
9575
9654
|
AlertBanner,
|
|
9576
9655
|
{
|
|
9577
9656
|
variant: "error",
|
|
@@ -9582,13 +9661,13 @@ function ErrorState({ message }) {
|
|
|
9582
9661
|
);
|
|
9583
9662
|
}
|
|
9584
9663
|
function EmptyState() {
|
|
9585
|
-
return /* @__PURE__ */
|
|
9664
|
+
return /* @__PURE__ */ jsxs40(
|
|
9586
9665
|
"output",
|
|
9587
9666
|
{
|
|
9588
9667
|
"aria-live": "polite",
|
|
9589
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",
|
|
9590
9669
|
children: [
|
|
9591
|
-
/* @__PURE__ */
|
|
9670
|
+
/* @__PURE__ */ jsx55(
|
|
9592
9671
|
"p",
|
|
9593
9672
|
{
|
|
9594
9673
|
className: cn(
|
|
@@ -9598,14 +9677,14 @@ function EmptyState() {
|
|
|
9598
9677
|
children: "No offers available"
|
|
9599
9678
|
}
|
|
9600
9679
|
),
|
|
9601
|
-
/* @__PURE__ */
|
|
9680
|
+
/* @__PURE__ */ jsx55("p", { className: cn(typeClasses.subhead, "clcosdk:text-text-secondary"), children: "Check back soon for upcoming opportunities." })
|
|
9602
9681
|
]
|
|
9603
9682
|
}
|
|
9604
9683
|
);
|
|
9605
9684
|
}
|
|
9606
9685
|
|
|
9607
9686
|
// src/client/hooks/offers/grid/useOffersGridViewModel.ts
|
|
9608
|
-
import { useCallback as
|
|
9687
|
+
import { useCallback as useCallback7, useMemo as useMemo6 } from "react";
|
|
9609
9688
|
|
|
9610
9689
|
// src/client/hooks/offers/data/useOffers.ts
|
|
9611
9690
|
import { useEffect as useEffect20, useState as useState24 } from "react";
|
|
@@ -9663,19 +9742,56 @@ function useOffers(options = {}) {
|
|
|
9663
9742
|
return { offersState };
|
|
9664
9743
|
}
|
|
9665
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
|
+
|
|
9666
9775
|
// src/client/hooks/offers/shared/offer-sale-card.types.ts
|
|
9667
9776
|
var OfferSaleCardUi = {
|
|
9668
|
-
|
|
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) => ({
|
|
9669
9784
|
id: offer.id,
|
|
9785
|
+
...tokenMetadata ? { name: tokenMetadata.name } : {},
|
|
9670
9786
|
...saleWindow(offer),
|
|
9671
|
-
|
|
9787
|
+
logo: OfferLogoUi.fromOffer(offer, tokenMetadata),
|
|
9672
9788
|
endsAt: offer.endsAt
|
|
9673
9789
|
}),
|
|
9674
|
-
fromDetail: (detail) => ({
|
|
9790
|
+
fromDetail: (detail, tokenMetadata = null) => ({
|
|
9675
9791
|
id: detail.id,
|
|
9676
|
-
name: detail.name,
|
|
9792
|
+
name: tokenMetadata?.name ?? detail.name,
|
|
9677
9793
|
...saleWindow(detail),
|
|
9678
|
-
|
|
9794
|
+
logo: OfferLogoUi.fromOffer(detail, tokenMetadata),
|
|
9679
9795
|
endsAt: detail.endsAt
|
|
9680
9796
|
})
|
|
9681
9797
|
};
|
|
@@ -9693,17 +9809,80 @@ function saleWindow(offer) {
|
|
|
9693
9809
|
}
|
|
9694
9810
|
}
|
|
9695
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
|
+
}
|
|
9870
|
+
|
|
9696
9871
|
// src/client/hooks/offers/grid/useOffersGridViewModel.ts
|
|
9697
9872
|
var NOT_AUTHENTICATED_MESSAGE = "Sign in to view available offers.";
|
|
9698
9873
|
var GENERIC_ERROR_MESSAGE = "Unable to load offers right now. Please try again.";
|
|
9699
9874
|
function useOffersGridViewModel(options = {}) {
|
|
9700
9875
|
const { data, onOfferClick, enabled = true } = options;
|
|
9701
|
-
const { offersState } = useOffers({ data, enabled });
|
|
9702
|
-
const state =
|
|
9703
|
-
|
|
9704
|
-
|
|
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]
|
|
9705
9884
|
);
|
|
9706
|
-
const onEvent =
|
|
9885
|
+
const onEvent = useCallback7(
|
|
9707
9886
|
(event) => {
|
|
9708
9887
|
switch (event.type) {
|
|
9709
9888
|
case "ON_OFFER_CLICK": {
|
|
@@ -9726,7 +9905,7 @@ function useOffersGridViewModel(options = {}) {
|
|
|
9726
9905
|
);
|
|
9727
9906
|
return { state, onEvent };
|
|
9728
9907
|
}
|
|
9729
|
-
function toUiState(offersState, interactive) {
|
|
9908
|
+
function toUiState(offersState, registryState, interactive) {
|
|
9730
9909
|
switch (offersState.type) {
|
|
9731
9910
|
case "LOADING":
|
|
9732
9911
|
return { type: "loading" };
|
|
@@ -9739,9 +9918,18 @@ function toUiState(offersState, interactive) {
|
|
|
9739
9918
|
if (offersState.offers.length === 0) {
|
|
9740
9919
|
return { type: "empty" };
|
|
9741
9920
|
}
|
|
9921
|
+
if (registryState.type === "LOADING") {
|
|
9922
|
+
return { type: "loading" };
|
|
9923
|
+
}
|
|
9924
|
+
const registry = registryState.type === "CONTENT" ? registryState.registry : null;
|
|
9742
9925
|
return {
|
|
9743
9926
|
type: "content",
|
|
9744
|
-
offers: offersState.offers.map(
|
|
9927
|
+
offers: offersState.offers.map(
|
|
9928
|
+
(offer) => OfferSaleCardUi.fromOffer(
|
|
9929
|
+
offer,
|
|
9930
|
+
registry ? TokenRegistrySnapshot.forOffer(registry, offer) : null
|
|
9931
|
+
)
|
|
9932
|
+
),
|
|
9745
9933
|
interactive
|
|
9746
9934
|
};
|
|
9747
9935
|
}
|
|
@@ -9753,7 +9941,7 @@ function toUiState(offersState, interactive) {
|
|
|
9753
9941
|
}
|
|
9754
9942
|
|
|
9755
9943
|
// src/client/components/offers/grid/OffersGridContainer.tsx
|
|
9756
|
-
import { jsx as
|
|
9944
|
+
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
9757
9945
|
function OffersGridContainer({
|
|
9758
9946
|
data,
|
|
9759
9947
|
onOfferClick,
|
|
@@ -9765,17 +9953,17 @@ function OffersGridContainer({
|
|
|
9765
9953
|
onOfferClick,
|
|
9766
9954
|
enabled
|
|
9767
9955
|
});
|
|
9768
|
-
return /* @__PURE__ */
|
|
9956
|
+
return /* @__PURE__ */ jsx56(OffersGridView, { state, onEvent, ...viewProps });
|
|
9769
9957
|
}
|
|
9770
9958
|
|
|
9771
9959
|
// src/client/components/requirements/ConnectedWalletList.tsx
|
|
9772
|
-
import { useState as
|
|
9773
|
-
import { jsx as
|
|
9960
|
+
import { useState as useState26 } from "react";
|
|
9961
|
+
import { jsx as jsx57, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
9774
9962
|
function ConnectedWalletRow({
|
|
9775
9963
|
wallet,
|
|
9776
9964
|
onRemove
|
|
9777
9965
|
}) {
|
|
9778
|
-
const [state, setState] =
|
|
9966
|
+
const [state, setState] = useState26("idle");
|
|
9779
9967
|
const remove = async () => {
|
|
9780
9968
|
if (!onRemove) return;
|
|
9781
9969
|
setState("removing");
|
|
@@ -9786,8 +9974,8 @@ function ConnectedWalletRow({
|
|
|
9786
9974
|
setState("error");
|
|
9787
9975
|
}
|
|
9788
9976
|
};
|
|
9789
|
-
return /* @__PURE__ */
|
|
9790
|
-
/* @__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(
|
|
9791
9979
|
"span",
|
|
9792
9980
|
{
|
|
9793
9981
|
title: wallet.address,
|
|
@@ -9798,16 +9986,16 @@ function ConnectedWalletRow({
|
|
|
9798
9986
|
children: wallet.shortAddress
|
|
9799
9987
|
}
|
|
9800
9988
|
),
|
|
9801
|
-
onRemove != null && (state === "confirming" ? /* @__PURE__ */
|
|
9802
|
-
/* @__PURE__ */
|
|
9989
|
+
onRemove != null && (state === "confirming" ? /* @__PURE__ */ jsxs41("div", { className: "clcosdk:flex clcosdk:items-center clcosdk:gap-2", children: [
|
|
9990
|
+
/* @__PURE__ */ jsx57(
|
|
9803
9991
|
"span",
|
|
9804
9992
|
{
|
|
9805
9993
|
className: cn(typeClasses.subhead, "clcosdk:text-text-secondary"),
|
|
9806
9994
|
children: "Remove?"
|
|
9807
9995
|
}
|
|
9808
9996
|
),
|
|
9809
|
-
/* @__PURE__ */
|
|
9810
|
-
/* @__PURE__ */
|
|
9997
|
+
/* @__PURE__ */ jsx57(ClButton, { size: "sm", variant: "destructive", onClick: remove, children: "Remove" }),
|
|
9998
|
+
/* @__PURE__ */ jsx57(
|
|
9811
9999
|
ClButton,
|
|
9812
10000
|
{
|
|
9813
10001
|
size: "sm",
|
|
@@ -9816,9 +10004,9 @@ function ConnectedWalletRow({
|
|
|
9816
10004
|
children: "Cancel"
|
|
9817
10005
|
}
|
|
9818
10006
|
)
|
|
9819
|
-
] }) : state === "error" ? /* @__PURE__ */
|
|
9820
|
-
/* @__PURE__ */
|
|
9821
|
-
/* @__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(
|
|
9822
10010
|
ClButton,
|
|
9823
10011
|
{
|
|
9824
10012
|
size: "sm",
|
|
@@ -9827,7 +10015,7 @@ function ConnectedWalletRow({
|
|
|
9827
10015
|
children: "Try again"
|
|
9828
10016
|
}
|
|
9829
10017
|
)
|
|
9830
|
-
] }) : /* @__PURE__ */
|
|
10018
|
+
] }) : /* @__PURE__ */ jsx57(
|
|
9831
10019
|
ClButton,
|
|
9832
10020
|
{
|
|
9833
10021
|
size: "sm",
|
|
@@ -9840,7 +10028,7 @@ function ConnectedWalletRow({
|
|
|
9840
10028
|
] });
|
|
9841
10029
|
}
|
|
9842
10030
|
function ConnectedWalletList(props) {
|
|
9843
|
-
return /* @__PURE__ */
|
|
10031
|
+
return /* @__PURE__ */ jsx57(CoinListStyleScope, { children: /* @__PURE__ */ jsx57(ConnectedWalletListBody, { ...props }) });
|
|
9844
10032
|
}
|
|
9845
10033
|
function ConnectedWalletListBody({
|
|
9846
10034
|
wallets,
|
|
@@ -9850,18 +10038,18 @@ function ConnectedWalletListBody({
|
|
|
9850
10038
|
status = "ready",
|
|
9851
10039
|
className
|
|
9852
10040
|
}) {
|
|
9853
|
-
return /* @__PURE__ */
|
|
10041
|
+
return /* @__PURE__ */ jsxs41(
|
|
9854
10042
|
"div",
|
|
9855
10043
|
{
|
|
9856
10044
|
className: cn("clcosdk:flex clcosdk:flex-col clcosdk:gap-2", className),
|
|
9857
10045
|
children: [
|
|
9858
|
-
status === "loading" ? /* @__PURE__ */
|
|
10046
|
+
status === "loading" ? /* @__PURE__ */ jsx57(AlertBanner, { variant: "info", content: "Loading your connected wallets\u2026" }) : status === "error" ? /* @__PURE__ */ jsx57(
|
|
9859
10047
|
AlertBanner,
|
|
9860
10048
|
{
|
|
9861
10049
|
variant: "error",
|
|
9862
10050
|
content: "Couldn't load your connected wallets."
|
|
9863
10051
|
}
|
|
9864
|
-
) : 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(
|
|
9865
10053
|
ConnectedWalletRow,
|
|
9866
10054
|
{
|
|
9867
10055
|
wallet,
|
|
@@ -9869,7 +10057,7 @@ function ConnectedWalletListBody({
|
|
|
9869
10057
|
},
|
|
9870
10058
|
wallet.id
|
|
9871
10059
|
)) }),
|
|
9872
|
-
onAdd != null && status !== "loading" && /* @__PURE__ */
|
|
10060
|
+
onAdd != null && status !== "loading" && /* @__PURE__ */ jsx57(
|
|
9873
10061
|
ClButton,
|
|
9874
10062
|
{
|
|
9875
10063
|
size: "sm",
|
|
@@ -9886,9 +10074,9 @@ function ConnectedWalletListBody({
|
|
|
9886
10074
|
|
|
9887
10075
|
// src/client/components/requirements/identity-verification/IdentityVerificationView.tsx
|
|
9888
10076
|
import SumsubWebSdk from "@sumsub/websdk-react";
|
|
9889
|
-
import { jsx as
|
|
10077
|
+
import { jsx as jsx58, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
9890
10078
|
function IdentityVerificationView(props) {
|
|
9891
|
-
return /* @__PURE__ */
|
|
10079
|
+
return /* @__PURE__ */ jsx58(CoinListStyleScope, { children: /* @__PURE__ */ jsx58(IdentityVerificationViewBody, { ...props }) });
|
|
9892
10080
|
}
|
|
9893
10081
|
function IdentityVerificationViewBody({
|
|
9894
10082
|
state,
|
|
@@ -9897,7 +10085,7 @@ function IdentityVerificationViewBody({
|
|
|
9897
10085
|
}) {
|
|
9898
10086
|
switch (state.type) {
|
|
9899
10087
|
case "loading":
|
|
9900
|
-
return /* @__PURE__ */
|
|
10088
|
+
return /* @__PURE__ */ jsx58(
|
|
9901
10089
|
"output",
|
|
9902
10090
|
{
|
|
9903
10091
|
"aria-live": "polite",
|
|
@@ -9905,11 +10093,11 @@ function IdentityVerificationViewBody({
|
|
|
9905
10093
|
"clcosdk:flex clcosdk:min-h-40 clcosdk:items-center clcosdk:justify-center",
|
|
9906
10094
|
className
|
|
9907
10095
|
),
|
|
9908
|
-
children: /* @__PURE__ */
|
|
10096
|
+
children: /* @__PURE__ */ jsx58("p", { className: cn(typeClasses.body, "clcosdk:text-text-secondary"), children: "Loading identity verification..." })
|
|
9909
10097
|
}
|
|
9910
10098
|
);
|
|
9911
10099
|
case "error":
|
|
9912
|
-
return /* @__PURE__ */
|
|
10100
|
+
return /* @__PURE__ */ jsxs42(
|
|
9913
10101
|
"div",
|
|
9914
10102
|
{
|
|
9915
10103
|
className: cn(
|
|
@@ -9917,13 +10105,13 @@ function IdentityVerificationViewBody({
|
|
|
9917
10105
|
className
|
|
9918
10106
|
),
|
|
9919
10107
|
children: [
|
|
9920
|
-
/* @__PURE__ */
|
|
9921
|
-
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" })
|
|
9922
10110
|
]
|
|
9923
10111
|
}
|
|
9924
10112
|
);
|
|
9925
10113
|
case "ready":
|
|
9926
|
-
return /* @__PURE__ */
|
|
10114
|
+
return /* @__PURE__ */ jsx58("div", { className: cn("clcosdk:w-full", className), children: /* @__PURE__ */ jsx58(
|
|
9927
10115
|
SumsubWebSdk,
|
|
9928
10116
|
{
|
|
9929
10117
|
accessToken: state.accessToken,
|
|
@@ -9963,25 +10151,25 @@ function toError(error) {
|
|
|
9963
10151
|
}
|
|
9964
10152
|
|
|
9965
10153
|
// src/client/hooks/requirements/identity-verification/useIdentityVerificationViewModel.ts
|
|
9966
|
-
import { useCallback as
|
|
10154
|
+
import { useCallback as useCallback9, useEffect as useEffect23, useMemo as useMemo7, useRef as useRef15 } from "react";
|
|
9967
10155
|
|
|
9968
10156
|
// src/client/hooks/requirements/data/useKycToken.ts
|
|
9969
|
-
import { useCallback as
|
|
10157
|
+
import { useCallback as useCallback8, useEffect as useEffect22, useRef as useRef14, useState as useState27 } from "react";
|
|
9970
10158
|
var IDLE_STATE = { type: "IDLE" };
|
|
9971
|
-
var
|
|
10159
|
+
var LOADING_STATE5 = { type: "LOADING" };
|
|
9972
10160
|
function useKycToken(levelName, reset) {
|
|
9973
10161
|
const { coinlist } = useCoinList();
|
|
9974
10162
|
const log = useLogger("useKycToken");
|
|
9975
|
-
const [kycTokenState, setKycTokenState] =
|
|
10163
|
+
const [kycTokenState, setKycTokenState] = useState27(IDLE_STATE);
|
|
9976
10164
|
const resetPendingRef = useRef14(reset === true);
|
|
9977
10165
|
const tokenIssuedRef = useRef14(false);
|
|
9978
|
-
|
|
10166
|
+
useEffect22(() => {
|
|
9979
10167
|
if (!tokenIssuedRef.current) {
|
|
9980
10168
|
resetPendingRef.current = reset === true;
|
|
9981
10169
|
}
|
|
9982
10170
|
}, [reset]);
|
|
9983
|
-
const fetchToken =
|
|
9984
|
-
setKycTokenState(
|
|
10171
|
+
const fetchToken = useCallback8(async () => {
|
|
10172
|
+
setKycTokenState(LOADING_STATE5);
|
|
9985
10173
|
try {
|
|
9986
10174
|
const kycToken = await coinlist.requirements.createKycToken({
|
|
9987
10175
|
levelName,
|
|
@@ -10015,7 +10203,7 @@ function useIdentityVerificationViewModel(options = {}) {
|
|
|
10015
10203
|
const { levelName, reset, locale, onSubmitted, onError } = options;
|
|
10016
10204
|
const { kycTokenState, fetchToken } = useKycToken(levelName, reset);
|
|
10017
10205
|
const fetchedRef = useRef15(false);
|
|
10018
|
-
|
|
10206
|
+
useEffect23(() => {
|
|
10019
10207
|
if (fetchedRef.current) {
|
|
10020
10208
|
return;
|
|
10021
10209
|
}
|
|
@@ -10023,7 +10211,7 @@ function useIdentityVerificationViewModel(options = {}) {
|
|
|
10023
10211
|
fetchToken().catch(() => {
|
|
10024
10212
|
});
|
|
10025
10213
|
}, [fetchToken]);
|
|
10026
|
-
const state =
|
|
10214
|
+
const state = useMemo7(() => {
|
|
10027
10215
|
switch (kycTokenState.type) {
|
|
10028
10216
|
case "IDLE":
|
|
10029
10217
|
case "LOADING":
|
|
@@ -10049,7 +10237,7 @@ function useIdentityVerificationViewModel(options = {}) {
|
|
|
10049
10237
|
}
|
|
10050
10238
|
}
|
|
10051
10239
|
}, [kycTokenState, locale, fetchToken]);
|
|
10052
|
-
const onEvent =
|
|
10240
|
+
const onEvent = useCallback9(
|
|
10053
10241
|
(event) => {
|
|
10054
10242
|
switch (event.type) {
|
|
10055
10243
|
case "ON_RETRY":
|
|
@@ -10074,7 +10262,7 @@ function useIdentityVerificationViewModel(options = {}) {
|
|
|
10074
10262
|
}
|
|
10075
10263
|
|
|
10076
10264
|
// src/client/components/requirements/identity-verification/IdentityVerificationContainer.tsx
|
|
10077
|
-
import { jsx as
|
|
10265
|
+
import { jsx as jsx59 } from "react/jsx-runtime";
|
|
10078
10266
|
function IdentityVerificationContainer({
|
|
10079
10267
|
levelName,
|
|
10080
10268
|
reset,
|
|
@@ -10090,7 +10278,7 @@ function IdentityVerificationContainer({
|
|
|
10090
10278
|
onSubmitted,
|
|
10091
10279
|
onError
|
|
10092
10280
|
});
|
|
10093
|
-
return /* @__PURE__ */
|
|
10281
|
+
return /* @__PURE__ */ jsx59(
|
|
10094
10282
|
IdentityVerificationView,
|
|
10095
10283
|
{
|
|
10096
10284
|
state,
|
|
@@ -10105,7 +10293,7 @@ import { ChevronRight } from "lucide-react";
|
|
|
10105
10293
|
|
|
10106
10294
|
// src/client/components/design-system/StepStatusIcon.tsx
|
|
10107
10295
|
import { CircleCheck as CircleCheck2, CircleX, Info as Info5 } from "lucide-react";
|
|
10108
|
-
import { jsx as
|
|
10296
|
+
import { jsx as jsx60 } from "react/jsx-runtime";
|
|
10109
10297
|
var statusConfig = {
|
|
10110
10298
|
required: {
|
|
10111
10299
|
Icon: Info5,
|
|
@@ -10130,7 +10318,7 @@ var statusConfig = {
|
|
|
10130
10318
|
};
|
|
10131
10319
|
function StepStatusIcon({ status, className }) {
|
|
10132
10320
|
const { Icon, colorClass, fillClass } = statusConfig[status];
|
|
10133
|
-
return /* @__PURE__ */
|
|
10321
|
+
return /* @__PURE__ */ jsx60(
|
|
10134
10322
|
Icon,
|
|
10135
10323
|
{
|
|
10136
10324
|
className: cn(
|
|
@@ -10145,7 +10333,7 @@ function StepStatusIcon({ status, className }) {
|
|
|
10145
10333
|
}
|
|
10146
10334
|
|
|
10147
10335
|
// src/client/components/requirements/RequirementItem.tsx
|
|
10148
|
-
import { Fragment as
|
|
10336
|
+
import { Fragment as Fragment10, jsx as jsx61, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
10149
10337
|
function VerificationActionZone({
|
|
10150
10338
|
status,
|
|
10151
10339
|
onAction,
|
|
@@ -10154,9 +10342,9 @@ function VerificationActionZone({
|
|
|
10154
10342
|
switch (status) {
|
|
10155
10343
|
case "required":
|
|
10156
10344
|
if (onAction === null) return null;
|
|
10157
|
-
return /* @__PURE__ */
|
|
10345
|
+
return /* @__PURE__ */ jsx61(ClButton, { size: "sm", onClick: onAction, children: "Continue" });
|
|
10158
10346
|
case "pending":
|
|
10159
|
-
return /* @__PURE__ */
|
|
10347
|
+
return /* @__PURE__ */ jsx61(
|
|
10160
10348
|
AlertBanner,
|
|
10161
10349
|
{
|
|
10162
10350
|
variant: "warning",
|
|
@@ -10164,16 +10352,16 @@ function VerificationActionZone({
|
|
|
10164
10352
|
}
|
|
10165
10353
|
);
|
|
10166
10354
|
case "completed":
|
|
10167
|
-
return /* @__PURE__ */
|
|
10355
|
+
return /* @__PURE__ */ jsx61(AlertBanner, { variant: "success", content: "Identity verified." });
|
|
10168
10356
|
case "rejected":
|
|
10169
|
-
return /* @__PURE__ */
|
|
10357
|
+
return /* @__PURE__ */ jsx61(
|
|
10170
10358
|
AlertBanner,
|
|
10171
10359
|
{
|
|
10172
10360
|
variant: "error",
|
|
10173
|
-
content: onContactSupport === null ? "Verification rejected." : /* @__PURE__ */
|
|
10361
|
+
content: onContactSupport === null ? "Verification rejected." : /* @__PURE__ */ jsxs43(Fragment10, { children: [
|
|
10174
10362
|
"Verification rejected.",
|
|
10175
10363
|
" ",
|
|
10176
|
-
/* @__PURE__ */
|
|
10364
|
+
/* @__PURE__ */ jsx61(
|
|
10177
10365
|
"button",
|
|
10178
10366
|
{
|
|
10179
10367
|
type: "button",
|
|
@@ -10197,8 +10385,8 @@ function WalletActionZone({
|
|
|
10197
10385
|
onRemoveWallet
|
|
10198
10386
|
}) {
|
|
10199
10387
|
if (multiWallet) {
|
|
10200
|
-
return /* @__PURE__ */
|
|
10201
|
-
/* @__PURE__ */
|
|
10388
|
+
return /* @__PURE__ */ jsxs43(Fragment10, { children: [
|
|
10389
|
+
/* @__PURE__ */ jsx61(
|
|
10202
10390
|
ConnectedWalletList,
|
|
10203
10391
|
{
|
|
10204
10392
|
wallets: connectedWallets,
|
|
@@ -10207,7 +10395,7 @@ function WalletActionZone({
|
|
|
10207
10395
|
status: walletsStatus
|
|
10208
10396
|
}
|
|
10209
10397
|
),
|
|
10210
|
-
status === "rejected" && /* @__PURE__ */
|
|
10398
|
+
status === "rejected" && /* @__PURE__ */ jsx61(
|
|
10211
10399
|
AlertBanner,
|
|
10212
10400
|
{
|
|
10213
10401
|
variant: "error",
|
|
@@ -10218,21 +10406,21 @@ function WalletActionZone({
|
|
|
10218
10406
|
}
|
|
10219
10407
|
if (status === "completed") {
|
|
10220
10408
|
const connected = connectedWallets[0];
|
|
10221
|
-
return /* @__PURE__ */
|
|
10222
|
-
onAction !== null && /* @__PURE__ */
|
|
10223
|
-
walletsStatus === "loading" ? /* @__PURE__ */
|
|
10409
|
+
return /* @__PURE__ */ jsxs43(Fragment10, { children: [
|
|
10410
|
+
onAction !== null && /* @__PURE__ */ jsx61(ClButton, { size: "sm", variant: "secondary", onClick: onAction, children: "Change wallet" }),
|
|
10411
|
+
walletsStatus === "loading" ? /* @__PURE__ */ jsx61(
|
|
10224
10412
|
AlertBanner,
|
|
10225
10413
|
{
|
|
10226
10414
|
variant: "info",
|
|
10227
10415
|
content: "Loading your connected wallet\u2026"
|
|
10228
10416
|
}
|
|
10229
|
-
) : walletsStatus === "error" ? /* @__PURE__ */
|
|
10417
|
+
) : walletsStatus === "error" ? /* @__PURE__ */ jsx61(
|
|
10230
10418
|
AlertBanner,
|
|
10231
10419
|
{
|
|
10232
10420
|
variant: "error",
|
|
10233
10421
|
content: "Couldn't load your connected wallet."
|
|
10234
10422
|
}
|
|
10235
|
-
) : /* @__PURE__ */
|
|
10423
|
+
) : /* @__PURE__ */ jsx61(
|
|
10236
10424
|
AlertBanner,
|
|
10237
10425
|
{
|
|
10238
10426
|
variant: "success",
|
|
@@ -10242,9 +10430,9 @@ function WalletActionZone({
|
|
|
10242
10430
|
] });
|
|
10243
10431
|
}
|
|
10244
10432
|
if (status === "rejected") {
|
|
10245
|
-
return /* @__PURE__ */
|
|
10246
|
-
onAction !== null && /* @__PURE__ */
|
|
10247
|
-
/* @__PURE__ */
|
|
10433
|
+
return /* @__PURE__ */ jsxs43(Fragment10, { children: [
|
|
10434
|
+
onAction !== null && /* @__PURE__ */ jsx61(ClButton, { size: "sm", onClick: onAction, children: "Connect wallet" }),
|
|
10435
|
+
/* @__PURE__ */ jsx61(
|
|
10248
10436
|
AlertBanner,
|
|
10249
10437
|
{
|
|
10250
10438
|
variant: "error",
|
|
@@ -10254,7 +10442,7 @@ function WalletActionZone({
|
|
|
10254
10442
|
] });
|
|
10255
10443
|
}
|
|
10256
10444
|
if (onAction === null) return null;
|
|
10257
|
-
return /* @__PURE__ */
|
|
10445
|
+
return /* @__PURE__ */ jsx61(ClButton, { size: "sm", onClick: onAction, children: "Connect wallet" });
|
|
10258
10446
|
}
|
|
10259
10447
|
function RequirementItem({
|
|
10260
10448
|
ui,
|
|
@@ -10266,7 +10454,7 @@ function RequirementItem({
|
|
|
10266
10454
|
walletsStatus,
|
|
10267
10455
|
onContactSupport
|
|
10268
10456
|
}) {
|
|
10269
|
-
return /* @__PURE__ */
|
|
10457
|
+
return /* @__PURE__ */ jsx61(CoinListStyleScope, { children: /* @__PURE__ */ jsxs43(
|
|
10270
10458
|
"div",
|
|
10271
10459
|
{
|
|
10272
10460
|
className: cn(
|
|
@@ -10274,7 +10462,7 @@ function RequirementItem({
|
|
|
10274
10462
|
className
|
|
10275
10463
|
),
|
|
10276
10464
|
children: [
|
|
10277
|
-
/* @__PURE__ */
|
|
10465
|
+
/* @__PURE__ */ jsxs43(
|
|
10278
10466
|
"button",
|
|
10279
10467
|
{
|
|
10280
10468
|
type: "button",
|
|
@@ -10282,9 +10470,9 @@ function RequirementItem({
|
|
|
10282
10470
|
"aria-expanded": expanded,
|
|
10283
10471
|
className: "clcosdk:flex clcosdk:h-14 clcosdk:w-full clcosdk:cursor-pointer clcosdk:items-center clcosdk:justify-between clcosdk:rounded-2xl clcosdk:px-2 clcosdk:transition-colors clcosdk:hover:bg-surface",
|
|
10284
10472
|
children: [
|
|
10285
|
-
/* @__PURE__ */
|
|
10286
|
-
/* @__PURE__ */
|
|
10287
|
-
/* @__PURE__ */
|
|
10473
|
+
/* @__PURE__ */ jsxs43("div", { className: "clcosdk:flex clcosdk:items-center clcosdk:gap-3", children: [
|
|
10474
|
+
/* @__PURE__ */ jsx61(StepStatusIcon, { status: ui.status }),
|
|
10475
|
+
/* @__PURE__ */ jsx61(
|
|
10288
10476
|
"span",
|
|
10289
10477
|
{
|
|
10290
10478
|
className: cn(
|
|
@@ -10295,7 +10483,7 @@ function RequirementItem({
|
|
|
10295
10483
|
}
|
|
10296
10484
|
)
|
|
10297
10485
|
] }),
|
|
10298
|
-
/* @__PURE__ */
|
|
10486
|
+
/* @__PURE__ */ jsx61(
|
|
10299
10487
|
ChevronRight,
|
|
10300
10488
|
{
|
|
10301
10489
|
className: cn(
|
|
@@ -10308,15 +10496,15 @@ function RequirementItem({
|
|
|
10308
10496
|
]
|
|
10309
10497
|
}
|
|
10310
10498
|
),
|
|
10311
|
-
/* @__PURE__ */
|
|
10499
|
+
/* @__PURE__ */ jsx61(
|
|
10312
10500
|
"div",
|
|
10313
10501
|
{
|
|
10314
10502
|
className: cn(
|
|
10315
10503
|
"clcosdk:grid clcosdk:transition-[grid-template-rows] clcosdk:duration-300 clcosdk:ease-in-out",
|
|
10316
10504
|
expanded ? "clcosdk:grid-rows-[1fr]" : "clcosdk:grid-rows-[0fr]"
|
|
10317
10505
|
),
|
|
10318
|
-
children: /* @__PURE__ */
|
|
10319
|
-
/* @__PURE__ */
|
|
10506
|
+
children: /* @__PURE__ */ jsx61("div", { className: "clcosdk:min-h-0 clcosdk:overflow-hidden", children: /* @__PURE__ */ jsxs43("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-4 clcosdk:px-2 clcosdk:pb-4", children: [
|
|
10507
|
+
/* @__PURE__ */ jsx61(
|
|
10320
10508
|
"p",
|
|
10321
10509
|
{
|
|
10322
10510
|
className: cn(
|
|
@@ -10326,14 +10514,14 @@ function RequirementItem({
|
|
|
10326
10514
|
children: ui.description
|
|
10327
10515
|
}
|
|
10328
10516
|
),
|
|
10329
|
-
ui.variant === "verification" ? /* @__PURE__ */
|
|
10517
|
+
ui.variant === "verification" ? /* @__PURE__ */ jsx61(
|
|
10330
10518
|
VerificationActionZone,
|
|
10331
10519
|
{
|
|
10332
10520
|
status: ui.status,
|
|
10333
10521
|
onAction,
|
|
10334
10522
|
onContactSupport
|
|
10335
10523
|
}
|
|
10336
|
-
) : /* @__PURE__ */
|
|
10524
|
+
) : /* @__PURE__ */ jsx61(
|
|
10337
10525
|
WalletActionZone,
|
|
10338
10526
|
{
|
|
10339
10527
|
status: ui.status,
|
|
@@ -10353,9 +10541,9 @@ function RequirementItem({
|
|
|
10353
10541
|
}
|
|
10354
10542
|
|
|
10355
10543
|
// src/client/components/requirements/RequirementsChecklistView.tsx
|
|
10356
|
-
import { jsx as
|
|
10544
|
+
import { jsx as jsx62, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
10357
10545
|
function RequirementsChecklistView(props) {
|
|
10358
|
-
return /* @__PURE__ */
|
|
10546
|
+
return /* @__PURE__ */ jsx62(CoinListStyleScope, { children: /* @__PURE__ */ jsx62(RequirementsChecklistViewBody, { ...props }) });
|
|
10359
10547
|
}
|
|
10360
10548
|
function RequirementsChecklistViewBody({
|
|
10361
10549
|
state,
|
|
@@ -10367,11 +10555,11 @@ function RequirementsChecklistViewBody({
|
|
|
10367
10555
|
}) {
|
|
10368
10556
|
switch (state.type) {
|
|
10369
10557
|
case "loading":
|
|
10370
|
-
return loading ?? /* @__PURE__ */
|
|
10558
|
+
return loading ?? /* @__PURE__ */ jsx62(LoadingState2, {});
|
|
10371
10559
|
case "not-authenticated":
|
|
10372
10560
|
return unauthenticatedState ?? null;
|
|
10373
10561
|
case "error":
|
|
10374
|
-
return error ?? /* @__PURE__ */
|
|
10562
|
+
return error ?? /* @__PURE__ */ jsx62(
|
|
10375
10563
|
AlertBanner,
|
|
10376
10564
|
{
|
|
10377
10565
|
variant: "error",
|
|
@@ -10381,7 +10569,7 @@ function RequirementsChecklistViewBody({
|
|
|
10381
10569
|
}
|
|
10382
10570
|
);
|
|
10383
10571
|
case "content":
|
|
10384
|
-
return /* @__PURE__ */
|
|
10572
|
+
return /* @__PURE__ */ jsxs44(
|
|
10385
10573
|
"div",
|
|
10386
10574
|
{
|
|
10387
10575
|
className: cn(
|
|
@@ -10389,11 +10577,11 @@ function RequirementsChecklistViewBody({
|
|
|
10389
10577
|
className
|
|
10390
10578
|
),
|
|
10391
10579
|
children: [
|
|
10392
|
-
/* @__PURE__ */
|
|
10393
|
-
/* @__PURE__ */
|
|
10394
|
-
/* @__PURE__ */
|
|
10580
|
+
/* @__PURE__ */ jsxs44("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-2", children: [
|
|
10581
|
+
/* @__PURE__ */ jsx62("h3", { className: cn(typeClasses.h3, "clcosdk:text-text-primary"), children: state.title }),
|
|
10582
|
+
/* @__PURE__ */ jsx62("p", { className: cn(typeClasses.body, "clcosdk:text-text-secondary"), children: state.description })
|
|
10395
10583
|
] }),
|
|
10396
|
-
/* @__PURE__ */
|
|
10584
|
+
/* @__PURE__ */ jsx62("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:divide-y clcosdk:divide-divider", children: state.items.map((row) => /* @__PURE__ */ jsx62(
|
|
10397
10585
|
RequirementItem,
|
|
10398
10586
|
{
|
|
10399
10587
|
ui: row.item,
|
|
@@ -10412,7 +10600,7 @@ function RequirementsChecklistViewBody({
|
|
|
10412
10600
|
},
|
|
10413
10601
|
row.id
|
|
10414
10602
|
)) }),
|
|
10415
|
-
state.ineligible && /* @__PURE__ */
|
|
10603
|
+
state.ineligible && /* @__PURE__ */ jsx62(
|
|
10416
10604
|
AlertBanner,
|
|
10417
10605
|
{
|
|
10418
10606
|
variant: "error",
|
|
@@ -10420,7 +10608,7 @@ function RequirementsChecklistViewBody({
|
|
|
10420
10608
|
content: "You are not eligible to participate."
|
|
10421
10609
|
}
|
|
10422
10610
|
),
|
|
10423
|
-
state.continueAction && /* @__PURE__ */
|
|
10611
|
+
state.continueAction && /* @__PURE__ */ jsx62(
|
|
10424
10612
|
ClButton,
|
|
10425
10613
|
{
|
|
10426
10614
|
fullWidth: true,
|
|
@@ -10439,18 +10627,18 @@ function RequirementsChecklistViewBody({
|
|
|
10439
10627
|
}
|
|
10440
10628
|
}
|
|
10441
10629
|
function LoadingState2() {
|
|
10442
|
-
return /* @__PURE__ */
|
|
10630
|
+
return /* @__PURE__ */ jsx62(
|
|
10443
10631
|
"output",
|
|
10444
10632
|
{
|
|
10445
10633
|
"aria-live": "polite",
|
|
10446
10634
|
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",
|
|
10447
|
-
children: /* @__PURE__ */
|
|
10635
|
+
children: /* @__PURE__ */ jsx62("p", { className: cn(typeClasses.body, "clcosdk:text-text-secondary"), children: "Loading requirements..." })
|
|
10448
10636
|
}
|
|
10449
10637
|
);
|
|
10450
10638
|
}
|
|
10451
10639
|
|
|
10452
10640
|
// src/client/components/requirements/tax-document/TaxDocumentModalView.tsx
|
|
10453
|
-
import { jsx as
|
|
10641
|
+
import { jsx as jsx63, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
10454
10642
|
function TaxDocumentModalView({
|
|
10455
10643
|
state,
|
|
10456
10644
|
onEvent,
|
|
@@ -10459,7 +10647,7 @@ function TaxDocumentModalView({
|
|
|
10459
10647
|
if (state.type === "hidden") {
|
|
10460
10648
|
return null;
|
|
10461
10649
|
}
|
|
10462
|
-
return /* @__PURE__ */
|
|
10650
|
+
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(
|
|
10463
10651
|
"div",
|
|
10464
10652
|
{
|
|
10465
10653
|
className: cn(
|
|
@@ -10467,11 +10655,11 @@ function TaxDocumentModalView({
|
|
|
10467
10655
|
className
|
|
10468
10656
|
),
|
|
10469
10657
|
children: [
|
|
10470
|
-
/* @__PURE__ */
|
|
10471
|
-
/* @__PURE__ */
|
|
10472
|
-
/* @__PURE__ */
|
|
10658
|
+
/* @__PURE__ */ jsxs45("div", { className: "clcosdk:flex clcosdk:items-start clcosdk:justify-between clcosdk:gap-4", children: [
|
|
10659
|
+
/* @__PURE__ */ jsx63("h3", { className: cn(typeClasses.h3, "clcosdk:text-text-primary"), children: state.title }),
|
|
10660
|
+
/* @__PURE__ */ jsx63(CloseButton, { onClick: () => onEvent({ type: "ON_CLOSE" }) })
|
|
10473
10661
|
] }),
|
|
10474
|
-
/* @__PURE__ */
|
|
10662
|
+
/* @__PURE__ */ jsx63(Screen, { screen: state.screen, onEvent })
|
|
10475
10663
|
]
|
|
10476
10664
|
}
|
|
10477
10665
|
) }) });
|
|
@@ -10482,11 +10670,11 @@ function Screen({
|
|
|
10482
10670
|
}) {
|
|
10483
10671
|
switch (screen.type) {
|
|
10484
10672
|
case "loading":
|
|
10485
|
-
return /* @__PURE__ */
|
|
10673
|
+
return /* @__PURE__ */ jsx63(LoadingScreen, {});
|
|
10486
10674
|
case "error":
|
|
10487
|
-
return /* @__PURE__ */
|
|
10675
|
+
return /* @__PURE__ */ jsx63(AlertBanner, { variant: "error", icon: true, content: screen.message });
|
|
10488
10676
|
case "review":
|
|
10489
|
-
return /* @__PURE__ */
|
|
10677
|
+
return /* @__PURE__ */ jsx63(
|
|
10490
10678
|
ReviewScreen,
|
|
10491
10679
|
{
|
|
10492
10680
|
fields: screen.fields,
|
|
@@ -10497,9 +10685,9 @@ function Screen({
|
|
|
10497
10685
|
}
|
|
10498
10686
|
);
|
|
10499
10687
|
case "editing":
|
|
10500
|
-
return /* @__PURE__ */
|
|
10688
|
+
return /* @__PURE__ */ jsx63(EditScreen, { fields: screen.fields, onEvent });
|
|
10501
10689
|
case "sign-only":
|
|
10502
|
-
return /* @__PURE__ */
|
|
10690
|
+
return /* @__PURE__ */ jsx63(
|
|
10503
10691
|
SignOnlyScreen,
|
|
10504
10692
|
{
|
|
10505
10693
|
signing: screen.signing,
|
|
@@ -10514,14 +10702,14 @@ function Screen({
|
|
|
10514
10702
|
}
|
|
10515
10703
|
}
|
|
10516
10704
|
function LoadingScreen() {
|
|
10517
|
-
return /* @__PURE__ */
|
|
10705
|
+
return /* @__PURE__ */ jsx63(
|
|
10518
10706
|
"output",
|
|
10519
10707
|
{
|
|
10520
10708
|
"aria-live": "polite",
|
|
10521
10709
|
className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-4",
|
|
10522
|
-
children: [0, 1, 2, 3, 4].map((row) => /* @__PURE__ */
|
|
10523
|
-
/* @__PURE__ */
|
|
10524
|
-
/* @__PURE__ */
|
|
10710
|
+
children: [0, 1, 2, 3, 4].map((row) => /* @__PURE__ */ jsxs45("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-1", children: [
|
|
10711
|
+
/* @__PURE__ */ jsx63("div", { className: "clcosdk:h-3 clcosdk:w-28 clcosdk:animate-pulse clcosdk:rounded clcosdk:bg-surface" }),
|
|
10712
|
+
/* @__PURE__ */ jsx63("div", { className: "clcosdk:h-5 clcosdk:w-48 clcosdk:animate-pulse clcosdk:rounded clcosdk:bg-surface" })
|
|
10525
10713
|
] }, row))
|
|
10526
10714
|
}
|
|
10527
10715
|
);
|
|
@@ -10533,9 +10721,9 @@ function ReviewScreen({
|
|
|
10533
10721
|
signError,
|
|
10534
10722
|
onEvent
|
|
10535
10723
|
}) {
|
|
10536
|
-
return /* @__PURE__ */
|
|
10537
|
-
/* @__PURE__ */
|
|
10538
|
-
piiUnavailable && /* @__PURE__ */
|
|
10724
|
+
return /* @__PURE__ */ jsxs45("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-6", children: [
|
|
10725
|
+
/* @__PURE__ */ jsx63("p", { className: cn(typeClasses.body, "clcosdk:text-text-secondary"), children: "Review your information below. If anything looks incorrect, edit before signing." }),
|
|
10726
|
+
piiUnavailable && /* @__PURE__ */ jsx63(
|
|
10539
10727
|
AlertBanner,
|
|
10540
10728
|
{
|
|
10541
10729
|
variant: "info",
|
|
@@ -10543,27 +10731,27 @@ function ReviewScreen({
|
|
|
10543
10731
|
content: "We don't have this information on file yet \u2014 please fill it in below."
|
|
10544
10732
|
}
|
|
10545
10733
|
),
|
|
10546
|
-
/* @__PURE__ */
|
|
10734
|
+
/* @__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(
|
|
10547
10735
|
"div",
|
|
10548
10736
|
{
|
|
10549
10737
|
className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-1",
|
|
10550
10738
|
children: [
|
|
10551
|
-
/* @__PURE__ */
|
|
10739
|
+
/* @__PURE__ */ jsx63(
|
|
10552
10740
|
"span",
|
|
10553
10741
|
{
|
|
10554
10742
|
className: cn(typeClasses.label, "clcosdk:text-text-secondary"),
|
|
10555
10743
|
children: label
|
|
10556
10744
|
}
|
|
10557
10745
|
),
|
|
10558
|
-
/* @__PURE__ */
|
|
10746
|
+
/* @__PURE__ */ jsx63("span", { className: cn(typeClasses.body, "clcosdk:text-text-primary"), children: displayValue })
|
|
10559
10747
|
]
|
|
10560
10748
|
},
|
|
10561
10749
|
field
|
|
10562
10750
|
)) }),
|
|
10563
|
-
/* @__PURE__ */
|
|
10564
|
-
signError && /* @__PURE__ */
|
|
10565
|
-
/* @__PURE__ */
|
|
10566
|
-
/* @__PURE__ */
|
|
10751
|
+
/* @__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." }),
|
|
10752
|
+
signError && /* @__PURE__ */ jsx63(AlertBanner, { variant: "error", icon: true, content: signError }),
|
|
10753
|
+
/* @__PURE__ */ jsxs45("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-2", children: [
|
|
10754
|
+
/* @__PURE__ */ jsx63(
|
|
10567
10755
|
ClButton,
|
|
10568
10756
|
{
|
|
10569
10757
|
fullWidth: true,
|
|
@@ -10573,7 +10761,7 @@ function ReviewScreen({
|
|
|
10573
10761
|
children: "Sign W-8BEN"
|
|
10574
10762
|
}
|
|
10575
10763
|
),
|
|
10576
|
-
/* @__PURE__ */
|
|
10764
|
+
/* @__PURE__ */ jsx63(
|
|
10577
10765
|
ClButton,
|
|
10578
10766
|
{
|
|
10579
10767
|
fullWidth: true,
|
|
@@ -10590,20 +10778,20 @@ function EditScreen({
|
|
|
10590
10778
|
fields,
|
|
10591
10779
|
onEvent
|
|
10592
10780
|
}) {
|
|
10593
|
-
return /* @__PURE__ */
|
|
10594
|
-
/* @__PURE__ */
|
|
10781
|
+
return /* @__PURE__ */ jsxs45("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-6", children: [
|
|
10782
|
+
/* @__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(
|
|
10595
10783
|
"label",
|
|
10596
10784
|
{
|
|
10597
10785
|
className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-1",
|
|
10598
10786
|
children: [
|
|
10599
|
-
/* @__PURE__ */
|
|
10787
|
+
/* @__PURE__ */ jsx63(
|
|
10600
10788
|
"span",
|
|
10601
10789
|
{
|
|
10602
10790
|
className: cn(typeClasses.label, "clcosdk:text-text-secondary"),
|
|
10603
10791
|
children: label
|
|
10604
10792
|
}
|
|
10605
10793
|
),
|
|
10606
|
-
/* @__PURE__ */
|
|
10794
|
+
/* @__PURE__ */ jsx63(
|
|
10607
10795
|
"input",
|
|
10608
10796
|
{
|
|
10609
10797
|
type: "text",
|
|
@@ -10624,9 +10812,9 @@ function EditScreen({
|
|
|
10624
10812
|
},
|
|
10625
10813
|
field
|
|
10626
10814
|
)) }),
|
|
10627
|
-
/* @__PURE__ */
|
|
10628
|
-
/* @__PURE__ */
|
|
10629
|
-
/* @__PURE__ */
|
|
10815
|
+
/* @__PURE__ */ jsxs45("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-2", children: [
|
|
10816
|
+
/* @__PURE__ */ jsx63(ClButton, { fullWidth: true, onClick: () => onEvent({ type: "ON_SAVE_EDIT" }), children: "Save & review" }),
|
|
10817
|
+
/* @__PURE__ */ jsx63(
|
|
10630
10818
|
ClButton,
|
|
10631
10819
|
{
|
|
10632
10820
|
fullWidth: true,
|
|
@@ -10643,10 +10831,10 @@ function SignOnlyScreen({
|
|
|
10643
10831
|
signError,
|
|
10644
10832
|
onEvent
|
|
10645
10833
|
}) {
|
|
10646
|
-
return /* @__PURE__ */
|
|
10647
|
-
/* @__PURE__ */
|
|
10648
|
-
signError && /* @__PURE__ */
|
|
10649
|
-
/* @__PURE__ */
|
|
10834
|
+
return /* @__PURE__ */ jsxs45("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-6", children: [
|
|
10835
|
+
/* @__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." }),
|
|
10836
|
+
signError && /* @__PURE__ */ jsx63(AlertBanner, { variant: "error", icon: true, content: signError }),
|
|
10837
|
+
/* @__PURE__ */ jsx63(
|
|
10650
10838
|
ClButton,
|
|
10651
10839
|
{
|
|
10652
10840
|
fullWidth: true,
|
|
@@ -10660,12 +10848,12 @@ function SignOnlyScreen({
|
|
|
10660
10848
|
}
|
|
10661
10849
|
|
|
10662
10850
|
// src/client/hooks/requirements/tax-document/useTaxDocumentModalViewModel.ts
|
|
10663
|
-
import { useCallback as
|
|
10851
|
+
import { useCallback as useCallback11, useEffect as useEffect25, useMemo as useMemo8 } from "react";
|
|
10664
10852
|
|
|
10665
10853
|
// src/client/hooks/requirements/data/useTaxDocument.ts
|
|
10666
|
-
import { useCallback as
|
|
10854
|
+
import { useCallback as useCallback10, useEffect as useEffect24, useState as useState28 } from "react";
|
|
10667
10855
|
var IDLE_SIGN = { type: "idle", error: null };
|
|
10668
|
-
var
|
|
10856
|
+
var LOADING_STATE6 = { type: "LOADING" };
|
|
10669
10857
|
var SIGN_FAILED_MESSAGE = "Unable to sign document. Please try again.";
|
|
10670
10858
|
var DOB_INVALID_MESSAGE = "Enter your date of birth as MM/DD/YYYY.";
|
|
10671
10859
|
var FIELD_KEYS = {
|
|
@@ -10738,8 +10926,8 @@ function useTaxDocument({
|
|
|
10738
10926
|
}) {
|
|
10739
10927
|
const { coinlist, isReady } = useCoinList();
|
|
10740
10928
|
const log = useLogger("useTaxDocument");
|
|
10741
|
-
const [state, setState] =
|
|
10742
|
-
|
|
10929
|
+
const [state, setState] = useState28(LOADING_STATE6);
|
|
10930
|
+
useEffect24(() => {
|
|
10743
10931
|
let isCancelled = false;
|
|
10744
10932
|
if (!isOpen) {
|
|
10745
10933
|
return () => {
|
|
@@ -10747,12 +10935,12 @@ function useTaxDocument({
|
|
|
10747
10935
|
};
|
|
10748
10936
|
}
|
|
10749
10937
|
if (!isReady) {
|
|
10750
|
-
setState(
|
|
10938
|
+
setState(LOADING_STATE6);
|
|
10751
10939
|
return () => {
|
|
10752
10940
|
isCancelled = true;
|
|
10753
10941
|
};
|
|
10754
10942
|
}
|
|
10755
|
-
setState(
|
|
10943
|
+
setState(LOADING_STATE6);
|
|
10756
10944
|
coinlist.requirements.getPii().then((pii) => {
|
|
10757
10945
|
if (isCancelled) return;
|
|
10758
10946
|
if (pii.kind === "company") {
|
|
@@ -10780,7 +10968,7 @@ function useTaxDocument({
|
|
|
10780
10968
|
isCancelled = true;
|
|
10781
10969
|
};
|
|
10782
10970
|
}, [coinlist, isReady, isOpen, log]);
|
|
10783
|
-
const onEditField =
|
|
10971
|
+
const onEditField = useCallback10(
|
|
10784
10972
|
(field, value) => {
|
|
10785
10973
|
setState(
|
|
10786
10974
|
(prev) => prev.type === "EDITING" ? { ...prev, fields: { ...prev.fields, [field]: value } } : prev
|
|
@@ -10788,7 +10976,7 @@ function useTaxDocument({
|
|
|
10788
10976
|
},
|
|
10789
10977
|
[]
|
|
10790
10978
|
);
|
|
10791
|
-
const onStartEdit =
|
|
10979
|
+
const onStartEdit = useCallback10(() => {
|
|
10792
10980
|
setState(
|
|
10793
10981
|
(prev) => prev.type === "REVIEW" ? {
|
|
10794
10982
|
type: "EDITING",
|
|
@@ -10799,7 +10987,7 @@ function useTaxDocument({
|
|
|
10799
10987
|
} : prev
|
|
10800
10988
|
);
|
|
10801
10989
|
}, []);
|
|
10802
|
-
const onSaveEdit =
|
|
10990
|
+
const onSaveEdit = useCallback10(() => {
|
|
10803
10991
|
setState(
|
|
10804
10992
|
(prev) => prev.type === "EDITING" ? {
|
|
10805
10993
|
type: "REVIEW",
|
|
@@ -10810,7 +10998,7 @@ function useTaxDocument({
|
|
|
10810
10998
|
} : prev
|
|
10811
10999
|
);
|
|
10812
11000
|
}, []);
|
|
10813
|
-
const onCancelEdit =
|
|
11001
|
+
const onCancelEdit = useCallback10(() => {
|
|
10814
11002
|
setState(
|
|
10815
11003
|
(prev) => prev.type === "EDITING" ? {
|
|
10816
11004
|
type: "REVIEW",
|
|
@@ -10821,7 +11009,7 @@ function useTaxDocument({
|
|
|
10821
11009
|
} : prev
|
|
10822
11010
|
);
|
|
10823
11011
|
}, []);
|
|
10824
|
-
const onSign =
|
|
11012
|
+
const onSign = useCallback10(() => {
|
|
10825
11013
|
if (state.type !== "REVIEW" && state.type !== "SIGN_ONLY") return;
|
|
10826
11014
|
if (state.type === "REVIEW" && state.fields.dob.trim() !== "" && !isValidUsDate(state.fields.dob)) {
|
|
10827
11015
|
setState({
|
|
@@ -10863,19 +11051,19 @@ function useTaxDocumentModalViewModel({
|
|
|
10863
11051
|
onSubmitted
|
|
10864
11052
|
}) {
|
|
10865
11053
|
const { state, onEditField, onStartEdit, onSaveEdit, onCancelEdit, onSign } = useTaxDocument({ isOpen });
|
|
10866
|
-
|
|
11054
|
+
useEffect25(() => {
|
|
10867
11055
|
if (state.type === "SUBMITTED") {
|
|
10868
11056
|
onSubmitted?.(state.submission);
|
|
10869
11057
|
onClose();
|
|
10870
11058
|
}
|
|
10871
11059
|
}, [state]);
|
|
10872
|
-
const uiState =
|
|
11060
|
+
const uiState = useMemo8(() => {
|
|
10873
11061
|
if (!isOpen || state.type === "SUBMITTED") {
|
|
10874
11062
|
return { type: "hidden" };
|
|
10875
11063
|
}
|
|
10876
11064
|
return { type: "content", title: toTitle(state), screen: toScreen(state) };
|
|
10877
11065
|
}, [isOpen, state]);
|
|
10878
|
-
const onEvent =
|
|
11066
|
+
const onEvent = useCallback11(
|
|
10879
11067
|
(event) => {
|
|
10880
11068
|
switch (event.type) {
|
|
10881
11069
|
case "ON_CLOSE":
|
|
@@ -10958,7 +11146,7 @@ function toFieldsUi(fields) {
|
|
|
10958
11146
|
}
|
|
10959
11147
|
|
|
10960
11148
|
// src/client/components/requirements/tax-document/TaxDocumentModalContainer.tsx
|
|
10961
|
-
import { jsx as
|
|
11149
|
+
import { jsx as jsx64 } from "react/jsx-runtime";
|
|
10962
11150
|
function TaxDocumentModalContainer({
|
|
10963
11151
|
isOpen,
|
|
10964
11152
|
onClose,
|
|
@@ -10970,7 +11158,7 @@ function TaxDocumentModalContainer({
|
|
|
10970
11158
|
onClose,
|
|
10971
11159
|
onSubmitted
|
|
10972
11160
|
});
|
|
10973
|
-
return /* @__PURE__ */
|
|
11161
|
+
return /* @__PURE__ */ jsx64(
|
|
10974
11162
|
TaxDocumentModalView,
|
|
10975
11163
|
{
|
|
10976
11164
|
state,
|
|
@@ -10981,26 +11169,26 @@ function TaxDocumentModalContainer({
|
|
|
10981
11169
|
}
|
|
10982
11170
|
|
|
10983
11171
|
// src/client/components/requirements/VerificationOverlay.tsx
|
|
10984
|
-
import { jsx as
|
|
11172
|
+
import { jsx as jsx65, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
10985
11173
|
function VerificationOverlay({
|
|
10986
11174
|
onClose,
|
|
10987
11175
|
children
|
|
10988
11176
|
}) {
|
|
10989
|
-
return /* @__PURE__ */
|
|
11177
|
+
return /* @__PURE__ */ jsx65(CoinListStyleScope, { children: /* @__PURE__ */ jsx65(VerificationOverlayBody, { onClose, children }) });
|
|
10990
11178
|
}
|
|
10991
11179
|
function VerificationOverlayBody({
|
|
10992
11180
|
onClose,
|
|
10993
11181
|
children
|
|
10994
11182
|
}) {
|
|
10995
|
-
return /* @__PURE__ */
|
|
11183
|
+
return /* @__PURE__ */ jsx65(
|
|
10996
11184
|
"div",
|
|
10997
11185
|
{
|
|
10998
11186
|
role: "dialog",
|
|
10999
11187
|
"aria-modal": "true",
|
|
11000
11188
|
"aria-label": "Identity verification",
|
|
11001
11189
|
className: "clcosdk:fixed clcosdk:inset-0 clcosdk:z-50 clcosdk:flex clcosdk:items-center clcosdk:justify-center clcosdk:bg-overlay clcosdk:p-4",
|
|
11002
|
-
children: /* @__PURE__ */
|
|
11003
|
-
/* @__PURE__ */
|
|
11190
|
+
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: [
|
|
11191
|
+
/* @__PURE__ */ jsx65(
|
|
11004
11192
|
CloseButton,
|
|
11005
11193
|
{
|
|
11006
11194
|
onClick: onClose,
|
|
@@ -11015,7 +11203,7 @@ function VerificationOverlayBody({
|
|
|
11015
11203
|
|
|
11016
11204
|
// src/client/components/requirements/wallet/ConnectWalletModalView.tsx
|
|
11017
11205
|
import { useId as useId5 } from "react";
|
|
11018
|
-
import { jsx as
|
|
11206
|
+
import { jsx as jsx66, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
11019
11207
|
function ConnectWalletModalView({
|
|
11020
11208
|
state,
|
|
11021
11209
|
onEvent,
|
|
@@ -11025,7 +11213,7 @@ function ConnectWalletModalView({
|
|
|
11025
11213
|
if (state.type === "hidden") {
|
|
11026
11214
|
return null;
|
|
11027
11215
|
}
|
|
11028
|
-
return /* @__PURE__ */
|
|
11216
|
+
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(
|
|
11029
11217
|
"div",
|
|
11030
11218
|
{
|
|
11031
11219
|
role: "dialog",
|
|
@@ -11036,8 +11224,8 @@ function ConnectWalletModalView({
|
|
|
11036
11224
|
className
|
|
11037
11225
|
),
|
|
11038
11226
|
children: [
|
|
11039
|
-
/* @__PURE__ */
|
|
11040
|
-
/* @__PURE__ */
|
|
11227
|
+
/* @__PURE__ */ jsxs47("div", { className: "clcosdk:flex clcosdk:items-start clcosdk:justify-between clcosdk:gap-4", children: [
|
|
11228
|
+
/* @__PURE__ */ jsx66(
|
|
11041
11229
|
"h3",
|
|
11042
11230
|
{
|
|
11043
11231
|
id: titleId,
|
|
@@ -11045,9 +11233,9 @@ function ConnectWalletModalView({
|
|
|
11045
11233
|
children: "Connect your wallet"
|
|
11046
11234
|
}
|
|
11047
11235
|
),
|
|
11048
|
-
/* @__PURE__ */
|
|
11236
|
+
/* @__PURE__ */ jsx66(CloseButton, { onClick: () => onEvent({ type: "ON_CLOSE" }) })
|
|
11049
11237
|
] }),
|
|
11050
|
-
/* @__PURE__ */
|
|
11238
|
+
/* @__PURE__ */ jsx66(
|
|
11051
11239
|
Screen2,
|
|
11052
11240
|
{
|
|
11053
11241
|
screen: state.screen,
|
|
@@ -11066,9 +11254,9 @@ function Screen2({
|
|
|
11066
11254
|
}) {
|
|
11067
11255
|
switch (screen.type) {
|
|
11068
11256
|
case "needs-wallet":
|
|
11069
|
-
return /* @__PURE__ */
|
|
11070
|
-
/* @__PURE__ */
|
|
11071
|
-
canRequestConnect && /* @__PURE__ */
|
|
11257
|
+
return /* @__PURE__ */ jsxs47("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-6", children: [
|
|
11258
|
+
/* @__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." }),
|
|
11259
|
+
canRequestConnect && /* @__PURE__ */ jsx66(
|
|
11072
11260
|
ClButton,
|
|
11073
11261
|
{
|
|
11074
11262
|
fullWidth: true,
|
|
@@ -11078,23 +11266,23 @@ function Screen2({
|
|
|
11078
11266
|
)
|
|
11079
11267
|
] });
|
|
11080
11268
|
case "ready":
|
|
11081
|
-
return /* @__PURE__ */
|
|
11082
|
-
/* @__PURE__ */
|
|
11083
|
-
/* @__PURE__ */
|
|
11084
|
-
/* @__PURE__ */
|
|
11269
|
+
return /* @__PURE__ */ jsxs47("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-6", children: [
|
|
11270
|
+
/* @__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." }),
|
|
11271
|
+
/* @__PURE__ */ jsxs47("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-1 clcosdk:border-t clcosdk:border-divider clcosdk:pt-4", children: [
|
|
11272
|
+
/* @__PURE__ */ jsx66(
|
|
11085
11273
|
"span",
|
|
11086
11274
|
{
|
|
11087
11275
|
className: cn(typeClasses.label, "clcosdk:text-text-secondary"),
|
|
11088
11276
|
children: "Wallet address"
|
|
11089
11277
|
}
|
|
11090
11278
|
),
|
|
11091
|
-
/* @__PURE__ */
|
|
11279
|
+
/* @__PURE__ */ jsx66("span", { className: cn(typeClasses.body, "clcosdk:text-text-primary"), children: screen.shortAddress })
|
|
11092
11280
|
] }),
|
|
11093
11281
|
screen.signError && // Live region: the error is inserted async after a failed attempt,
|
|
11094
11282
|
// so screen readers need it announced rather than silently
|
|
11095
11283
|
// rendered.
|
|
11096
|
-
/* @__PURE__ */
|
|
11097
|
-
/* @__PURE__ */
|
|
11284
|
+
/* @__PURE__ */ jsx66("div", { role: "alert", children: /* @__PURE__ */ jsx66(AlertBanner, { variant: "error", icon: true, content: screen.signError }) }),
|
|
11285
|
+
/* @__PURE__ */ jsx66(
|
|
11098
11286
|
ClButton,
|
|
11099
11287
|
{
|
|
11100
11288
|
fullWidth: true,
|
|
@@ -11105,7 +11293,7 @@ function Screen2({
|
|
|
11105
11293
|
children: "Sign & connect"
|
|
11106
11294
|
}
|
|
11107
11295
|
),
|
|
11108
|
-
canRequestConnect && /* @__PURE__ */
|
|
11296
|
+
canRequestConnect && /* @__PURE__ */ jsx66(
|
|
11109
11297
|
ClButton,
|
|
11110
11298
|
{
|
|
11111
11299
|
fullWidth: true,
|
|
@@ -11124,10 +11312,10 @@ function Screen2({
|
|
|
11124
11312
|
}
|
|
11125
11313
|
|
|
11126
11314
|
// src/client/hooks/requirements/wallet/useConnectWalletModalViewModel.ts
|
|
11127
|
-
import { useCallback as
|
|
11315
|
+
import { useCallback as useCallback13, useEffect as useEffect27, useMemo as useMemo9 } from "react";
|
|
11128
11316
|
|
|
11129
11317
|
// src/client/hooks/requirements/data/useConnectWallet.ts
|
|
11130
|
-
import { useCallback as
|
|
11318
|
+
import { useCallback as useCallback12, useEffect as useEffect26, useRef as useRef16, useState as useState29 } from "react";
|
|
11131
11319
|
|
|
11132
11320
|
// src/client/core/wallets/connect-external-wallet.ts
|
|
11133
11321
|
var DEFAULT_STATEMENT = "Sign this message to prove you own this wallet. This does not cost gas or move funds.";
|
|
@@ -11258,24 +11446,24 @@ function useConnectWallet({
|
|
|
11258
11446
|
statement
|
|
11259
11447
|
}) {
|
|
11260
11448
|
const { coinlist } = useCoinList();
|
|
11261
|
-
const [state, setState] =
|
|
11449
|
+
const [state, setState] = useState29(
|
|
11262
11450
|
() => wallet ? { type: "READY", address: wallet.address, sign: IDLE_SIGN2 } : { type: "NEEDS_WALLET" }
|
|
11263
11451
|
);
|
|
11264
11452
|
const attempt = useRef16(0);
|
|
11265
|
-
|
|
11453
|
+
useEffect26(() => {
|
|
11266
11454
|
attempt.current += 1;
|
|
11267
11455
|
if (!isOpen) return;
|
|
11268
11456
|
setState(
|
|
11269
11457
|
wallet ? { type: "READY", address: wallet.address, sign: IDLE_SIGN2 } : { type: "NEEDS_WALLET" }
|
|
11270
11458
|
);
|
|
11271
11459
|
}, [isOpen, wallet?.address]);
|
|
11272
|
-
|
|
11460
|
+
useEffect26(
|
|
11273
11461
|
() => () => {
|
|
11274
11462
|
attempt.current += 1;
|
|
11275
11463
|
},
|
|
11276
11464
|
[]
|
|
11277
11465
|
);
|
|
11278
|
-
const onSign =
|
|
11466
|
+
const onSign = useCallback12(() => {
|
|
11279
11467
|
if (!wallet || state.type !== "READY") return;
|
|
11280
11468
|
attempt.current += 1;
|
|
11281
11469
|
const gen = attempt.current;
|
|
@@ -11337,13 +11525,13 @@ function useConnectWalletModalViewModel({
|
|
|
11337
11525
|
challengeType,
|
|
11338
11526
|
statement
|
|
11339
11527
|
});
|
|
11340
|
-
|
|
11528
|
+
useEffect27(() => {
|
|
11341
11529
|
if (state.type === "CONNECTED") {
|
|
11342
11530
|
onConnected?.(state.binding);
|
|
11343
11531
|
onClose();
|
|
11344
11532
|
}
|
|
11345
11533
|
}, [state]);
|
|
11346
|
-
const uiState =
|
|
11534
|
+
const uiState = useMemo9(() => {
|
|
11347
11535
|
if (!isOpen || state.type === "CONNECTED") {
|
|
11348
11536
|
return { type: "hidden" };
|
|
11349
11537
|
}
|
|
@@ -11368,7 +11556,7 @@ function useConnectWalletModalViewModel({
|
|
|
11368
11556
|
canRequestConnect
|
|
11369
11557
|
};
|
|
11370
11558
|
}, [isOpen, state, onRequestConnect]);
|
|
11371
|
-
const onEvent =
|
|
11559
|
+
const onEvent = useCallback13(
|
|
11372
11560
|
(event) => {
|
|
11373
11561
|
switch (event.type) {
|
|
11374
11562
|
case "ON_CLOSE":
|
|
@@ -11392,13 +11580,13 @@ function useConnectWalletModalViewModel({
|
|
|
11392
11580
|
}
|
|
11393
11581
|
|
|
11394
11582
|
// src/client/components/requirements/wallet/ConnectWalletModalContainer.tsx
|
|
11395
|
-
import { jsx as
|
|
11583
|
+
import { jsx as jsx67 } from "react/jsx-runtime";
|
|
11396
11584
|
function ConnectWalletModalContainer({
|
|
11397
11585
|
className,
|
|
11398
11586
|
...options
|
|
11399
11587
|
}) {
|
|
11400
11588
|
const { state, onEvent } = useConnectWalletModalViewModel(options);
|
|
11401
|
-
return /* @__PURE__ */
|
|
11589
|
+
return /* @__PURE__ */ jsx67(
|
|
11402
11590
|
ConnectWalletModalView,
|
|
11403
11591
|
{
|
|
11404
11592
|
state,
|
|
@@ -11409,11 +11597,11 @@ function ConnectWalletModalContainer({
|
|
|
11409
11597
|
}
|
|
11410
11598
|
|
|
11411
11599
|
// src/client/hooks/requirements/useRequirementsChecklistViewModel.ts
|
|
11412
|
-
import { useCallback as
|
|
11600
|
+
import { useCallback as useCallback16, useEffect as useEffect30, useMemo as useMemo10, useRef as useRef17, useState as useState32 } from "react";
|
|
11413
11601
|
|
|
11414
11602
|
// src/client/hooks/requirements/data/useOptionAddresses.ts
|
|
11415
|
-
import { useCallback as
|
|
11416
|
-
var
|
|
11603
|
+
import { useCallback as useCallback14, useEffect as useEffect28, useState as useState30 } from "react";
|
|
11604
|
+
var LOADING_STATE7 = { type: "LOADING" };
|
|
11417
11605
|
var EMPTY_STATE = {
|
|
11418
11606
|
type: "CONTENT",
|
|
11419
11607
|
addresses: []
|
|
@@ -11422,19 +11610,19 @@ function useOptionAddresses(offerId, offerOptionId, options = {}) {
|
|
|
11422
11610
|
const { coinlist, isReady } = useCoinList();
|
|
11423
11611
|
const log = useLogger("useOptionAddresses");
|
|
11424
11612
|
const { data, enabled = true } = options;
|
|
11425
|
-
const [addressesState, setAddressesState] =
|
|
11426
|
-
data !== void 0 ? { type: "CONTENT", addresses: data } :
|
|
11613
|
+
const [addressesState, setAddressesState] = useState30(
|
|
11614
|
+
data !== void 0 ? { type: "CONTENT", addresses: data } : LOADING_STATE7
|
|
11427
11615
|
);
|
|
11428
|
-
const [fetchKey, setFetchKey] =
|
|
11429
|
-
const refetch =
|
|
11430
|
-
const disconnect =
|
|
11616
|
+
const [fetchKey, setFetchKey] = useState30(0);
|
|
11617
|
+
const refetch = useCallback14(() => setFetchKey((k) => k + 1), []);
|
|
11618
|
+
const disconnect = useCallback14(
|
|
11431
11619
|
async (addressId) => {
|
|
11432
11620
|
await coinlist.wallets.remove({ offerId, addressId });
|
|
11433
11621
|
refetch();
|
|
11434
11622
|
},
|
|
11435
11623
|
[coinlist, offerId, refetch]
|
|
11436
11624
|
);
|
|
11437
|
-
|
|
11625
|
+
useEffect28(() => {
|
|
11438
11626
|
let isCancelled = false;
|
|
11439
11627
|
if (!enabled) {
|
|
11440
11628
|
setAddressesState(
|
|
@@ -11446,7 +11634,7 @@ function useOptionAddresses(offerId, offerOptionId, options = {}) {
|
|
|
11446
11634
|
}
|
|
11447
11635
|
if (!isReady) {
|
|
11448
11636
|
if (data === void 0) {
|
|
11449
|
-
setAddressesState(
|
|
11637
|
+
setAddressesState(LOADING_STATE7);
|
|
11450
11638
|
}
|
|
11451
11639
|
return () => {
|
|
11452
11640
|
isCancelled = true;
|
|
@@ -11463,7 +11651,7 @@ function useOptionAddresses(offerId, offerOptionId, options = {}) {
|
|
|
11463
11651
|
isCancelled = true;
|
|
11464
11652
|
};
|
|
11465
11653
|
}
|
|
11466
|
-
setAddressesState(
|
|
11654
|
+
setAddressesState(LOADING_STATE7);
|
|
11467
11655
|
coinlist.wallets.list({ offerId, offerOptionId }).then((addresses) => {
|
|
11468
11656
|
if (!isCancelled) {
|
|
11469
11657
|
log.debug(() => ({
|
|
@@ -11490,18 +11678,18 @@ function useOptionAddresses(offerId, offerOptionId, options = {}) {
|
|
|
11490
11678
|
}
|
|
11491
11679
|
|
|
11492
11680
|
// src/client/hooks/requirements/data/useRequirements.ts
|
|
11493
|
-
import { useCallback as
|
|
11494
|
-
var
|
|
11681
|
+
import { useCallback as useCallback15, useEffect as useEffect29, useState as useState31 } from "react";
|
|
11682
|
+
var LOADING_STATE8 = { type: "LOADING" };
|
|
11495
11683
|
function useRequirements(offerId, options = {}) {
|
|
11496
11684
|
const { coinlist, isReady } = useCoinList();
|
|
11497
11685
|
const log = useLogger("useRequirements");
|
|
11498
11686
|
const { data, enabled = true } = options;
|
|
11499
|
-
const [requirementsState, setRequirementsState] =
|
|
11500
|
-
data !== void 0 ? { type: "CONTENT", ...data } :
|
|
11687
|
+
const [requirementsState, setRequirementsState] = useState31(
|
|
11688
|
+
data !== void 0 ? { type: "CONTENT", ...data } : LOADING_STATE8
|
|
11501
11689
|
);
|
|
11502
|
-
const [fetchKey, setFetchKey] =
|
|
11503
|
-
const refetch =
|
|
11504
|
-
|
|
11690
|
+
const [fetchKey, setFetchKey] = useState31(0);
|
|
11691
|
+
const refetch = useCallback15(() => setFetchKey((k) => k + 1), []);
|
|
11692
|
+
useEffect29(() => {
|
|
11505
11693
|
let isCancelled = false;
|
|
11506
11694
|
if (!enabled) {
|
|
11507
11695
|
return () => {
|
|
@@ -11510,7 +11698,7 @@ function useRequirements(offerId, options = {}) {
|
|
|
11510
11698
|
}
|
|
11511
11699
|
if (!isReady) {
|
|
11512
11700
|
if (data === void 0) {
|
|
11513
|
-
setRequirementsState(
|
|
11701
|
+
setRequirementsState(LOADING_STATE8);
|
|
11514
11702
|
}
|
|
11515
11703
|
return () => {
|
|
11516
11704
|
isCancelled = true;
|
|
@@ -11527,7 +11715,7 @@ function useRequirements(offerId, options = {}) {
|
|
|
11527
11715
|
isCancelled = true;
|
|
11528
11716
|
};
|
|
11529
11717
|
}
|
|
11530
|
-
setRequirementsState(
|
|
11718
|
+
setRequirementsState(LOADING_STATE8);
|
|
11531
11719
|
Promise.all([
|
|
11532
11720
|
coinlist.requirements.forOffer(offerId),
|
|
11533
11721
|
coinlist.requirements.statuses(offerId)
|
|
@@ -11661,19 +11849,19 @@ function useRequirementsChecklistViewModel(options) {
|
|
|
11661
11849
|
data,
|
|
11662
11850
|
enabled
|
|
11663
11851
|
});
|
|
11664
|
-
const [expandedId, setExpandedId] =
|
|
11665
|
-
const [taxDocumentOpen, setTaxDocumentOpen] =
|
|
11666
|
-
const [connectWalletOpen, setConnectWalletOpen] =
|
|
11667
|
-
const [verifyingRequirementId, setVerifyingRequirementId] =
|
|
11852
|
+
const [expandedId, setExpandedId] = useState32(null);
|
|
11853
|
+
const [taxDocumentOpen, setTaxDocumentOpen] = useState32(false);
|
|
11854
|
+
const [connectWalletOpen, setConnectWalletOpen] = useState32(false);
|
|
11855
|
+
const [verifyingRequirementId, setVerifyingRequirementId] = useState32(null);
|
|
11668
11856
|
const isMountedRef = useRef17(true);
|
|
11669
|
-
|
|
11857
|
+
useEffect30(() => {
|
|
11670
11858
|
isMountedRef.current = true;
|
|
11671
11859
|
return () => {
|
|
11672
11860
|
isMountedRef.current = false;
|
|
11673
11861
|
};
|
|
11674
11862
|
}, []);
|
|
11675
|
-
const [hasWalletRequirement, setHasWalletRequirement] =
|
|
11676
|
-
|
|
11863
|
+
const [hasWalletRequirement, setHasWalletRequirement] = useState32(false);
|
|
11864
|
+
useEffect30(() => {
|
|
11677
11865
|
if (requirementsState.type === "CONTENT") {
|
|
11678
11866
|
setHasWalletRequirement(
|
|
11679
11867
|
(requirementsState.requirements[optionId] ?? []).some(
|
|
@@ -11689,14 +11877,14 @@ function useRequirementsChecklistViewModel(options) {
|
|
|
11689
11877
|
} = useOptionAddresses(offerId, optionId, {
|
|
11690
11878
|
enabled: enabled && hasWalletRequirement
|
|
11691
11879
|
});
|
|
11692
|
-
const removeWallet =
|
|
11880
|
+
const removeWallet = useCallback16(
|
|
11693
11881
|
async (addressId) => {
|
|
11694
11882
|
await disconnect(OfferOptionAddressId(addressId));
|
|
11695
11883
|
refetch();
|
|
11696
11884
|
},
|
|
11697
11885
|
[disconnect, refetch]
|
|
11698
11886
|
);
|
|
11699
|
-
const awaitVerificationResult =
|
|
11887
|
+
const awaitVerificationResult = useCallback16(
|
|
11700
11888
|
(requirementId, statusBeforeSubmit) => {
|
|
11701
11889
|
void (async () => {
|
|
11702
11890
|
const deadline = Date.now() + VERIFICATION_POLL_TIMEOUT_MS;
|
|
@@ -11723,11 +11911,11 @@ function useRequirementsChecklistViewModel(options) {
|
|
|
11723
11911
|
},
|
|
11724
11912
|
[coinlist, offerId, refetch, log]
|
|
11725
11913
|
);
|
|
11726
|
-
const requirements =
|
|
11914
|
+
const requirements = useMemo10(
|
|
11727
11915
|
() => requirementsState.type === "CONTENT" ? requirementsState.requirements[optionId] ?? [] : [],
|
|
11728
11916
|
[requirementsState, optionId]
|
|
11729
11917
|
);
|
|
11730
|
-
const statusById =
|
|
11918
|
+
const statusById = useMemo10(() => {
|
|
11731
11919
|
if (requirementsState.type !== "CONTENT") {
|
|
11732
11920
|
return /* @__PURE__ */ new Map();
|
|
11733
11921
|
}
|
|
@@ -11736,7 +11924,7 @@ function useRequirementsChecklistViewModel(options) {
|
|
|
11736
11924
|
requirementsState.statuses.filter((s) => ids.has(s.id)).map((s) => [s.id, s])
|
|
11737
11925
|
);
|
|
11738
11926
|
}, [requirementsState, requirements]);
|
|
11739
|
-
const state =
|
|
11927
|
+
const state = useMemo10(() => {
|
|
11740
11928
|
switch (requirementsState.type) {
|
|
11741
11929
|
case "LOADING":
|
|
11742
11930
|
return { type: "loading" };
|
|
@@ -11805,7 +11993,7 @@ function useRequirementsChecklistViewModel(options) {
|
|
|
11805
11993
|
identityVerificationOptions,
|
|
11806
11994
|
removeWallet
|
|
11807
11995
|
]);
|
|
11808
|
-
const handleRequirementAction =
|
|
11996
|
+
const handleRequirementAction = useCallback16(
|
|
11809
11997
|
(requirement) => {
|
|
11810
11998
|
const inlineVerification = statusById.get(requirement.id)?.kycLevel !== void 0 && onRequirementActionOverride === void 0;
|
|
11811
11999
|
if (inlineVerification) {
|
|
@@ -11837,7 +12025,7 @@ function useRequirementsChecklistViewModel(options) {
|
|
|
11837
12025
|
coinlist
|
|
11838
12026
|
]
|
|
11839
12027
|
);
|
|
11840
|
-
const onEvent =
|
|
12028
|
+
const onEvent = useCallback16(
|
|
11841
12029
|
(event) => {
|
|
11842
12030
|
switch (event.type) {
|
|
11843
12031
|
case "ON_TOGGLE_ITEM":
|
|
@@ -11935,7 +12123,7 @@ function toVerificationUi(verifyingRequirementId, statusById, identityVerificati
|
|
|
11935
12123
|
}
|
|
11936
12124
|
|
|
11937
12125
|
// src/client/components/requirements/RequirementsChecklistContainer.tsx
|
|
11938
|
-
import { Fragment as
|
|
12126
|
+
import { Fragment as Fragment11, jsx as jsx68, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
11939
12127
|
function RequirementsChecklistContainer({
|
|
11940
12128
|
loading,
|
|
11941
12129
|
error,
|
|
@@ -11948,8 +12136,8 @@ function RequirementsChecklistContainer({
|
|
|
11948
12136
|
...options,
|
|
11949
12137
|
enabled
|
|
11950
12138
|
});
|
|
11951
|
-
return /* @__PURE__ */
|
|
11952
|
-
/* @__PURE__ */
|
|
12139
|
+
return /* @__PURE__ */ jsxs48(Fragment11, { children: [
|
|
12140
|
+
/* @__PURE__ */ jsx68(
|
|
11953
12141
|
RequirementsChecklistView,
|
|
11954
12142
|
{
|
|
11955
12143
|
state,
|
|
@@ -11959,13 +12147,13 @@ function RequirementsChecklistContainer({
|
|
|
11959
12147
|
unauthenticatedState: (
|
|
11960
12148
|
// The sign-in default lives here, not in the View: it is a connected
|
|
11961
12149
|
// component, and a View must render from what it is handed.
|
|
11962
|
-
unauthenticatedState !== void 0 ? unauthenticatedState : /* @__PURE__ */
|
|
12150
|
+
unauthenticatedState !== void 0 ? unauthenticatedState : /* @__PURE__ */ jsx68(CoinListSignInCardContainer, {})
|
|
11963
12151
|
),
|
|
11964
12152
|
className
|
|
11965
12153
|
}
|
|
11966
12154
|
),
|
|
11967
|
-
state.type === "content" && /* @__PURE__ */
|
|
11968
|
-
/* @__PURE__ */
|
|
12155
|
+
state.type === "content" && /* @__PURE__ */ jsxs48(Fragment11, { children: [
|
|
12156
|
+
/* @__PURE__ */ jsx68(
|
|
11969
12157
|
TaxDocumentModalContainer,
|
|
11970
12158
|
{
|
|
11971
12159
|
isOpen: state.taxDocumentOpen,
|
|
@@ -11973,11 +12161,11 @@ function RequirementsChecklistContainer({
|
|
|
11973
12161
|
onSubmitted: () => onEvent({ type: "ON_TAX_DOCUMENT_SUBMITTED" })
|
|
11974
12162
|
}
|
|
11975
12163
|
),
|
|
11976
|
-
state.verification && /* @__PURE__ */
|
|
12164
|
+
state.verification && /* @__PURE__ */ jsx68(
|
|
11977
12165
|
VerificationOverlay,
|
|
11978
12166
|
{
|
|
11979
12167
|
onClose: () => onEvent({ type: "ON_CLOSE_VERIFICATION" }),
|
|
11980
|
-
children: /* @__PURE__ */
|
|
12168
|
+
children: /* @__PURE__ */ jsx68(
|
|
11981
12169
|
IdentityVerificationContainer,
|
|
11982
12170
|
{
|
|
11983
12171
|
levelName: state.verification.levelName,
|
|
@@ -11988,7 +12176,7 @@ function RequirementsChecklistContainer({
|
|
|
11988
12176
|
)
|
|
11989
12177
|
}
|
|
11990
12178
|
),
|
|
11991
|
-
/* @__PURE__ */
|
|
12179
|
+
/* @__PURE__ */ jsx68(
|
|
11992
12180
|
ConnectWalletModalContainer,
|
|
11993
12181
|
{
|
|
11994
12182
|
isOpen: state.connectWalletOpen,
|
|
@@ -12021,7 +12209,7 @@ function pinoClientLogger(options) {
|
|
|
12021
12209
|
}
|
|
12022
12210
|
|
|
12023
12211
|
// src/client/hooks/auth/useCompleteOAuth.ts
|
|
12024
|
-
import { useEffect as
|
|
12212
|
+
import { useEffect as useEffect31, useRef as useRef18 } from "react";
|
|
12025
12213
|
function useCompleteOAuth(options) {
|
|
12026
12214
|
const { coinlist } = useCoinList();
|
|
12027
12215
|
const log = useLogger("useCompleteOAuth");
|
|
@@ -12032,7 +12220,7 @@ function useCompleteOAuth(options) {
|
|
|
12032
12220
|
onFailureRef.current = options.onFailure;
|
|
12033
12221
|
onSuccessRef.current = options.onSuccess;
|
|
12034
12222
|
const hasStartedExchangeRef = useRef18(false);
|
|
12035
|
-
|
|
12223
|
+
useEffect31(() => {
|
|
12036
12224
|
if (typeof window === "undefined") return;
|
|
12037
12225
|
const params = new URLSearchParams(window.location.search);
|
|
12038
12226
|
if (!params.has("code") && !params.has("error")) return;
|
|
@@ -12096,16 +12284,16 @@ function useCompleteOAuth(options) {
|
|
|
12096
12284
|
}
|
|
12097
12285
|
|
|
12098
12286
|
// src/client/hooks/checkout/coin-list/token-sale/data/useParticipations.ts
|
|
12099
|
-
import { useEffect as
|
|
12100
|
-
var
|
|
12287
|
+
import { useEffect as useEffect32, useState as useState33 } from "react";
|
|
12288
|
+
var LOADING_STATE9 = { type: "LOADING" };
|
|
12101
12289
|
function useParticipations(offerId, options = {}) {
|
|
12102
12290
|
const { coinlist, isReady } = useCoinList();
|
|
12103
12291
|
const log = useLogger("useParticipations");
|
|
12104
12292
|
const { data, enabled = true } = options;
|
|
12105
|
-
const [participationsState, setParticipationsState] =
|
|
12106
|
-
data !== void 0 ? { type: "CONTENT", participations: data } :
|
|
12293
|
+
const [participationsState, setParticipationsState] = useState33(
|
|
12294
|
+
data !== void 0 ? { type: "CONTENT", participations: data } : LOADING_STATE9
|
|
12107
12295
|
);
|
|
12108
|
-
|
|
12296
|
+
useEffect32(() => {
|
|
12109
12297
|
let isCancelled = false;
|
|
12110
12298
|
if (!enabled) {
|
|
12111
12299
|
return () => {
|
|
@@ -12114,7 +12302,7 @@ function useParticipations(offerId, options = {}) {
|
|
|
12114
12302
|
}
|
|
12115
12303
|
if (!isReady) {
|
|
12116
12304
|
if (data === void 0) {
|
|
12117
|
-
setParticipationsState(
|
|
12305
|
+
setParticipationsState(LOADING_STATE9);
|
|
12118
12306
|
}
|
|
12119
12307
|
return () => {
|
|
12120
12308
|
isCancelled = true;
|
|
@@ -12125,7 +12313,7 @@ function useParticipations(offerId, options = {}) {
|
|
|
12125
12313
|
isCancelled = true;
|
|
12126
12314
|
};
|
|
12127
12315
|
}
|
|
12128
|
-
setParticipationsState(
|
|
12316
|
+
setParticipationsState(LOADING_STATE9);
|
|
12129
12317
|
coinlist.tokenSale.list(offerId).then((participations) => {
|
|
12130
12318
|
if (!isCancelled) {
|
|
12131
12319
|
log.debug(() => ({
|
|
@@ -12152,16 +12340,16 @@ function useParticipations(offerId, options = {}) {
|
|
|
12152
12340
|
}
|
|
12153
12341
|
|
|
12154
12342
|
// src/client/hooks/offers/data/useOfferDetails.ts
|
|
12155
|
-
import { useEffect as
|
|
12156
|
-
var
|
|
12343
|
+
import { useEffect as useEffect33, useState as useState34 } from "react";
|
|
12344
|
+
var LOADING_STATE10 = { type: "LOADING" };
|
|
12157
12345
|
function useOfferDetails(offerId, options = {}) {
|
|
12158
12346
|
const { coinlist, isReady } = useCoinList();
|
|
12159
12347
|
const log = useLogger("useOfferDetails");
|
|
12160
12348
|
const { data, enabled = true } = options;
|
|
12161
|
-
const [offerDetailsState, setOfferDetailsState] =
|
|
12162
|
-
data !== void 0 ? { type: "CONTENT", offerDetail: data } :
|
|
12349
|
+
const [offerDetailsState, setOfferDetailsState] = useState34(
|
|
12350
|
+
data !== void 0 ? { type: "CONTENT", offerDetail: data } : LOADING_STATE10
|
|
12163
12351
|
);
|
|
12164
|
-
|
|
12352
|
+
useEffect33(() => {
|
|
12165
12353
|
let isCancelled = false;
|
|
12166
12354
|
if (!enabled) {
|
|
12167
12355
|
return () => {
|
|
@@ -12170,7 +12358,7 @@ function useOfferDetails(offerId, options = {}) {
|
|
|
12170
12358
|
}
|
|
12171
12359
|
if (!isReady) {
|
|
12172
12360
|
if (data === void 0) {
|
|
12173
|
-
setOfferDetailsState(
|
|
12361
|
+
setOfferDetailsState(LOADING_STATE10);
|
|
12174
12362
|
}
|
|
12175
12363
|
return () => {
|
|
12176
12364
|
isCancelled = true;
|
|
@@ -12181,7 +12369,7 @@ function useOfferDetails(offerId, options = {}) {
|
|
|
12181
12369
|
isCancelled = true;
|
|
12182
12370
|
};
|
|
12183
12371
|
}
|
|
12184
|
-
setOfferDetailsState(
|
|
12372
|
+
setOfferDetailsState(LOADING_STATE10);
|
|
12185
12373
|
coinlist.offers.get(offerId).then((offerDetail) => {
|
|
12186
12374
|
if (!isCancelled) {
|
|
12187
12375
|
log.debug(() => ({
|
|
@@ -12209,15 +12397,23 @@ function useOfferDetails(offerId, options = {}) {
|
|
|
12209
12397
|
|
|
12210
12398
|
// src/client/hooks/offers/shared/offer-asset-card.types.ts
|
|
12211
12399
|
var OfferAssetCardUi = {
|
|
12212
|
-
|
|
12400
|
+
/**
|
|
12401
|
+
* `tokenMetadata` is the registry's entry for the token the offer is about
|
|
12402
|
+
* (`TokenRegistrySnapshot.forOffer`), or `null` when it lists none. The
|
|
12403
|
+
* registry names win over the offer's own where both exist: they are the
|
|
12404
|
+
* token's canonical name, ticker and artwork, where the offer's are
|
|
12405
|
+
* catalogue copy.
|
|
12406
|
+
*/
|
|
12407
|
+
fromOffer: (offer, tokenMetadata = null) => ({
|
|
12213
12408
|
id: offer.id,
|
|
12214
|
-
|
|
12409
|
+
...tokenMetadata ? { name: tokenMetadata.name, symbol: String(tokenMetadata.symbol) } : {},
|
|
12410
|
+
logo: OfferLogoUi.fromOffer(offer, tokenMetadata)
|
|
12215
12411
|
}),
|
|
12216
|
-
fromDetail: (detail) => ({
|
|
12412
|
+
fromDetail: (detail, tokenMetadata = null) => ({
|
|
12217
12413
|
id: detail.id,
|
|
12218
|
-
name: detail.name,
|
|
12219
|
-
symbol: detail.asset.code,
|
|
12220
|
-
|
|
12414
|
+
name: tokenMetadata?.name ?? detail.name,
|
|
12415
|
+
symbol: tokenMetadata ? String(tokenMetadata.symbol) : detail.asset.code,
|
|
12416
|
+
logo: OfferLogoUi.fromOffer(detail, tokenMetadata)
|
|
12221
12417
|
})
|
|
12222
12418
|
};
|
|
12223
12419
|
|
|
@@ -12259,6 +12455,7 @@ export {
|
|
|
12259
12455
|
OAUTH_STATE_KEY,
|
|
12260
12456
|
OfferAssetCard,
|
|
12261
12457
|
OfferAssetCardUi,
|
|
12458
|
+
OfferLogoUi,
|
|
12262
12459
|
OfferSaleCard,
|
|
12263
12460
|
OfferSaleCardUi,
|
|
12264
12461
|
OffersAssetGrid,
|
|
@@ -12320,6 +12517,7 @@ export {
|
|
|
12320
12517
|
quoteOverAsks,
|
|
12321
12518
|
stablecoinIconUrl,
|
|
12322
12519
|
submitErc20Approval,
|
|
12520
|
+
tokenLogoSrcSet,
|
|
12323
12521
|
tokenLogoUrl,
|
|
12324
12522
|
tokenMetadataOf,
|
|
12325
12523
|
useCheckoutOfferTokenMetadata,
|
|
@@ -12362,6 +12560,7 @@ export {
|
|
|
12362
12560
|
useTaxDocument,
|
|
12363
12561
|
useTaxDocumentModalViewModel,
|
|
12364
12562
|
useTokenMetadata,
|
|
12563
|
+
useTokenRegistry,
|
|
12365
12564
|
validateAmount,
|
|
12366
12565
|
validateSellAmount,
|
|
12367
12566
|
validateSuperstateAmount
|