@0xsquid/ui 2.6.3 → 2.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +170 -35
- package/dist/cjs/types/components/buttons/Button.d.ts +4 -1
- package/dist/cjs/types/components/controls/Switch.d.ts +1 -1
- package/dist/cjs/types/components/icons/Generic.d.ts +8 -0
- package/dist/cjs/types/components/lists/ListItem.d.ts +4 -1
- package/dist/cjs/types/core/utils.d.ts +7 -0
- package/dist/cjs/types/hooks/useColorFromSeed.d.ts +1 -0
- package/dist/cjs/types/stories/buttons/AssetsButton.stories.d.ts +1 -0
- package/dist/cjs/types/stories/buttons/Button.stories.d.ts +30 -15
- package/dist/cjs/types/stories/controls/Switch.stories.d.ts +5 -3
- package/dist/cjs/types/stories/lists/ListItem.stories.d.ts +3 -0
- package/dist/cjs/types/types/components.d.ts +1 -1
- package/dist/cjs/types/types/config.d.ts +3 -3
- package/dist/cjs/types/types/index.d.ts +1 -1
- package/dist/esm/index.js +168 -36
- package/dist/esm/types/components/buttons/Button.d.ts +4 -1
- package/dist/esm/types/components/controls/Switch.d.ts +1 -1
- package/dist/esm/types/components/icons/Generic.d.ts +8 -0
- package/dist/esm/types/components/lists/ListItem.d.ts +4 -1
- package/dist/esm/types/core/utils.d.ts +7 -0
- package/dist/esm/types/hooks/useColorFromSeed.d.ts +1 -0
- package/dist/esm/types/stories/buttons/AssetsButton.stories.d.ts +1 -0
- package/dist/esm/types/stories/buttons/Button.stories.d.ts +30 -15
- package/dist/esm/types/stories/controls/Switch.stories.d.ts +5 -3
- package/dist/esm/types/stories/lists/ListItem.stories.d.ts +3 -0
- package/dist/esm/types/types/components.d.ts +1 -1
- package/dist/esm/types/types/config.d.ts +3 -3
- package/dist/esm/types/types/index.d.ts +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +21 -7
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -117,6 +117,13 @@ const THEME_COLOR_KEYS = [
|
|
|
117
117
|
"button-md-secondary-text",
|
|
118
118
|
"button-md-tertiary-bg",
|
|
119
119
|
"button-md-tertiary-text",
|
|
120
|
+
// sm button variant colors
|
|
121
|
+
"button-sm-primary-bg",
|
|
122
|
+
"button-sm-primary-text",
|
|
123
|
+
"button-sm-secondary-bg",
|
|
124
|
+
"button-sm-secondary-text",
|
|
125
|
+
"button-sm-tertiary-bg",
|
|
126
|
+
"button-sm-tertiary-text",
|
|
120
127
|
// input colors
|
|
121
128
|
"input-placeholder",
|
|
122
129
|
"input-text",
|
|
@@ -146,12 +153,18 @@ const THEME_COLOR_KEYS = [
|
|
|
146
153
|
"material-light-blend-grey-800",
|
|
147
154
|
];
|
|
148
155
|
const THEME_BORDER_RADIUS_KEYS = [
|
|
156
|
+
// lg button
|
|
149
157
|
"button-lg-primary",
|
|
150
158
|
"button-lg-secondary",
|
|
151
159
|
"button-lg-tertiary",
|
|
160
|
+
// md button
|
|
152
161
|
"button-md-primary",
|
|
153
162
|
"button-md-secondary",
|
|
154
163
|
"button-md-tertiary",
|
|
164
|
+
// sm button
|
|
165
|
+
"button-sm-primary",
|
|
166
|
+
"button-sm-secondary",
|
|
167
|
+
"button-sm-tertiary",
|
|
155
168
|
"container",
|
|
156
169
|
"input",
|
|
157
170
|
"menu-sm",
|
|
@@ -2953,6 +2966,19 @@ function mapToCssVariables(obj) {
|
|
|
2953
2966
|
return acc;
|
|
2954
2967
|
}, {});
|
|
2955
2968
|
}
|
|
2969
|
+
/**
|
|
2970
|
+
* Simple hash function to create a deterministic index from a given string.
|
|
2971
|
+
* @param {string} str - The input string to hash.
|
|
2972
|
+
* @param {number} max - The maximum value for the hash.
|
|
2973
|
+
* @returns {number} - The index within the array.
|
|
2974
|
+
*/
|
|
2975
|
+
function hashStringToIndex(str, max) {
|
|
2976
|
+
let index = 0;
|
|
2977
|
+
for (let i = 0; i < str.length; i++) {
|
|
2978
|
+
index = (index * 31 + str.charCodeAt(i)) % max;
|
|
2979
|
+
}
|
|
2980
|
+
return index;
|
|
2981
|
+
}
|
|
2956
2982
|
|
|
2957
2983
|
const spacing$1 = {
|
|
2958
2984
|
"squid-xxs": "0.3125rem", // 5px
|
|
@@ -3347,12 +3373,18 @@ const defaultFontFamily = {
|
|
|
3347
3373
|
"squid-main": "Geist, sans-serif",
|
|
3348
3374
|
};
|
|
3349
3375
|
const defaultBorderRadius = {
|
|
3376
|
+
// lg button
|
|
3350
3377
|
"button-lg-primary": spacing$1["squid-xxl"],
|
|
3351
3378
|
"button-lg-secondary": spacing$1["squid-xxl"],
|
|
3352
3379
|
"button-lg-tertiary": spacing$1["squid-xxl"],
|
|
3380
|
+
// md button
|
|
3353
3381
|
"button-md-primary": spacing$1["squid-m"],
|
|
3354
3382
|
"button-md-secondary": spacing$1["squid-m"],
|
|
3355
3383
|
"button-md-tertiary": spacing$1["squid-m"],
|
|
3384
|
+
// sm button
|
|
3385
|
+
"button-sm-primary": spacing$1["squid-m"],
|
|
3386
|
+
"button-sm-secondary": spacing$1["squid-m"],
|
|
3387
|
+
"button-sm-tertiary": spacing$1["squid-m"],
|
|
3356
3388
|
container: spacing$1["squid-l"],
|
|
3357
3389
|
input: "9999px",
|
|
3358
3390
|
"menu-sm": spacing$1["squid-s"],
|
|
@@ -3394,18 +3426,27 @@ const lightTheme = {
|
|
|
3394
3426
|
"animation-bg": "#B893EC",
|
|
3395
3427
|
"animation-text": "#FBFBFD",
|
|
3396
3428
|
// buttons
|
|
3429
|
+
// lg button
|
|
3397
3430
|
"button-lg-primary-bg": "#B893EC",
|
|
3398
3431
|
"button-lg-primary-text": "#FBFBFD",
|
|
3399
3432
|
"button-lg-secondary-bg": "#17191C",
|
|
3400
3433
|
"button-lg-secondary-text": "#EDEEF3",
|
|
3401
3434
|
"button-lg-tertiary-bg": "#EDEEF3",
|
|
3402
3435
|
"button-lg-tertiary-text": "#292C32",
|
|
3436
|
+
// md button
|
|
3403
3437
|
"button-md-primary-bg": "#B893EC",
|
|
3404
3438
|
"button-md-primary-text": "#FBFBFD",
|
|
3405
3439
|
"button-md-secondary-bg": "#17191C",
|
|
3406
3440
|
"button-md-secondary-text": "#EDEEF3",
|
|
3407
3441
|
"button-md-tertiary-bg": "#EDEEF3",
|
|
3408
3442
|
"button-md-tertiary-text": "#292C32",
|
|
3443
|
+
// sm button
|
|
3444
|
+
"button-sm-primary-bg": "#B893EC",
|
|
3445
|
+
"button-sm-primary-text": "#FBFBFD",
|
|
3446
|
+
"button-sm-secondary-bg": "#17191C",
|
|
3447
|
+
"button-sm-secondary-text": "#EDEEF3",
|
|
3448
|
+
"button-sm-tertiary-bg": "#EDEEF3",
|
|
3449
|
+
"button-sm-tertiary-text": "#292C32",
|
|
3409
3450
|
// input
|
|
3410
3451
|
"input-bg": "#FBFBFD",
|
|
3411
3452
|
"input-placeholder": "#A7ABBE",
|
|
@@ -3454,18 +3495,27 @@ const darkTheme = {
|
|
|
3454
3495
|
"animation-bg": "#9E79D2",
|
|
3455
3496
|
"animation-text": "#FBFBFD",
|
|
3456
3497
|
// buttons
|
|
3498
|
+
// lg button
|
|
3457
3499
|
"button-lg-primary-bg": "#9E79D2",
|
|
3458
3500
|
"button-lg-primary-text": "#FBFBFD",
|
|
3459
3501
|
"button-lg-secondary-bg": "#FBFBFD",
|
|
3460
3502
|
"button-lg-secondary-text": "#292C32",
|
|
3461
3503
|
"button-lg-tertiary-bg": "#292C32",
|
|
3462
3504
|
"button-lg-tertiary-text": "#D1D6E0",
|
|
3505
|
+
// md button
|
|
3463
3506
|
"button-md-primary-bg": "#9E79D2",
|
|
3464
3507
|
"button-md-primary-text": "#FBFBFD",
|
|
3465
3508
|
"button-md-secondary-bg": "#FBFBFD",
|
|
3466
3509
|
"button-md-secondary-text": "#292C32",
|
|
3467
3510
|
"button-md-tertiary-bg": "#292C32",
|
|
3468
3511
|
"button-md-tertiary-text": "#D1D6E0",
|
|
3512
|
+
// sm button
|
|
3513
|
+
"button-sm-primary-bg": "#9E79D2",
|
|
3514
|
+
"button-sm-primary-text": "#FBFBFD",
|
|
3515
|
+
"button-sm-secondary-bg": "#FBFBFD",
|
|
3516
|
+
"button-sm-secondary-text": "#292C32",
|
|
3517
|
+
"button-sm-tertiary-bg": "#292C32",
|
|
3518
|
+
"button-sm-tertiary-text": "#D1D6E0",
|
|
3469
3519
|
// input
|
|
3470
3520
|
"input-bg": "#17191C",
|
|
3471
3521
|
"input-placeholder": "#676B7E",
|
|
@@ -3544,7 +3594,7 @@ const boxShadowClassMap = {
|
|
|
3544
3594
|
xlarge: "tw-shadow-elevation-light-2",
|
|
3545
3595
|
xxlarge: "tw-shadow-elevation-dark-1",
|
|
3546
3596
|
};
|
|
3547
|
-
const roundedClassMap
|
|
3597
|
+
const roundedClassMap = {
|
|
3548
3598
|
xxs: "tw-rounded-squid-xxs",
|
|
3549
3599
|
xs: "tw-rounded-squid-xs",
|
|
3550
3600
|
s: "tw-rounded-squid-s",
|
|
@@ -3573,7 +3623,7 @@ const borderClassMap = {
|
|
|
3573
3623
|
};
|
|
3574
3624
|
function Image$1(_a) {
|
|
3575
3625
|
var { src, size = "medium", className: propsClassName, placeholderImageUrl, border = "none", rounded = "xxs", shadow = false, children, containerProps } = _a, props = __rest$1(_a, ["src", "size", "className", "placeholderImageUrl", "border", "rounded", "shadow", "children", "containerProps"]);
|
|
3576
|
-
const className = cn("tw-object-cover tw-aspect-square tw-relative tw-duration-300 tw-transition-[width,height] tw-max-w-full tw-bg-grey-500", sizeClassMap$1[size], propsClassName, roundedClassMap
|
|
3626
|
+
const className = cn("tw-object-cover tw-aspect-square tw-relative tw-duration-300 tw-transition-[width,height] tw-max-w-full tw-bg-grey-500", sizeClassMap$1[size], propsClassName, roundedClassMap[rounded], shadow && boxShadowClassMap[size], borderClassMap[border]);
|
|
3577
3627
|
const [imageState, setImageState] = React$1.useState(exports.ImageState.LOADED);
|
|
3578
3628
|
return (jsxRuntime.jsxs("div", Object.assign({}, containerProps, { className: cn("tw-relative", containerProps === null || containerProps === void 0 ? void 0 : containerProps.className), children: [border === "gradient" && (jsxRuntime.jsx("span", { style: {
|
|
3579
3629
|
borderRadius: gradientRoundedClassMap[rounded],
|
|
@@ -4032,6 +4082,12 @@ function ArrowExpandIcon({ className, size = "24", }) {
|
|
|
4032
4082
|
function MoneyBagIcon({ className, size = "24", }) {
|
|
4033
4083
|
return (jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", className: className, children: jsxRuntime.jsx("path", { d: "M9.5 8H14.5M9.5 8C9.5 8 3.99996 11 4 16C4.00003 20.0207 7.97931 21 12 21C16.0207 21 20 20.0207 20 16C20 11 14.5 8 14.5 8M9.5 8L8.55725 5.48601C8.23089 4.6157 8.56249 3.64123 9.45158 3.37016C10.1074 3.1702 10.9686 3 12 3C13.0314 3 13.8926 3.1702 14.5484 3.37016C15.4375 3.64123 15.7691 4.6157 15.4427 5.48601L14.5 8", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
4034
4084
|
}
|
|
4085
|
+
function PluginIcon({ size = "16", className, }) {
|
|
4086
|
+
return (jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 16 16", fill: "none", className: className, children: jsxRuntime.jsx("path", { d: "M6.66675 1.99998C6.66675 1.63179 6.36827 1.33331 6.00008 1.33331C5.63189 1.33331 5.33341 1.63179 5.33341 1.99998V3.99998H4.66675C3.56218 3.99998 2.66675 4.89541 2.66675 5.99998V9.33331C2.66675 11.1743 4.15913 12.6666 6.00008 12.6666H7.33341V14C7.33341 14.3682 7.63189 14.6666 8.00008 14.6666C8.36827 14.6666 8.66675 14.3682 8.66675 14V12.6666H10.0001C11.841 12.6666 13.3334 11.1743 13.3334 9.33331V5.99998C13.3334 4.89541 12.438 3.99998 11.3334 3.99998H10.6667V1.99998C10.6667 1.63179 10.3683 1.33331 10.0001 1.33331C9.63189 1.33331 9.33341 1.63179 9.33341 1.99998V3.99998H6.66675V1.99998Z", fill: "currentColor" }) }));
|
|
4087
|
+
}
|
|
4088
|
+
function CircleCheckIcon({ className, size = "24", }) {
|
|
4089
|
+
return (jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", className: className, children: jsxRuntime.jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2ZM15.774 10.1333C16.1237 9.70582 16.0607 9.0758 15.6332 8.72607C15.2058 8.37635 14.5758 8.43935 14.226 8.86679L10.4258 13.5116L9.20711 12.2929C8.81658 11.9024 8.18342 11.9024 7.79289 12.2929C7.40237 12.6834 7.40237 13.3166 7.79289 13.7071L9.79289 15.7071C9.99267 15.9069 10.2676 16.0129 10.5498 15.9988C10.832 15.9847 11.095 15.8519 11.274 15.6333L15.774 10.1333Z", fill: "currentColor" }) }));
|
|
4090
|
+
}
|
|
4035
4091
|
|
|
4036
4092
|
function EmptyHeartIcon({ className }) {
|
|
4037
4093
|
return (jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", className: className, children: jsxRuntime.jsx("path", { d: "M21 10C21 15.75 12.75 20 12 20C11.25 20 3 15.75 3 10C3 6 5.5 4 8 4C10.5 4 12 5.5 12 5.5C12 5.5 13.5 4 16 4C18.5 4 21 6 21 10Z", stroke: "currentColor", strokeWidth: "2", strokeLinejoin: "round" }) }));
|
|
@@ -4398,16 +4454,23 @@ function Chip(_a) {
|
|
|
4398
4454
|
return (jsxRuntime.jsx("div", Object.assign({}, props, { className: cn("tw-flex tw-h-squid-m tw-items-center tw-justify-center tw-rounded-squid-m tw-bg-grey-500 tw-text-grey-900", icon && "tw-w-squid-m", props.className), children: label ? (jsxRuntime.jsx(CaptionText, { className: "tw-min-w-squid-xl tw-text-nowrap tw-px-squid-xxs tw-text-center", children: label })) : (icon) })));
|
|
4399
4455
|
}
|
|
4400
4456
|
|
|
4457
|
+
const loaderSizeMap = {
|
|
4458
|
+
sm: "16px",
|
|
4459
|
+
md: "24px",
|
|
4460
|
+
lg: "36px",
|
|
4461
|
+
};
|
|
4401
4462
|
const baseButtonClassName = "tw-border tw-relative tw-overflow-hidden tw-group/base-button tw-flex tw-items-center tw-justify-center";
|
|
4402
4463
|
const buttonWidthClassnameMap = {
|
|
4464
|
+
sm: "tw-w-max",
|
|
4403
4465
|
md: "tw-min-w-[60px]",
|
|
4404
4466
|
lg: "tw-w-full",
|
|
4405
4467
|
};
|
|
4406
4468
|
const buttonSizeClassMap = {
|
|
4407
4469
|
md: "tw-px-squid-xs tw-py-squid-xxs tw-h-squid-xl",
|
|
4408
4470
|
lg: "tw-p-1 tw-h-button",
|
|
4471
|
+
sm: "tw-h-squid-l tw-px-squid-xs",
|
|
4409
4472
|
};
|
|
4410
|
-
const
|
|
4473
|
+
const buttonRoundedClassMap = {
|
|
4411
4474
|
lg: {
|
|
4412
4475
|
primary: "tw-rounded-button-lg-primary",
|
|
4413
4476
|
secondary: "tw-rounded-button-lg-secondary",
|
|
@@ -4418,6 +4481,11 @@ const roundedClassMap = {
|
|
|
4418
4481
|
secondary: "tw-rounded-button-md-secondary",
|
|
4419
4482
|
tertiary: "tw-rounded-button-md-tertiary",
|
|
4420
4483
|
},
|
|
4484
|
+
sm: {
|
|
4485
|
+
primary: "tw-rounded-button-sm-primary",
|
|
4486
|
+
secondary: "tw-rounded-button-sm-secondary",
|
|
4487
|
+
tertiary: "tw-rounded-button-sm-tertiary",
|
|
4488
|
+
},
|
|
4421
4489
|
};
|
|
4422
4490
|
const buttonVariantClassMap = {
|
|
4423
4491
|
lg: {
|
|
@@ -4430,22 +4498,24 @@ const buttonVariantClassMap = {
|
|
|
4430
4498
|
secondary: "tw-bg-button-md-secondary-bg tw-text-button-md-secondary-text",
|
|
4431
4499
|
tertiary: "tw-bg-button-md-tertiary-bg tw-text-button-md-tertiary-text",
|
|
4432
4500
|
},
|
|
4501
|
+
sm: {
|
|
4502
|
+
primary: "tw-bg-button-sm-primary-bg tw-text-button-sm-primary-text",
|
|
4503
|
+
secondary: "tw-bg-button-sm-secondary-bg tw-text-button-sm-secondary-text",
|
|
4504
|
+
tertiary: "tw-bg-button-sm-tertiary-bg tw-text-button-sm-tertiary-text",
|
|
4505
|
+
},
|
|
4433
4506
|
};
|
|
4434
4507
|
// right now all variants have the same disabled styles
|
|
4435
4508
|
// in the future, we can add more disabled styles for different variants
|
|
4436
4509
|
const buttonDisabledClass = "!tw-bg-grey-800 !tw-text-grey-600 tw-cursor-not-allowed";
|
|
4437
4510
|
const loadingClassname = "tw-invisible tw-opacity-0";
|
|
4438
4511
|
function Button$1(_a) {
|
|
4439
|
-
var { label, disabled = false, size, variant, icon, link, isLoading = false, showLoader = false, chip, containerClassName, anchorRef, buttonRef } = _a, props = __rest$1(_a, ["label", "disabled", "size", "variant", "icon", "link", "isLoading", "showLoader", "chip", "containerClassName", "anchorRef", "buttonRef"]);
|
|
4512
|
+
var { label, disabled = false, size, variant, icon, link, isLoading = false, showLoader = false, loaderSize = "md", chip, containerClassName, anchorRef, buttonRef } = _a, props = __rest$1(_a, ["label", "disabled", "size", "variant", "icon", "link", "isLoading", "showLoader", "loaderSize", "chip", "containerClassName", "anchorRef", "buttonRef"]);
|
|
4440
4513
|
const chipElement = chip != null ? (jsxRuntime.jsx(Chip, Object.assign({}, chip, { className: cn("tw-absolute -tw-right-squid-xxs -tw-top-squid-xxs tw-z-10", chip.className) }))) : null;
|
|
4441
|
-
const children = (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [!disabled && !isLoading && (jsxRuntime.jsx(ButtonHoverOverlay, { className:
|
|
4442
|
-
|
|
4443
|
-
|
|
4444
|
-
|
|
4445
|
-
|
|
4446
|
-
// icon and label
|
|
4447
|
-
jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [icon, jsxRuntime.jsx(BodyText, { className: "tw-pr-1", size: "small", children: label })] }))) : null })] }));
|
|
4448
|
-
const className = cn(baseButtonClassName, buttonSizeClassMap[size], buttonWidthClassnameMap[size], buttonVariantClassMap[size][variant], "tw-border-material-light-thin", !disabled && !isLoading && "hover:tw-border-material-light-average", roundedClassMap[size][variant],
|
|
4514
|
+
const children = (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [!disabled && !isLoading && (jsxRuntime.jsx(ButtonHoverOverlay, { className: buttonRoundedClassMap[size][variant] })), jsxRuntime.jsx("div", { className: "tw-relative tw-z-[5] tw-flex tw-items-center tw-justify-center tw-gap-squid-xxs", children: label == null && icon == null && !showLoader ? (props.children) : (jsxRuntime.jsxs("span", { className: cn("tw-flex tw-items-center tw-justify-center", size === "lg"
|
|
4515
|
+
? "tw-gap-squid-xs tw-px-squid-m"
|
|
4516
|
+
: "tw-gap-squid-xxs"), children: [showLoader && jsxRuntime.jsx(Loader, { size: loaderSizeMap[loaderSize] }), !isLoading && icon, label != null &&
|
|
4517
|
+
(size === "sm" ? (jsxRuntime.jsx(CaptionText, { className: cn(isLoading && loadingClassname, icon != null && "tw-pr-1"), children: label })) : (jsxRuntime.jsx(BodyText, { className: cn(isLoading && loadingClassname, icon != null && "tw-pr-1"), size: size === "lg" ? "medium" : "small", children: label })))] })) })] }));
|
|
4518
|
+
const className = cn(baseButtonClassName, buttonSizeClassMap[size], buttonWidthClassnameMap[size], buttonVariantClassMap[size][variant], "tw-border-material-light-thin", !disabled && !isLoading && "hover:tw-border-material-light-average", buttonRoundedClassMap[size][variant],
|
|
4449
4519
|
// disabled styles
|
|
4450
4520
|
disabled && buttonDisabledClass, isLoading && "tw-cursor-not-allowed",
|
|
4451
4521
|
// custom classes from props
|
|
@@ -4463,7 +4533,7 @@ function Button$1(_a) {
|
|
|
4463
4533
|
const ButtonHoverOverlay = ({ className }) => {
|
|
4464
4534
|
return (jsxRuntime.jsx("span", { className: cn("tw-absolute tw-inset-0 tw-z-0 tw-hidden tw-h-full tw-w-full tw-bg-material-light-thin group-hover/base-button:tw-block", className) }));
|
|
4465
4535
|
};
|
|
4466
|
-
const ButtonWrapper = ({ children, size, variant, className, }) => (jsxRuntime.jsx("div", { className: cn("tw-relative", buttonWidthClassnameMap[size],
|
|
4536
|
+
const ButtonWrapper = ({ children, size, variant, className, }) => (jsxRuntime.jsx("div", { className: cn("tw-relative", buttonWidthClassnameMap[size], buttonRoundedClassMap[size][variant], className), children: children }));
|
|
4467
4537
|
|
|
4468
4538
|
function AccountsButton(_a) {
|
|
4469
4539
|
var { imageUrls } = _a, props = __rest$1(_a, ["imageUrls"]);
|
|
@@ -4489,6 +4559,26 @@ function ArrowButton(_a) {
|
|
|
4489
4559
|
"aria-disabled:tw-bg-grey-600 aria-disabled:tw-text-grey-800"), children: jsxRuntime.jsx(ArrowRightIcon, {}) })] })));
|
|
4490
4560
|
}
|
|
4491
4561
|
|
|
4562
|
+
const colors = [
|
|
4563
|
+
"#D94E41",
|
|
4564
|
+
"#E58845",
|
|
4565
|
+
"#D9BA21",
|
|
4566
|
+
"#B1CC29",
|
|
4567
|
+
"#66CC33",
|
|
4568
|
+
"#19A654",
|
|
4569
|
+
"#56BFB6",
|
|
4570
|
+
"#45B0E5",
|
|
4571
|
+
"#3973E5",
|
|
4572
|
+
"#7562D9",
|
|
4573
|
+
"#B167E5",
|
|
4574
|
+
"#E573BF",
|
|
4575
|
+
];
|
|
4576
|
+
function useColorFromSeed(seed) {
|
|
4577
|
+
return React$1.useMemo(() => {
|
|
4578
|
+
return colors[hashStringToIndex(seed, colors.length)];
|
|
4579
|
+
}, [seed]);
|
|
4580
|
+
}
|
|
4581
|
+
|
|
4492
4582
|
function Input(_a) {
|
|
4493
4583
|
var { placeholder = "Search", showIcon = true, className, icon, isError = false, isWarning = false, containerClassName, actionButtonProps, autoFocusTimeout, inputRef: inputRefProp } = _a, props = __rest$1(_a, ["placeholder", "showIcon", "className", "icon", "isError", "isWarning", "containerClassName", "actionButtonProps", "autoFocusTimeout", "inputRef"]);
|
|
4494
4584
|
const showActionButton = actionButtonProps != null;
|
|
@@ -19382,7 +19472,7 @@ const collapsedListItemClassMap = {
|
|
|
19382
19472
|
large: "tw-w-[80px]",
|
|
19383
19473
|
};
|
|
19384
19474
|
function ListItem(_a) {
|
|
19385
|
-
var { itemTitle, mainImageUrl, subtitle, subtitleOnHover, detail, icon, secondaryImageUrl, placeholderImageUrl, size = "large", mainIcon, className, isSelected = false, onDetailClick, showDetailOnHoverOnly, rounded = "xxs", detailButtonClassName, loading, containerProps, compactOnMobile, extraPadding = true, itemsContainerRef, dropdownMenuContent, imageGroup, multilineSubtitle = false } = _a, props = __rest$1(_a, ["itemTitle", "mainImageUrl", "subtitle", "subtitleOnHover", "detail", "icon", "secondaryImageUrl", "placeholderImageUrl", "size", "mainIcon", "className", "isSelected", "onDetailClick", "showDetailOnHoverOnly", "rounded", "detailButtonClassName", "loading", "containerProps", "compactOnMobile", "extraPadding", "itemsContainerRef", "dropdownMenuContent", "imageGroup", "multilineSubtitle"]);
|
|
19475
|
+
var { itemTitle, mainImageUrl, subtitle, subtitleOnHover, detail, icon, secondaryImageUrl, placeholderImageUrl, size = "large", mainIcon, className, isSelected = false, onDetailClick, showDetailOnHoverOnly, rounded = "xxs", detailButtonClassName, loading, containerProps, compactOnMobile, extraPadding = true, itemsContainerRef, dropdownMenuContent, imageGroup, multilineSubtitle = false, control } = _a, props = __rest$1(_a, ["itemTitle", "mainImageUrl", "subtitle", "subtitleOnHover", "detail", "icon", "secondaryImageUrl", "placeholderImageUrl", "size", "mainIcon", "className", "isSelected", "onDetailClick", "showDetailOnHoverOnly", "rounded", "detailButtonClassName", "loading", "containerProps", "compactOnMobile", "extraPadding", "itemsContainerRef", "dropdownMenuContent", "imageGroup", "multilineSubtitle", "control"]);
|
|
19386
19476
|
const { isDropdownOpen, dropdownRef, openDropdown, closeDropdown, openDropdownButtonRef, itemRef, menuRef, dropdownStyles, } = useDropdownMenu({
|
|
19387
19477
|
itemsContainerRef,
|
|
19388
19478
|
});
|
|
@@ -19418,9 +19508,11 @@ function ListItem(_a) {
|
|
|
19418
19508
|
}
|
|
19419
19509
|
return null;
|
|
19420
19510
|
};
|
|
19421
|
-
const isInteractive = !!props.onClick;
|
|
19422
|
-
const ItemTag = isInteractive ? "button" : "div";
|
|
19423
|
-
const itemProps = isInteractive
|
|
19511
|
+
const isInteractive = !!props.onClick || !!control;
|
|
19512
|
+
const ItemTag = isInteractive ? (control ? "label" : "button") : "div";
|
|
19513
|
+
const itemProps = isInteractive
|
|
19514
|
+
? props
|
|
19515
|
+
: {};
|
|
19424
19516
|
const handleInteraction = (e) => {
|
|
19425
19517
|
var _a;
|
|
19426
19518
|
e.preventDefault();
|
|
@@ -19437,9 +19529,9 @@ function ListItem(_a) {
|
|
|
19437
19529
|
};
|
|
19438
19530
|
return (jsxRuntime.jsxs("li", Object.assign({}, containerProps, { ref: itemRef, className: cn("tw-relative tw-flex tw-max-w-full tw-bg-grey-900 tw-text-grey-300 tw-highlight-adjacent", !multilineSubtitle && listItemSizeMap[size], extraPadding && "tw-px-squid-xs", compactOnMobile
|
|
19439
19531
|
? `${collapsedListItemClassMap[size]} mobile-lg:tw-w-full`
|
|
19440
|
-
: "tw-w-full", className), children: [jsxRuntime.jsxs(ItemTag, Object.assign({}, itemProps, { onClick: handleItemClick, className: cn("tw-group/list-item tw-peer/list-item tw-relative tw-flex tw-w-full tw-max-w-full tw-justify-start tw-gap-squid-xs tw-rounded-squid-s tw-px-squid-xs", !multilineSubtitle
|
|
19532
|
+
: "tw-w-full", className), children: [jsxRuntime.jsxs(ItemTag, Object.assign({}, itemProps, { onClick: control == null ? handleItemClick : undefined, className: cn("tw-group/list-item tw-peer/list-item tw-relative tw-flex tw-w-full tw-max-w-full tw-justify-start tw-gap-squid-xs tw-rounded-squid-s tw-px-squid-xs", !multilineSubtitle
|
|
19441
19533
|
? "tw-items-center tw-py-squid-xxs"
|
|
19442
|
-
: "tw-py-squid-xs", (isSelected || isDropdownOpen) && "tw-bg-material-light-thin", isInteractive && "hover:tw-bg-material-light-thin", isInteractive && "tw-text-left tw-normal-case"), children: [size === "large" ? (jsxRuntime.jsx("div", { className: "tw-h-10 tw-w-10", children: mainIcon !== null && mainIcon !== void 0 ? mainIcon : (imageGroup != null ? (jsxRuntime.jsx(ImageGroup, { size: "small", imageUrls: imageGroup })) : (jsxRuntime.jsx(BadgeImage, { image: {
|
|
19534
|
+
: "tw-py-squid-xs", (isSelected || isDropdownOpen) && "tw-bg-material-light-thin", isInteractive && control == null && "hover:tw-bg-material-light-thin", isInteractive && "tw-text-left tw-normal-case"), children: [size === "large" ? (jsxRuntime.jsx("div", { className: "tw-h-10 tw-w-10", children: mainIcon !== null && mainIcon !== void 0 ? mainIcon : (imageGroup != null ? (jsxRuntime.jsx(ImageGroup, { size: "small", imageUrls: imageGroup })) : (jsxRuntime.jsx(BadgeImage, { image: {
|
|
19443
19535
|
src: mainImageUrl,
|
|
19444
19536
|
placeholderImageUrl,
|
|
19445
19537
|
size: "xlarge",
|
|
@@ -19459,7 +19551,7 @@ function ListItem(_a) {
|
|
|
19459
19551
|
: "tw-flex", isDetailInteractive && "hover:tw-bg-material-light-thin", detailButtonClassName), children: [!!detail && (jsxRuntime.jsx(CaptionText, { className: "min-tw-w-4 min-tw-h-4 tw-px-squid-xxs tw-leading-[10px]", children: detail })), icon ? (jsxRuntime.jsx("span", { className: "tw-flex tw-items-center tw-justify-center tw-px-[3px] tw-py-2", children: icon })) : null] }))), !!dropdownMenuContent && (jsxRuntime.jsx(ListItemActionsButton, { ref: openDropdownButtonRef, onClick: (e) => {
|
|
19460
19552
|
e.stopPropagation();
|
|
19461
19553
|
isDropdownOpen ? closeDropdown() : openDropdown();
|
|
19462
|
-
}, isActive: isDropdownOpen, className: "tw-z-20 peer-hover/list-item:tw-opacity-100" }))] })), isDropdownOpen && !!dropdownMenuContent ? (jsxRuntime.jsx(DropdownMenu, { menuRef: menuRef, isHidden: !dropdownStyles, className: cn(!!dropdownStyles &&
|
|
19554
|
+
}, isActive: isDropdownOpen, className: "tw-z-20 peer-hover/list-item:tw-opacity-100" })), control] })), isDropdownOpen && !!dropdownMenuContent ? (jsxRuntime.jsx(DropdownMenu, { menuRef: menuRef, isHidden: !dropdownStyles, className: cn(!!dropdownStyles &&
|
|
19463
19555
|
dropdownPositionClassMap$1[dropdownStyles.position]), dropdownRef: dropdownRef, children: dropdownMenuContent })) : null] })));
|
|
19464
19556
|
}
|
|
19465
19557
|
const ListItemActionsButton = React$1.forwardRef((_a, ref) => {
|
|
@@ -27554,19 +27646,23 @@ function Switch({ checked = false, onChange, size, disabled = false, inputProps,
|
|
|
27554
27646
|
// size styles
|
|
27555
27647
|
switchSizeClassMap[size],
|
|
27556
27648
|
// checked styles
|
|
27557
|
-
checked ? "tw-bg-
|
|
27649
|
+
disabled || !checked ? "tw-bg-grey-800" : "tw-bg-status-positive",
|
|
27558
27650
|
// disabled styles
|
|
27559
27651
|
disabled ? "tw-cursor-not-allowed" : "tw-cursor-pointer",
|
|
27560
27652
|
// Focus visible styles
|
|
27561
27653
|
"tw-focus-visible-within-outline"), children: [jsxRuntime.jsx("input", Object.assign({}, inputProps, { disabled: disabled, checked: checked, onChange: disabled ? undefined : (e) => onChange === null || onChange === void 0 ? void 0 : onChange(e.target.checked), type: "checkbox", className: "tw-peer tw-sr-only" })), jsxRuntime.jsx("span", { style: {
|
|
27562
|
-
filter:
|
|
27654
|
+
filter: disabled
|
|
27655
|
+
? "drop-shadow(0px 5px 20px rgba(0, 0, 0, 0.10)) drop-shadow(0px 1px 5px rgba(0, 0, 0, 0.10))"
|
|
27656
|
+
: "drop-shadow(0px 5px 20px rgba(0, 0, 0, 0.33)) drop-shadow(0px 2px 5px rgba(0, 0, 0, 0.20))",
|
|
27563
27657
|
}, className: clsx("tw-absolute tw-rounded-full tw-border tw-border-material-light-thin tw-transition-all",
|
|
27564
27658
|
// size styles
|
|
27565
27659
|
switchKnobSizeClassMap[size],
|
|
27566
27660
|
// checked styles
|
|
27567
|
-
switchKnobCheckedClassMap[size][checked ? "checked" : "unchecked"],
|
|
27568
|
-
? "group-data-[squid-theme-type=dark]:tw-bg-grey-
|
|
27569
|
-
:
|
|
27661
|
+
switchKnobCheckedClassMap[size][checked ? "checked" : "unchecked"], disabled
|
|
27662
|
+
? "group-data-[squid-theme-type=dark]:tw-bg-grey-700 group-data-[squid-theme-type=light]:tw-bg-grey-900"
|
|
27663
|
+
: checked
|
|
27664
|
+
? "group-data-[squid-theme-type=dark]:tw-bg-grey-100 group-data-[squid-theme-type=light]:tw-bg-grey-900"
|
|
27665
|
+
: "tw-bg-grey-500") })] }));
|
|
27570
27666
|
}
|
|
27571
27667
|
|
|
27572
27668
|
function RangeInput({ label, initialValue, onChange, min = 0, max = 99, isWarning = false, }) {
|
|
@@ -27680,7 +27776,8 @@ function RangeInput({ label, initialValue, onChange, min = 0, max = 99, isWarnin
|
|
|
27680
27776
|
}, onMouseLeave: handleUpdateValue, className: cn("tw-relative tw-flex tw-h-full tw-items-center tw-justify-center tw-self-stretch tw-rounded-squid-xs tw-p-squid-xxs tw-text-left tw-text-caption tw-font-caption tw-leading-[10px] placeholder-shown:tw-text-grey-600 hover:tw-bg-material-light-thin"), children: jsxRuntime.jsx(CirclePlusIcon, {}) })] })] }) }));
|
|
27681
27777
|
}
|
|
27682
27778
|
|
|
27683
|
-
const
|
|
27779
|
+
const imageWrapperClassName = "tw-w-[40px] tw-aspect-square tw-flex tw-items-center tw-justify-center";
|
|
27780
|
+
const tokenImageClassName = "tw-absolute tw-h-squid-xl tw-w-squid-xl tw-rounded-full tw-object-cover";
|
|
27684
27781
|
const themeKeyVariantMap = {
|
|
27685
27782
|
primary: "grey-800",
|
|
27686
27783
|
accent: "royal-500",
|
|
@@ -27700,6 +27797,12 @@ var AssetsButtonState;
|
|
|
27700
27797
|
AssetsButtonState[AssetsButtonState["EMPTY"] = 2] = "EMPTY";
|
|
27701
27798
|
AssetsButtonState[AssetsButtonState["LOADING"] = 3] = "LOADING";
|
|
27702
27799
|
})(AssetsButtonState || (AssetsButtonState = {}));
|
|
27800
|
+
var ImageLoadingState;
|
|
27801
|
+
(function (ImageLoadingState) {
|
|
27802
|
+
ImageLoadingState[ImageLoadingState["LOADING"] = 0] = "LOADING";
|
|
27803
|
+
ImageLoadingState[ImageLoadingState["LOADED"] = 1] = "LOADED";
|
|
27804
|
+
ImageLoadingState[ImageLoadingState["ERROR"] = 2] = "ERROR";
|
|
27805
|
+
})(ImageLoadingState || (ImageLoadingState = {}));
|
|
27703
27806
|
const outlineWidthMap = {
|
|
27704
27807
|
[AssetsButtonState.LOADING]: {
|
|
27705
27808
|
inner: 75,
|
|
@@ -27719,7 +27822,9 @@ const outlineWidthMap = {
|
|
|
27719
27822
|
},
|
|
27720
27823
|
};
|
|
27721
27824
|
function AssetsButton({ chain, token, onClick, variant = "primary", isLoading = false, tooltip, emptyTokenLabel = "Select token", }) {
|
|
27722
|
-
var _a, _b;
|
|
27825
|
+
var _a, _b, _c, _d;
|
|
27826
|
+
const [tokenImageLoadingState, setTokenImageLoadingState] = React$1.useState(ImageLoadingState.LOADING);
|
|
27827
|
+
const fallbackBgColor = useColorFromSeed((_a = token === null || token === void 0 ? void 0 : token.symbol) !== null && _a !== void 0 ? _a : "");
|
|
27723
27828
|
const state = React$1.useMemo(() => {
|
|
27724
27829
|
if (chain != null && !isLoading) {
|
|
27725
27830
|
if (token != null) {
|
|
@@ -27734,10 +27839,27 @@ function AssetsButton({ chain, token, onClick, variant = "primary", isLoading =
|
|
|
27734
27839
|
}, [token, chain, isLoading]);
|
|
27735
27840
|
const defaultBgColor = `var(${themeKeysToCssVariables.color[themeKeyVariantMap[variant]].cssVariable})`;
|
|
27736
27841
|
const outlineWidth = outlineWidthMap[state];
|
|
27737
|
-
const chainBgColor = (
|
|
27738
|
-
const
|
|
27739
|
-
?
|
|
27740
|
-
:
|
|
27842
|
+
const chainBgColor = (_b = chain === null || chain === void 0 ? void 0 : chain.bgColor) !== null && _b !== void 0 ? _b : defaultBgColor;
|
|
27843
|
+
const tokenTextColor = tokenImageLoadingState === ImageLoadingState.ERROR
|
|
27844
|
+
? "#fff"
|
|
27845
|
+
: token === null || token === void 0 ? void 0 : token.textColor;
|
|
27846
|
+
const tokenBgColor = React$1.useMemo(() => {
|
|
27847
|
+
if (state !== AssetsButtonState.FULL) {
|
|
27848
|
+
return defaultBgColor;
|
|
27849
|
+
}
|
|
27850
|
+
if (tokenImageLoadingState === ImageLoadingState.ERROR) {
|
|
27851
|
+
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
27852
|
+
return fallbackBgColor || defaultBgColor;
|
|
27853
|
+
}
|
|
27854
|
+
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
27855
|
+
return (token === null || token === void 0 ? void 0 : token.bgColor) || defaultBgColor;
|
|
27856
|
+
}, [
|
|
27857
|
+
state,
|
|
27858
|
+
token === null || token === void 0 ? void 0 : token.bgColor,
|
|
27859
|
+
defaultBgColor,
|
|
27860
|
+
tokenImageLoadingState,
|
|
27861
|
+
fallbackBgColor,
|
|
27862
|
+
]);
|
|
27741
27863
|
const bgGradient = React$1.useMemo(() => {
|
|
27742
27864
|
switch (state) {
|
|
27743
27865
|
case AssetsButtonState.EMPTY:
|
|
@@ -27755,12 +27877,22 @@ function AssetsButton({ chain, token, onClick, variant = "primary", isLoading =
|
|
|
27755
27877
|
? "tw-cursor-not-allowed"
|
|
27756
27878
|
: "tw-group/assets-button"), children: [jsxRuntime.jsx("svg", { className: "tw-absolute tw-left-0 tw-z-10 tw-h-[40px] tw-w-[72px] tw-text-material-light-thin", viewBox: "0 0 72 40", xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", children: jsxRuntime.jsx("path", { d: "m57.86 5.86c-.53.53-1.05 1.06-1.56 1.59-3.29 3.38-6.37 6.55-10.3 6.55s-7.01-3.17-10.3-6.55c-.51-.53-1.03-1.06-1.56-1.59-3.9-3.91-9.02-5.86-14.14-5.86s-10.24 1.95-14.14 5.86c-3.91 3.9-5.86 9.02-5.86 14.14s1.95 10.24 5.86 14.14c3.91 3.91 9.02 5.86 14.14 5.86s10.24-1.95 14.14-5.86c.52-.53 1.04-1.06 1.55-1.58 3.29-3.39 6.37-6.56 10.31-6.56s7.02 3.17 10.31 6.56c.51.53 1.03 1.06 1.55 1.58 3.91 3.91 9.02 5.86 14.14 5.86v-40c-5.12 0-10.24 1.95-14.14 5.86zm14.14 33.14c-5.07 0-9.85-1.98-13.43-5.56-.52-.52-1.02-1.04-1.54-1.57-3.43-3.53-6.67-6.86-11.02-6.86s-7.6 3.33-11.04 6.88c-.5.52-1.01 1.04-1.53 1.56-3.59 3.59-8.36 5.57-13.44 5.57s-9.85-1.98-13.43-5.57c-3.59-3.59-5.56-8.36-5.56-13.43s1.98-9.85 5.56-13.44c3.58-3.6 8.35-5.58 13.43-5.58s9.85 1.98 13.44 5.57c.52.52 1.04 1.05 1.55 1.58 3.43 3.53 6.66 6.86 11.02 6.86s7.59-3.33 11.02-6.86c.51-.52 1.02-1.05 1.55-1.58 3.59-3.59 8.36-5.56 13.43-5.56v38z" }) }), jsxRuntime.jsxs("svg", { className: "tw-absolute -tw-left-[2px] -tw-top-[2px] tw-z-20 tw-hidden group-hover/assets-button:tw-block", xmlns: "http://www.w3.org/2000/svg", width: outlineWidth.inner, height: "44", viewBox: `0 0 ${outlineWidth.inner} 44`, fill: "none", children: [jsxRuntime.jsx("clipPath", { id: "halfClip1", children: jsxRuntime.jsx("rect", { x: "0", y: "0", width: outlineWidth.inner, height: "44" }) }), jsxRuntime.jsx("path", { d: "M59.1506 36.849L59.1508 36.8492C63.2511 40.9496 68.6272 43 74.0001 43H145C156.598 43 166 33.598 166 22C166 10.402 156.598 1 145 1H74.0001C68.6272 0.999977 63.2511 3.05042 59.1508 7.15076C58.6183 7.68325 58.0958 8.22097 57.5842 8.74755L57.5817 8.75009C55.9228 10.4574 54.3925 12.0283 52.8031 13.1834C51.2282 14.3279 49.6791 15 48 15C46.3209 15 44.7718 14.3279 43.1969 13.1834C41.6075 12.0283 40.0772 10.4574 38.4183 8.75009L38.4159 8.74759C37.9042 8.22101 37.3817 7.68327 36.8492 7.15076C32.7489 3.05042 27.3728 0.999977 21.9999 1C16.6271 1.00002 11.251 3.05047 7.15076 7.15076C3.05045 11.2511 1 16.6272 1 22C1 27.3728 3.05045 32.7489 7.15076 36.8492C11.251 40.9495 16.6271 43 21.9999 43C27.3728 43 32.7489 40.9496 36.8492 36.8492L36.8494 36.849C37.3794 36.3188 37.8994 35.7834 38.4088 35.2589L38.4108 35.2569C40.0704 33.5483 41.6019 31.9756 43.1928 30.8191C44.7691 29.6731 46.3197 29 48 29C49.6803 29 51.2309 29.6731 52.8072 30.8191C54.3981 31.9756 55.9296 33.5483 57.5892 35.2569L57.5912 35.2589C58.1006 35.7834 58.6206 36.3188 59.1506 36.849Z", stroke: "currentColor", className: "tw-text-grey-900", strokeWidth: "2", clipPath: "url(#halfClip1)" })] }), jsxRuntime.jsxs("svg", { className: "tw-absolute -tw-left-[4px] -tw-top-[4px] tw-z-10 tw-hidden group-hover/assets-button:tw-block", xmlns: "http://www.w3.org/2000/svg", width: outlineWidth.outer, height: "48", viewBox: `0 0 ${outlineWidth.outer} 48`, fill: "none", children: [jsxRuntime.jsx("clipPath", { id: "halfClip2", children: jsxRuntime.jsx("rect", { x: "0", y: "0", width: outlineWidth.outer, height: "48" }) }), jsxRuntime.jsx("path", { d: "M60.4432 39.5559L60.4437 39.5564C64.7391 43.8517 70.3729 46 76.0001 46H147C159.15 46 169 36.1503 169 24C169 11.8497 159.15 2 147 2H76.0001C70.3729 1.99998 64.7391 4.14825 60.4437 8.44365C59.9062 8.98109 59.3797 9.52298 58.8697 10.0479L58.8645 10.0532C57.1905 11.7761 55.7217 13.2796 54.2152 14.3745C52.7378 15.4481 51.3923 16 50 16C48.6077 16 47.2622 15.4481 45.7848 14.3745C44.2783 13.2796 42.8095 11.7761 41.1355 10.0532L41.1305 10.0481C40.6205 9.52314 40.0939 8.98117 39.5563 8.44365C35.2609 4.14825 29.6271 1.99998 23.9999 2C18.3727 2.00002 12.739 4.1483 8.44365 8.44365C4.14827 12.739 2 18.3728 2 24C2 29.6272 4.14827 35.261 8.44365 39.5564C12.739 43.8517 18.3727 46 23.9999 46C29.6271 46 35.2609 43.8517 39.5563 39.5564L39.5568 39.5559C40.0917 39.0207 40.6159 38.481 41.1237 37.9582L41.1281 37.9537C42.8028 36.2295 44.2728 34.7243 45.7808 33.6279C47.2597 32.5528 48.6066 32 50 32C51.3934 32 52.7403 32.5528 54.2192 33.6279C55.7272 34.7243 57.1972 36.2295 58.8719 37.9537L58.8763 37.9582C59.3841 38.481 59.9083 39.0207 60.4432 39.5559Z", stroke: "currentColor", className: "tw-text-material-light-average", strokeWidth: "4", clipPath: "url(#halfClip2)" })] }), jsxRuntime.jsx("div", { className: cn("tw-assets-button-mask tw-flex tw-h-squid-xl tw-w-[92px] tw-items-center tw-justify-between", state !== AssetsButtonState.FULL && "!tw-w-[72px]"), style: {
|
|
27757
27879
|
backgroundImage: bgGradient,
|
|
27758
|
-
}, children: jsxRuntime.jsx("div", { className: clsx(
|
|
27759
|
-
state === AssetsButtonState.FULL ? (jsxRuntime.jsx("img", { src: chain === null || chain === void 0 ? void 0 : chain.iconUrl, alt: "", className: "tw-h-squid-xl tw-w-squid-xl tw-rounded-full tw-object-cover" })) : (state !== AssetsButtonState.LOADING && (jsxRuntime.jsx("span", { className: emptyChainIconTextClassNameMap[variant], children: jsxRuntime.jsx(PlusIcon, {}) }))) }) }), state === AssetsButtonState.FULL ? (jsxRuntime.jsxs("div", { className: clsx(
|
|
27880
|
+
}, children: jsxRuntime.jsx("div", { className: clsx(imageWrapperClassName), children: state === AssetsButtonState.CHAIN_ONLY ||
|
|
27881
|
+
state === AssetsButtonState.FULL ? (jsxRuntime.jsx("img", { src: chain === null || chain === void 0 ? void 0 : chain.iconUrl, alt: "", className: "tw-h-squid-xl tw-w-squid-xl tw-rounded-full tw-object-cover" })) : (state !== AssetsButtonState.LOADING && (jsxRuntime.jsx("span", { className: emptyChainIconTextClassNameMap[variant], children: jsxRuntime.jsx(PlusIcon, {}) }))) }) }), state === AssetsButtonState.FULL ? (jsxRuntime.jsxs("div", { className: clsx(imageWrapperClassName, "tw-absolute tw-left-[54px] tw-z-[5] tw-h-squid-xl tw-overflow-hidden"), children: [jsxRuntime.jsx("div", { className: "tw-absolute tw-right-0 tw-h-full tw-w-[22px]", style: {
|
|
27760
27882
|
backgroundColor: tokenBgColor,
|
|
27761
|
-
} }),
|
|
27883
|
+
} }), tokenImageLoadingState === ImageLoadingState.ERROR && (
|
|
27884
|
+
// show fallback
|
|
27885
|
+
jsxRuntime.jsx("div", { style: { color: tokenTextColor }, className: cn(tokenImageClassName, "tw-flex tw-items-center tw-justify-center tw-text-body-small"), children: (_d = (_c = token === null || token === void 0 ? void 0 : token.symbol) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.toUpperCase() })), jsxRuntime.jsx("img", { onLoad: () => {
|
|
27886
|
+
setTokenImageLoadingState(ImageLoadingState.LOADED);
|
|
27887
|
+
}, onError: () => {
|
|
27888
|
+
setTokenImageLoadingState(ImageLoadingState.ERROR);
|
|
27889
|
+
}, src: token === null || token === void 0 ? void 0 : token.iconUrl, alt: token === null || token === void 0 ? void 0 : token.symbol, className: cn(tokenImageClassName,
|
|
27890
|
+
// when image load failed, hide it with opacity: 0 instead of display: none
|
|
27891
|
+
// so new images can load and update the loading state
|
|
27892
|
+
tokenImageLoadingState === ImageLoadingState.ERROR &&
|
|
27893
|
+
"tw-opacity-0") }), jsxRuntime.jsx("div", { className: "tw-absolute tw-right-0 tw-h-full tw-w-[22px] tw-border-b\n tw-border-t tw-border-material-light-thin" })] })) : null, jsxRuntime.jsxs("div", { className: cn("tw-relative tw-flex tw-h-squid-xl tw-w-fit tw-min-w-fit tw-items-center tw-gap-squid-xxs tw-rounded-br-full tw-rounded-tr-full tw-border tw-border-l-0 tw-border-material-light-thin tw-py-squid-xs tw-pr-squid-xs before:tw-absolute before:-tw-inset-[3px] before:tw-z-[1] before:tw-w-[calc(100%+3px)] before:tw-translate-x-[3px] before:tw-rounded-br-full before:tw-rounded-tr-full before:tw-border-2 before:tw-border-l-0 before:tw-border-transparent after:tw-absolute after:-tw-inset-[5px] after:tw-z-0 after:tw-w-[calc(100%+4px)] after:tw-translate-x-[6px] after:tw-rounded-br-full after:tw-rounded-tr-full after:tw-border-4 after:tw-border-l-0 after:tw-border-transparent group-hover/assets-button:before:tw-border-grey-900 group-hover/assets-button:after:tw-border-material-light-average", state === AssetsButtonState.FULL && "tw-pl-[7px]"), style: {
|
|
27762
27894
|
backgroundColor: tokenBgColor,
|
|
27763
|
-
color:
|
|
27895
|
+
color: tokenTextColor,
|
|
27764
27896
|
}, children: [jsxRuntime.jsx(BodyText, { size: "small", className: cn("tw-leading-[13px]", state === AssetsButtonState.LOADING && "tw-min-w-[135px]"), children: state === AssetsButtonState.FULL
|
|
27765
27897
|
? token === null || token === void 0 ? void 0 : token.symbol
|
|
27766
27898
|
: state !== AssetsButtonState.LOADING && emptyTokenLabel }), state !== AssetsButtonState.LOADING && (jsxRuntime.jsx(ChevronLargeRightIcon, { className: "tw-w-4 tw-min-w-4 tw-opacity-66" }))] })] }) })));
|
|
@@ -69845,6 +69977,7 @@ exports.ChevronRightSmallIcon = ChevronRightSmallIcon;
|
|
|
69845
69977
|
exports.ChevronTopIcon = ChevronTopIcon;
|
|
69846
69978
|
exports.ChevronTopSmallIcon = ChevronTopSmallIcon;
|
|
69847
69979
|
exports.Chip = Chip;
|
|
69980
|
+
exports.CircleCheckIcon = CircleCheckIcon;
|
|
69848
69981
|
exports.CircleMinusIcon = CircleMinusIcon;
|
|
69849
69982
|
exports.CirclePlusIcon = CirclePlusIcon;
|
|
69850
69983
|
exports.CircleX = CircleX;
|
|
@@ -69963,6 +70096,7 @@ exports.PercentIcon = PercentIcon;
|
|
|
69963
70096
|
exports.PhoneIcon = PhoneIcon;
|
|
69964
70097
|
exports.PieChartIcon = PieChartIcon;
|
|
69965
70098
|
exports.PipeSeparator = PipeSeparator;
|
|
70099
|
+
exports.PluginIcon = PluginIcon;
|
|
69966
70100
|
exports.PlusIcon = PlusIcon;
|
|
69967
70101
|
exports.PoopIcon = PoopIcon;
|
|
69968
70102
|
exports.PowerIcon = PowerIcon;
|
|
@@ -70070,6 +70204,7 @@ exports.XSocialIcon = XSocialIcon;
|
|
|
70070
70204
|
exports.adjustColorForContrast = adjustColorForContrast;
|
|
70071
70205
|
exports.baseTailwindConfig = baseTailwindConfig;
|
|
70072
70206
|
exports.blendColors = blendColors;
|
|
70207
|
+
exports.buttonRoundedClassMap = buttonRoundedClassMap;
|
|
70073
70208
|
exports.cn = cn;
|
|
70074
70209
|
exports.darkTheme = darkTheme;
|
|
70075
70210
|
exports.getColorBrightness = getColorBrightness;
|
|
@@ -10,10 +10,13 @@ interface ButtonProps extends React.HTMLAttributes<HTMLButtonElement> {
|
|
|
10
10
|
link?: string;
|
|
11
11
|
isLoading?: boolean;
|
|
12
12
|
showLoader?: boolean;
|
|
13
|
+
loaderSize?: LoaderSize;
|
|
13
14
|
chip?: ChipProps;
|
|
14
15
|
containerClassName?: string;
|
|
15
16
|
buttonRef?: React.Ref<HTMLButtonElement>;
|
|
16
17
|
anchorRef?: React.Ref<HTMLAnchorElement>;
|
|
17
18
|
}
|
|
18
|
-
|
|
19
|
+
type LoaderSize = "sm" | "md" | "lg";
|
|
20
|
+
export declare const buttonRoundedClassMap: Record<ButtonSize, Record<ButtonVariant, string>>;
|
|
21
|
+
export declare function Button({ label, disabled, size, variant, icon, link, isLoading, showLoader, loaderSize, chip, containerClassName, anchorRef, buttonRef, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
19
22
|
export {};
|
|
@@ -114,3 +114,11 @@ export declare function MoneyBagIcon({ className, size, }: {
|
|
|
114
114
|
className?: string;
|
|
115
115
|
size?: string;
|
|
116
116
|
}): import("react/jsx-runtime").JSX.Element;
|
|
117
|
+
export declare function PluginIcon({ size, className, }: {
|
|
118
|
+
size?: string;
|
|
119
|
+
className?: string;
|
|
120
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
121
|
+
export declare function CircleCheckIcon({ className, size, }: {
|
|
122
|
+
className?: string;
|
|
123
|
+
size?: string;
|
|
124
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { type ImageRoundedSize } from "../../types/components";
|
|
3
|
+
type HTMLInteractiveItem = HTMLButtonElement | HTMLDivElement | HTMLLabelElement;
|
|
3
4
|
interface ListItemProps extends React.HTMLAttributes<HTMLButtonElement> {
|
|
4
5
|
itemTitle: string | React.ReactNode;
|
|
5
6
|
mainImageUrl?: string;
|
|
@@ -27,9 +28,11 @@ interface ListItemProps extends React.HTMLAttributes<HTMLButtonElement> {
|
|
|
27
28
|
itemsContainerRef?: React.RefObject<HTMLElement>;
|
|
28
29
|
imageGroup?: string[];
|
|
29
30
|
multilineSubtitle?: boolean;
|
|
31
|
+
control?: React.ReactNode;
|
|
32
|
+
onClick?: (event: React.MouseEvent<HTMLInteractiveItem>) => void;
|
|
30
33
|
}
|
|
31
34
|
type ListItemSize = "small" | "large";
|
|
32
|
-
export declare function ListItem({ itemTitle, mainImageUrl, subtitle, subtitleOnHover, detail, icon, secondaryImageUrl, placeholderImageUrl, size, mainIcon, className, isSelected, onDetailClick, showDetailOnHoverOnly, rounded, detailButtonClassName, loading, containerProps, compactOnMobile, extraPadding, itemsContainerRef, dropdownMenuContent, imageGroup, multilineSubtitle, ...props }: ListItemProps): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export declare function ListItem({ itemTitle, mainImageUrl, subtitle, subtitleOnHover, detail, icon, secondaryImageUrl, placeholderImageUrl, size, mainIcon, className, isSelected, onDetailClick, showDetailOnHoverOnly, rounded, detailButtonClassName, loading, containerProps, compactOnMobile, extraPadding, itemsContainerRef, dropdownMenuContent, imageGroup, multilineSubtitle, control, ...props }: ListItemProps): import("react/jsx-runtime").JSX.Element;
|
|
33
36
|
export declare const ListItemActionsButton: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
34
37
|
isActive?: boolean | undefined;
|
|
35
38
|
}, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
@@ -65,4 +65,11 @@ export declare function replaceKeys(obj: Record<string, any>, options: ReplaceKe
|
|
|
65
65
|
* mapToCssVariables({ "accent-gold": { cssVariable: "--accent-gold" } }) -> { "accent-gold": "var(--accent-gold)" }
|
|
66
66
|
*/
|
|
67
67
|
export declare function mapToCssVariables<T extends Record<string, any>>(obj: T): Record<keyof T & string, string>;
|
|
68
|
+
/**
|
|
69
|
+
* Simple hash function to create a deterministic index from a given string.
|
|
70
|
+
* @param {string} str - The input string to hash.
|
|
71
|
+
* @param {number} max - The maximum value for the hash.
|
|
72
|
+
* @returns {number} - The index within the array.
|
|
73
|
+
*/
|
|
74
|
+
export declare function hashStringToIndex(str: string, max: number): number;
|
|
68
75
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useColorFromSeed(seed: string): string | undefined;
|
|
@@ -3,32 +3,47 @@ import { Button } from "../../components/buttons/Button";
|
|
|
3
3
|
declare const meta: Meta<typeof Button>;
|
|
4
4
|
export default meta;
|
|
5
5
|
type Story = StoryObj<typeof meta>;
|
|
6
|
+
export declare const SmallPrimary: Story;
|
|
6
7
|
export declare const MediumPrimary: Story;
|
|
8
|
+
export declare const LargePrimary: Story;
|
|
9
|
+
export declare const SmallSecondary: Story;
|
|
7
10
|
export declare const MediumSecondary: Story;
|
|
11
|
+
export declare const LargeSecondary: Story;
|
|
12
|
+
export declare const SmallTertiary: Story;
|
|
8
13
|
export declare const MediumTertiary: Story;
|
|
14
|
+
export declare const LargeTertiary: Story;
|
|
15
|
+
export declare const SmallDisabled: Story;
|
|
9
16
|
export declare const MediumDisabled: Story;
|
|
10
|
-
export declare const
|
|
11
|
-
export declare const
|
|
12
|
-
export declare const
|
|
13
|
-
export declare const
|
|
14
|
-
export declare const
|
|
17
|
+
export declare const LargeDisabled: Story;
|
|
18
|
+
export declare const SmallWithLink: Story;
|
|
19
|
+
export declare const MediumWithLink: Story;
|
|
20
|
+
export declare const LargeWithLink: Story;
|
|
21
|
+
export declare const SmallDisabledWithLink: Story;
|
|
22
|
+
export declare const MediumDisabledWithLink: Story;
|
|
23
|
+
export declare const LargeDisabledWithLink: Story;
|
|
24
|
+
export declare const SmallIconOnly: Story;
|
|
25
|
+
export declare const MediumIconOnly: Story;
|
|
26
|
+
export declare const LargeIconOnly: Story;
|
|
27
|
+
export declare const SmallDisabledIconOnly: Story;
|
|
15
28
|
export declare const MediumDisabledIconOnly: Story;
|
|
16
|
-
export declare const
|
|
17
|
-
export declare const
|
|
18
|
-
export declare const
|
|
29
|
+
export declare const LargeDisabledIconOnly: Story;
|
|
30
|
+
export declare const SmallIconAndLabel: Story;
|
|
31
|
+
export declare const MediumIconAndLabel: Story;
|
|
32
|
+
export declare const LargeIconAndLabel: Story;
|
|
19
33
|
export declare const MediumDisabledIconAndLabel: Story;
|
|
20
|
-
export declare const
|
|
21
|
-
export declare const
|
|
22
|
-
export declare const LargeTertiary: Story;
|
|
23
|
-
export declare const LargeDisabled: Story;
|
|
24
|
-
export declare const LargeAndLink: Story;
|
|
25
|
-
export declare const LargeAndLinkDisabled: Story;
|
|
34
|
+
export declare const SmallWithLoader: Story;
|
|
35
|
+
export declare const MediumWithLoader: Story;
|
|
26
36
|
export declare const LargeWithLoader: Story;
|
|
27
37
|
export declare const LargeDisabledWithLoader: Story;
|
|
38
|
+
export declare const SmallWithIconLoading: Story;
|
|
28
39
|
export declare const MediumWithIconLoading: Story;
|
|
40
|
+
export declare const LargeWithIconLoading: Story;
|
|
41
|
+
export declare const SmallWithLabelLoading: Story;
|
|
29
42
|
export declare const MediumWithLabelLoading: Story;
|
|
30
|
-
export declare const MediumWithLongLabelLoading: Story;
|
|
31
43
|
export declare const LargeWithLabelLoading: Story;
|
|
44
|
+
export declare const SmallWithLongLabelLoading: Story;
|
|
45
|
+
export declare const MediumWithLongLabelLoading: Story;
|
|
32
46
|
export declare const LargeWithLongLabelLoading: Story;
|
|
47
|
+
export declare const SmallWithChip: Story;
|
|
33
48
|
export declare const MediumWithChip: Story;
|
|
34
49
|
export declare const LargeWithChip: Story;
|