@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
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { Meta, StoryObj } from "@storybook/react";
|
|
1
|
+
import { type Meta, type StoryObj } from "@storybook/react";
|
|
2
2
|
import { Switch } from "../../components/controls/Switch";
|
|
3
3
|
declare const meta: Meta<typeof Switch>;
|
|
4
4
|
export default meta;
|
|
5
5
|
type Story = StoryObj<typeof meta>;
|
|
6
6
|
export declare const LargeChecked: Story;
|
|
7
7
|
export declare const LargeUnchecked: Story;
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const LargeCheckedDisabled: Story;
|
|
9
|
+
export declare const LargeUncheckedDisabled: Story;
|
|
9
10
|
export declare const SmallChecked: Story;
|
|
10
11
|
export declare const SmallUnchecked: Story;
|
|
11
|
-
export declare const
|
|
12
|
+
export declare const SmallCheckedDisabled: Story;
|
|
13
|
+
export declare const SmallUncheckedDisabled: Story;
|
|
@@ -33,3 +33,6 @@ export declare const SmallWithoutExtraPadding: Story;
|
|
|
33
33
|
export declare const LargeWithoutExtraPadding: Story;
|
|
34
34
|
export declare const LargeWithDropdownMenu: Story;
|
|
35
35
|
export declare const LargeWithMultilineSubtitle: Story;
|
|
36
|
+
export declare const SmallWithSwitchControl: Story;
|
|
37
|
+
export declare const LargeWithSwitchControl: Story;
|
|
38
|
+
export declare const LargeWithSwitchControlDisabled: Story;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type TextSize = "small" | "medium" | "large";
|
|
2
2
|
export type SwitchSize = "small" | "large";
|
|
3
3
|
export type ButtonVariant = "primary" | "secondary" | "tertiary";
|
|
4
|
-
export type ButtonSize = "md" | "lg";
|
|
4
|
+
export type ButtonSize = "sm" | "md" | "lg";
|
|
5
5
|
export type SwapDirection = "from" | "to";
|
|
6
6
|
export type BoostMode = "normal" | "boost";
|
|
7
7
|
export type HistoryItemStatus = "completed" | "pending" | "failed" | "warning";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type DeepPartial } from "./utils";
|
|
2
|
-
declare const THEME_COLOR_KEYS: readonly ["grey-100", "grey-200", "grey-300", "grey-400", "grey-500", "grey-600", "grey-700", "grey-800", "grey-900", "royal-300", "royal-400", "royal-500", "royal-600", "royal-700", "highlight-700", "status-positive", "status-negative", "status-partial", "button-lg-primary-bg", "button-lg-primary-text", "button-lg-secondary-bg", "button-lg-secondary-text", "button-lg-tertiary-bg", "button-lg-tertiary-text", "button-md-primary-bg", "button-md-primary-text", "button-md-secondary-bg", "button-md-secondary-text", "button-md-tertiary-bg", "button-md-tertiary-text", "input-placeholder", "input-text", "input-selection", "input-bg", "animation-bg", "animation-text", "modal-backdrop", "menu-bg", "menu-text", "menu-backdrop", "material-light-thin", "material-light-average", "material-light-thick", "material-dark-thin", "material-dark-average", "material-dark-thick", "grey-100-005", "material-light-blend-grey-900", "material-light-blend-grey-800"];
|
|
3
|
-
declare const THEME_BORDER_RADIUS_KEYS: readonly ["button-lg-primary", "button-lg-secondary", "button-lg-tertiary", "button-md-primary", "button-md-secondary", "button-md-tertiary", "container", "input", "menu-sm", "menu-lg", "modal"];
|
|
2
|
+
declare const THEME_COLOR_KEYS: readonly ["grey-100", "grey-200", "grey-300", "grey-400", "grey-500", "grey-600", "grey-700", "grey-800", "grey-900", "royal-300", "royal-400", "royal-500", "royal-600", "royal-700", "highlight-700", "status-positive", "status-negative", "status-partial", "button-lg-primary-bg", "button-lg-primary-text", "button-lg-secondary-bg", "button-lg-secondary-text", "button-lg-tertiary-bg", "button-lg-tertiary-text", "button-md-primary-bg", "button-md-primary-text", "button-md-secondary-bg", "button-md-secondary-text", "button-md-tertiary-bg", "button-md-tertiary-text", "button-sm-primary-bg", "button-sm-primary-text", "button-sm-secondary-bg", "button-sm-secondary-text", "button-sm-tertiary-bg", "button-sm-tertiary-text", "input-placeholder", "input-text", "input-selection", "input-bg", "animation-bg", "animation-text", "modal-backdrop", "menu-bg", "menu-text", "menu-backdrop", "material-light-thin", "material-light-average", "material-light-thick", "material-dark-thin", "material-dark-average", "material-dark-thick", "grey-100-005", "material-light-blend-grey-900", "material-light-blend-grey-800"];
|
|
3
|
+
declare const THEME_BORDER_RADIUS_KEYS: readonly ["button-lg-primary", "button-lg-secondary", "button-lg-tertiary", "button-md-primary", "button-md-secondary", "button-md-tertiary", "button-sm-primary", "button-sm-secondary", "button-sm-tertiary", "container", "input", "menu-sm", "menu-lg", "modal"];
|
|
4
4
|
declare const THEME_FONT_SIZE_KEYS: readonly ["caption", "body-large", "body-medium", "body-small", "heading-small", "heading-medium", "heading-large"];
|
|
5
5
|
declare const THEME_FONT_WEIGHT_KEYS: readonly ["caption", "body-small", "body-medium", "body-large", "heading-small", "heading-medium", "heading-large"];
|
|
6
6
|
declare const THEME_FONT_FAMILY_KEYS: readonly ["squid-main"];
|
|
@@ -26,7 +26,7 @@ export interface InternalTheme {
|
|
|
26
26
|
* These colors are optional
|
|
27
27
|
* and will be generated internally using the base colors if not provided
|
|
28
28
|
*/
|
|
29
|
-
type OptionalColorsKeys = "button-lg-primary-bg" | "button-lg-primary-text" | "button-lg-secondary-bg" | "button-lg-secondary-text" | "button-lg-tertiary-bg" | "button-lg-tertiary-text" | "button-md-primary-bg" | "button-md-primary-text" | "button-md-secondary-bg" | "button-md-secondary-text" | "button-md-tertiary-bg" | "button-md-tertiary-text" | "input-placeholder" | "input-text" | "input-selection" | "input-bg" | "animation-bg" | "animation-text" | "modal-backdrop" | "menu-bg" | "menu-text" | "menu-backdrop";
|
|
29
|
+
type OptionalColorsKeys = "button-lg-primary-bg" | "button-lg-primary-text" | "button-lg-secondary-bg" | "button-lg-secondary-text" | "button-lg-tertiary-bg" | "button-lg-tertiary-text" | "button-md-primary-bg" | "button-md-primary-text" | "button-md-secondary-bg" | "button-md-secondary-text" | "button-md-tertiary-bg" | "button-md-tertiary-text" | "button-sm-primary-bg" | "button-sm-primary-text" | "button-sm-secondary-bg" | "button-sm-secondary-text" | "button-sm-tertiary-bg" | "button-sm-tertiary-text" | "input-placeholder" | "input-text" | "input-selection" | "input-bg" | "animation-bg" | "animation-text" | "modal-backdrop" | "menu-bg" | "menu-text" | "menu-backdrop";
|
|
30
30
|
/**
|
|
31
31
|
* These colors are generated internally using the base colors
|
|
32
32
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export type { Theme, PublicTheme, Settings } from "./config";
|
|
2
2
|
export * from "./utils";
|
|
3
|
-
export type { SwapState, ThemeType, SwapStep, HistoryItemStatus, ActionStatus, AssetsButtonVariant, ButtonVariant, ButtonSize, DescriptionBlock, } from "./components";
|
|
3
|
+
export type { SwapState, ThemeType, SwapStep, HistoryItemStatus, ActionStatus, AssetsButtonVariant, ButtonVariant, ButtonSize, DescriptionBlock, DropdownPosition, } from "./components";
|
|
4
4
|
export { themeKeysToCssVariables } from "./config";
|
package/dist/esm/index.js
CHANGED
|
@@ -97,6 +97,13 @@ const THEME_COLOR_KEYS = [
|
|
|
97
97
|
"button-md-secondary-text",
|
|
98
98
|
"button-md-tertiary-bg",
|
|
99
99
|
"button-md-tertiary-text",
|
|
100
|
+
// sm button variant colors
|
|
101
|
+
"button-sm-primary-bg",
|
|
102
|
+
"button-sm-primary-text",
|
|
103
|
+
"button-sm-secondary-bg",
|
|
104
|
+
"button-sm-secondary-text",
|
|
105
|
+
"button-sm-tertiary-bg",
|
|
106
|
+
"button-sm-tertiary-text",
|
|
100
107
|
// input colors
|
|
101
108
|
"input-placeholder",
|
|
102
109
|
"input-text",
|
|
@@ -126,12 +133,18 @@ const THEME_COLOR_KEYS = [
|
|
|
126
133
|
"material-light-blend-grey-800",
|
|
127
134
|
];
|
|
128
135
|
const THEME_BORDER_RADIUS_KEYS = [
|
|
136
|
+
// lg button
|
|
129
137
|
"button-lg-primary",
|
|
130
138
|
"button-lg-secondary",
|
|
131
139
|
"button-lg-tertiary",
|
|
140
|
+
// md button
|
|
132
141
|
"button-md-primary",
|
|
133
142
|
"button-md-secondary",
|
|
134
143
|
"button-md-tertiary",
|
|
144
|
+
// sm button
|
|
145
|
+
"button-sm-primary",
|
|
146
|
+
"button-sm-secondary",
|
|
147
|
+
"button-sm-tertiary",
|
|
135
148
|
"container",
|
|
136
149
|
"input",
|
|
137
150
|
"menu-sm",
|
|
@@ -2933,6 +2946,19 @@ function mapToCssVariables(obj) {
|
|
|
2933
2946
|
return acc;
|
|
2934
2947
|
}, {});
|
|
2935
2948
|
}
|
|
2949
|
+
/**
|
|
2950
|
+
* Simple hash function to create a deterministic index from a given string.
|
|
2951
|
+
* @param {string} str - The input string to hash.
|
|
2952
|
+
* @param {number} max - The maximum value for the hash.
|
|
2953
|
+
* @returns {number} - The index within the array.
|
|
2954
|
+
*/
|
|
2955
|
+
function hashStringToIndex(str, max) {
|
|
2956
|
+
let index = 0;
|
|
2957
|
+
for (let i = 0; i < str.length; i++) {
|
|
2958
|
+
index = (index * 31 + str.charCodeAt(i)) % max;
|
|
2959
|
+
}
|
|
2960
|
+
return index;
|
|
2961
|
+
}
|
|
2936
2962
|
|
|
2937
2963
|
const spacing$1 = {
|
|
2938
2964
|
"squid-xxs": "0.3125rem", // 5px
|
|
@@ -3327,12 +3353,18 @@ const defaultFontFamily = {
|
|
|
3327
3353
|
"squid-main": "Geist, sans-serif",
|
|
3328
3354
|
};
|
|
3329
3355
|
const defaultBorderRadius = {
|
|
3356
|
+
// lg button
|
|
3330
3357
|
"button-lg-primary": spacing$1["squid-xxl"],
|
|
3331
3358
|
"button-lg-secondary": spacing$1["squid-xxl"],
|
|
3332
3359
|
"button-lg-tertiary": spacing$1["squid-xxl"],
|
|
3360
|
+
// md button
|
|
3333
3361
|
"button-md-primary": spacing$1["squid-m"],
|
|
3334
3362
|
"button-md-secondary": spacing$1["squid-m"],
|
|
3335
3363
|
"button-md-tertiary": spacing$1["squid-m"],
|
|
3364
|
+
// sm button
|
|
3365
|
+
"button-sm-primary": spacing$1["squid-m"],
|
|
3366
|
+
"button-sm-secondary": spacing$1["squid-m"],
|
|
3367
|
+
"button-sm-tertiary": spacing$1["squid-m"],
|
|
3336
3368
|
container: spacing$1["squid-l"],
|
|
3337
3369
|
input: "9999px",
|
|
3338
3370
|
"menu-sm": spacing$1["squid-s"],
|
|
@@ -3374,18 +3406,27 @@ const lightTheme = {
|
|
|
3374
3406
|
"animation-bg": "#B893EC",
|
|
3375
3407
|
"animation-text": "#FBFBFD",
|
|
3376
3408
|
// buttons
|
|
3409
|
+
// lg button
|
|
3377
3410
|
"button-lg-primary-bg": "#B893EC",
|
|
3378
3411
|
"button-lg-primary-text": "#FBFBFD",
|
|
3379
3412
|
"button-lg-secondary-bg": "#17191C",
|
|
3380
3413
|
"button-lg-secondary-text": "#EDEEF3",
|
|
3381
3414
|
"button-lg-tertiary-bg": "#EDEEF3",
|
|
3382
3415
|
"button-lg-tertiary-text": "#292C32",
|
|
3416
|
+
// md button
|
|
3383
3417
|
"button-md-primary-bg": "#B893EC",
|
|
3384
3418
|
"button-md-primary-text": "#FBFBFD",
|
|
3385
3419
|
"button-md-secondary-bg": "#17191C",
|
|
3386
3420
|
"button-md-secondary-text": "#EDEEF3",
|
|
3387
3421
|
"button-md-tertiary-bg": "#EDEEF3",
|
|
3388
3422
|
"button-md-tertiary-text": "#292C32",
|
|
3423
|
+
// sm button
|
|
3424
|
+
"button-sm-primary-bg": "#B893EC",
|
|
3425
|
+
"button-sm-primary-text": "#FBFBFD",
|
|
3426
|
+
"button-sm-secondary-bg": "#17191C",
|
|
3427
|
+
"button-sm-secondary-text": "#EDEEF3",
|
|
3428
|
+
"button-sm-tertiary-bg": "#EDEEF3",
|
|
3429
|
+
"button-sm-tertiary-text": "#292C32",
|
|
3389
3430
|
// input
|
|
3390
3431
|
"input-bg": "#FBFBFD",
|
|
3391
3432
|
"input-placeholder": "#A7ABBE",
|
|
@@ -3434,18 +3475,27 @@ const darkTheme = {
|
|
|
3434
3475
|
"animation-bg": "#9E79D2",
|
|
3435
3476
|
"animation-text": "#FBFBFD",
|
|
3436
3477
|
// buttons
|
|
3478
|
+
// lg button
|
|
3437
3479
|
"button-lg-primary-bg": "#9E79D2",
|
|
3438
3480
|
"button-lg-primary-text": "#FBFBFD",
|
|
3439
3481
|
"button-lg-secondary-bg": "#FBFBFD",
|
|
3440
3482
|
"button-lg-secondary-text": "#292C32",
|
|
3441
3483
|
"button-lg-tertiary-bg": "#292C32",
|
|
3442
3484
|
"button-lg-tertiary-text": "#D1D6E0",
|
|
3485
|
+
// md button
|
|
3443
3486
|
"button-md-primary-bg": "#9E79D2",
|
|
3444
3487
|
"button-md-primary-text": "#FBFBFD",
|
|
3445
3488
|
"button-md-secondary-bg": "#FBFBFD",
|
|
3446
3489
|
"button-md-secondary-text": "#292C32",
|
|
3447
3490
|
"button-md-tertiary-bg": "#292C32",
|
|
3448
3491
|
"button-md-tertiary-text": "#D1D6E0",
|
|
3492
|
+
// sm button
|
|
3493
|
+
"button-sm-primary-bg": "#9E79D2",
|
|
3494
|
+
"button-sm-primary-text": "#FBFBFD",
|
|
3495
|
+
"button-sm-secondary-bg": "#FBFBFD",
|
|
3496
|
+
"button-sm-secondary-text": "#292C32",
|
|
3497
|
+
"button-sm-tertiary-bg": "#292C32",
|
|
3498
|
+
"button-sm-tertiary-text": "#D1D6E0",
|
|
3449
3499
|
// input
|
|
3450
3500
|
"input-bg": "#17191C",
|
|
3451
3501
|
"input-placeholder": "#676B7E",
|
|
@@ -3524,7 +3574,7 @@ const boxShadowClassMap = {
|
|
|
3524
3574
|
xlarge: "tw-shadow-elevation-light-2",
|
|
3525
3575
|
xxlarge: "tw-shadow-elevation-dark-1",
|
|
3526
3576
|
};
|
|
3527
|
-
const roundedClassMap
|
|
3577
|
+
const roundedClassMap = {
|
|
3528
3578
|
xxs: "tw-rounded-squid-xxs",
|
|
3529
3579
|
xs: "tw-rounded-squid-xs",
|
|
3530
3580
|
s: "tw-rounded-squid-s",
|
|
@@ -3553,7 +3603,7 @@ const borderClassMap = {
|
|
|
3553
3603
|
};
|
|
3554
3604
|
function Image$1(_a) {
|
|
3555
3605
|
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"]);
|
|
3556
|
-
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
|
|
3606
|
+
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]);
|
|
3557
3607
|
const [imageState, setImageState] = useState(ImageState.LOADED);
|
|
3558
3608
|
return (jsxs("div", Object.assign({}, containerProps, { className: cn("tw-relative", containerProps === null || containerProps === void 0 ? void 0 : containerProps.className), children: [border === "gradient" && (jsx("span", { style: {
|
|
3559
3609
|
borderRadius: gradientRoundedClassMap[rounded],
|
|
@@ -4012,6 +4062,12 @@ function ArrowExpandIcon({ className, size = "24", }) {
|
|
|
4012
4062
|
function MoneyBagIcon({ className, size = "24", }) {
|
|
4013
4063
|
return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", className: className, children: 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" }) }));
|
|
4014
4064
|
}
|
|
4065
|
+
function PluginIcon({ size = "16", className, }) {
|
|
4066
|
+
return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 16 16", fill: "none", className: className, children: 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" }) }));
|
|
4067
|
+
}
|
|
4068
|
+
function CircleCheckIcon({ className, size = "24", }) {
|
|
4069
|
+
return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", className: className, children: 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" }) }));
|
|
4070
|
+
}
|
|
4015
4071
|
|
|
4016
4072
|
function EmptyHeartIcon({ className }) {
|
|
4017
4073
|
return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", className: className, children: 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" }) }));
|
|
@@ -4378,16 +4434,23 @@ function Chip(_a) {
|
|
|
4378
4434
|
return (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 ? (jsx(CaptionText, { className: "tw-min-w-squid-xl tw-text-nowrap tw-px-squid-xxs tw-text-center", children: label })) : (icon) })));
|
|
4379
4435
|
}
|
|
4380
4436
|
|
|
4437
|
+
const loaderSizeMap = {
|
|
4438
|
+
sm: "16px",
|
|
4439
|
+
md: "24px",
|
|
4440
|
+
lg: "36px",
|
|
4441
|
+
};
|
|
4381
4442
|
const baseButtonClassName = "tw-border tw-relative tw-overflow-hidden tw-group/base-button tw-flex tw-items-center tw-justify-center";
|
|
4382
4443
|
const buttonWidthClassnameMap = {
|
|
4444
|
+
sm: "tw-w-max",
|
|
4383
4445
|
md: "tw-min-w-[60px]",
|
|
4384
4446
|
lg: "tw-w-full",
|
|
4385
4447
|
};
|
|
4386
4448
|
const buttonSizeClassMap = {
|
|
4387
4449
|
md: "tw-px-squid-xs tw-py-squid-xxs tw-h-squid-xl",
|
|
4388
4450
|
lg: "tw-p-1 tw-h-button",
|
|
4451
|
+
sm: "tw-h-squid-l tw-px-squid-xs",
|
|
4389
4452
|
};
|
|
4390
|
-
const
|
|
4453
|
+
const buttonRoundedClassMap = {
|
|
4391
4454
|
lg: {
|
|
4392
4455
|
primary: "tw-rounded-button-lg-primary",
|
|
4393
4456
|
secondary: "tw-rounded-button-lg-secondary",
|
|
@@ -4398,6 +4461,11 @@ const roundedClassMap = {
|
|
|
4398
4461
|
secondary: "tw-rounded-button-md-secondary",
|
|
4399
4462
|
tertiary: "tw-rounded-button-md-tertiary",
|
|
4400
4463
|
},
|
|
4464
|
+
sm: {
|
|
4465
|
+
primary: "tw-rounded-button-sm-primary",
|
|
4466
|
+
secondary: "tw-rounded-button-sm-secondary",
|
|
4467
|
+
tertiary: "tw-rounded-button-sm-tertiary",
|
|
4468
|
+
},
|
|
4401
4469
|
};
|
|
4402
4470
|
const buttonVariantClassMap = {
|
|
4403
4471
|
lg: {
|
|
@@ -4410,22 +4478,24 @@ const buttonVariantClassMap = {
|
|
|
4410
4478
|
secondary: "tw-bg-button-md-secondary-bg tw-text-button-md-secondary-text",
|
|
4411
4479
|
tertiary: "tw-bg-button-md-tertiary-bg tw-text-button-md-tertiary-text",
|
|
4412
4480
|
},
|
|
4481
|
+
sm: {
|
|
4482
|
+
primary: "tw-bg-button-sm-primary-bg tw-text-button-sm-primary-text",
|
|
4483
|
+
secondary: "tw-bg-button-sm-secondary-bg tw-text-button-sm-secondary-text",
|
|
4484
|
+
tertiary: "tw-bg-button-sm-tertiary-bg tw-text-button-sm-tertiary-text",
|
|
4485
|
+
},
|
|
4413
4486
|
};
|
|
4414
4487
|
// right now all variants have the same disabled styles
|
|
4415
4488
|
// in the future, we can add more disabled styles for different variants
|
|
4416
4489
|
const buttonDisabledClass = "!tw-bg-grey-800 !tw-text-grey-600 tw-cursor-not-allowed";
|
|
4417
4490
|
const loadingClassname = "tw-invisible tw-opacity-0";
|
|
4418
4491
|
function Button$1(_a) {
|
|
4419
|
-
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"]);
|
|
4492
|
+
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"]);
|
|
4420
4493
|
const chipElement = chip != null ? (jsx(Chip, Object.assign({}, chip, { className: cn("tw-absolute -tw-right-squid-xxs -tw-top-squid-xxs tw-z-10", chip.className) }))) : null;
|
|
4421
|
-
const children = (jsxs(Fragment, { children: [!disabled && !isLoading && (jsx(ButtonHoverOverlay, { className:
|
|
4422
|
-
|
|
4423
|
-
|
|
4424
|
-
|
|
4425
|
-
|
|
4426
|
-
// icon and label
|
|
4427
|
-
jsxs(Fragment, { children: [icon, jsx(BodyText, { className: "tw-pr-1", size: "small", children: label })] }))) : null })] }));
|
|
4428
|
-
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],
|
|
4494
|
+
const children = (jsxs(Fragment, { children: [!disabled && !isLoading && (jsx(ButtonHoverOverlay, { className: buttonRoundedClassMap[size][variant] })), 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) : (jsxs("span", { className: cn("tw-flex tw-items-center tw-justify-center", size === "lg"
|
|
4495
|
+
? "tw-gap-squid-xs tw-px-squid-m"
|
|
4496
|
+
: "tw-gap-squid-xxs"), children: [showLoader && jsx(Loader, { size: loaderSizeMap[loaderSize] }), !isLoading && icon, label != null &&
|
|
4497
|
+
(size === "sm" ? (jsx(CaptionText, { className: cn(isLoading && loadingClassname, icon != null && "tw-pr-1"), children: label })) : (jsx(BodyText, { className: cn(isLoading && loadingClassname, icon != null && "tw-pr-1"), size: size === "lg" ? "medium" : "small", children: label })))] })) })] }));
|
|
4498
|
+
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],
|
|
4429
4499
|
// disabled styles
|
|
4430
4500
|
disabled && buttonDisabledClass, isLoading && "tw-cursor-not-allowed",
|
|
4431
4501
|
// custom classes from props
|
|
@@ -4443,7 +4513,7 @@ function Button$1(_a) {
|
|
|
4443
4513
|
const ButtonHoverOverlay = ({ className }) => {
|
|
4444
4514
|
return (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) }));
|
|
4445
4515
|
};
|
|
4446
|
-
const ButtonWrapper = ({ children, size, variant, className, }) => (jsx("div", { className: cn("tw-relative", buttonWidthClassnameMap[size],
|
|
4516
|
+
const ButtonWrapper = ({ children, size, variant, className, }) => (jsx("div", { className: cn("tw-relative", buttonWidthClassnameMap[size], buttonRoundedClassMap[size][variant], className), children: children }));
|
|
4447
4517
|
|
|
4448
4518
|
function AccountsButton(_a) {
|
|
4449
4519
|
var { imageUrls } = _a, props = __rest$1(_a, ["imageUrls"]);
|
|
@@ -4469,6 +4539,26 @@ function ArrowButton(_a) {
|
|
|
4469
4539
|
"aria-disabled:tw-bg-grey-600 aria-disabled:tw-text-grey-800"), children: jsx(ArrowRightIcon, {}) })] })));
|
|
4470
4540
|
}
|
|
4471
4541
|
|
|
4542
|
+
const colors = [
|
|
4543
|
+
"#D94E41",
|
|
4544
|
+
"#E58845",
|
|
4545
|
+
"#D9BA21",
|
|
4546
|
+
"#B1CC29",
|
|
4547
|
+
"#66CC33",
|
|
4548
|
+
"#19A654",
|
|
4549
|
+
"#56BFB6",
|
|
4550
|
+
"#45B0E5",
|
|
4551
|
+
"#3973E5",
|
|
4552
|
+
"#7562D9",
|
|
4553
|
+
"#B167E5",
|
|
4554
|
+
"#E573BF",
|
|
4555
|
+
];
|
|
4556
|
+
function useColorFromSeed(seed) {
|
|
4557
|
+
return useMemo(() => {
|
|
4558
|
+
return colors[hashStringToIndex(seed, colors.length)];
|
|
4559
|
+
}, [seed]);
|
|
4560
|
+
}
|
|
4561
|
+
|
|
4472
4562
|
function Input(_a) {
|
|
4473
4563
|
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"]);
|
|
4474
4564
|
const showActionButton = actionButtonProps != null;
|
|
@@ -19362,7 +19452,7 @@ const collapsedListItemClassMap = {
|
|
|
19362
19452
|
large: "tw-w-[80px]",
|
|
19363
19453
|
};
|
|
19364
19454
|
function ListItem(_a) {
|
|
19365
|
-
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"]);
|
|
19455
|
+
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"]);
|
|
19366
19456
|
const { isDropdownOpen, dropdownRef, openDropdown, closeDropdown, openDropdownButtonRef, itemRef, menuRef, dropdownStyles, } = useDropdownMenu({
|
|
19367
19457
|
itemsContainerRef,
|
|
19368
19458
|
});
|
|
@@ -19398,9 +19488,11 @@ function ListItem(_a) {
|
|
|
19398
19488
|
}
|
|
19399
19489
|
return null;
|
|
19400
19490
|
};
|
|
19401
|
-
const isInteractive = !!props.onClick;
|
|
19402
|
-
const ItemTag = isInteractive ? "button" : "div";
|
|
19403
|
-
const itemProps = isInteractive
|
|
19491
|
+
const isInteractive = !!props.onClick || !!control;
|
|
19492
|
+
const ItemTag = isInteractive ? (control ? "label" : "button") : "div";
|
|
19493
|
+
const itemProps = isInteractive
|
|
19494
|
+
? props
|
|
19495
|
+
: {};
|
|
19404
19496
|
const handleInteraction = (e) => {
|
|
19405
19497
|
var _a;
|
|
19406
19498
|
e.preventDefault();
|
|
@@ -19417,9 +19509,9 @@ function ListItem(_a) {
|
|
|
19417
19509
|
};
|
|
19418
19510
|
return (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
|
|
19419
19511
|
? `${collapsedListItemClassMap[size]} mobile-lg:tw-w-full`
|
|
19420
|
-
: "tw-w-full", className), children: [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
|
|
19512
|
+
: "tw-w-full", className), children: [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
|
|
19421
19513
|
? "tw-items-center tw-py-squid-xxs"
|
|
19422
|
-
: "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" ? (jsx("div", { className: "tw-h-10 tw-w-10", children: mainIcon !== null && mainIcon !== void 0 ? mainIcon : (imageGroup != null ? (jsx(ImageGroup, { size: "small", imageUrls: imageGroup })) : (jsx(BadgeImage, { image: {
|
|
19514
|
+
: "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" ? (jsx("div", { className: "tw-h-10 tw-w-10", children: mainIcon !== null && mainIcon !== void 0 ? mainIcon : (imageGroup != null ? (jsx(ImageGroup, { size: "small", imageUrls: imageGroup })) : (jsx(BadgeImage, { image: {
|
|
19423
19515
|
src: mainImageUrl,
|
|
19424
19516
|
placeholderImageUrl,
|
|
19425
19517
|
size: "xlarge",
|
|
@@ -19439,7 +19531,7 @@ function ListItem(_a) {
|
|
|
19439
19531
|
: "tw-flex", isDetailInteractive && "hover:tw-bg-material-light-thin", detailButtonClassName), children: [!!detail && (jsx(CaptionText, { className: "min-tw-w-4 min-tw-h-4 tw-px-squid-xxs tw-leading-[10px]", children: detail })), icon ? (jsx("span", { className: "tw-flex tw-items-center tw-justify-center tw-px-[3px] tw-py-2", children: icon })) : null] }))), !!dropdownMenuContent && (jsx(ListItemActionsButton, { ref: openDropdownButtonRef, onClick: (e) => {
|
|
19440
19532
|
e.stopPropagation();
|
|
19441
19533
|
isDropdownOpen ? closeDropdown() : openDropdown();
|
|
19442
|
-
}, isActive: isDropdownOpen, className: "tw-z-20 peer-hover/list-item:tw-opacity-100" }))] })), isDropdownOpen && !!dropdownMenuContent ? (jsx(DropdownMenu, { menuRef: menuRef, isHidden: !dropdownStyles, className: cn(!!dropdownStyles &&
|
|
19534
|
+
}, isActive: isDropdownOpen, className: "tw-z-20 peer-hover/list-item:tw-opacity-100" })), control] })), isDropdownOpen && !!dropdownMenuContent ? (jsx(DropdownMenu, { menuRef: menuRef, isHidden: !dropdownStyles, className: cn(!!dropdownStyles &&
|
|
19443
19535
|
dropdownPositionClassMap$1[dropdownStyles.position]), dropdownRef: dropdownRef, children: dropdownMenuContent })) : null] })));
|
|
19444
19536
|
}
|
|
19445
19537
|
const ListItemActionsButton = forwardRef((_a, ref) => {
|
|
@@ -27534,19 +27626,23 @@ function Switch({ checked = false, onChange, size, disabled = false, inputProps,
|
|
|
27534
27626
|
// size styles
|
|
27535
27627
|
switchSizeClassMap[size],
|
|
27536
27628
|
// checked styles
|
|
27537
|
-
checked ? "tw-bg-
|
|
27629
|
+
disabled || !checked ? "tw-bg-grey-800" : "tw-bg-status-positive",
|
|
27538
27630
|
// disabled styles
|
|
27539
27631
|
disabled ? "tw-cursor-not-allowed" : "tw-cursor-pointer",
|
|
27540
27632
|
// Focus visible styles
|
|
27541
27633
|
"tw-focus-visible-within-outline"), children: [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" })), jsx("span", { style: {
|
|
27542
|
-
filter:
|
|
27634
|
+
filter: disabled
|
|
27635
|
+
? "drop-shadow(0px 5px 20px rgba(0, 0, 0, 0.10)) drop-shadow(0px 1px 5px rgba(0, 0, 0, 0.10))"
|
|
27636
|
+
: "drop-shadow(0px 5px 20px rgba(0, 0, 0, 0.33)) drop-shadow(0px 2px 5px rgba(0, 0, 0, 0.20))",
|
|
27543
27637
|
}, className: clsx("tw-absolute tw-rounded-full tw-border tw-border-material-light-thin tw-transition-all",
|
|
27544
27638
|
// size styles
|
|
27545
27639
|
switchKnobSizeClassMap[size],
|
|
27546
27640
|
// checked styles
|
|
27547
|
-
switchKnobCheckedClassMap[size][checked ? "checked" : "unchecked"],
|
|
27548
|
-
? "group-data-[squid-theme-type=dark]:tw-bg-grey-
|
|
27549
|
-
:
|
|
27641
|
+
switchKnobCheckedClassMap[size][checked ? "checked" : "unchecked"], disabled
|
|
27642
|
+
? "group-data-[squid-theme-type=dark]:tw-bg-grey-700 group-data-[squid-theme-type=light]:tw-bg-grey-900"
|
|
27643
|
+
: checked
|
|
27644
|
+
? "group-data-[squid-theme-type=dark]:tw-bg-grey-100 group-data-[squid-theme-type=light]:tw-bg-grey-900"
|
|
27645
|
+
: "tw-bg-grey-500") })] }));
|
|
27550
27646
|
}
|
|
27551
27647
|
|
|
27552
27648
|
function RangeInput({ label, initialValue, onChange, min = 0, max = 99, isWarning = false, }) {
|
|
@@ -27660,7 +27756,8 @@ function RangeInput({ label, initialValue, onChange, min = 0, max = 99, isWarnin
|
|
|
27660
27756
|
}, 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: jsx(CirclePlusIcon, {}) })] })] }) }));
|
|
27661
27757
|
}
|
|
27662
27758
|
|
|
27663
|
-
const
|
|
27759
|
+
const imageWrapperClassName = "tw-w-[40px] tw-aspect-square tw-flex tw-items-center tw-justify-center";
|
|
27760
|
+
const tokenImageClassName = "tw-absolute tw-h-squid-xl tw-w-squid-xl tw-rounded-full tw-object-cover";
|
|
27664
27761
|
const themeKeyVariantMap = {
|
|
27665
27762
|
primary: "grey-800",
|
|
27666
27763
|
accent: "royal-500",
|
|
@@ -27680,6 +27777,12 @@ var AssetsButtonState;
|
|
|
27680
27777
|
AssetsButtonState[AssetsButtonState["EMPTY"] = 2] = "EMPTY";
|
|
27681
27778
|
AssetsButtonState[AssetsButtonState["LOADING"] = 3] = "LOADING";
|
|
27682
27779
|
})(AssetsButtonState || (AssetsButtonState = {}));
|
|
27780
|
+
var ImageLoadingState;
|
|
27781
|
+
(function (ImageLoadingState) {
|
|
27782
|
+
ImageLoadingState[ImageLoadingState["LOADING"] = 0] = "LOADING";
|
|
27783
|
+
ImageLoadingState[ImageLoadingState["LOADED"] = 1] = "LOADED";
|
|
27784
|
+
ImageLoadingState[ImageLoadingState["ERROR"] = 2] = "ERROR";
|
|
27785
|
+
})(ImageLoadingState || (ImageLoadingState = {}));
|
|
27683
27786
|
const outlineWidthMap = {
|
|
27684
27787
|
[AssetsButtonState.LOADING]: {
|
|
27685
27788
|
inner: 75,
|
|
@@ -27699,7 +27802,9 @@ const outlineWidthMap = {
|
|
|
27699
27802
|
},
|
|
27700
27803
|
};
|
|
27701
27804
|
function AssetsButton({ chain, token, onClick, variant = "primary", isLoading = false, tooltip, emptyTokenLabel = "Select token", }) {
|
|
27702
|
-
var _a, _b;
|
|
27805
|
+
var _a, _b, _c, _d;
|
|
27806
|
+
const [tokenImageLoadingState, setTokenImageLoadingState] = useState(ImageLoadingState.LOADING);
|
|
27807
|
+
const fallbackBgColor = useColorFromSeed((_a = token === null || token === void 0 ? void 0 : token.symbol) !== null && _a !== void 0 ? _a : "");
|
|
27703
27808
|
const state = useMemo(() => {
|
|
27704
27809
|
if (chain != null && !isLoading) {
|
|
27705
27810
|
if (token != null) {
|
|
@@ -27714,10 +27819,27 @@ function AssetsButton({ chain, token, onClick, variant = "primary", isLoading =
|
|
|
27714
27819
|
}, [token, chain, isLoading]);
|
|
27715
27820
|
const defaultBgColor = `var(${themeKeysToCssVariables.color[themeKeyVariantMap[variant]].cssVariable})`;
|
|
27716
27821
|
const outlineWidth = outlineWidthMap[state];
|
|
27717
|
-
const chainBgColor = (
|
|
27718
|
-
const
|
|
27719
|
-
?
|
|
27720
|
-
:
|
|
27822
|
+
const chainBgColor = (_b = chain === null || chain === void 0 ? void 0 : chain.bgColor) !== null && _b !== void 0 ? _b : defaultBgColor;
|
|
27823
|
+
const tokenTextColor = tokenImageLoadingState === ImageLoadingState.ERROR
|
|
27824
|
+
? "#fff"
|
|
27825
|
+
: token === null || token === void 0 ? void 0 : token.textColor;
|
|
27826
|
+
const tokenBgColor = useMemo(() => {
|
|
27827
|
+
if (state !== AssetsButtonState.FULL) {
|
|
27828
|
+
return defaultBgColor;
|
|
27829
|
+
}
|
|
27830
|
+
if (tokenImageLoadingState === ImageLoadingState.ERROR) {
|
|
27831
|
+
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
27832
|
+
return fallbackBgColor || defaultBgColor;
|
|
27833
|
+
}
|
|
27834
|
+
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
27835
|
+
return (token === null || token === void 0 ? void 0 : token.bgColor) || defaultBgColor;
|
|
27836
|
+
}, [
|
|
27837
|
+
state,
|
|
27838
|
+
token === null || token === void 0 ? void 0 : token.bgColor,
|
|
27839
|
+
defaultBgColor,
|
|
27840
|
+
tokenImageLoadingState,
|
|
27841
|
+
fallbackBgColor,
|
|
27842
|
+
]);
|
|
27721
27843
|
const bgGradient = useMemo(() => {
|
|
27722
27844
|
switch (state) {
|
|
27723
27845
|
case AssetsButtonState.EMPTY:
|
|
@@ -27735,12 +27857,22 @@ function AssetsButton({ chain, token, onClick, variant = "primary", isLoading =
|
|
|
27735
27857
|
? "tw-cursor-not-allowed"
|
|
27736
27858
|
: "tw-group/assets-button"), children: [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: 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" }) }), 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: [jsx("clipPath", { id: "halfClip1", children: jsx("rect", { x: "0", y: "0", width: outlineWidth.inner, height: "44" }) }), 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)" })] }), 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: [jsx("clipPath", { id: "halfClip2", children: jsx("rect", { x: "0", y: "0", width: outlineWidth.outer, height: "48" }) }), 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)" })] }), 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: {
|
|
27737
27859
|
backgroundImage: bgGradient,
|
|
27738
|
-
}, children: jsx("div", { className: clsx(
|
|
27739
|
-
state === AssetsButtonState.FULL ? (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 && (jsx("span", { className: emptyChainIconTextClassNameMap[variant], children: jsx(PlusIcon, {}) }))) }) }), state === AssetsButtonState.FULL ? (jsxs("div", { className: clsx(
|
|
27860
|
+
}, children: jsx("div", { className: clsx(imageWrapperClassName), children: state === AssetsButtonState.CHAIN_ONLY ||
|
|
27861
|
+
state === AssetsButtonState.FULL ? (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 && (jsx("span", { className: emptyChainIconTextClassNameMap[variant], children: jsx(PlusIcon, {}) }))) }) }), state === AssetsButtonState.FULL ? (jsxs("div", { className: clsx(imageWrapperClassName, "tw-absolute tw-left-[54px] tw-z-[5] tw-h-squid-xl tw-overflow-hidden"), children: [jsx("div", { className: "tw-absolute tw-right-0 tw-h-full tw-w-[22px]", style: {
|
|
27740
27862
|
backgroundColor: tokenBgColor,
|
|
27741
|
-
} }),
|
|
27863
|
+
} }), tokenImageLoadingState === ImageLoadingState.ERROR && (
|
|
27864
|
+
// show fallback
|
|
27865
|
+
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() })), jsx("img", { onLoad: () => {
|
|
27866
|
+
setTokenImageLoadingState(ImageLoadingState.LOADED);
|
|
27867
|
+
}, onError: () => {
|
|
27868
|
+
setTokenImageLoadingState(ImageLoadingState.ERROR);
|
|
27869
|
+
}, src: token === null || token === void 0 ? void 0 : token.iconUrl, alt: token === null || token === void 0 ? void 0 : token.symbol, className: cn(tokenImageClassName,
|
|
27870
|
+
// when image load failed, hide it with opacity: 0 instead of display: none
|
|
27871
|
+
// so new images can load and update the loading state
|
|
27872
|
+
tokenImageLoadingState === ImageLoadingState.ERROR &&
|
|
27873
|
+
"tw-opacity-0") }), 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, 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: {
|
|
27742
27874
|
backgroundColor: tokenBgColor,
|
|
27743
|
-
color:
|
|
27875
|
+
color: tokenTextColor,
|
|
27744
27876
|
}, children: [jsx(BodyText, { size: "small", className: cn("tw-leading-[13px]", state === AssetsButtonState.LOADING && "tw-min-w-[135px]"), children: state === AssetsButtonState.FULL
|
|
27745
27877
|
? token === null || token === void 0 ? void 0 : token.symbol
|
|
27746
27878
|
: state !== AssetsButtonState.LOADING && emptyTokenLabel }), state !== AssetsButtonState.LOADING && (jsx(ChevronLargeRightIcon, { className: "tw-w-4 tw-min-w-4 tw-opacity-66" }))] })] }) })));
|
|
@@ -69753,4 +69885,4 @@ function ThemeProvider(_a) {
|
|
|
69753
69885
|
return (jsx("div", Object.assign({}, props, { style: Object.assign(Object.assign({}, props.style), parsedStyle), "data-squid-theme-type": themeType, className: cn("tw-group tw-relative tw-flex tw-font-squid-main tw-h-d-screen mobile-lg:tw-h-auto", props.className), children: children })));
|
|
69754
69886
|
}
|
|
69755
69887
|
|
|
69756
|
-
export { ANIMATION_DURATIONS, AccountListItem, AccountsButton, ActionLayout, ActionLineOutRow, ActionProperties, ActionRow, ActionStatusRow, ActionWrapper, AddressButton, AnimationWrapper, Announcement, AppContainer, Approve, ApproveAction, ArrowBottomTopIcon, ArrowButton, ArrowCornerDownRightIcon, ArrowDownIcon, ArrowExpandIcon, ArrowLeftIcon, ArrowOutOfBoxIcon, ArrowRightDownCircleIcon, ArrowRightDownIcon, ArrowRightIcon, ArrowRightUpCircleIcon, ArrowRightUpIcon, ArrowRotate, ArrowSplit, ArrowTriangle, ArrowUpIcon, ArrowWallDownIcon, ArrowsSwapIcon, AssetsButton, AtomIcon, BackpackIcon, BadgeImage, BankIcon, BellAlarmIcon, BlockSkeleton, BodyText, Boost, BoostBadge, BoostButton, BorderedContainer, Breadcrumb, BridgeAction, BridgeHeader, BridgeProperties, BrokenHeartIcon, BubblesIcon, Button$1 as Button, BuyNFTHeader, BuyNFTProperties, BuyNFTTransactionView, CSS_VARS, Calendar, CaptionText, CatSquareIcon, CelebrateIcon, ChainLink, Checkmark1Icon, Checkmark2Icon, ChevronArrowIcon, ChevronDownSmallIcon, ChevronGrabberVerticalIcon, ChevronLargeDownIcon, ChevronLargeRightIcon, ChevronRightSmallIcon, ChevronTopIcon, ChevronTopSmallIcon, Chip, CircleMinusIcon, CirclePlusIcon, CircleX, CircleXFilledIcon, ClockOutlineIcon, ClockSolidIcon, CodeBracketsIcon, CodeSolidSquareIcon, CoinsAddIcon, CoinsIcon, CoinsOutlinedIcon, Collapse, CollapsibleMenu, CollectionIcon, ColorPaletteIcon, CommandIcon, CompassRoundOutlinedIcon, CompassRoundSolidIcon, ConsoleIcon, Copy2Icon, CopyOutlinedIcon, CrossAnimatedIcon, CrossedOutSunSolidIcon, DashboardFast, DepositAddressView, DescriptionBlocks, DetailsToolbar, DiscordIcon, DockIconAnalytics, DockIconCheckout, DockIconHelp, DockIconProfile, DockIconScan, DockIconSwap, DockSwapIcon, DollarOutlinedIcon, DollarSolidIcon, DotGrid1x3HorizontalIcon, DropdownMenu, DropdownMenuItem, DropdownMenuTitle, EmojiMeh, EmojiSadIcon, EmptyHeartIcon, ErrorMessage, EthereumIcon, ExplosionIcon, EyeOpenIcon, FarcasterIcon, FavouriteFilterIcon, FeeButton, FeesAction, FeesLines, FeesTotal, FileDownloadIcon, FilledHeartIcon, FilterAscendingIcon, FilterButton, FilterIcon, FilterTimelineIcon, GasIcon, GhostIcon, GithubIcon, HashLink, HeadingText, HeartSmallIcon, HelpIcon, HighestPriceRangeIcon, HistoryItem, HomeIcon, IconButton, IconLabel, Image$1 as Image, ImageGroup, ImageIcon, ImageSparkle, ImageStack, ImageState, IncompleteAction, InfinityIcon, InfoBox, Inline, Input, InteractionHeader, InteractionProperties, InteractionTransactionView, Join, LaptopIcon, LightningIcon, LimitIcon, LinkIcon, ListItem, ListItemActionsButton, Loader, LoadingProvider, LoadingSkeleton, MEDIA_QUERIES, MarketCapIcon, MaxIcon, Menu, MenuItem, MenuSwapIcon, MirrorIcon, Modal, ModalContent, ModalContentDivider, MoneyBagIcon, MoonIcon, NavigationBar, NewsIcon, NewspaperIcon, NotAllowedIcon, NumericInput, PathSquareIcon, PauseIcon, PercentIcon, PhoneIcon, PieChartIcon, PipeSeparator, PlusIcon, PoopIcon, PowerIcon, PriceChange, ProductCard, ProfileHeader, ProfileHeaderBackground, PropertiesLayout, PropertyListItem, PunkIcon, QrCodeIcon, RangeInput, ReceiptBillIcon, ReceiveNFTAction, ReceiveTokensAction, RefreshIcon, ReorderIcon, RouteStep, STEP_ITEM_HEIGHT, SearchIcon, SectionTitle, SendTokensAction, SettingsButton, SettingsGearIcon, SettingsItem, SettingsSlider, SettingsSliderIcon, ShoppingBagIcon, SizeTransition, SmileFilledIcon, SmileIcon, SnapIcon, SortIcon, SparkleIcon, SparklesIcon, SquareArrowCenter, SquareArrowTopLeftIcon, SquareArrowTopRight2Icon, SquidLogo, SquidVector, StakeAction, StarLinesIcon, StartAction, StocksIcon, SuccessAction, SunIcon, SunOutlinedIcon, SunriseIcon, SunriseSmallIcon, SwapAction, SwapConfiguration, SwapErrorIcon, SwapHeader, SwapIcon, SwapInputsIcon, SwapProgressView, SwapProperties, SwapStepItem, SwapStepSeparator, SwapStepsCollapsed, SwapSuccessIcon, SwapTransactionView, SwapWarningIcon, Switch, Tab, Tabs, TagIcon, TagIconFilled, TelegramIcon, TextSkeleton, ThemePreference, ThemeProvider, ThumbsUp, Tick, TimeFliesIcon, Timeline, Timestamp, Toast, TokenDetailsView, TokenGroup, TokenGroups, TokenPair, Tooltip, TradingViewStepsIcon, TransactionAction, TransactionFilters, TransactionHeader, TransactionHeaderLayout, TransactionItem, TransactionProperties, TransactionSearch, TransactionState, TransactionView, TransactionViewLayout, Transfer, TranslateIcon, TriangleExclamation, TxProgressViewHeader, UnsupportedPairNotice, UsdAmount, WalletFilledIcon, WalletIcon, WalletLink, WrapAction, XSocialIcon, adjustColorForContrast, baseTailwindConfig, blendColors, cn, darkTheme, getColorBrightness, getContrastColor, getHexColorFromOpacityPercentage, getWalletCardBackground, hexToRgb, isValidHexColor, lightTheme, linkActionTimelineProps, parseColor, parseSquidTheme, pxToRem, remToPx, rgbToHex, spacing$1 as spacing, statusTextClassMap, themeKeysToCssVariables, transactionErrorPauseAnimation, transactionFailureAnimation, transactionHalfSuccessAnimation, transactionPendingAnimation, transactionProcessingAnimation, transactionRejectedAnimation, transactionSuccessAnimation, useCollapsibleMenu, useDropdownMenu, useMediaQuery, useOnResize, useRect, useTimer, useUserTheme, useVersion };
|
|
69888
|
+
export { ANIMATION_DURATIONS, AccountListItem, AccountsButton, ActionLayout, ActionLineOutRow, ActionProperties, ActionRow, ActionStatusRow, ActionWrapper, AddressButton, AnimationWrapper, Announcement, AppContainer, Approve, ApproveAction, ArrowBottomTopIcon, ArrowButton, ArrowCornerDownRightIcon, ArrowDownIcon, ArrowExpandIcon, ArrowLeftIcon, ArrowOutOfBoxIcon, ArrowRightDownCircleIcon, ArrowRightDownIcon, ArrowRightIcon, ArrowRightUpCircleIcon, ArrowRightUpIcon, ArrowRotate, ArrowSplit, ArrowTriangle, ArrowUpIcon, ArrowWallDownIcon, ArrowsSwapIcon, AssetsButton, AtomIcon, BackpackIcon, BadgeImage, BankIcon, BellAlarmIcon, BlockSkeleton, BodyText, Boost, BoostBadge, BoostButton, BorderedContainer, Breadcrumb, BridgeAction, BridgeHeader, BridgeProperties, BrokenHeartIcon, BubblesIcon, Button$1 as Button, BuyNFTHeader, BuyNFTProperties, BuyNFTTransactionView, CSS_VARS, Calendar, CaptionText, CatSquareIcon, CelebrateIcon, ChainLink, Checkmark1Icon, Checkmark2Icon, ChevronArrowIcon, ChevronDownSmallIcon, ChevronGrabberVerticalIcon, ChevronLargeDownIcon, ChevronLargeRightIcon, ChevronRightSmallIcon, ChevronTopIcon, ChevronTopSmallIcon, Chip, CircleCheckIcon, CircleMinusIcon, CirclePlusIcon, CircleX, CircleXFilledIcon, ClockOutlineIcon, ClockSolidIcon, CodeBracketsIcon, CodeSolidSquareIcon, CoinsAddIcon, CoinsIcon, CoinsOutlinedIcon, Collapse, CollapsibleMenu, CollectionIcon, ColorPaletteIcon, CommandIcon, CompassRoundOutlinedIcon, CompassRoundSolidIcon, ConsoleIcon, Copy2Icon, CopyOutlinedIcon, CrossAnimatedIcon, CrossedOutSunSolidIcon, DashboardFast, DepositAddressView, DescriptionBlocks, DetailsToolbar, DiscordIcon, DockIconAnalytics, DockIconCheckout, DockIconHelp, DockIconProfile, DockIconScan, DockIconSwap, DockSwapIcon, DollarOutlinedIcon, DollarSolidIcon, DotGrid1x3HorizontalIcon, DropdownMenu, DropdownMenuItem, DropdownMenuTitle, EmojiMeh, EmojiSadIcon, EmptyHeartIcon, ErrorMessage, EthereumIcon, ExplosionIcon, EyeOpenIcon, FarcasterIcon, FavouriteFilterIcon, FeeButton, FeesAction, FeesLines, FeesTotal, FileDownloadIcon, FilledHeartIcon, FilterAscendingIcon, FilterButton, FilterIcon, FilterTimelineIcon, GasIcon, GhostIcon, GithubIcon, HashLink, HeadingText, HeartSmallIcon, HelpIcon, HighestPriceRangeIcon, HistoryItem, HomeIcon, IconButton, IconLabel, Image$1 as Image, ImageGroup, ImageIcon, ImageSparkle, ImageStack, ImageState, IncompleteAction, InfinityIcon, InfoBox, Inline, Input, InteractionHeader, InteractionProperties, InteractionTransactionView, Join, LaptopIcon, LightningIcon, LimitIcon, LinkIcon, ListItem, ListItemActionsButton, Loader, LoadingProvider, LoadingSkeleton, MEDIA_QUERIES, MarketCapIcon, MaxIcon, Menu, MenuItem, MenuSwapIcon, MirrorIcon, Modal, ModalContent, ModalContentDivider, MoneyBagIcon, MoonIcon, NavigationBar, NewsIcon, NewspaperIcon, NotAllowedIcon, NumericInput, PathSquareIcon, PauseIcon, PercentIcon, PhoneIcon, PieChartIcon, PipeSeparator, PluginIcon, PlusIcon, PoopIcon, PowerIcon, PriceChange, ProductCard, ProfileHeader, ProfileHeaderBackground, PropertiesLayout, PropertyListItem, PunkIcon, QrCodeIcon, RangeInput, ReceiptBillIcon, ReceiveNFTAction, ReceiveTokensAction, RefreshIcon, ReorderIcon, RouteStep, STEP_ITEM_HEIGHT, SearchIcon, SectionTitle, SendTokensAction, SettingsButton, SettingsGearIcon, SettingsItem, SettingsSlider, SettingsSliderIcon, ShoppingBagIcon, SizeTransition, SmileFilledIcon, SmileIcon, SnapIcon, SortIcon, SparkleIcon, SparklesIcon, SquareArrowCenter, SquareArrowTopLeftIcon, SquareArrowTopRight2Icon, SquidLogo, SquidVector, StakeAction, StarLinesIcon, StartAction, StocksIcon, SuccessAction, SunIcon, SunOutlinedIcon, SunriseIcon, SunriseSmallIcon, SwapAction, SwapConfiguration, SwapErrorIcon, SwapHeader, SwapIcon, SwapInputsIcon, SwapProgressView, SwapProperties, SwapStepItem, SwapStepSeparator, SwapStepsCollapsed, SwapSuccessIcon, SwapTransactionView, SwapWarningIcon, Switch, Tab, Tabs, TagIcon, TagIconFilled, TelegramIcon, TextSkeleton, ThemePreference, ThemeProvider, ThumbsUp, Tick, TimeFliesIcon, Timeline, Timestamp, Toast, TokenDetailsView, TokenGroup, TokenGroups, TokenPair, Tooltip, TradingViewStepsIcon, TransactionAction, TransactionFilters, TransactionHeader, TransactionHeaderLayout, TransactionItem, TransactionProperties, TransactionSearch, TransactionState, TransactionView, TransactionViewLayout, Transfer, TranslateIcon, TriangleExclamation, TxProgressViewHeader, UnsupportedPairNotice, UsdAmount, WalletFilledIcon, WalletIcon, WalletLink, WrapAction, XSocialIcon, adjustColorForContrast, baseTailwindConfig, blendColors, buttonRoundedClassMap, cn, darkTheme, getColorBrightness, getContrastColor, getHexColorFromOpacityPercentage, getWalletCardBackground, hexToRgb, isValidHexColor, lightTheme, linkActionTimelineProps, parseColor, parseSquidTheme, pxToRem, remToPx, rgbToHex, spacing$1 as spacing, statusTextClassMap, themeKeysToCssVariables, transactionErrorPauseAnimation, transactionFailureAnimation, transactionHalfSuccessAnimation, transactionPendingAnimation, transactionProcessingAnimation, transactionRejectedAnimation, transactionSuccessAnimation, useCollapsibleMenu, useDropdownMenu, useMediaQuery, useOnResize, useRect, useTimer, useUserTheme, useVersion };
|
|
@@ -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>>;
|