@coinlist-co/react 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-N3WBC2VS.js → chunk-5C4TEVM7.js} +2 -2
- package/dist/{chunk-V6WO67RO.js → chunk-7SB2GKEU.js} +1 -1
- package/dist/{chunk-V6WO67RO.js.map → chunk-7SB2GKEU.js.map} +1 -1
- package/dist/chunk-UEJVCU2J.js +43 -0
- package/dist/chunk-UEJVCU2J.js.map +1 -0
- package/dist/client/index.cjs +441 -302
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.d.cts +33 -3
- package/dist/client/index.d.ts +33 -3
- package/dist/client/index.js +422 -308
- package/dist/client/index.js.map +1 -1
- package/dist/{requirement-BEO42QOr.d.ts → requirement-Dk6nYN1c.d.cts} +8 -6
- package/dist/{requirement-BEO42QOr.d.cts → requirement-Dk6nYN1c.d.ts} +8 -6
- package/dist/server/index.cjs +41 -9
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.d.cts +68 -8
- package/dist/server/index.d.ts +68 -8
- package/dist/server/index.js +42 -11
- package/dist/server/index.js.map +1 -1
- package/dist/shared/index.cjs +68 -19
- package/dist/shared/index.cjs.map +1 -1
- package/dist/shared/index.d.cts +23 -3
- package/dist/shared/index.d.ts +23 -3
- package/dist/shared/index.js +8 -4
- package/dist/shared/index.js.map +1 -1
- package/package.json +27 -28
- package/dist/chunk-CRACFEJ4.js +0 -17
- package/dist/chunk-CRACFEJ4.js.map +0 -1
- package/dist/client/styles.css +0 -2
- /package/dist/{chunk-N3WBC2VS.js.map → chunk-5C4TEVM7.js.map} +0 -0
package/dist/client/index.js
CHANGED
|
@@ -22,21 +22,16 @@ import {
|
|
|
22
22
|
fetchParticipations,
|
|
23
23
|
fetchParticipationsPage,
|
|
24
24
|
fetchRequirementStatuses
|
|
25
|
-
} from "../chunk-
|
|
25
|
+
} from "../chunk-5C4TEVM7.js";
|
|
26
26
|
import {
|
|
27
27
|
AuthorizationCode,
|
|
28
|
-
CodeVerifier
|
|
29
|
-
|
|
28
|
+
CodeVerifier,
|
|
29
|
+
generatePKCEParams
|
|
30
|
+
} from "../chunk-UEJVCU2J.js";
|
|
30
31
|
import {
|
|
31
32
|
NotAuthenticatedError,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
getUUIDv4,
|
|
35
|
-
sha256
|
|
36
|
-
} from "../chunk-V6WO67RO.js";
|
|
37
|
-
|
|
38
|
-
// src/client/index.ts
|
|
39
|
-
import "./styles.css";
|
|
33
|
+
getUUIDv4
|
|
34
|
+
} from "../chunk-7SB2GKEU.js";
|
|
40
35
|
|
|
41
36
|
// src/client/CoinListProvider.tsx
|
|
42
37
|
import {
|
|
@@ -46,6 +41,36 @@ import {
|
|
|
46
41
|
useState
|
|
47
42
|
} from "react";
|
|
48
43
|
|
|
44
|
+
// src/client/generated/sdk-styles.gen.ts
|
|
45
|
+
var sdkStyles = '/*! tailwindcss v4.2.1 | 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-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking: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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--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-spacing:.25rem;--clcosdk-container-md:28rem;--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-font-weight-normal:400;--clcosdk-font-weight-medium:500;--clcosdk-font-weight-semibold:600;--clcosdk-radius-md:.375rem;--clcosdk-radius-lg:.5rem;--clcosdk-radius-2xl:1rem;--clcosdk-ease-in-out:cubic-bezier(.4, 0, .2, 1);--clcosdk-animate-spin:spin 1s linear 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}@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}}: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}.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 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 img,.clco-sdk-root svg{max-width:100%;display:block}}@layer components;@layer utilities{.clcosdk\\:absolute{position:absolute}.clcosdk\\:relative{position:relative}.clcosdk\\:inset-0{inset:calc(var(--clcosdk-spacing) * 0)}.clcosdk\\:top-4{top:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:right-4{right:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:mt-4{margin-top:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:mb-6{margin-bottom:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:flex{display:flex}.clcosdk\\:grid{display:grid}.clcosdk\\:inline-flex{display:inline-flex}.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-9{height:calc(var(--clcosdk-spacing) * 9)}.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-28{height:calc(var(--clcosdk-spacing) * 28)}.clcosdk\\:h-52{height:calc(var(--clcosdk-spacing) * 52)}.clcosdk\\:h-\\[18px\\]{height:18px}.clcosdk\\:h-auto{height:auto}.clcosdk\\:h-full{height:100%}.clcosdk\\:min-h-0{min-height:calc(var(--clcosdk-spacing) * 0)}.clcosdk\\:min-h-40{min-height:calc(var(--clcosdk-spacing) * 40)}.clcosdk\\:min-h-\\[2\\.4rem\\]{min-height:2.4rem}.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-12{width:calc(var(--clcosdk-spacing) * 12)}.clcosdk\\:w-16{width:calc(var(--clcosdk-spacing) * 16)}.clcosdk\\:w-28{width:calc(var(--clcosdk-spacing) * 28)}.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-\\[448px\\]{width:448px}.clcosdk\\:w-auto{width:auto}.clcosdk\\:w-full{width:100%}.clcosdk\\:max-w-\\[22rem\\]{max-width:22rem}.clcosdk\\:max-w-\\[28rem\\]{max-width:28rem}.clcosdk\\:max-w-\\[30rem\\]{max-width:30rem}.clcosdk\\:max-w-\\[1200px\\]{max-width:1200px}.clcosdk\\:max-w-md{max-width:var(--clcosdk-container-md)}.clcosdk\\:shrink-0{flex-shrink:0}.clcosdk\\:rotate-90{rotate:90deg}.clcosdk\\:animate-spin{animation:var(--clcosdk-animate-spin)}.clcosdk\\:cursor-pointer{cursor:pointer}.clcosdk\\:grid-cols-2{grid-template-columns:repeat(2,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-start{align-items:flex-start}.clcosdk\\:justify-between{justify-content:space-between}.clcosdk\\:justify-center{justify-content:center}.clcosdk\\:gap-1{gap:calc(var(--clcosdk-spacing) * 1)}.clcosdk\\:gap-2{gap:calc(var(--clcosdk-spacing) * 2)}.clcosdk\\:gap-3{gap:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:gap-4{gap:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:gap-5{gap:calc(var(--clcosdk-spacing) * 5)}.clcosdk\\:gap-6{gap:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:gap-8{gap:calc(var(--clcosdk-spacing) * 8)}.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\\:overflow-hidden{overflow:hidden}.clcosdk\\:rounded-2xl{border-radius:var(--clcosdk-radius-2xl)}.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\\:border{border-style:var(--tw-border-style);border-width:1px}.clcosdk\\:border-2{border-style:var(--tw-border-style);border-width:2px}.clcosdk\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.clcosdk\\:border-dashed{--tw-border-style:dashed;border-style:dashed}.clcosdk\\:border-accent\\/50{border-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.clcosdk\\:border-accent\\/50{border-color:color-mix(in oklab, var(--color-accent) 50%, transparent)}}.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-border,.clcosdk\\:border-border\\/60{border-color:var(--color-border)}@supports (color:color-mix(in lab, red, red)){.clcosdk\\:border-border\\/60{border-color:color-mix(in oklab, var(--color-border) 60%, transparent)}}.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-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-accent\\/10{background-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.clcosdk\\:bg-accent\\/10{background-color:color-mix(in oklab, var(--color-accent) 10%, transparent)}}.clcosdk\\:bg-background{background-color:var(--color-background)}.clcosdk\\:bg-brand-primary{background-color:var(--color-brand-primary)}.clcosdk\\:bg-error-subtle{background-color:var(--color-error-subtle)}.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-transparent{background-color:#0000}.clcosdk\\:bg-warning-subtle{background-color:var(--color-warning-subtle)}.clcosdk\\:bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.clcosdk\\:bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.clcosdk\\:from-surface{--tw-gradient-from:var(--color-surface);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.clcosdk\\:from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.clcosdk\\:via-section{--tw-gradient-via:var(--color-section);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.clcosdk\\:via-transparent{--tw-gradient-via:transparent;--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.clcosdk\\:to-background{--tw-gradient-to:var(--color-background);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.clcosdk\\:to-overlay\\/35{--tw-gradient-to:var(--color-overlay)}@supports (color:color-mix(in lab, red, red)){.clcosdk\\:to-overlay\\/35{--tw-gradient-to:color-mix(in oklab, var(--color-overlay) 35%, transparent)}}.clcosdk\\:to-overlay\\/35{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.clcosdk\\:object-cover{object-fit:cover}.clcosdk\\:p-0{padding:calc(var(--clcosdk-spacing) * 0)}.clcosdk\\:p-1\\.5{padding:calc(var(--clcosdk-spacing) * 1.5)}.clcosdk\\:p-3{padding:calc(var(--clcosdk-spacing) * 3)}.clcosdk\\:p-6{padding:calc(var(--clcosdk-spacing) * 6)}.clcosdk\\:p-8{padding:calc(var(--clcosdk-spacing) * 8)}.clcosdk\\:px-2{padding-inline:calc(var(--clcosdk-spacing) * 2)}.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\\:pt-4{padding-top:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:pb-4{padding-bottom:calc(var(--clcosdk-spacing) * 4)}.clcosdk\\:text-center{text-align:center}.clcosdk\\:text-left{text-align:left}.clcosdk\\:text-base{font-size:var(--clcosdk-text-base);line-height:var(--tw-leading,var(--clcosdk-text-base--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-\\[14px\\]{font-size:14px}.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-\\[110\\%\\]{--tw-leading:110%;line-height:110%}.clcosdk\\:leading-\\[120\\%\\]{--tw-leading:120%;line-height:120%}.clcosdk\\:leading-\\[125\\%\\]{--tw-leading:125%;line-height:125%}.clcosdk\\:leading-\\[130\\%\\]{--tw-leading:130%;line-height:130%}.clcosdk\\:leading-\\[135\\%\\]{--tw-leading:135%;line-height:135%}.clcosdk\\:leading-\\[140\\%\\]{--tw-leading:140%;line-height:140%}.clcosdk\\:leading-\\[150\\%\\]{--tw-leading:150%;line-height:150%}.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\\:whitespace-nowrap{white-space:nowrap}.clcosdk\\:text-error{color:var(--color-error)}.clcosdk\\:text-success{color:var(--color-success)}.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\\:underline{text-decoration-line:underline}.clcosdk\\:underline-offset-2{text-underline-offset:2px}.clcosdk\\:underline-offset-4{text-underline-offset:4px}.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-\\[0_0_0_3px_rgba\\(59\\,130\\,246\\,0\\.18\\)\\]{--tw-shadow:0 0 0 3px var(--tw-shadow-color,#3b82f62e);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-\\[0_0_0_3px_rgba\\(59\\,130\\,246\\,0\\.25\\)\\]{--tw-shadow:0 0 0 3px var(--tw-shadow-color,#3b82f640);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-\\[0_10px_24px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\]{--tw-shadow:0 10px 24px var(--tw-shadow-color,#0000002e);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-\\[0_10px_24px_rgba\\(0\\,0\\,0\\,0\\.25\\)\\]{--tw-shadow:0 10px 24px var(--tw-shadow-color,#00000040);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\\: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-all{transition-property:all;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-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\\:ease-in-out{--tw-ease:var(--clcosdk-ease-in-out);transition-timing-function:var(--clcosdk-ease-in-out)}@media (hover:hover){.clcosdk\\:hover\\:-translate-y-0\\.5:hover{--tw-translate-y:calc(var(--clcosdk-spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.clcosdk\\:hover\\:border-divider:hover{border-color:var(--color-divider)}.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\\:shadow-\\[0px_14px_32px_-10px_rgba\\(0\\,0\\,0\\,0\\.35\\)\\]:hover{--tw-shadow:0px 14px 32px -10px var(--tw-shadow-color,#00000059);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-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-accent-focus:focus-visible{--tw-ring-color:var(--color-accent-focus)}.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-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\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.clcosdk\\:disabled\\:opacity-40:disabled{opacity:.4}@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-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-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{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-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}@keyframes spin{to{transform:rotate(360deg)}}';
|
|
46
|
+
|
|
47
|
+
// src/client/CoinListStyleScope.tsx
|
|
48
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
49
|
+
function CoinListStyleScope({ children }) {
|
|
50
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
51
|
+
/* @__PURE__ */ jsx("link", { rel: "preconnect", href: "https://fonts.googleapis.com" }),
|
|
52
|
+
/* @__PURE__ */ jsx(
|
|
53
|
+
"link",
|
|
54
|
+
{
|
|
55
|
+
rel: "preconnect",
|
|
56
|
+
href: "https://fonts.gstatic.com",
|
|
57
|
+
crossOrigin: "anonymous"
|
|
58
|
+
}
|
|
59
|
+
),
|
|
60
|
+
/* @__PURE__ */ jsx(
|
|
61
|
+
"link",
|
|
62
|
+
{
|
|
63
|
+
rel: "stylesheet",
|
|
64
|
+
href: "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap"
|
|
65
|
+
}
|
|
66
|
+
),
|
|
67
|
+
/* @__PURE__ */ jsxs("div", { className: "clco-sdk-root", children: [
|
|
68
|
+
/* @__PURE__ */ jsx("style", { dangerouslySetInnerHTML: { __html: sdkStyles } }),
|
|
69
|
+
children
|
|
70
|
+
] })
|
|
71
|
+
] });
|
|
72
|
+
}
|
|
73
|
+
|
|
49
74
|
// src/client/core/api/middleware/device-id.ts
|
|
50
75
|
var DEVICE_ID_KEY = "coinlist.device_id";
|
|
51
76
|
function getDeviceId() {
|
|
@@ -131,19 +156,16 @@ var CoinListClientImpl = class {
|
|
|
131
156
|
return this._accessToken !== null ? "logged-in" : "logged-out";
|
|
132
157
|
}
|
|
133
158
|
async startOAuth() {
|
|
134
|
-
const
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
const codeChallenge = arrayBufferToBase64Url(codeChallengeRaw, false);
|
|
138
|
-
sessionStorage.setItem(OAUTH_STATE_KEY, state);
|
|
139
|
-
sessionStorage.setItem(OAUTH_CODE_VERIFIER_KEY, codeVerifier);
|
|
159
|
+
const pkceParams = await generatePKCEParams(this._config);
|
|
160
|
+
sessionStorage.setItem(OAUTH_STATE_KEY, pkceParams.state);
|
|
161
|
+
sessionStorage.setItem(OAUTH_CODE_VERIFIER_KEY, pkceParams.codeVerifier);
|
|
140
162
|
const params = new URLSearchParams({
|
|
141
|
-
client_id:
|
|
142
|
-
response_type:
|
|
143
|
-
redirect_uri:
|
|
144
|
-
code_challenge: codeChallenge,
|
|
145
|
-
code_challenge_method:
|
|
146
|
-
state
|
|
163
|
+
client_id: pkceParams.clientId,
|
|
164
|
+
response_type: pkceParams.responseType,
|
|
165
|
+
redirect_uri: pkceParams.redirectUri,
|
|
166
|
+
code_challenge: pkceParams.codeChallenge,
|
|
167
|
+
code_challenge_method: pkceParams.codeChallengeMethod,
|
|
168
|
+
state: pkceParams.state
|
|
147
169
|
});
|
|
148
170
|
const baseUrl = this._config.coinlistBaseUrl ?? COINLIST_BASE_URL;
|
|
149
171
|
const url = `${baseUrl}${OAUTH_PAGE_PATH}?${params.toString()}`;
|
|
@@ -267,9 +289,12 @@ function createCoinListClient(config) {
|
|
|
267
289
|
}
|
|
268
290
|
|
|
269
291
|
// src/client/CoinListProvider.tsx
|
|
270
|
-
import { jsx } from "react/jsx-runtime";
|
|
292
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
271
293
|
var CoinListContext = createContext(null);
|
|
272
|
-
function
|
|
294
|
+
function CoinListContextProvider({
|
|
295
|
+
config,
|
|
296
|
+
children
|
|
297
|
+
}) {
|
|
273
298
|
const [isReady, setIsReady] = useState(false);
|
|
274
299
|
const coinlist = useMemo(() => createCoinListClient(config), [config]);
|
|
275
300
|
useEffect(() => {
|
|
@@ -292,7 +317,10 @@ function CoinListProvider({ config, children }) {
|
|
|
292
317
|
};
|
|
293
318
|
}, [coinlist]);
|
|
294
319
|
const value = useMemo(() => ({ coinlist, isReady }), [coinlist, isReady]);
|
|
295
|
-
return /* @__PURE__ */
|
|
320
|
+
return /* @__PURE__ */ jsx2(CoinListContext.Provider, { value, children });
|
|
321
|
+
}
|
|
322
|
+
function CoinListProvider({ config, children }) {
|
|
323
|
+
return /* @__PURE__ */ jsx2(CoinListContextProvider, { config, children: /* @__PURE__ */ jsx2(CoinListStyleScope, { children }) });
|
|
296
324
|
}
|
|
297
325
|
|
|
298
326
|
// src/client/components/design-system/AlertBanner.tsx
|
|
@@ -300,17 +328,17 @@ import { CircleCheck, Info } from "lucide-react";
|
|
|
300
328
|
|
|
301
329
|
// src/client/components/design-system/tokens/typography.ts
|
|
302
330
|
var typeClasses = {
|
|
303
|
-
hero: "text-[64px] leading-[110%] font-semibold",
|
|
304
|
-
display: "text-[48px] leading-[110%] font-semibold",
|
|
305
|
-
h1: "text-[36px] leading-[120%] font-semibold",
|
|
306
|
-
h2: "text-[28px] leading-[125%] font-semibold",
|
|
307
|
-
h3: "text-[22px] leading-[130%] font-semibold",
|
|
308
|
-
h4: "text-[18px] leading-[135%] font-medium",
|
|
309
|
-
body: "text-[16px] leading-[150%] font-normal",
|
|
310
|
-
subhead: "text-[14px] leading-[150%] font-normal",
|
|
311
|
-
caption: "text-[12px] leading-[140%] font-normal",
|
|
312
|
-
label: "text-[14px] leading-[140%] font-medium",
|
|
313
|
-
data: "text-[14px] leading-[140%] font-normal"
|
|
331
|
+
hero: "clcosdk:text-[64px] clcosdk:leading-[110%] clcosdk:font-semibold",
|
|
332
|
+
display: "clcosdk:text-[48px] clcosdk:leading-[110%] clcosdk:font-semibold",
|
|
333
|
+
h1: "clcosdk:text-[36px] clcosdk:leading-[120%] clcosdk:font-semibold",
|
|
334
|
+
h2: "clcosdk:text-[28px] clcosdk:leading-[125%] clcosdk:font-semibold",
|
|
335
|
+
h3: "clcosdk:text-[22px] clcosdk:leading-[130%] clcosdk:font-semibold",
|
|
336
|
+
h4: "clcosdk:text-[18px] clcosdk:leading-[135%] clcosdk:font-medium",
|
|
337
|
+
body: "clcosdk:text-[16px] clcosdk:leading-[150%] clcosdk:font-normal",
|
|
338
|
+
subhead: "clcosdk:text-[14px] clcosdk:leading-[150%] clcosdk:font-normal",
|
|
339
|
+
caption: "clcosdk:text-[12px] clcosdk:leading-[140%] clcosdk:font-normal",
|
|
340
|
+
label: "clcosdk:text-[14px] clcosdk:leading-[140%] clcosdk:font-medium",
|
|
341
|
+
data: "clcosdk:text-[14px] clcosdk:leading-[140%] clcosdk:font-normal"
|
|
314
342
|
};
|
|
315
343
|
|
|
316
344
|
// src/client/components/design-system/utils.ts
|
|
@@ -320,26 +348,26 @@ function cn(...inputs) {
|
|
|
320
348
|
}
|
|
321
349
|
|
|
322
350
|
// src/client/components/design-system/AlertBanner.tsx
|
|
323
|
-
import { jsx as
|
|
351
|
+
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
324
352
|
var variantConfig = {
|
|
325
353
|
info: {
|
|
326
|
-
container: "bg-surface border-border",
|
|
327
|
-
text: "text-text-secondary",
|
|
354
|
+
container: "clcosdk:bg-surface clcosdk:border-border",
|
|
355
|
+
text: "clcosdk:text-text-secondary",
|
|
328
356
|
Icon: Info
|
|
329
357
|
},
|
|
330
358
|
success: {
|
|
331
|
-
container: "bg-success-subtle border-success-border",
|
|
332
|
-
text: "text-success",
|
|
359
|
+
container: "clcosdk:bg-success-subtle clcosdk:border-success-border",
|
|
360
|
+
text: "clcosdk:text-success",
|
|
333
361
|
Icon: CircleCheck
|
|
334
362
|
},
|
|
335
363
|
warning: {
|
|
336
|
-
container: "bg-warning-subtle border-warning-border",
|
|
337
|
-
text: "text-warning",
|
|
364
|
+
container: "clcosdk:bg-warning-subtle clcosdk:border-warning-border",
|
|
365
|
+
text: "clcosdk:text-warning",
|
|
338
366
|
Icon: Info
|
|
339
367
|
},
|
|
340
368
|
error: {
|
|
341
|
-
container: "bg-error-subtle border-error-border",
|
|
342
|
-
text: "text-error",
|
|
369
|
+
container: "clcosdk:bg-error-subtle clcosdk:border-error-border",
|
|
370
|
+
text: "clcosdk:text-error",
|
|
343
371
|
Icon: Info
|
|
344
372
|
}
|
|
345
373
|
};
|
|
@@ -350,18 +378,24 @@ function AlertBanner({
|
|
|
350
378
|
className
|
|
351
379
|
}) {
|
|
352
380
|
const { container, text, Icon } = variantConfig[variant];
|
|
353
|
-
return /* @__PURE__ */
|
|
381
|
+
return /* @__PURE__ */ jsxs2(
|
|
354
382
|
"div",
|
|
355
383
|
{
|
|
356
384
|
className: cn(
|
|
357
|
-
"flex items-center rounded-btn border p-3",
|
|
358
|
-
icon && "gap-2",
|
|
385
|
+
"clcosdk:flex clcosdk:items-center clcosdk:rounded-btn clcosdk:border clcosdk:p-3",
|
|
386
|
+
icon && "clcosdk:gap-2",
|
|
359
387
|
container,
|
|
360
388
|
className
|
|
361
389
|
),
|
|
362
390
|
children: [
|
|
363
|
-
icon && /* @__PURE__ */
|
|
364
|
-
|
|
391
|
+
icon && /* @__PURE__ */ jsx3(
|
|
392
|
+
Icon,
|
|
393
|
+
{
|
|
394
|
+
className: cn("clcosdk:h-4 clcosdk:w-4 clcosdk:shrink-0", text),
|
|
395
|
+
"aria-hidden": "true"
|
|
396
|
+
}
|
|
397
|
+
),
|
|
398
|
+
/* @__PURE__ */ jsx3("p", { className: cn(typeClasses.subhead, text), children: content })
|
|
365
399
|
]
|
|
366
400
|
}
|
|
367
401
|
);
|
|
@@ -369,31 +403,31 @@ function AlertBanner({
|
|
|
369
403
|
|
|
370
404
|
// src/client/components/design-system/CloseButton.tsx
|
|
371
405
|
import { X } from "lucide-react";
|
|
372
|
-
import { jsx as
|
|
406
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
373
407
|
function CloseButton({
|
|
374
408
|
onClick,
|
|
375
409
|
"aria-label": ariaLabel = "Close",
|
|
376
410
|
className
|
|
377
411
|
}) {
|
|
378
|
-
return /* @__PURE__ */
|
|
412
|
+
return /* @__PURE__ */ jsx4(
|
|
379
413
|
"button",
|
|
380
414
|
{
|
|
381
415
|
type: "button",
|
|
382
416
|
onClick,
|
|
383
417
|
"aria-label": ariaLabel,
|
|
384
418
|
className: cn(
|
|
385
|
-
"cursor-pointer rounded-full p-1.5 text-text-secondary transition-colors hover:bg-surface hover:text-text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-offset-2",
|
|
419
|
+
"clcosdk:cursor-pointer clcosdk:rounded-full clcosdk:p-1.5 clcosdk:text-text-secondary clcosdk:transition-colors clcosdk:hover:bg-surface clcosdk:hover:text-text-primary clcosdk:focus-visible:outline-none clcosdk:focus-visible:ring-2 clcosdk:focus-visible:ring-gray-400 clcosdk:focus-visible:ring-offset-2",
|
|
386
420
|
className
|
|
387
421
|
),
|
|
388
|
-
children: /* @__PURE__ */
|
|
422
|
+
children: /* @__PURE__ */ jsx4(X, { className: "clcosdk:h-5 clcosdk:w-5" })
|
|
389
423
|
}
|
|
390
424
|
);
|
|
391
425
|
}
|
|
392
426
|
|
|
393
427
|
// src/client/components/design-system/logos/CoinListWordmark.tsx
|
|
394
|
-
import { jsx as
|
|
428
|
+
import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
395
429
|
function CoinListWordmark(props) {
|
|
396
|
-
return /* @__PURE__ */
|
|
430
|
+
return /* @__PURE__ */ jsxs3(
|
|
397
431
|
"svg",
|
|
398
432
|
{
|
|
399
433
|
width: "638",
|
|
@@ -404,35 +438,35 @@ function CoinListWordmark(props) {
|
|
|
404
438
|
"aria-hidden": "true",
|
|
405
439
|
...props,
|
|
406
440
|
children: [
|
|
407
|
-
/* @__PURE__ */
|
|
441
|
+
/* @__PURE__ */ jsx5(
|
|
408
442
|
"path",
|
|
409
443
|
{
|
|
410
444
|
d: "M68.7724 123.966C74.8226 124.172 80.7696 123.519 86.5104 121.799C97.4076 118.531 106.551 112.58 113.942 103.947C113.942 103.947 113.942 103.947 113.908 103.912C111.879 102.193 109.851 100.507 107.857 98.8218L105.829 97.1363C105.451 96.8268 105.107 96.5172 104.729 96.2076C103.939 95.5197 103.148 94.8662 102.323 94.2126C95.3107 98.8562 87.6104 101.539 79.1196 101.883C74.8569 102.055 70.6287 101.642 66.5036 100.507C59.5252 98.6154 53.2688 95.1757 48.2499 89.7755C39.1059 79.938 35.8745 68.1743 38.2465 55.0348C39.7246 46.9172 43.4373 40.0723 49.1093 34.5C47.9061 34.7408 46.703 35.016 45.5342 35.3943C36.5277 38.2148 29.6181 43.6839 24.6336 51.6639C20.6803 58.0273 18.5834 64.9411 18.3428 72.4739C18.2053 76.7047 18.4803 80.7979 19.4428 84.7879C22.5023 97.2395 29.3087 107.043 39.6903 114.335H39.7934V114.403C40.1372 114.644 40.4809 114.919 40.8247 115.16C49.2812 120.801 58.5971 123.691 68.7724 124.035V123.966Z",
|
|
411
445
|
fill: "currentColor"
|
|
412
446
|
}
|
|
413
447
|
),
|
|
414
|
-
/* @__PURE__ */
|
|
448
|
+
/* @__PURE__ */ jsx5(
|
|
415
449
|
"path",
|
|
416
450
|
{
|
|
417
451
|
d: "M72.2101 89.052C68.1881 90.8406 64.0286 91.8725 59.6973 92.2165C64.9912 95.209 70.8007 96.688 77.1259 96.8256C79.1885 96.86 81.251 96.6536 83.4167 96.3097C88.745 95.4841 93.6951 93.5579 98.3015 90.7374C93.9358 87.057 89.6044 83.4109 85.2386 79.7305C81.526 83.6861 77.1946 86.8506 72.2101 89.052Z",
|
|
418
452
|
fill: "currentColor"
|
|
419
453
|
}
|
|
420
454
|
),
|
|
421
|
-
/* @__PURE__ */
|
|
455
|
+
/* @__PURE__ */ jsx5(
|
|
422
456
|
"path",
|
|
423
457
|
{
|
|
424
458
|
d: "M66.9848 0.241609C66.4348 0.276006 65.8848 0.344799 65.3691 0.413592C70.663 1.4111 75.7851 3.13093 80.6321 5.71068C90.0511 10.7326 97.3732 17.9215 102.289 27.4494L104.936 25.1448C107.652 22.7714 110.368 20.3981 113.084 18.0247C106.655 11.1797 99.092 6.15784 90.223 3.06214C84.3103 0.998336 78.2601 -0.0335643 72.0381 0.000832319C70.388 0.000832319 68.7036 0.138419 66.9848 0.241609Z",
|
|
425
459
|
fill: "currentColor"
|
|
426
460
|
}
|
|
427
461
|
),
|
|
428
|
-
/* @__PURE__ */
|
|
462
|
+
/* @__PURE__ */ jsx5(
|
|
429
463
|
"path",
|
|
430
464
|
{
|
|
431
465
|
d: "M25.4242 107.871C17.4833 97.9988 13.1519 86.7167 13.2207 73.818C13.2207 67.317 14.5614 61.0568 17.1396 55.1062C20.9553 46.2662 26.9711 39.1805 35.4276 34.2962C43.3685 29.687 51.9968 27.8984 61.1752 29.2743C70.5943 30.7189 78.3976 35.2249 84.6541 42.2762C84.6541 42.2762 84.8603 42.5514 84.9634 42.6546C85.8916 41.8291 86.8541 41.0035 87.7823 40.178L88.9167 39.1805C89.8792 38.355 90.8417 37.4951 91.8043 36.6696C94.0043 34.7434 96.17 32.8515 98.3357 30.9253C94.1075 22.223 87.7479 15.55 79.3258 10.8377C69.3911 5.26541 58.7002 3.54557 47.3904 5.02463C41.7528 5.78136 36.3557 7.50119 31.1993 10.0465C13.702 18.7145 1.08597 36.532 0.0546833 58.4771C-0.117196 62.0887 0.123436 65.7348 0.673452 69.3464C2.04849 78.3239 5.34859 86.4759 10.6425 93.8368C14.7676 99.5123 19.6834 104.19 25.3898 107.871H25.4242Z",
|
|
432
466
|
fill: "currentColor"
|
|
433
467
|
}
|
|
434
468
|
),
|
|
435
|
-
/* @__PURE__ */
|
|
469
|
+
/* @__PURE__ */ jsx5(
|
|
436
470
|
"path",
|
|
437
471
|
{
|
|
438
472
|
fillRule: "evenodd",
|
|
@@ -447,18 +481,18 @@ function CoinListWordmark(props) {
|
|
|
447
481
|
}
|
|
448
482
|
|
|
449
483
|
// src/client/components/design-system/PoweredByCoinList.tsx
|
|
450
|
-
import { jsx as
|
|
484
|
+
import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
451
485
|
function PoweredByCoinList({ className }) {
|
|
452
|
-
return /* @__PURE__ */
|
|
486
|
+
return /* @__PURE__ */ jsxs4(
|
|
453
487
|
"div",
|
|
454
488
|
{
|
|
455
489
|
className: cn(
|
|
456
|
-
"flex items-center justify-center gap-[5px] text-text-secondary",
|
|
490
|
+
"clcosdk:flex clcosdk:items-center clcosdk:justify-center clcosdk:gap-[5px] clcosdk:text-text-secondary",
|
|
457
491
|
className
|
|
458
492
|
),
|
|
459
493
|
children: [
|
|
460
|
-
/* @__PURE__ */
|
|
461
|
-
/* @__PURE__ */
|
|
494
|
+
/* @__PURE__ */ jsx6("span", { className: cn(typeClasses.caption, "clcosdk:tracking-[0.12px]"), children: "Powered by" }),
|
|
495
|
+
/* @__PURE__ */ jsx6(CoinListWordmark, { className: "clcosdk:h-3 clcosdk:w-auto" })
|
|
462
496
|
]
|
|
463
497
|
}
|
|
464
498
|
);
|
|
@@ -467,48 +501,48 @@ function PoweredByCoinList({ className }) {
|
|
|
467
501
|
// src/client/components/design-system/ClButton.tsx
|
|
468
502
|
import { cva } from "class-variance-authority";
|
|
469
503
|
import { forwardRef } from "react";
|
|
470
|
-
import { jsx as
|
|
504
|
+
import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
471
505
|
var buttonVariants = cva(
|
|
472
|
-
"inline-flex items-center justify-center gap-3 whitespace-nowrap transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-40 cursor-pointer",
|
|
506
|
+
"clcosdk:inline-flex clcosdk:items-center clcosdk:justify-center clcosdk:gap-3 clcosdk:whitespace-nowrap clcosdk:transition-colors clcosdk:focus-visible:outline-none clcosdk:focus-visible:ring-2 clcosdk:focus-visible:ring-offset-2 clcosdk:disabled:pointer-events-none clcosdk:disabled:opacity-40 clcosdk:cursor-pointer",
|
|
473
507
|
{
|
|
474
508
|
variants: {
|
|
475
509
|
variant: {
|
|
476
510
|
// Primary — tokens auto-switch: dark bg (#171717) → light bg (#f4f4f5) in dark mode
|
|
477
|
-
primary: "bg-brand-primary text-text-inverse font-semibold hover:bg-brand-primary-hover active:bg-brand-primary-active focus-visible:ring-gray-500",
|
|
511
|
+
primary: "clcosdk:bg-brand-primary clcosdk:text-text-inverse clcosdk:font-semibold clcosdk:hover:bg-brand-primary-hover clcosdk:active:bg-brand-primary-active clcosdk:focus-visible:ring-gray-500",
|
|
478
512
|
// Secondary — bg-section, border-border, text-text-primary all auto-switch
|
|
479
513
|
// hover maps to border token value; active has no token so uses dark: override
|
|
480
|
-
secondary: "bg-section border border-border text-text-primary font-medium hover:bg-border active:bg-[#d9d9d9] dark:active:bg-divider focus-visible:ring-gray-400",
|
|
514
|
+
secondary: "clcosdk:bg-section clcosdk:border clcosdk:border-border clcosdk:text-text-primary clcosdk:font-medium clcosdk:hover:bg-border clcosdk:active:bg-[#d9d9d9] clcosdk:dark:active:bg-divider clcosdk:focus-visible:ring-gray-400",
|
|
481
515
|
// Destructive — error tokens auto-switch to translucent dark equivalents
|
|
482
516
|
// hover/active have no tokens so use dark: overrides
|
|
483
|
-
destructive: "bg-error-subtle border border-error-border text-error font-semibold hover:bg-[#fcdcd8] active:bg-[#f9c9c4] dark:hover:bg-[rgba(248,113,113,0.20)] dark:active:bg-[rgba(248,113,113,0.30)] focus-visible:ring-red-400",
|
|
517
|
+
destructive: "clcosdk:bg-error-subtle clcosdk:border clcosdk:border-error-border clcosdk:text-error clcosdk:font-semibold clcosdk:hover:bg-[#fcdcd8] clcosdk:active:bg-[#f9c9c4] clcosdk:dark:hover:bg-[rgba(248,113,113,0.20)] clcosdk:dark:active:bg-[rgba(248,113,113,0.30)] clcosdk:focus-visible:ring-red-400",
|
|
484
518
|
// Ghost — transparent base; hover/active use section/border tokens (auto-switch)
|
|
485
|
-
ghost: "bg-transparent text-text-primary font-medium hover:bg-section active:bg-border focus-visible:ring-gray-400",
|
|
519
|
+
ghost: "clcosdk:bg-transparent clcosdk:text-text-primary clcosdk:font-medium clcosdk:hover:bg-section clcosdk:active:bg-border clcosdk:focus-visible:ring-gray-400",
|
|
486
520
|
// Link — text-text-primary auto-switches light/dark
|
|
487
|
-
link: "h-auto p-0 text-text-primary font-medium underline-offset-4 hover:underline focus-visible:ring-gray-500",
|
|
521
|
+
link: "clcosdk:h-auto clcosdk:p-0 clcosdk:text-text-primary clcosdk:font-medium clcosdk:underline-offset-4 clcosdk:hover:underline clcosdk:focus-visible:ring-gray-500",
|
|
488
522
|
// Destructive link — text-error auto-switches (#b42318 → #f87171 in dark)
|
|
489
|
-
destructiveLink: "h-auto p-0 text-error font-medium hover:text-[#8b1a13] active:text-[#6d1510] dark:hover:text-[#fca5a5] dark:active:text-[#f87171] focus-visible:ring-red-500"
|
|
523
|
+
destructiveLink: "clcosdk:h-auto clcosdk:p-0 clcosdk:text-error clcosdk:font-medium clcosdk:hover:text-[#8b1a13] clcosdk:active:text-[#6d1510] clcosdk:dark:hover:text-[#fca5a5] clcosdk:dark:active:text-[#f87171] clcosdk:focus-visible:ring-red-500"
|
|
490
524
|
},
|
|
491
525
|
size: {
|
|
492
|
-
sm: "h-9 px-4 text-sm tracking-[0.28px]",
|
|
493
|
-
default: "h-11 px-5 text-sm tracking-[0.28px]",
|
|
494
|
-
lg: "h-14 px-6 text-base",
|
|
495
|
-
icon: "h-12 w-12"
|
|
526
|
+
sm: "clcosdk:h-9 clcosdk:px-4 clcosdk:text-sm clcosdk:tracking-[0.28px]",
|
|
527
|
+
default: "clcosdk:h-11 clcosdk:px-5 clcosdk:text-sm clcosdk:tracking-[0.28px]",
|
|
528
|
+
lg: "clcosdk:h-14 clcosdk:px-6 clcosdk:text-base",
|
|
529
|
+
icon: "clcosdk:h-12 clcosdk:w-12"
|
|
496
530
|
},
|
|
497
531
|
radius: {
|
|
498
|
-
pill: "rounded-full",
|
|
532
|
+
pill: "clcosdk:rounded-full",
|
|
499
533
|
// compound variants below handle size-specific radii
|
|
500
534
|
rounded: ""
|
|
501
535
|
},
|
|
502
536
|
fullWidth: {
|
|
503
|
-
true: "w-full",
|
|
537
|
+
true: "clcosdk:w-full",
|
|
504
538
|
false: ""
|
|
505
539
|
}
|
|
506
540
|
},
|
|
507
541
|
compoundVariants: [
|
|
508
|
-
{ size: "sm", radius: "rounded", className: "rounded-lg" },
|
|
509
|
-
{ size: "default", radius: "rounded", className: "rounded-2xl" },
|
|
510
|
-
{ size: "lg", radius: "rounded", className: "rounded-2xl" },
|
|
511
|
-
{ size: "icon", radius: "rounded", className: "rounded-md" }
|
|
542
|
+
{ size: "sm", radius: "rounded", className: "clcosdk:rounded-lg" },
|
|
543
|
+
{ size: "default", radius: "rounded", className: "clcosdk:rounded-2xl" },
|
|
544
|
+
{ size: "lg", radius: "rounded", className: "clcosdk:rounded-2xl" },
|
|
545
|
+
{ size: "icon", radius: "rounded", className: "clcosdk:rounded-md" }
|
|
512
546
|
],
|
|
513
547
|
defaultVariants: {
|
|
514
548
|
variant: "primary",
|
|
@@ -534,7 +568,7 @@ var ClButton = forwardRef(
|
|
|
534
568
|
...props
|
|
535
569
|
}, ref) => {
|
|
536
570
|
const isDisabled = disabled || isLoading;
|
|
537
|
-
return /* @__PURE__ */
|
|
571
|
+
return /* @__PURE__ */ jsxs5(
|
|
538
572
|
"button",
|
|
539
573
|
{
|
|
540
574
|
className: cn(
|
|
@@ -545,16 +579,16 @@ var ClButton = forwardRef(
|
|
|
545
579
|
disabled: isDisabled,
|
|
546
580
|
...props,
|
|
547
581
|
children: [
|
|
548
|
-
isLoading && /* @__PURE__ */
|
|
582
|
+
isLoading && /* @__PURE__ */ jsx7(
|
|
549
583
|
"span",
|
|
550
584
|
{
|
|
551
|
-
className: "h-4 w-4 shrink-0 animate-spin rounded-full border-2 border-current border-t-transparent opacity-60",
|
|
585
|
+
className: "clcosdk:h-4 clcosdk:w-4 clcosdk:shrink-0 clcosdk:animate-spin clcosdk:rounded-full clcosdk:border-2 clcosdk:border-current clcosdk:border-t-transparent clcosdk:opacity-60",
|
|
552
586
|
"aria-hidden": "true"
|
|
553
587
|
}
|
|
554
588
|
),
|
|
555
|
-
startIcon && !isLoading && /* @__PURE__ */
|
|
556
|
-
/* @__PURE__ */
|
|
557
|
-
endIcon && !isLoading && /* @__PURE__ */
|
|
589
|
+
startIcon && !isLoading && /* @__PURE__ */ jsx7("span", { className: "clcosdk:shrink-0", children: startIcon }),
|
|
590
|
+
/* @__PURE__ */ jsx7("span", { className: cn(isLoading && "clcosdk:opacity-60"), children: isLoading && loadingText ? loadingText : children }),
|
|
591
|
+
endIcon && !isLoading && /* @__PURE__ */ jsx7("span", { className: "clcosdk:shrink-0", children: endIcon })
|
|
558
592
|
]
|
|
559
593
|
}
|
|
560
594
|
);
|
|
@@ -563,9 +597,9 @@ var ClButton = forwardRef(
|
|
|
563
597
|
ClButton.displayName = "ClButton";
|
|
564
598
|
|
|
565
599
|
// src/client/components/design-system/logos/CoinListLogomark.tsx
|
|
566
|
-
import { jsx as
|
|
600
|
+
import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
567
601
|
function CoinListLogomark(props) {
|
|
568
|
-
return /* @__PURE__ */
|
|
602
|
+
return /* @__PURE__ */ jsxs6(
|
|
569
603
|
"svg",
|
|
570
604
|
{
|
|
571
605
|
width: "115",
|
|
@@ -576,28 +610,28 @@ function CoinListLogomark(props) {
|
|
|
576
610
|
"aria-hidden": "true",
|
|
577
611
|
...props,
|
|
578
612
|
children: [
|
|
579
|
-
/* @__PURE__ */
|
|
613
|
+
/* @__PURE__ */ jsx8(
|
|
580
614
|
"path",
|
|
581
615
|
{
|
|
582
616
|
d: "M69.7519 123.966C75.8021 124.172 81.7491 123.519 87.4899 121.799C98.3871 118.531 107.531 112.58 114.922 103.947C114.922 103.947 114.922 103.947 114.888 103.912C112.859 102.193 110.831 100.507 108.837 98.8218L106.809 97.1363C106.431 96.8268 106.087 96.5172 105.709 96.2076C104.919 95.5197 104.128 94.8662 103.303 94.2126C96.2902 98.8562 88.5899 101.539 80.0991 101.883C75.8364 102.055 71.6082 101.642 67.4831 100.507C60.5047 98.6154 54.2483 95.1757 49.2294 89.7755C40.0854 79.938 36.854 68.1743 39.226 55.0348C40.7041 46.9172 44.4168 40.0723 50.0888 34.5C48.8856 34.7408 47.6825 35.016 46.5137 35.3943C37.5072 38.2148 30.5976 43.6839 25.6131 51.6639C21.6598 58.0273 19.5629 64.9411 19.3223 72.4739C19.1848 76.7047 19.4598 80.7979 20.4223 84.7879C23.4818 97.2395 30.2882 107.043 40.6698 114.335H40.7729V114.403C41.1167 114.644 41.4604 114.919 41.8042 115.16C50.2607 120.801 59.5766 123.691 69.7519 124.035V123.966Z",
|
|
583
617
|
fill: "currentColor"
|
|
584
618
|
}
|
|
585
619
|
),
|
|
586
|
-
/* @__PURE__ */
|
|
620
|
+
/* @__PURE__ */ jsx8(
|
|
587
621
|
"path",
|
|
588
622
|
{
|
|
589
623
|
d: "M73.1896 89.052C69.1676 90.8406 65.0081 91.8725 60.6768 92.2165C65.9707 95.209 71.7802 96.688 78.1054 96.8256C80.168 96.86 82.2305 96.6536 84.3962 96.3097C89.7245 95.4841 94.6746 93.5579 99.281 90.7374C94.9153 87.057 90.5839 83.4109 86.2181 79.7305C82.5055 83.6861 78.1741 86.8506 73.1896 89.052Z",
|
|
590
624
|
fill: "currentColor"
|
|
591
625
|
}
|
|
592
626
|
),
|
|
593
|
-
/* @__PURE__ */
|
|
627
|
+
/* @__PURE__ */ jsx8(
|
|
594
628
|
"path",
|
|
595
629
|
{
|
|
596
630
|
d: "M67.9643 0.241609C67.4143 0.276006 66.8643 0.344799 66.3486 0.413592C71.6425 1.4111 76.7646 3.13093 81.6116 5.71068C91.0306 10.7326 98.3527 17.9215 103.268 27.4494L105.915 25.1448C108.631 22.7714 111.347 20.3981 114.063 18.0247C107.634 11.1797 100.072 6.15784 91.2025 3.06214C85.2898 0.998336 79.2396 -0.0335643 73.0176 0.000832322C71.3675 0.000832322 69.6831 0.138419 67.9643 0.241609Z",
|
|
597
631
|
fill: "currentColor"
|
|
598
632
|
}
|
|
599
633
|
),
|
|
600
|
-
/* @__PURE__ */
|
|
634
|
+
/* @__PURE__ */ jsx8(
|
|
601
635
|
"path",
|
|
602
636
|
{
|
|
603
637
|
d: "M26.4037 107.871C18.4628 97.9988 14.1314 86.7167 14.2002 73.818C14.2002 67.317 15.5409 61.0568 18.1191 55.1062C21.9348 46.2662 27.9506 39.1805 36.4071 34.2962C44.348 29.687 52.9763 27.8984 62.1547 29.2743C71.5738 30.7189 79.3771 35.2249 85.6336 42.2762C85.6336 42.2762 85.8398 42.5514 85.9429 42.6546C86.8711 41.8291 87.8336 41.0035 88.7618 40.178L89.8962 39.1805C90.8587 38.355 91.8212 37.4951 92.7838 36.6696C94.9838 34.7434 97.1495 32.8515 99.3152 30.9253C95.087 22.223 88.7274 15.55 80.3053 10.8377C70.3706 5.26541 59.6797 3.54557 48.37 5.02463C42.7323 5.78136 37.3352 7.50119 32.1788 10.0465C14.6815 18.7145 2.06546 36.532 1.03418 58.4771C0.862296 62.0887 1.10293 65.7348 1.65294 69.3464C3.02798 78.3239 6.32808 86.4759 11.622 93.8368C15.7471 99.5123 20.6629 104.19 26.3693 107.871H26.4037Z",
|
|
@@ -610,7 +644,7 @@ function CoinListLogomark(props) {
|
|
|
610
644
|
}
|
|
611
645
|
|
|
612
646
|
// src/client/components/oauth/CoinListSignInButton.tsx
|
|
613
|
-
import { jsx as
|
|
647
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
614
648
|
function CoinListSignInButton({
|
|
615
649
|
onClick,
|
|
616
650
|
disabled = false,
|
|
@@ -618,7 +652,7 @@ function CoinListSignInButton({
|
|
|
618
652
|
isLoading = false,
|
|
619
653
|
className
|
|
620
654
|
}) {
|
|
621
|
-
return /* @__PURE__ */
|
|
655
|
+
return /* @__PURE__ */ jsx9(
|
|
622
656
|
ClButton,
|
|
623
657
|
{
|
|
624
658
|
variant: "primary",
|
|
@@ -628,7 +662,7 @@ function CoinListSignInButton({
|
|
|
628
662
|
disabled,
|
|
629
663
|
isLoading,
|
|
630
664
|
loadingText: "Signing in...",
|
|
631
|
-
startIcon: /* @__PURE__ */
|
|
665
|
+
startIcon: /* @__PURE__ */ jsx9(CoinListLogomark, { className: "clcosdk:h-[18px] clcosdk:w-[16px] clcosdk:shrink-0" }),
|
|
632
666
|
className,
|
|
633
667
|
children: "Continue with CoinList"
|
|
634
668
|
}
|
|
@@ -655,7 +689,7 @@ var CoinListClientInitializationError = class extends Error {
|
|
|
655
689
|
};
|
|
656
690
|
|
|
657
691
|
// src/client/components/oauth/CoinListSignInCard.tsx
|
|
658
|
-
import { jsx as
|
|
692
|
+
import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
659
693
|
function CoinListSignInCard({
|
|
660
694
|
state = "idle",
|
|
661
695
|
onSignIn,
|
|
@@ -666,37 +700,50 @@ function CoinListSignInCard({
|
|
|
666
700
|
const handleSignIn = onSignIn ?? (() => {
|
|
667
701
|
void coinlist.startOAuth();
|
|
668
702
|
});
|
|
669
|
-
return /* @__PURE__ */
|
|
703
|
+
return /* @__PURE__ */ jsxs7(
|
|
670
704
|
"div",
|
|
671
705
|
{
|
|
672
706
|
className: cn(
|
|
673
|
-
"relative flex w-full max-w-md flex-col rounded-card border border-border bg-background p-6 shadow-card",
|
|
707
|
+
"clcosdk:relative clcosdk:flex clcosdk:w-full clcosdk:max-w-md clcosdk:flex-col clcosdk:rounded-card clcosdk:border clcosdk:border-border clcosdk:bg-background clcosdk:p-6 clcosdk:shadow-card",
|
|
674
708
|
className
|
|
675
709
|
),
|
|
676
710
|
children: [
|
|
677
|
-
onClose && /* @__PURE__ */
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
711
|
+
onClose && /* @__PURE__ */ jsx10(
|
|
712
|
+
CloseButton,
|
|
713
|
+
{
|
|
714
|
+
onClick: onClose,
|
|
715
|
+
className: "clcosdk:absolute clcosdk:right-4 clcosdk:top-4"
|
|
716
|
+
}
|
|
717
|
+
),
|
|
718
|
+
/* @__PURE__ */ jsxs7("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-2", children: [
|
|
719
|
+
/* @__PURE__ */ jsx10("h3", { className: cn(typeClasses.h3, "clcosdk:text-text-primary"), children: "Sign in to participate" }),
|
|
720
|
+
/* @__PURE__ */ jsx10("p", { className: cn(typeClasses.body, "clcosdk:text-text-secondary"), children: "A CoinList account is required to participate in this sale." })
|
|
681
721
|
] }),
|
|
682
|
-
/* @__PURE__ */
|
|
683
|
-
|
|
722
|
+
/* @__PURE__ */ jsx10(
|
|
723
|
+
CoinListSignInButton,
|
|
724
|
+
{
|
|
725
|
+
onClick: handleSignIn,
|
|
726
|
+
fullWidth: true,
|
|
727
|
+
className: "clcosdk:mt-4"
|
|
728
|
+
}
|
|
729
|
+
),
|
|
730
|
+
state === "error" && /* @__PURE__ */ jsx10(
|
|
684
731
|
AlertBanner,
|
|
685
732
|
{
|
|
686
733
|
variant: "error",
|
|
687
734
|
icon: true,
|
|
688
735
|
content: "Error signing in. Please try again.",
|
|
689
|
-
className: "mt-4"
|
|
736
|
+
className: "clcosdk:mt-4"
|
|
690
737
|
}
|
|
691
738
|
),
|
|
692
|
-
/* @__PURE__ */
|
|
739
|
+
/* @__PURE__ */ jsx10(PoweredByCoinList, { className: "clcosdk:mt-4" })
|
|
693
740
|
]
|
|
694
741
|
}
|
|
695
742
|
);
|
|
696
743
|
}
|
|
697
744
|
|
|
698
745
|
// src/client/components/offers/OfferCard.tsx
|
|
699
|
-
import { Fragment, jsx as
|
|
746
|
+
import { Fragment as Fragment2, jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
700
747
|
var monthYearFormatter = new Intl.DateTimeFormat("en-US", {
|
|
701
748
|
month: "short",
|
|
702
749
|
year: "numeric"
|
|
@@ -717,46 +764,67 @@ function OfferCard({
|
|
|
717
764
|
containerClassName
|
|
718
765
|
}) {
|
|
719
766
|
const cardLabel = "Open offer details";
|
|
720
|
-
const cardContent = /* @__PURE__ */
|
|
721
|
-
/* @__PURE__ */
|
|
722
|
-
offer.bannerUrl ? /* @__PURE__ */
|
|
767
|
+
const cardContent = /* @__PURE__ */ jsxs8(Fragment2, { children: [
|
|
768
|
+
/* @__PURE__ */ jsxs8("div", { className: "clcosdk:relative clcosdk:mb-6 clcosdk:h-52 clcosdk:w-full clcosdk:overflow-hidden clcosdk:rounded-2xl clcosdk:border clcosdk:border-border/60 clcosdk:bg-section", children: [
|
|
769
|
+
offer.bannerUrl ? /* @__PURE__ */ jsx11(
|
|
723
770
|
"img",
|
|
724
771
|
{
|
|
725
772
|
src: offer.bannerUrl,
|
|
726
773
|
alt: "Offer banner",
|
|
727
|
-
className: "h-full w-full object-cover"
|
|
774
|
+
className: "clcosdk:h-full clcosdk:w-full clcosdk:object-cover"
|
|
728
775
|
}
|
|
729
|
-
) : /* @__PURE__ */
|
|
730
|
-
/* @__PURE__ */
|
|
731
|
-
/* @__PURE__ */
|
|
776
|
+
) : /* @__PURE__ */ jsx11("div", { className: "clcosdk:h-full clcosdk:w-full clcosdk:bg-gradient-to-br clcosdk:from-surface clcosdk:via-section clcosdk:to-background" }),
|
|
777
|
+
/* @__PURE__ */ jsx11("div", { className: "clcosdk:absolute clcosdk:inset-0 clcosdk:bg-gradient-to-b clcosdk:from-transparent clcosdk:via-transparent clcosdk:to-overlay/35" }),
|
|
778
|
+
/* @__PURE__ */ jsx11("div", { className: "clcosdk:absolute clcosdk:inset-0 clcosdk:flex clcosdk:items-center clcosdk:justify-center clcosdk:p-6", children: offer.logoUrl ? /* @__PURE__ */ jsx11(
|
|
732
779
|
"img",
|
|
733
780
|
{
|
|
734
781
|
src: offer.logoUrl,
|
|
735
782
|
alt: "Offer logo",
|
|
736
|
-
className: "h-28 w-28 rounded-full border border-border bg-surface object-cover shadow-[0_10px_24px_rgba(0,0,0,0.25)]"
|
|
783
|
+
className: "clcosdk:h-28 clcosdk:w-28 clcosdk:rounded-full clcosdk:border clcosdk:border-border clcosdk:bg-surface clcosdk:object-cover clcosdk:shadow-[0_10px_24px_rgba(0,0,0,0.25)]"
|
|
737
784
|
}
|
|
738
|
-
) : /* @__PURE__ */
|
|
785
|
+
) : /* @__PURE__ */ jsx11("div", { className: "clcosdk:h-28 clcosdk:w-28 clcosdk:rounded-full clcosdk:border clcosdk:border-border clcosdk:bg-surface clcosdk:shadow-[0_10px_24px_rgba(0,0,0,0.18)]" }) })
|
|
739
786
|
] }),
|
|
740
|
-
offer.tagline && /* @__PURE__ */
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
787
|
+
offer.tagline && /* @__PURE__ */ jsx11(
|
|
788
|
+
"p",
|
|
789
|
+
{
|
|
790
|
+
className: cn(
|
|
791
|
+
typeClasses.h3,
|
|
792
|
+
"clcosdk:min-h-[2.4rem] clcosdk:text-text-primary"
|
|
793
|
+
),
|
|
794
|
+
children: offer.tagline
|
|
795
|
+
}
|
|
796
|
+
),
|
|
797
|
+
/* @__PURE__ */ jsxs8("div", { className: "clcosdk:mt-4 clcosdk:grid clcosdk:grid-cols-2 clcosdk:gap-5 clcosdk:border-t clcosdk:border-divider clcosdk:pt-4", children: [
|
|
798
|
+
/* @__PURE__ */ jsxs8("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-1", children: [
|
|
799
|
+
/* @__PURE__ */ jsx11(
|
|
800
|
+
"span",
|
|
801
|
+
{
|
|
802
|
+
className: cn(typeClasses.subhead, "clcosdk:text-text-secondary"),
|
|
803
|
+
children: "Starts"
|
|
804
|
+
}
|
|
805
|
+
),
|
|
806
|
+
/* @__PURE__ */ jsx11("span", { className: cn(typeClasses.label, "clcosdk:text-text-primary"), children: offer.formattedStartsAt })
|
|
745
807
|
] }),
|
|
746
|
-
/* @__PURE__ */
|
|
747
|
-
/* @__PURE__ */
|
|
748
|
-
|
|
808
|
+
/* @__PURE__ */ jsxs8("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-1", children: [
|
|
809
|
+
/* @__PURE__ */ jsx11(
|
|
810
|
+
"span",
|
|
811
|
+
{
|
|
812
|
+
className: cn(typeClasses.subhead, "clcosdk:text-text-secondary"),
|
|
813
|
+
children: "Ends"
|
|
814
|
+
}
|
|
815
|
+
),
|
|
816
|
+
/* @__PURE__ */ jsx11("span", { className: cn(typeClasses.label, "clcosdk:text-text-primary"), children: offer.formattedEndsAt })
|
|
749
817
|
] })
|
|
750
818
|
] })
|
|
751
819
|
] });
|
|
752
820
|
const baseClasses = cn(
|
|
753
|
-
"relative flex w-full max-w-[28rem] flex-col rounded-card border border-border bg-background p-6 text-left shadow-card transition-all duration-200",
|
|
821
|
+
"clcosdk:relative clcosdk:flex clcosdk:w-full clcosdk:max-w-[28rem] clcosdk:flex-col clcosdk:rounded-card clcosdk:border clcosdk:border-border clcosdk:bg-background clcosdk:p-6 clcosdk:text-left clcosdk:shadow-card clcosdk:transition-all clcosdk:duration-200",
|
|
754
822
|
className,
|
|
755
|
-
onClick && "cursor-pointer hover:-translate-y-0.5 hover:border-divider hover:shadow-[0px_14px_32px_-10px_rgba(0,0,0,0.35)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent-focus focus-visible:ring-offset-2"
|
|
823
|
+
onClick && "clcosdk:cursor-pointer clcosdk:hover:-translate-y-0.5 clcosdk:hover:border-divider clcosdk:hover:shadow-[0px_14px_32px_-10px_rgba(0,0,0,0.35)] clcosdk:focus-visible:outline-none clcosdk:focus-visible:ring-2 clcosdk:focus-visible:ring-accent-focus clcosdk:focus-visible:ring-offset-2"
|
|
756
824
|
);
|
|
757
825
|
let cardNode;
|
|
758
826
|
if (onClick) {
|
|
759
|
-
cardNode = /* @__PURE__ */
|
|
827
|
+
cardNode = /* @__PURE__ */ jsx11(
|
|
760
828
|
"button",
|
|
761
829
|
{
|
|
762
830
|
type: "button",
|
|
@@ -767,12 +835,12 @@ function OfferCard({
|
|
|
767
835
|
}
|
|
768
836
|
);
|
|
769
837
|
} else {
|
|
770
|
-
cardNode = /* @__PURE__ */
|
|
838
|
+
cardNode = /* @__PURE__ */ jsx11("div", { className: baseClasses, children: cardContent });
|
|
771
839
|
}
|
|
772
840
|
if (!containerClassName) {
|
|
773
841
|
return cardNode;
|
|
774
842
|
}
|
|
775
|
-
return /* @__PURE__ */
|
|
843
|
+
return /* @__PURE__ */ jsx11("div", { className: containerClassName, children: cardNode });
|
|
776
844
|
}
|
|
777
845
|
|
|
778
846
|
// src/client/hooks/useOffers.ts
|
|
@@ -818,7 +886,7 @@ function useOffers(options = {}) {
|
|
|
818
886
|
}
|
|
819
887
|
|
|
820
888
|
// src/client/components/offers/OffersGrid.tsx
|
|
821
|
-
import { jsx as
|
|
889
|
+
import { jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
822
890
|
var DEFAULT_MAX_COLUMNS = 3;
|
|
823
891
|
function OffersGrid({
|
|
824
892
|
data,
|
|
@@ -836,12 +904,12 @@ function OffersGrid({
|
|
|
836
904
|
if (loading) {
|
|
837
905
|
return loading;
|
|
838
906
|
}
|
|
839
|
-
return /* @__PURE__ */
|
|
907
|
+
return /* @__PURE__ */ jsx12(
|
|
840
908
|
"output",
|
|
841
909
|
{
|
|
842
910
|
"aria-live": "polite",
|
|
843
|
-
className: "flex min-h-40 items-center justify-center rounded-2xl border border-border bg-background p-6",
|
|
844
|
-
children: /* @__PURE__ */
|
|
911
|
+
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",
|
|
912
|
+
children: /* @__PURE__ */ jsx12("p", { className: cn(typeClasses.body, "clcosdk:text-text-secondary"), children: "Loading offers..." })
|
|
845
913
|
}
|
|
846
914
|
);
|
|
847
915
|
}
|
|
@@ -850,13 +918,13 @@ function OffersGrid({
|
|
|
850
918
|
return error;
|
|
851
919
|
}
|
|
852
920
|
const errorMessage = offersState.reason === "not-authenticated" ? "Sign in to view available offers." : "Unable to load offers right now. Please try again.";
|
|
853
|
-
return /* @__PURE__ */
|
|
921
|
+
return /* @__PURE__ */ jsx12(
|
|
854
922
|
AlertBanner,
|
|
855
923
|
{
|
|
856
924
|
variant: "error",
|
|
857
925
|
icon: true,
|
|
858
926
|
content: errorMessage,
|
|
859
|
-
className: "w-full max-w-[28rem]"
|
|
927
|
+
className: "clcosdk:w-full clcosdk:max-w-[28rem]"
|
|
860
928
|
}
|
|
861
929
|
);
|
|
862
930
|
}
|
|
@@ -864,37 +932,55 @@ function OffersGrid({
|
|
|
864
932
|
if (emptyState) {
|
|
865
933
|
return emptyState;
|
|
866
934
|
}
|
|
867
|
-
return /* @__PURE__ */
|
|
935
|
+
return /* @__PURE__ */ jsxs9(
|
|
868
936
|
"output",
|
|
869
937
|
{
|
|
870
938
|
"aria-live": "polite",
|
|
871
|
-
className: "flex min-h-40 flex-col items-center justify-center rounded-2xl border border-border bg-background p-6 text-center",
|
|
939
|
+
className: "clcosdk:flex clcosdk:min-h-40 clcosdk:flex-col clcosdk:items-center clcosdk:justify-center clcosdk:rounded-2xl clcosdk:border clcosdk:border-border clcosdk:bg-background clcosdk:p-6 clcosdk:text-center",
|
|
872
940
|
children: [
|
|
873
|
-
/* @__PURE__ */
|
|
874
|
-
|
|
941
|
+
/* @__PURE__ */ jsx12(
|
|
942
|
+
"p",
|
|
943
|
+
{
|
|
944
|
+
className: cn(
|
|
945
|
+
typeClasses.body,
|
|
946
|
+
"clcosdk:font-medium clcosdk:text-text-primary"
|
|
947
|
+
),
|
|
948
|
+
children: "No offers available"
|
|
949
|
+
}
|
|
950
|
+
),
|
|
951
|
+
/* @__PURE__ */ jsx12("p", { className: cn(typeClasses.subhead, "clcosdk:text-text-secondary"), children: "Check back soon for upcoming opportunities." })
|
|
875
952
|
]
|
|
876
953
|
}
|
|
877
954
|
);
|
|
878
955
|
}
|
|
879
956
|
const maxGridWidth = `calc(${cols} * 28rem + ${Math.max(cols - 1, 0)} * 1.5rem)`;
|
|
880
|
-
return /* @__PURE__ */
|
|
957
|
+
return /* @__PURE__ */ jsx12(
|
|
881
958
|
"div",
|
|
882
959
|
{
|
|
883
|
-
className: cn(
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
OfferCard,
|
|
960
|
+
className: cn(
|
|
961
|
+
"clcosdk:flex clcosdk:w-full clcosdk:justify-center",
|
|
962
|
+
containerClassName
|
|
963
|
+
),
|
|
964
|
+
children: /* @__PURE__ */ jsx12(
|
|
965
|
+
"div",
|
|
890
966
|
{
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
967
|
+
className: cn("clcosdk:grid clcosdk:w-full clcosdk:gap-6", className),
|
|
968
|
+
style: {
|
|
969
|
+
gridTemplateColumns: "repeat(auto-fit, minmax(min(100%, 20rem), 1fr))",
|
|
970
|
+
maxWidth: maxGridWidth
|
|
971
|
+
},
|
|
972
|
+
children: offersState.offers.map((offer) => /* @__PURE__ */ jsx12(
|
|
973
|
+
OfferCard,
|
|
974
|
+
{
|
|
975
|
+
offer: OfferCardUi.fromDomain(offer),
|
|
976
|
+
onClick: onOfferClick ? () => onOfferClick(offer) : void 0
|
|
977
|
+
},
|
|
978
|
+
offer.id
|
|
979
|
+
))
|
|
980
|
+
}
|
|
981
|
+
)
|
|
896
982
|
}
|
|
897
|
-
)
|
|
983
|
+
);
|
|
898
984
|
}
|
|
899
985
|
|
|
900
986
|
// src/client/components/requirements/RequirementItem.tsx
|
|
@@ -902,42 +988,47 @@ import { ChevronRight } from "lucide-react";
|
|
|
902
988
|
|
|
903
989
|
// src/client/components/design-system/StepStatusIcon.tsx
|
|
904
990
|
import { CircleCheck as CircleCheck2, CircleX, Info as Info2 } from "lucide-react";
|
|
905
|
-
import { jsx as
|
|
991
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
906
992
|
var statusConfig = {
|
|
907
993
|
required: {
|
|
908
994
|
Icon: Info2,
|
|
909
|
-
colorClass: "text-warning",
|
|
910
|
-
fillClass: "[&_circle]:fill-warning-subtle"
|
|
995
|
+
colorClass: "clcosdk:text-warning",
|
|
996
|
+
fillClass: "clcosdk:[&_circle]:fill-warning-subtle"
|
|
911
997
|
},
|
|
912
998
|
pending: {
|
|
913
999
|
Icon: Info2,
|
|
914
|
-
colorClass: "text-warning",
|
|
915
|
-
fillClass: "[&_circle]:fill-warning-subtle"
|
|
1000
|
+
colorClass: "clcosdk:text-warning",
|
|
1001
|
+
fillClass: "clcosdk:[&_circle]:fill-warning-subtle"
|
|
916
1002
|
},
|
|
917
1003
|
completed: {
|
|
918
1004
|
Icon: CircleCheck2,
|
|
919
|
-
colorClass: "text-success",
|
|
920
|
-
fillClass: "[&_circle]:fill-success-subtle"
|
|
1005
|
+
colorClass: "clcosdk:text-success",
|
|
1006
|
+
fillClass: "clcosdk:[&_circle]:fill-success-subtle"
|
|
921
1007
|
},
|
|
922
1008
|
rejected: {
|
|
923
1009
|
Icon: CircleX,
|
|
924
|
-
colorClass: "text-error",
|
|
925
|
-
fillClass: "[&_circle]:fill-error-subtle"
|
|
1010
|
+
colorClass: "clcosdk:text-error",
|
|
1011
|
+
fillClass: "clcosdk:[&_circle]:fill-error-subtle"
|
|
926
1012
|
}
|
|
927
1013
|
};
|
|
928
1014
|
function StepStatusIcon({ status, className }) {
|
|
929
1015
|
const { Icon, colorClass, fillClass } = statusConfig[status];
|
|
930
|
-
return /* @__PURE__ */
|
|
1016
|
+
return /* @__PURE__ */ jsx13(
|
|
931
1017
|
Icon,
|
|
932
1018
|
{
|
|
933
|
-
className: cn(
|
|
1019
|
+
className: cn(
|
|
1020
|
+
"clcosdk:h-6 clcosdk:w-6 clcosdk:shrink-0",
|
|
1021
|
+
colorClass,
|
|
1022
|
+
fillClass,
|
|
1023
|
+
className
|
|
1024
|
+
),
|
|
934
1025
|
"aria-hidden": "true"
|
|
935
1026
|
}
|
|
936
1027
|
);
|
|
937
1028
|
}
|
|
938
1029
|
|
|
939
1030
|
// src/client/components/requirements/RequirementItem.tsx
|
|
940
|
-
import { Fragment as
|
|
1031
|
+
import { Fragment as Fragment3, jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
941
1032
|
var RequirementVariant = {
|
|
942
1033
|
fromType(type) {
|
|
943
1034
|
switch (type) {
|
|
@@ -990,9 +1081,9 @@ function VerificationActionZone({
|
|
|
990
1081
|
switch (status) {
|
|
991
1082
|
case "required":
|
|
992
1083
|
if (onAction === null) return null;
|
|
993
|
-
return /* @__PURE__ */
|
|
1084
|
+
return /* @__PURE__ */ jsx14(ClButton, { size: "sm", onClick: onAction, children: "Continue" });
|
|
994
1085
|
case "pending":
|
|
995
|
-
return /* @__PURE__ */
|
|
1086
|
+
return /* @__PURE__ */ jsx14(
|
|
996
1087
|
AlertBanner,
|
|
997
1088
|
{
|
|
998
1089
|
variant: "warning",
|
|
@@ -1000,21 +1091,21 @@ function VerificationActionZone({
|
|
|
1000
1091
|
}
|
|
1001
1092
|
);
|
|
1002
1093
|
case "completed":
|
|
1003
|
-
return /* @__PURE__ */
|
|
1094
|
+
return /* @__PURE__ */ jsx14(AlertBanner, { variant: "success", content: "Identity verified." });
|
|
1004
1095
|
case "rejected":
|
|
1005
|
-
return /* @__PURE__ */
|
|
1096
|
+
return /* @__PURE__ */ jsx14(
|
|
1006
1097
|
AlertBanner,
|
|
1007
1098
|
{
|
|
1008
1099
|
variant: "error",
|
|
1009
|
-
content: onContactSupport === null ? "Verification rejected." : /* @__PURE__ */
|
|
1100
|
+
content: onContactSupport === null ? "Verification rejected." : /* @__PURE__ */ jsxs10(Fragment3, { children: [
|
|
1010
1101
|
"Verification rejected.",
|
|
1011
1102
|
" ",
|
|
1012
|
-
/* @__PURE__ */
|
|
1103
|
+
/* @__PURE__ */ jsx14(
|
|
1013
1104
|
"button",
|
|
1014
1105
|
{
|
|
1015
1106
|
type: "button",
|
|
1016
1107
|
onClick: onContactSupport,
|
|
1017
|
-
className: "underline",
|
|
1108
|
+
className: "clcosdk:underline",
|
|
1018
1109
|
children: "Contact support"
|
|
1019
1110
|
}
|
|
1020
1111
|
),
|
|
@@ -1030,9 +1121,9 @@ function WalletActionZone({
|
|
|
1030
1121
|
onAction
|
|
1031
1122
|
}) {
|
|
1032
1123
|
if (status === "completed") {
|
|
1033
|
-
return /* @__PURE__ */
|
|
1034
|
-
onAction !== null && /* @__PURE__ */
|
|
1035
|
-
/* @__PURE__ */
|
|
1124
|
+
return /* @__PURE__ */ jsxs10(Fragment3, { children: [
|
|
1125
|
+
onAction !== null && /* @__PURE__ */ jsx14(ClButton, { size: "sm", variant: "secondary", onClick: onAction, children: "Change wallet" }),
|
|
1126
|
+
/* @__PURE__ */ jsx14(
|
|
1036
1127
|
AlertBanner,
|
|
1037
1128
|
{
|
|
1038
1129
|
variant: "success",
|
|
@@ -1042,9 +1133,9 @@ function WalletActionZone({
|
|
|
1042
1133
|
] });
|
|
1043
1134
|
}
|
|
1044
1135
|
if (status === "rejected") {
|
|
1045
|
-
return /* @__PURE__ */
|
|
1046
|
-
onAction !== null && /* @__PURE__ */
|
|
1047
|
-
/* @__PURE__ */
|
|
1136
|
+
return /* @__PURE__ */ jsxs10(Fragment3, { children: [
|
|
1137
|
+
onAction !== null && /* @__PURE__ */ jsx14(ClButton, { size: "sm", onClick: onAction, children: "Connect wallet" }),
|
|
1138
|
+
/* @__PURE__ */ jsx14(
|
|
1048
1139
|
AlertBanner,
|
|
1049
1140
|
{
|
|
1050
1141
|
variant: "error",
|
|
@@ -1054,7 +1145,7 @@ function WalletActionZone({
|
|
|
1054
1145
|
] });
|
|
1055
1146
|
}
|
|
1056
1147
|
if (onAction === null) return null;
|
|
1057
|
-
return /* @__PURE__ */
|
|
1148
|
+
return /* @__PURE__ */ jsx14(ClButton, { size: "sm", onClick: onAction, children: "Connect wallet" });
|
|
1058
1149
|
}
|
|
1059
1150
|
function RequirementItem({
|
|
1060
1151
|
ui,
|
|
@@ -1064,69 +1155,81 @@ function RequirementItem({
|
|
|
1064
1155
|
onAction,
|
|
1065
1156
|
onContactSupport
|
|
1066
1157
|
}) {
|
|
1067
|
-
return /* @__PURE__ */
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
{
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
"
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
className: cn(
|
|
1106
|
-
"grid transition-[grid-template-rows] duration-300 ease-in-out",
|
|
1107
|
-
expanded ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
|
|
1158
|
+
return /* @__PURE__ */ jsxs10(
|
|
1159
|
+
"div",
|
|
1160
|
+
{
|
|
1161
|
+
className: cn("clcosdk:flex clcosdk:w-full clcosdk:flex-col", className),
|
|
1162
|
+
children: [
|
|
1163
|
+
/* @__PURE__ */ jsxs10(
|
|
1164
|
+
"button",
|
|
1165
|
+
{
|
|
1166
|
+
type: "button",
|
|
1167
|
+
onClick: onToggle,
|
|
1168
|
+
"aria-expanded": expanded,
|
|
1169
|
+
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",
|
|
1170
|
+
children: [
|
|
1171
|
+
/* @__PURE__ */ jsxs10("div", { className: "clcosdk:flex clcosdk:items-center clcosdk:gap-3", children: [
|
|
1172
|
+
/* @__PURE__ */ jsx14(StepStatusIcon, { status: ui.status }),
|
|
1173
|
+
/* @__PURE__ */ jsx14(
|
|
1174
|
+
"span",
|
|
1175
|
+
{
|
|
1176
|
+
className: cn(
|
|
1177
|
+
typeClasses.body,
|
|
1178
|
+
"clcosdk:whitespace-nowrap clcosdk:font-medium clcosdk:text-text-primary"
|
|
1179
|
+
),
|
|
1180
|
+
children: ui.label
|
|
1181
|
+
}
|
|
1182
|
+
)
|
|
1183
|
+
] }),
|
|
1184
|
+
/* @__PURE__ */ jsx14(
|
|
1185
|
+
ChevronRight,
|
|
1186
|
+
{
|
|
1187
|
+
className: cn(
|
|
1188
|
+
"clcosdk:h-6 clcosdk:w-6 clcosdk:shrink-0 clcosdk:text-text-secondary clcosdk:transition-transform clcosdk:duration-300",
|
|
1189
|
+
expanded && "clcosdk:rotate-90"
|
|
1190
|
+
),
|
|
1191
|
+
"aria-hidden": "true"
|
|
1192
|
+
}
|
|
1193
|
+
)
|
|
1194
|
+
]
|
|
1195
|
+
}
|
|
1108
1196
|
),
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1197
|
+
/* @__PURE__ */ jsx14(
|
|
1198
|
+
"div",
|
|
1199
|
+
{
|
|
1200
|
+
className: cn(
|
|
1201
|
+
"clcosdk:grid clcosdk:transition-[grid-template-rows] clcosdk:duration-300 clcosdk:ease-in-out",
|
|
1202
|
+
expanded ? "clcosdk:grid-rows-[1fr]" : "clcosdk:grid-rows-[0fr]"
|
|
1203
|
+
),
|
|
1204
|
+
children: /* @__PURE__ */ jsx14("div", { className: "clcosdk:min-h-0 clcosdk:overflow-hidden", children: /* @__PURE__ */ jsxs10("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-4 clcosdk:px-2 clcosdk:pb-4", children: [
|
|
1205
|
+
/* @__PURE__ */ jsx14(
|
|
1206
|
+
"p",
|
|
1207
|
+
{
|
|
1208
|
+
className: cn(typeClasses.subhead, "clcosdk:text-text-secondary"),
|
|
1209
|
+
children: ui.description
|
|
1210
|
+
}
|
|
1211
|
+
),
|
|
1212
|
+
ui.variant === "verification" ? /* @__PURE__ */ jsx14(
|
|
1213
|
+
VerificationActionZone,
|
|
1214
|
+
{
|
|
1215
|
+
status: ui.status,
|
|
1216
|
+
onAction,
|
|
1217
|
+
onContactSupport
|
|
1218
|
+
}
|
|
1219
|
+
) : /* @__PURE__ */ jsx14(
|
|
1220
|
+
WalletActionZone,
|
|
1221
|
+
{
|
|
1222
|
+
status: ui.status,
|
|
1223
|
+
walletAddress: ui.walletAddress,
|
|
1224
|
+
onAction
|
|
1225
|
+
}
|
|
1226
|
+
)
|
|
1227
|
+
] }) })
|
|
1228
|
+
}
|
|
1229
|
+
)
|
|
1230
|
+
]
|
|
1231
|
+
}
|
|
1232
|
+
);
|
|
1130
1233
|
}
|
|
1131
1234
|
|
|
1132
1235
|
// src/client/components/requirements/RequirementsChecklist.tsx
|
|
@@ -1184,7 +1287,7 @@ function useRequirements(offerId, options = {}) {
|
|
|
1184
1287
|
}
|
|
1185
1288
|
|
|
1186
1289
|
// src/client/components/requirements/RequirementsChecklist.tsx
|
|
1187
|
-
import { jsx as
|
|
1290
|
+
import { jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1188
1291
|
var DEFAULT_LABELS = {
|
|
1189
1292
|
kyc_approved: "KYC Verification",
|
|
1190
1293
|
identity_verified: "Identity Verification",
|
|
@@ -1227,25 +1330,25 @@ function RequirementsChecklist({
|
|
|
1227
1330
|
const onContactSupport = onContactSupportOverride !== void 0 ? onContactSupportOverride : () => coinlist.contactSupport();
|
|
1228
1331
|
if (requirementsState.type === "LOADING") {
|
|
1229
1332
|
if (loading) return loading;
|
|
1230
|
-
return /* @__PURE__ */
|
|
1333
|
+
return /* @__PURE__ */ jsx15(
|
|
1231
1334
|
"output",
|
|
1232
1335
|
{
|
|
1233
1336
|
"aria-live": "polite",
|
|
1234
|
-
className: "flex min-h-40 items-center justify-center rounded-2xl border border-border bg-background p-6",
|
|
1235
|
-
children: /* @__PURE__ */
|
|
1337
|
+
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",
|
|
1338
|
+
children: /* @__PURE__ */ jsx15("p", { className: cn(typeClasses.body, "clcosdk:text-text-secondary"), children: "Loading requirements..." })
|
|
1236
1339
|
}
|
|
1237
1340
|
);
|
|
1238
1341
|
}
|
|
1239
1342
|
if (requirementsState.type === "ERROR") {
|
|
1240
1343
|
if (error) return error;
|
|
1241
1344
|
const errorMessage = requirementsState.reason === "not-authenticated" ? "Sign in to view requirements." : "Unable to load requirements right now. Please try again.";
|
|
1242
|
-
return /* @__PURE__ */
|
|
1345
|
+
return /* @__PURE__ */ jsx15(
|
|
1243
1346
|
AlertBanner,
|
|
1244
1347
|
{
|
|
1245
1348
|
variant: "error",
|
|
1246
1349
|
icon: true,
|
|
1247
1350
|
content: errorMessage,
|
|
1248
|
-
className: "w-full max-w-[28rem]"
|
|
1351
|
+
className: "clcosdk:w-full clcosdk:max-w-[28rem]"
|
|
1249
1352
|
}
|
|
1250
1353
|
);
|
|
1251
1354
|
}
|
|
@@ -1255,62 +1358,71 @@ function RequirementsChecklist({
|
|
|
1255
1358
|
const optionStatuses = statuses.filter((s) => requirementIds.has(s.id));
|
|
1256
1359
|
const statusByRequirementId = new Map(optionStatuses.map((s) => [s.id, s]));
|
|
1257
1360
|
const checklistStatus = ChecklistStatus.derive(optionStatuses);
|
|
1258
|
-
return /* @__PURE__ */
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1361
|
+
return /* @__PURE__ */ jsxs11(
|
|
1362
|
+
"div",
|
|
1363
|
+
{
|
|
1364
|
+
className: cn(
|
|
1365
|
+
"clcosdk:flex clcosdk:w-full clcosdk:flex-col clcosdk:gap-4",
|
|
1366
|
+
className
|
|
1367
|
+
),
|
|
1368
|
+
children: [
|
|
1369
|
+
/* @__PURE__ */ jsxs11("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:gap-2", children: [
|
|
1370
|
+
/* @__PURE__ */ jsx15("h3", { className: cn(typeClasses.h3, "clcosdk:text-text-primary"), children: title }),
|
|
1371
|
+
/* @__PURE__ */ jsx15("p", { className: cn(typeClasses.body, "clcosdk:text-text-secondary"), children: description })
|
|
1372
|
+
] }),
|
|
1373
|
+
/* @__PURE__ */ jsx15("div", { className: "clcosdk:flex clcosdk:flex-col clcosdk:divide-y clcosdk:divide-divider", children: requirements.map((req, index) => {
|
|
1374
|
+
const statusInfo = statusByRequirementId.get(req.id);
|
|
1375
|
+
const label = getLabel ? getLabel(req) : DEFAULT_LABELS[req.type];
|
|
1376
|
+
const itemDescription = (getDescription ? getDescription(req) : null) ?? DEFAULT_DESCRIPTIONS[req.type];
|
|
1377
|
+
let onActionBound;
|
|
1378
|
+
if (onRequirementAction === null) {
|
|
1379
|
+
onActionBound = null;
|
|
1380
|
+
} else if (onRequirementAction) {
|
|
1381
|
+
onActionBound = () => onRequirementAction(req);
|
|
1382
|
+
}
|
|
1383
|
+
let onContactSupportBound;
|
|
1384
|
+
if (onContactSupport === null) {
|
|
1385
|
+
onContactSupportBound = null;
|
|
1386
|
+
} else if (onContactSupport) {
|
|
1387
|
+
onContactSupportBound = () => onContactSupport(req);
|
|
1388
|
+
}
|
|
1389
|
+
return /* @__PURE__ */ jsx15(
|
|
1390
|
+
RequirementItem,
|
|
1391
|
+
{
|
|
1392
|
+
ui: RequirementItemUi.fromDomain(
|
|
1393
|
+
req,
|
|
1394
|
+
statusInfo,
|
|
1395
|
+
label,
|
|
1396
|
+
itemDescription
|
|
1397
|
+
),
|
|
1398
|
+
expanded: expandedIndex === index,
|
|
1399
|
+
onToggle: () => setExpandedIndex((prev) => prev === index ? null : index),
|
|
1400
|
+
onAction: onActionBound,
|
|
1401
|
+
onContactSupport: onContactSupportBound
|
|
1402
|
+
},
|
|
1403
|
+
req.id
|
|
1404
|
+
);
|
|
1405
|
+
}) }),
|
|
1406
|
+
checklistStatus === "ineligible" && /* @__PURE__ */ jsx15(
|
|
1407
|
+
AlertBanner,
|
|
1408
|
+
{
|
|
1409
|
+
variant: "error",
|
|
1410
|
+
icon: true,
|
|
1411
|
+
content: "You are not eligible to participate."
|
|
1412
|
+
}
|
|
1413
|
+
),
|
|
1414
|
+
onContinue && /* @__PURE__ */ jsx15(
|
|
1415
|
+
ClButton,
|
|
1416
|
+
{
|
|
1417
|
+
fullWidth: true,
|
|
1418
|
+
disabled: checklistStatus !== "eligible",
|
|
1419
|
+
onClick: onContinue,
|
|
1420
|
+
children: "Continue"
|
|
1421
|
+
}
|
|
1422
|
+
)
|
|
1423
|
+
]
|
|
1424
|
+
}
|
|
1425
|
+
);
|
|
1314
1426
|
}
|
|
1315
1427
|
|
|
1316
1428
|
// src/client/hooks/useCompleteOAuth.ts
|
|
@@ -1454,8 +1566,10 @@ export {
|
|
|
1454
1566
|
ChecklistStatus,
|
|
1455
1567
|
CoinListClientInitializationError,
|
|
1456
1568
|
CoinListContext,
|
|
1569
|
+
CoinListContextProvider,
|
|
1457
1570
|
CoinListProvider,
|
|
1458
1571
|
CoinListSignInCard,
|
|
1572
|
+
CoinListStyleScope,
|
|
1459
1573
|
OAUTH_CODE_VERIFIER_KEY,
|
|
1460
1574
|
OAUTH_STATE_KEY,
|
|
1461
1575
|
OfferCard,
|