@0xsquid/ui 2.6.3 → 2.6.5-rollup-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/cjs/index.js +261 -42
  2. package/dist/cjs/types/components/buttons/Button.d.ts +4 -1
  3. package/dist/cjs/types/components/controls/Switch.d.ts +1 -1
  4. package/dist/cjs/types/components/icons/Generic.d.ts +8 -0
  5. package/dist/cjs/types/components/icons/Loader.d.ts +1 -1
  6. package/dist/cjs/types/components/lists/ListItem.d.ts +4 -1
  7. package/dist/cjs/types/core/utils.d.ts +7 -0
  8. package/dist/cjs/types/hooks/useColorFromSeed.d.ts +1 -0
  9. package/dist/cjs/types/stories/buttons/AssetsButton.stories.d.ts +1 -0
  10. package/dist/cjs/types/stories/buttons/Button.stories.d.ts +30 -15
  11. package/dist/cjs/types/stories/controls/Switch.stories.d.ts +5 -3
  12. package/dist/cjs/types/stories/lists/ListItem.stories.d.ts +3 -0
  13. package/dist/cjs/types/types/components.d.ts +1 -1
  14. package/dist/cjs/types/types/config.d.ts +3 -3
  15. package/dist/cjs/types/types/index.d.ts +1 -1
  16. package/dist/esm/index.js +259 -43
  17. package/dist/esm/types/components/buttons/Button.d.ts +4 -1
  18. package/dist/esm/types/components/controls/Switch.d.ts +1 -1
  19. package/dist/esm/types/components/icons/Generic.d.ts +8 -0
  20. package/dist/esm/types/components/icons/Loader.d.ts +1 -1
  21. package/dist/esm/types/components/lists/ListItem.d.ts +4 -1
  22. package/dist/esm/types/core/utils.d.ts +7 -0
  23. package/dist/esm/types/hooks/useColorFromSeed.d.ts +1 -0
  24. package/dist/esm/types/stories/buttons/AssetsButton.stories.d.ts +1 -0
  25. package/dist/esm/types/stories/buttons/Button.stories.d.ts +30 -15
  26. package/dist/esm/types/stories/controls/Switch.stories.d.ts +5 -3
  27. package/dist/esm/types/stories/lists/ListItem.stories.d.ts +3 -0
  28. package/dist/esm/types/types/components.d.ts +1 -1
  29. package/dist/esm/types/types/config.d.ts +3 -3
  30. package/dist/esm/types/types/index.d.ts +1 -1
  31. package/dist/index.css +1 -1
  32. package/dist/index.d.ts +21 -7
  33. 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
@@ -3015,6 +3041,12 @@ const backgrounds = {
3015
3041
  rgba(223, 159, 196, 1) 91.82%,
3016
3042
  rgba(180, 143, 233, 1) 100%
3017
3043
  )`,
3044
+ "loading-gradient": `linear-gradient(
3045
+ to right,
3046
+ var(${themeKeysToCssVariables.color["material-light-thin"].cssVariable}) 43%,
3047
+ var(--mid-color) 52%,
3048
+ var(${themeKeysToCssVariables.color["material-light-thin"].cssVariable}) 56%
3049
+ )`,
3018
3050
  };
3019
3051
  // Format animation durations object to Tailwind config
3020
3052
  // This way Tailwind can generate utility classes for each duration
@@ -3232,6 +3264,29 @@ const baseTailwindConfig = {
3232
3264
  opacity: "1",
3233
3265
  },
3234
3266
  },
3267
+ "loading-gradient-scroll": {
3268
+ "0%": {
3269
+ transform: "translateX(-56%)",
3270
+ },
3271
+ "100%": {
3272
+ transform: "translateX(0)",
3273
+ },
3274
+ },
3275
+ "squid-animated-loader-dash-grow": {
3276
+ "0%": {
3277
+ "stroke-dasharray": "62.827" /* 1/4 circle visible */,
3278
+ "stroke-dashoffset": "0" /* Starting from the beginning of the path */,
3279
+ },
3280
+ "100%": {
3281
+ "stroke-dasharray": "4141.884" /* 1/2 circle visible */,
3282
+ "stroke-dashoffset": "-20.942" /* Move the beginning of the path to make it grow */,
3283
+ },
3284
+ },
3285
+ "rotate-360": {
3286
+ to: {
3287
+ transform: "rotate(360deg)",
3288
+ },
3289
+ },
3235
3290
  },
3236
3291
  animation: {
3237
3292
  "move-to-right-with-spring-bounce": `move-to-right-with-spring-bounce var(${CSS_VARS.MOVE_WITH_SPRING_BOUNCE_DURATION}, 0s) ease-out both`,
@@ -3254,6 +3309,9 @@ const baseTailwindConfig = {
3254
3309
  "display-delayed": `display 0s var(${CSS_VARS.DISPLAY_DELAYED_DURATION}, 0s) ease-out both`,
3255
3310
  hide: `hide 0s ease-out forwards`,
3256
3311
  "move-loading-cover-to-right": "move-loading-cover-to-right 1.4s linear infinite",
3312
+ "loading-gradient-scroll": "loading-gradient-scroll 1s ease-in-out both infinite",
3313
+ "squid-animated-loader-dash-grow": "squid-animated-loader-dash-grow var(--squid-loader-rotate-duration) infinite alternate ease-in-out",
3314
+ "squid-animated-loader": "rotate-360 var(--squid-loader-rotate-duration) linear infinite",
3257
3315
  },
3258
3316
  opacity: {
3259
3317
  33: "0.33",
@@ -3320,6 +3378,57 @@ const baseTailwindConfig = {
3320
3378
  ".h-d-screen": {
3321
3379
  height: "100dvh",
3322
3380
  },
3381
+ ".assets-button-mask": {
3382
+ "mask-image": 'url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA3MiA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAgMjBDMCAxNC44ODE2IDEuOTUyNjIgOS43NjMxMSA1Ljg1Nzg2IDUuODU3ODZDOS43NjMwOSAxLjk1MjY0IDE0Ljg4MTUgMi4yMDcwMmUtMDUgMTkuOTk5OSAxLjg3MzU2ZS0xMEMyNS4xMTg0IC0yLjIwNjkxZS0wNSAzMC4yMzY5IDEuOTUyNiAzNC4xNDIxIDUuODU3ODZDMzQuNjY5NiA2LjM4NTI5IDM1LjE4NzkgNi45MTg3MyAzNS43MDExIDcuNDQ2OTVDMzguOTg4OCAxMC44MzA2IDQyLjA2ODMgMTQgNDYgMTRDNDkuOTMxNyAxNCA1My4wMTEyIDEwLjgzMDYgNTYuMjk4OSA3LjQ0Njk1QzU2LjgxMjEgNi45MTg3MyA1Ny4zMzA0IDYuMzg1MjkgNTcuODU3OSA1Ljg1Nzg2QzYxLjc2MzEgMS45NTI2IDY2Ljg4MTYgLTIuMjA2OTFlLTA1IDcyLjAwMDEgMS44NzM1NmUtMTBWNDBDNjYuODgxNiA0MCA2MS43NjMxIDM4LjA0NzQgNTcuODU3OSAzNC4xNDIxQzU3LjMzMzEgMzMuNjE3MSA1Ni44MTc0IDMzLjA4NjEgNTYuMzA2NSAzMi41NjAyQzUzLjAxNzQgMjkuMTc0IDQ5LjkzNDQgMjYgNDYgMjZDNDIuMDY1NiAyNiAzOC45ODI2IDI5LjE3NCAzNS42OTM1IDMyLjU2MDJDMzUuMTgyNiAzMy4wODYxIDM0LjY2NjkgMzMuNjE3MSAzNC4xNDIxIDM0LjE0MjFDMzAuMjM2OSAzOC4wNDc0IDI1LjExODQgNDAgMTkuOTk5OSA0MEMxNC44ODE1IDQwIDkuNzYzMDkgMzguMDQ3NCA1Ljg1Nzg2IDM0LjE0MjFDMS45NTI2MiAzMC4yMzY5IDAgMjUuMTE4NCAwIDIwWiIgZmlsbD0iI0ZCRkJGRCIgc3R5bGU9ImZpbGw6I0ZCRkJGRDtmaWxsOmNvbG9yKGRpc3BsYXktcDMgMC45ODQwIDAuOTg2MSAwLjk5MDQpO2ZpbGwtb3BhY2l0eToxOyIvPgo8L3N2Zz4=")',
3383
+ "mask-repeat": "no-repeat",
3384
+ },
3385
+ li: {
3386
+ "list-style-type": "none",
3387
+ },
3388
+ ".squid-property-gradient-bg-odd-container .squid-property-row-bg:nth-child(odd) > :is(div, button)": {
3389
+ background: `linear-gradient(
3390
+ 91deg,
3391
+ /* grey-100 with 0.05 opacity */ var(${themeKeysToCssVariables.color["grey-100-005"].cssVariable}) 0%,
3392
+ transparent 100%
3393
+ )`,
3394
+ },
3395
+ ".squid-property-gradient-bg-even-container .squid-property-row-bg:nth-child(even) > :is(div, button)": {
3396
+ background: `linear-gradient(
3397
+ 91deg,
3398
+ /* grey-100 with 0.05 opacity */ var(${themeKeysToCssVariables.color["grey-100-005"].cssVariable}) 0%,
3399
+ transparent 100%
3400
+ )`,
3401
+ },
3402
+ ":focus-visible": {
3403
+ "@apply tw-outline tw-outline-2 tw-outline-royal-500": {},
3404
+ },
3405
+ ":invalid": {
3406
+ "@apply tw-outline-status-negative": {},
3407
+ },
3408
+ ":disabled": {
3409
+ cursor: "not-allowed",
3410
+ },
3411
+ "*, *::before, *::after": {
3412
+ boxSizing: "border-box",
3413
+ },
3414
+ "input::-webkit-outer-spin-button, input::-webkit-inner-spin-button": {
3415
+ "-webkit-appearance": "none",
3416
+ margin: "0",
3417
+ },
3418
+ "input[type='number']": {
3419
+ "-moz-appearance": "textfield",
3420
+ },
3421
+ "#squid-lottie-animation #keystroke": {
3422
+ stroke: `var(${themeKeysToCssVariables.color["animation-text"].cssVariable})`,
3423
+ },
3424
+ "#squid-lottie-animation #keyfill": {
3425
+ fill: `var(${themeKeysToCssVariables.color["animation-bg"].cssVariable})`,
3426
+ },
3427
+ ".squid-animated-loader-dash": {
3428
+ "@apply tw-animate-squid-animated-loader-dash-grow": {},
3429
+ "stroke-dasharray": "20.942, 62.827" /* Initial visible part: 1/4 circle */,
3430
+ "stroke-dashoffset": "0",
3431
+ },
3323
3432
  });
3324
3433
  }),
3325
3434
  ],
@@ -3347,12 +3456,18 @@ const defaultFontFamily = {
3347
3456
  "squid-main": "Geist, sans-serif",
3348
3457
  };
3349
3458
  const defaultBorderRadius = {
3459
+ // lg button
3350
3460
  "button-lg-primary": spacing$1["squid-xxl"],
3351
3461
  "button-lg-secondary": spacing$1["squid-xxl"],
3352
3462
  "button-lg-tertiary": spacing$1["squid-xxl"],
3463
+ // md button
3353
3464
  "button-md-primary": spacing$1["squid-m"],
3354
3465
  "button-md-secondary": spacing$1["squid-m"],
3355
3466
  "button-md-tertiary": spacing$1["squid-m"],
3467
+ // sm button
3468
+ "button-sm-primary": spacing$1["squid-m"],
3469
+ "button-sm-secondary": spacing$1["squid-m"],
3470
+ "button-sm-tertiary": spacing$1["squid-m"],
3356
3471
  container: spacing$1["squid-l"],
3357
3472
  input: "9999px",
3358
3473
  "menu-sm": spacing$1["squid-s"],
@@ -3394,18 +3509,27 @@ const lightTheme = {
3394
3509
  "animation-bg": "#B893EC",
3395
3510
  "animation-text": "#FBFBFD",
3396
3511
  // buttons
3512
+ // lg button
3397
3513
  "button-lg-primary-bg": "#B893EC",
3398
3514
  "button-lg-primary-text": "#FBFBFD",
3399
3515
  "button-lg-secondary-bg": "#17191C",
3400
3516
  "button-lg-secondary-text": "#EDEEF3",
3401
3517
  "button-lg-tertiary-bg": "#EDEEF3",
3402
3518
  "button-lg-tertiary-text": "#292C32",
3519
+ // md button
3403
3520
  "button-md-primary-bg": "#B893EC",
3404
3521
  "button-md-primary-text": "#FBFBFD",
3405
3522
  "button-md-secondary-bg": "#17191C",
3406
3523
  "button-md-secondary-text": "#EDEEF3",
3407
3524
  "button-md-tertiary-bg": "#EDEEF3",
3408
3525
  "button-md-tertiary-text": "#292C32",
3526
+ // sm button
3527
+ "button-sm-primary-bg": "#B893EC",
3528
+ "button-sm-primary-text": "#FBFBFD",
3529
+ "button-sm-secondary-bg": "#17191C",
3530
+ "button-sm-secondary-text": "#EDEEF3",
3531
+ "button-sm-tertiary-bg": "#EDEEF3",
3532
+ "button-sm-tertiary-text": "#292C32",
3409
3533
  // input
3410
3534
  "input-bg": "#FBFBFD",
3411
3535
  "input-placeholder": "#A7ABBE",
@@ -3454,18 +3578,27 @@ const darkTheme = {
3454
3578
  "animation-bg": "#9E79D2",
3455
3579
  "animation-text": "#FBFBFD",
3456
3580
  // buttons
3581
+ // lg button
3457
3582
  "button-lg-primary-bg": "#9E79D2",
3458
3583
  "button-lg-primary-text": "#FBFBFD",
3459
3584
  "button-lg-secondary-bg": "#FBFBFD",
3460
3585
  "button-lg-secondary-text": "#292C32",
3461
3586
  "button-lg-tertiary-bg": "#292C32",
3462
3587
  "button-lg-tertiary-text": "#D1D6E0",
3588
+ // md button
3463
3589
  "button-md-primary-bg": "#9E79D2",
3464
3590
  "button-md-primary-text": "#FBFBFD",
3465
3591
  "button-md-secondary-bg": "#FBFBFD",
3466
3592
  "button-md-secondary-text": "#292C32",
3467
3593
  "button-md-tertiary-bg": "#292C32",
3468
3594
  "button-md-tertiary-text": "#D1D6E0",
3595
+ // sm button
3596
+ "button-sm-primary-bg": "#9E79D2",
3597
+ "button-sm-primary-text": "#FBFBFD",
3598
+ "button-sm-secondary-bg": "#FBFBFD",
3599
+ "button-sm-secondary-text": "#292C32",
3600
+ "button-sm-tertiary-bg": "#292C32",
3601
+ "button-sm-tertiary-text": "#D1D6E0",
3469
3602
  // input
3470
3603
  "input-bg": "#17191C",
3471
3604
  "input-placeholder": "#676B7E",
@@ -3544,7 +3677,7 @@ const boxShadowClassMap = {
3544
3677
  xlarge: "tw-shadow-elevation-light-2",
3545
3678
  xxlarge: "tw-shadow-elevation-dark-1",
3546
3679
  };
3547
- const roundedClassMap$1 = {
3680
+ const roundedClassMap = {
3548
3681
  xxs: "tw-rounded-squid-xxs",
3549
3682
  xs: "tw-rounded-squid-xs",
3550
3683
  s: "tw-rounded-squid-s",
@@ -3573,7 +3706,7 @@ const borderClassMap = {
3573
3706
  };
3574
3707
  function Image$1(_a) {
3575
3708
  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$1[rounded], shadow && boxShadowClassMap[size], borderClassMap[border]);
3709
+ 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
3710
  const [imageState, setImageState] = React$1.useState(exports.ImageState.LOADED);
3578
3711
  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
3712
  borderRadius: gradientRoundedClassMap[rounded],
@@ -3591,6 +3724,7 @@ function BadgeImage({ image, badge, extraMarginForBadge = false, className, }) {
3591
3724
 
3592
3725
  const LoadingContext = React$1.createContext(false);
3593
3726
  const LoadingProvider = LoadingContext.Provider;
3727
+ const loadingGradientClassName = "tw-relative tw-overflow-hidden [--mid-color:transparent] data-[squid-theme-type=dark]:[--mid-color:var(--st-color-material-light-average)] after:tw-content-[''] after:tw-absolute after:tw-block after:tw-top-0 after:tw-left-0 after:tw-h-full after:tw-w-[230%] after:tw-animate-loading-gradient-scroll after:tw-bg-loading-gradient";
3594
3728
  function LoadingSkeleton({ className, height = "20", isLoading: isLoadingProp, children, width = "100", }) {
3595
3729
  const contextValue = React$1.useContext(LoadingContext);
3596
3730
  const isLoading = isLoadingProp !== null && isLoadingProp !== void 0 ? isLoadingProp : contextValue;
@@ -3607,7 +3741,7 @@ function TextSkeleton(_a) {
3607
3741
  const t = React$1.useMemo(Math.random, []);
3608
3742
  if (isLoading === false)
3609
3743
  return children;
3610
- return (jsxRuntime.jsx("span", Object.assign({ className: cn("loading-gradient tw-inline-flex tw-rounded-full", className), style: {
3744
+ return (jsxRuntime.jsx("span", Object.assign({ className: cn("tw-inline-flex tw-rounded-full", loadingGradientClassName, className), style: {
3611
3745
  ["--min-width"]: minWidth,
3612
3746
  ["--max-width"]: maxWidth,
3613
3747
  width: calcLerp(`var(${minWidthVar})`, `var(${maxWidthVar})`, t),
@@ -3617,7 +3751,7 @@ function BlockSkeleton(_a) {
3617
3751
  var { isLoading, className, children } = _a, props = __rest$1(_a, ["isLoading", "className", "children"]);
3618
3752
  if (isLoading === false)
3619
3753
  return children;
3620
- return (jsxRuntime.jsx("div", Object.assign({ className: cn("loading-gradient tw-rounded-squid-s", className) }, props)));
3754
+ return (jsxRuntime.jsx("div", Object.assign({ className: cn("tw-rounded-squid-s", loadingGradientClassName, className) }, props)));
3621
3755
  }
3622
3756
 
3623
3757
  // font size, line height, and letter spacing classes
@@ -4032,6 +4166,12 @@ function ArrowExpandIcon({ className, size = "24", }) {
4032
4166
  function MoneyBagIcon({ className, size = "24", }) {
4033
4167
  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
4168
  }
4169
+ function PluginIcon({ size = "16", className, }) {
4170
+ 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" }) }));
4171
+ }
4172
+ function CircleCheckIcon({ className, size = "24", }) {
4173
+ 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" }) }));
4174
+ }
4035
4175
 
4036
4176
  function EmptyHeartIcon({ className }) {
4037
4177
  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" }) }));
@@ -4095,8 +4235,8 @@ function Loader(_a) {
4095
4235
  var { size = "24", strokeWidth = "2", className, rotateDuration = "0.8s" } = _a, props = __rest$1(_a, ["size", "strokeWidth", "className", "rotateDuration"]);
4096
4236
  return (jsxRuntime.jsxs("svg", Object.assign({ width: size, height: size, viewBox: "0 0 32 32", fill: "none" }, props, { style: {
4097
4237
  "--squid-loader-rotate-duration": rotateDuration,
4098
- }, className: cn("squid-animated-loader", className), children: [jsxRuntime.jsx("style", { children: `
4099
- ` }), jsxRuntime.jsxs("g", { id: "Spinner", children: [jsxRuntime.jsx("circle", { id: "Groove", cx: "16.0001", cy: "16", r: "13.3333", stroke: "currentColor", strokeOpacity: "0.1", strokeWidth: strokeWidth }), jsxRuntime.jsx("path", { className: "squid-animated-loader-dash", d: "M16,2.66666 A13.3334,13.3334 0 0,1 16,29.3334", stroke: "currentColor", strokeWidth: strokeWidth, strokeLinecap: "round" })] })] })));
4238
+ }, className: cn("tw-animate-squid-animated-loader", className), children: [jsxRuntime.jsx("style", { children: `
4239
+ ` }), jsxRuntime.jsxs("g", { id: "Spinner", children: [jsxRuntime.jsx("circle", { id: "Groove", cx: "16.0001", cy: "16", r: "13.3333", stroke: "currentColor", strokeOpacity: "0.1", strokeWidth: strokeWidth }), jsxRuntime.jsx("path", { className: "tw-squid-animated-loader-dash", d: "M16,2.66666 A13.3334,13.3334 0 0,1 16,29.3334", stroke: "currentColor", strokeWidth: strokeWidth, strokeLinecap: "round" })] })] })));
4100
4240
  }
4101
4241
 
4102
4242
  function MarketCapIcon({ size = "20", className, }) {
@@ -4398,16 +4538,23 @@ function Chip(_a) {
4398
4538
  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
4539
  }
4400
4540
 
4541
+ const loaderSizeMap = {
4542
+ sm: "16px",
4543
+ md: "24px",
4544
+ lg: "36px",
4545
+ };
4401
4546
  const baseButtonClassName = "tw-border tw-relative tw-overflow-hidden tw-group/base-button tw-flex tw-items-center tw-justify-center";
4402
4547
  const buttonWidthClassnameMap = {
4548
+ sm: "tw-w-max",
4403
4549
  md: "tw-min-w-[60px]",
4404
4550
  lg: "tw-w-full",
4405
4551
  };
4406
4552
  const buttonSizeClassMap = {
4407
4553
  md: "tw-px-squid-xs tw-py-squid-xxs tw-h-squid-xl",
4408
4554
  lg: "tw-p-1 tw-h-button",
4555
+ sm: "tw-h-squid-l tw-px-squid-xs",
4409
4556
  };
4410
- const roundedClassMap = {
4557
+ const buttonRoundedClassMap = {
4411
4558
  lg: {
4412
4559
  primary: "tw-rounded-button-lg-primary",
4413
4560
  secondary: "tw-rounded-button-lg-secondary",
@@ -4418,6 +4565,11 @@ const roundedClassMap = {
4418
4565
  secondary: "tw-rounded-button-md-secondary",
4419
4566
  tertiary: "tw-rounded-button-md-tertiary",
4420
4567
  },
4568
+ sm: {
4569
+ primary: "tw-rounded-button-sm-primary",
4570
+ secondary: "tw-rounded-button-sm-secondary",
4571
+ tertiary: "tw-rounded-button-sm-tertiary",
4572
+ },
4421
4573
  };
4422
4574
  const buttonVariantClassMap = {
4423
4575
  lg: {
@@ -4430,22 +4582,24 @@ const buttonVariantClassMap = {
4430
4582
  secondary: "tw-bg-button-md-secondary-bg tw-text-button-md-secondary-text",
4431
4583
  tertiary: "tw-bg-button-md-tertiary-bg tw-text-button-md-tertiary-text",
4432
4584
  },
4585
+ sm: {
4586
+ primary: "tw-bg-button-sm-primary-bg tw-text-button-sm-primary-text",
4587
+ secondary: "tw-bg-button-sm-secondary-bg tw-text-button-sm-secondary-text",
4588
+ tertiary: "tw-bg-button-sm-tertiary-bg tw-text-button-sm-tertiary-text",
4589
+ },
4433
4590
  };
4434
4591
  // right now all variants have the same disabled styles
4435
4592
  // in the future, we can add more disabled styles for different variants
4436
4593
  const buttonDisabledClass = "!tw-bg-grey-800 !tw-text-grey-600 tw-cursor-not-allowed";
4437
4594
  const loadingClassname = "tw-invisible tw-opacity-0";
4438
4595
  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"]);
4596
+ 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
4597
  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: roundedClassMap[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 ? (props.children) : size === "lg" ? (jsxRuntime.jsxs("span", { className: "tw-flex tw-items-center tw-justify-center tw-gap-squid-xs tw-px-squid-m", children: [showLoader && jsxRuntime.jsx(Loader, {}), jsxRuntime.jsx(BodyText, { className: isLoading ? loadingClassname : "", size: "medium", children: label })] })) : size === "md" ? (label != null && icon == null ? (
4442
- // label only
4443
- jsxRuntime.jsx(BodyText, { className: isLoading ? loadingClassname : "", size: "small", children: label })) : label == null && icon != null ? (
4444
- // icon only
4445
- isLoading ? null : (icon)) : (
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],
4598
+ 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"
4599
+ ? "tw-gap-squid-xs tw-px-squid-m"
4600
+ : "tw-gap-squid-xxs"), children: [showLoader && jsxRuntime.jsx(Loader, { size: loaderSizeMap[loaderSize] }), !isLoading && icon, label != null &&
4601
+ (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 })))] })) })] }));
4602
+ 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
4603
  // disabled styles
4450
4604
  disabled && buttonDisabledClass, isLoading && "tw-cursor-not-allowed",
4451
4605
  // custom classes from props
@@ -4463,7 +4617,7 @@ function Button$1(_a) {
4463
4617
  const ButtonHoverOverlay = ({ className }) => {
4464
4618
  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
4619
  };
4466
- const ButtonWrapper = ({ children, size, variant, className, }) => (jsxRuntime.jsx("div", { className: cn("tw-relative", buttonWidthClassnameMap[size], roundedClassMap[size][variant], className), children: children }));
4620
+ const ButtonWrapper = ({ children, size, variant, className, }) => (jsxRuntime.jsx("div", { className: cn("tw-relative", buttonWidthClassnameMap[size], buttonRoundedClassMap[size][variant], className), children: children }));
4467
4621
 
4468
4622
  function AccountsButton(_a) {
4469
4623
  var { imageUrls } = _a, props = __rest$1(_a, ["imageUrls"]);
@@ -4489,6 +4643,26 @@ function ArrowButton(_a) {
4489
4643
  "aria-disabled:tw-bg-grey-600 aria-disabled:tw-text-grey-800"), children: jsxRuntime.jsx(ArrowRightIcon, {}) })] })));
4490
4644
  }
4491
4645
 
4646
+ const colors = [
4647
+ "#D94E41",
4648
+ "#E58845",
4649
+ "#D9BA21",
4650
+ "#B1CC29",
4651
+ "#66CC33",
4652
+ "#19A654",
4653
+ "#56BFB6",
4654
+ "#45B0E5",
4655
+ "#3973E5",
4656
+ "#7562D9",
4657
+ "#B167E5",
4658
+ "#E573BF",
4659
+ ];
4660
+ function useColorFromSeed(seed) {
4661
+ return React$1.useMemo(() => {
4662
+ return colors[hashStringToIndex(seed, colors.length)];
4663
+ }, [seed]);
4664
+ }
4665
+
4492
4666
  function Input(_a) {
4493
4667
  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
4668
  const showActionButton = actionButtonProps != null;
@@ -19382,7 +19556,7 @@ const collapsedListItemClassMap = {
19382
19556
  large: "tw-w-[80px]",
19383
19557
  };
19384
19558
  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"]);
19559
+ 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
19560
  const { isDropdownOpen, dropdownRef, openDropdown, closeDropdown, openDropdownButtonRef, itemRef, menuRef, dropdownStyles, } = useDropdownMenu({
19387
19561
  itemsContainerRef,
19388
19562
  });
@@ -19418,9 +19592,11 @@ function ListItem(_a) {
19418
19592
  }
19419
19593
  return null;
19420
19594
  };
19421
- const isInteractive = !!props.onClick;
19422
- const ItemTag = isInteractive ? "button" : "div";
19423
- const itemProps = isInteractive ? props : {};
19595
+ const isInteractive = !!props.onClick || !!control;
19596
+ const ItemTag = isInteractive ? (control ? "label" : "button") : "div";
19597
+ const itemProps = isInteractive
19598
+ ? props
19599
+ : {};
19424
19600
  const handleInteraction = (e) => {
19425
19601
  var _a;
19426
19602
  e.preventDefault();
@@ -19437,9 +19613,9 @@ function ListItem(_a) {
19437
19613
  };
19438
19614
  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
19615
  ? `${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
19616
+ : "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
19617
  ? "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: {
19618
+ : "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
19619
  src: mainImageUrl,
19444
19620
  placeholderImageUrl,
19445
19621
  size: "xlarge",
@@ -19459,7 +19635,7 @@ function ListItem(_a) {
19459
19635
  : "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
19636
  e.stopPropagation();
19461
19637
  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 &&
19638
+ }, 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
19639
  dropdownPositionClassMap$1[dropdownStyles.position]), dropdownRef: dropdownRef, children: dropdownMenuContent })) : null] })));
19464
19640
  }
19465
19641
  const ListItemActionsButton = React$1.forwardRef((_a, ref) => {
@@ -19542,7 +19718,7 @@ function PropertyListItem(_a) {
19542
19718
  const Text = variant === "small" ? CaptionText : SmallBodyText;
19543
19719
  const isCollapsible = !!collapsibleContent;
19544
19720
  const ContentWrapperTag = isCollapsible ? "button" : "div";
19545
- return (jsxRuntime.jsx("li", Object.assign({}, props, { className: cn("tw-flex tw-w-full tw-gap-squid-xs tw-rounded-squid-xs tw-text-grey-300", showGradientBg && "squid-property-row-bg", addExtraPadding && containerPaddingClassNameMap[variant], className), children: jsxRuntime.jsxs(ContentWrapperTag, { onClick: isCollapsible ? handleToggleCollapsed : undefined, className: "tw-w-full tw-rounded-squid-xs", children: [jsxRuntime.jsxs("div", { className: cn("tw-flex tw-h-squid-l tw-w-full tw-items-center tw-justify-between tw-gap-squid-xs", childrenVariantClassNameMap[variant]), children: [jsxRuntime.jsx("div", { className: cn("tw-w-6 tw-text-grey-500", iconClassName), children: icon }), jsxRuntime.jsxs(Text, { className: cn("tw-flex tw-min-w-fit tw-flex-1 tw-gap-squid-xxs tw-text-grey-500", labelClassName), children: [jsxRuntime.jsx(TextSkeleton, { isLoading: isLoading, children: label }), !!tooltip && (jsxRuntime.jsx(Tooltip, Object.assign({}, tooltip, { children: jsxRuntime.jsx(HelpIcon, { className: "tw-cursor-help tw-text-grey-600 hover:tw-text-grey-500" }) })))] }), jsxRuntime.jsx(Text, { truncate: variant === "small" || undefined, className: cn("tw-flex tw-text-grey-300", detailClassName), children: jsxRuntime.jsx(TextSkeleton, { isLoading: isLoading, children: detail }) }), isCollapsible && (jsxRuntime.jsx(ChevronLargeRightIcon, { className: cn("tw-text-grey-600 tw-duration-generic", !isCollapsed && "tw-rotate-90"), size: "16" }))] }), isCollapsible && (jsxRuntime.jsx(Collapse, { collapsed: isCollapsed, children: collapsibleContent }))] }) })));
19721
+ return (jsxRuntime.jsx("li", Object.assign({}, props, { className: cn("tw-flex tw-w-full tw-gap-squid-xs tw-rounded-squid-xs tw-text-grey-300", showGradientBg && "tw-squid-property-row-bg", addExtraPadding && containerPaddingClassNameMap[variant], className), children: jsxRuntime.jsxs(ContentWrapperTag, { onClick: isCollapsible ? handleToggleCollapsed : undefined, className: "tw-w-full tw-rounded-squid-xs", children: [jsxRuntime.jsxs("div", { className: cn("tw-flex tw-h-squid-l tw-w-full tw-items-center tw-justify-between tw-gap-squid-xs", childrenVariantClassNameMap[variant]), children: [jsxRuntime.jsx("div", { className: cn("tw-w-6 tw-text-grey-500", iconClassName), children: icon }), jsxRuntime.jsxs(Text, { className: cn("tw-flex tw-min-w-fit tw-flex-1 tw-gap-squid-xxs tw-text-grey-500", labelClassName), children: [jsxRuntime.jsx(TextSkeleton, { isLoading: isLoading, children: label }), !!tooltip && (jsxRuntime.jsx(Tooltip, Object.assign({}, tooltip, { children: jsxRuntime.jsx(HelpIcon, { className: "tw-cursor-help tw-text-grey-600 hover:tw-text-grey-500" }) })))] }), jsxRuntime.jsx(Text, { truncate: variant === "small" || undefined, className: cn("tw-flex tw-text-grey-300", detailClassName), children: jsxRuntime.jsx(TextSkeleton, { isLoading: isLoading, children: detail }) }), isCollapsible && (jsxRuntime.jsx(ChevronLargeRightIcon, { className: cn("tw-text-grey-600 tw-duration-generic", !isCollapsed && "tw-rotate-90"), size: "16" }))] }), isCollapsible && (jsxRuntime.jsx(Collapse, { collapsed: isCollapsed, children: collapsibleContent }))] }) })));
19546
19722
  }
19547
19723
 
19548
19724
  function RouteStep({ imageUrl, descriptionBlocks, subtitle, showStepSeparator = false, }) {
@@ -27554,19 +27730,23 @@ function Switch({ checked = false, onChange, size, disabled = false, inputProps,
27554
27730
  // size styles
27555
27731
  switchSizeClassMap[size],
27556
27732
  // checked styles
27557
- checked ? "tw-bg-status-positive" : "tw-bg-grey-800",
27733
+ disabled || !checked ? "tw-bg-grey-800" : "tw-bg-status-positive",
27558
27734
  // disabled styles
27559
27735
  disabled ? "tw-cursor-not-allowed" : "tw-cursor-pointer",
27560
27736
  // Focus visible styles
27561
27737
  "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: "drop-shadow(0px 5px 20px rgba(0, 0, 0, 0.33)) drop-shadow(0px 2px 5px rgba(0, 0, 0, 0.20))",
27738
+ filter: disabled
27739
+ ? "drop-shadow(0px 5px 20px rgba(0, 0, 0, 0.10)) drop-shadow(0px 1px 5px rgba(0, 0, 0, 0.10))"
27740
+ : "drop-shadow(0px 5px 20px rgba(0, 0, 0, 0.33)) drop-shadow(0px 2px 5px rgba(0, 0, 0, 0.20))",
27563
27741
  }, className: clsx("tw-absolute tw-rounded-full tw-border tw-border-material-light-thin tw-transition-all",
27564
27742
  // size styles
27565
27743
  switchKnobSizeClassMap[size],
27566
27744
  // checked styles
27567
- switchKnobCheckedClassMap[size][checked ? "checked" : "unchecked"], checked
27568
- ? "group-data-[squid-theme-type=dark]:tw-bg-grey-100 group-data-[squid-theme-type=light]:tw-bg-grey-900"
27569
- : "tw-bg-grey-500") })] }));
27745
+ switchKnobCheckedClassMap[size][checked ? "checked" : "unchecked"], disabled
27746
+ ? "group-data-[squid-theme-type=dark]:tw-bg-grey-700 group-data-[squid-theme-type=light]:tw-bg-grey-900"
27747
+ : checked
27748
+ ? "group-data-[squid-theme-type=dark]:tw-bg-grey-100 group-data-[squid-theme-type=light]:tw-bg-grey-900"
27749
+ : "tw-bg-grey-500") })] }));
27570
27750
  }
27571
27751
 
27572
27752
  function RangeInput({ label, initialValue, onChange, min = 0, max = 99, isWarning = false, }) {
@@ -27680,7 +27860,8 @@ function RangeInput({ label, initialValue, onChange, min = 0, max = 99, isWarnin
27680
27860
  }, 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
27861
  }
27682
27862
 
27683
- const imageClass = "tw-w-[40px] tw-aspect-square tw-flex tw-items-center tw-justify-center";
27863
+ const imageWrapperClassName = "tw-w-[40px] tw-aspect-square tw-flex tw-items-center tw-justify-center";
27864
+ const tokenImageClassName = "tw-absolute tw-h-squid-xl tw-w-squid-xl tw-rounded-full tw-object-cover";
27684
27865
  const themeKeyVariantMap = {
27685
27866
  primary: "grey-800",
27686
27867
  accent: "royal-500",
@@ -27700,6 +27881,12 @@ var AssetsButtonState;
27700
27881
  AssetsButtonState[AssetsButtonState["EMPTY"] = 2] = "EMPTY";
27701
27882
  AssetsButtonState[AssetsButtonState["LOADING"] = 3] = "LOADING";
27702
27883
  })(AssetsButtonState || (AssetsButtonState = {}));
27884
+ var ImageLoadingState;
27885
+ (function (ImageLoadingState) {
27886
+ ImageLoadingState[ImageLoadingState["LOADING"] = 0] = "LOADING";
27887
+ ImageLoadingState[ImageLoadingState["LOADED"] = 1] = "LOADED";
27888
+ ImageLoadingState[ImageLoadingState["ERROR"] = 2] = "ERROR";
27889
+ })(ImageLoadingState || (ImageLoadingState = {}));
27703
27890
  const outlineWidthMap = {
27704
27891
  [AssetsButtonState.LOADING]: {
27705
27892
  inner: 75,
@@ -27719,7 +27906,9 @@ const outlineWidthMap = {
27719
27906
  },
27720
27907
  };
27721
27908
  function AssetsButton({ chain, token, onClick, variant = "primary", isLoading = false, tooltip, emptyTokenLabel = "Select token", }) {
27722
- var _a, _b;
27909
+ var _a, _b, _c, _d;
27910
+ const [tokenImageLoadingState, setTokenImageLoadingState] = React$1.useState(ImageLoadingState.LOADING);
27911
+ const fallbackBgColor = useColorFromSeed((_a = token === null || token === void 0 ? void 0 : token.symbol) !== null && _a !== void 0 ? _a : "");
27723
27912
  const state = React$1.useMemo(() => {
27724
27913
  if (chain != null && !isLoading) {
27725
27914
  if (token != null) {
@@ -27734,10 +27923,27 @@ function AssetsButton({ chain, token, onClick, variant = "primary", isLoading =
27734
27923
  }, [token, chain, isLoading]);
27735
27924
  const defaultBgColor = `var(${themeKeysToCssVariables.color[themeKeyVariantMap[variant]].cssVariable})`;
27736
27925
  const outlineWidth = outlineWidthMap[state];
27737
- const chainBgColor = (_a = chain === null || chain === void 0 ? void 0 : chain.bgColor) !== null && _a !== void 0 ? _a : defaultBgColor;
27738
- const tokenBgColor = state === AssetsButtonState.FULL
27739
- ? (_b = token === null || token === void 0 ? void 0 : token.bgColor) !== null && _b !== void 0 ? _b : defaultBgColor
27740
- : defaultBgColor;
27926
+ const chainBgColor = (_b = chain === null || chain === void 0 ? void 0 : chain.bgColor) !== null && _b !== void 0 ? _b : defaultBgColor;
27927
+ const tokenTextColor = tokenImageLoadingState === ImageLoadingState.ERROR
27928
+ ? "#fff"
27929
+ : token === null || token === void 0 ? void 0 : token.textColor;
27930
+ const tokenBgColor = React$1.useMemo(() => {
27931
+ if (state !== AssetsButtonState.FULL) {
27932
+ return defaultBgColor;
27933
+ }
27934
+ if (tokenImageLoadingState === ImageLoadingState.ERROR) {
27935
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
27936
+ return fallbackBgColor || defaultBgColor;
27937
+ }
27938
+ // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
27939
+ return (token === null || token === void 0 ? void 0 : token.bgColor) || defaultBgColor;
27940
+ }, [
27941
+ state,
27942
+ token === null || token === void 0 ? void 0 : token.bgColor,
27943
+ defaultBgColor,
27944
+ tokenImageLoadingState,
27945
+ fallbackBgColor,
27946
+ ]);
27741
27947
  const bgGradient = React$1.useMemo(() => {
27742
27948
  switch (state) {
27743
27949
  case AssetsButtonState.EMPTY:
@@ -27755,12 +27961,22 @@ function AssetsButton({ chain, token, onClick, variant = "primary", isLoading =
27755
27961
  ? "tw-cursor-not-allowed"
27756
27962
  : "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
27963
  backgroundImage: bgGradient,
27758
- }, children: jsxRuntime.jsx("div", { className: clsx(imageClass), children: state === AssetsButtonState.CHAIN_ONLY ||
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(imageClass, "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: {
27964
+ }, children: jsxRuntime.jsx("div", { className: clsx(imageWrapperClassName), children: state === AssetsButtonState.CHAIN_ONLY ||
27965
+ 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
27966
  backgroundColor: tokenBgColor,
27761
- } }), jsxRuntime.jsx("img", { src: token === null || token === void 0 ? void 0 : token.iconUrl, alt: token === null || token === void 0 ? void 0 : token.symbol, className: "tw-absolute tw-h-squid-xl tw-w-squid-xl tw-rounded-full tw-object-cover" }), 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: {
27967
+ } }), tokenImageLoadingState === ImageLoadingState.ERROR && (
27968
+ // show fallback
27969
+ 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: () => {
27970
+ setTokenImageLoadingState(ImageLoadingState.LOADED);
27971
+ }, onError: () => {
27972
+ setTokenImageLoadingState(ImageLoadingState.ERROR);
27973
+ }, src: token === null || token === void 0 ? void 0 : token.iconUrl, alt: token === null || token === void 0 ? void 0 : token.symbol, className: cn(tokenImageClassName,
27974
+ // when image load failed, hide it with opacity: 0 instead of display: none
27975
+ // so new images can load and update the loading state
27976
+ tokenImageLoadingState === ImageLoadingState.ERROR &&
27977
+ "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
27978
  backgroundColor: tokenBgColor,
27763
- color: token === null || token === void 0 ? void 0 : token.textColor,
27979
+ color: tokenTextColor,
27764
27980
  }, children: [jsxRuntime.jsx(BodyText, { size: "small", className: cn("tw-leading-[13px]", state === AssetsButtonState.LOADING && "tw-min-w-[135px]"), children: state === AssetsButtonState.FULL
27765
27981
  ? token === null || token === void 0 ? void 0 : token.symbol
27766
27982
  : state !== AssetsButtonState.LOADING && emptyTokenLabel }), state !== AssetsButtonState.LOADING && (jsxRuntime.jsx(ChevronLargeRightIcon, { className: "tw-w-4 tw-min-w-4 tw-opacity-66" }))] })] }) })));
@@ -27860,7 +28076,7 @@ function DepositAddressView({ isOpen = true, fromToken, toToken, handleClose, fr
27860
28076
  }, borderType: "outline", children: [jsxRuntime.jsxs("div", { className: "tw-relative tw-flex tw-h-[160px] tw-w-full tw-items-center tw-justify-center tw-rounded-tl-modal tw-rounded-tr-modal tw-bg-grey-900 tw-py-squid-s tw-text-material-light-thin", style: {
27861
28077
  // box shadow simulating bottom outline (we do not use css outline because cannot apply it to only one side)
27862
28078
  boxShadow: "0 1px 0 currentColor",
27863
- }, children: [jsxRuntime.jsx("div", { className: "tw-absolute tw-right-squid-xs tw-top-squid-xs", children: jsxRuntime.jsx(Button$1, { size: "md", variant: "secondary", label: "Copy" }) }), headerContent] }), jsxRuntime.jsx("div", { className: "tw-relative tw-flex tw-h-squid-m tw-w-full tw-items-end tw-justify-between tw-self-stretch tw-px-squid-m", children: jsxRuntime.jsx(Image$1, { src: fromToken.logoUrl, rounded: "full", shadow: true, size: "xlarge" }) }), jsxRuntime.jsx(TxProgressViewHeader, { title: title, description: description, isWarning: true }), jsxRuntime.jsxs("ul", { className: "squid-property-gradient-bg-even-container tw-flex tw-w-full tw-flex-col tw-items-center tw-justify-start tw-gap-squid-xxs tw-overflow-auto tw-rounded-squid-l tw-pb-squid-s tw-scrollbar-hidden", children: [jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(WalletFilledIcon, { size: "24" }), label: "Deposit address", detail: jsxRuntime.jsx(HashLink, { className: "tw-text-royal-500", formattedHash: depositAddressFormatted, hash: depositAddress, showCopyButton: true, copyIconSize: "24" }), tooltip: (tooltips === null || tooltips === void 0 ? void 0 : tooltips.depositAddress)
28079
+ }, children: [jsxRuntime.jsx("div", { className: "tw-absolute tw-right-squid-xs tw-top-squid-xs", children: jsxRuntime.jsx(Button$1, { size: "md", variant: "secondary", label: "Copy" }) }), headerContent] }), jsxRuntime.jsx("div", { className: "tw-relative tw-flex tw-h-squid-m tw-w-full tw-items-end tw-justify-between tw-self-stretch tw-px-squid-m", children: jsxRuntime.jsx(Image$1, { src: fromToken.logoUrl, rounded: "full", shadow: true, size: "xlarge" }) }), jsxRuntime.jsx(TxProgressViewHeader, { title: title, description: description, isWarning: true }), jsxRuntime.jsxs("ul", { className: "tw-squid-property-gradient-bg-even-container tw-flex tw-w-full tw-flex-col tw-items-center tw-justify-start tw-gap-squid-xxs tw-overflow-auto tw-rounded-squid-l tw-pb-squid-s tw-scrollbar-hidden", children: [jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(WalletFilledIcon, { size: "24" }), label: "Deposit address", detail: jsxRuntime.jsx(HashLink, { className: "tw-text-royal-500", formattedHash: depositAddressFormatted, hash: depositAddress, showCopyButton: true, copyIconSize: "24" }), tooltip: (tooltips === null || tooltips === void 0 ? void 0 : tooltips.depositAddress)
27864
28080
  ? {
27865
28081
  tooltipContent: tooltips.depositAddress,
27866
28082
  tooltipWidth: "max",
@@ -69291,7 +69507,7 @@ function SwapProgressView({ steps, isOpen = true, handleClose, handleComplete, s
69291
69507
  }, secondToken: {
69292
69508
  bgColor: toToken.bgColor,
69293
69509
  logoURI: toToken.logoUrl,
69294
- } })) }), jsxRuntime.jsx(TxProgressViewHeader, { title: headerTitle, description: headerDescription }), jsxRuntime.jsxs("ul", { className: "squid-property-gradient-bg-odd-container tw-flex tw-w-full tw-flex-col tw-items-center tw-justify-center tw-gap-squid-xxs tw-rounded-squid-l tw-pb-squid-s tw-pt-squid-xs mobile-xs-height:tw-h-[195px] mobile-sm-height:tw-py-squid-s", children: [jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(ArrowsSwapIcon, {}), label: "Swap", detail: jsxRuntime.jsx(Transfer, { from: jsxRuntime.jsx(IconLabel, { src: fromToken.logoUrl, rounded: "full", children: fromAmount }), to: jsxRuntime.jsx(IconLabel, { src: toToken.logoUrl, rounded: "full", children: toAmount }) }) }), jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(ChainLink, { size: "24", strokeWidth: "2" }), label: "Chain", detail: jsxRuntime.jsx(Transfer, { from: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("img", { className: "tw-h-squid-m tw-w-squid-m tw-rounded-squid-xxs", src: fromChain.logoUrl }), jsxRuntime.jsx(CaptionText, { children: fromChain.networkName })] }), to: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("img", { className: "tw-h-squid-m tw-w-squid-m tw-rounded-squid-xxs", src: toChain.logoUrl }), jsxRuntime.jsx(CaptionText, { children: toChain.networkName })] }) }) }), jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(WalletFilledIcon, { size: "24" }), label: "Wallet", detail: jsxRuntime.jsx(Transfer, { from: fromAddressFormatted, to: toAddressFormatted }) }), jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(TimeFliesIcon, {}), label: "Time to complete", detail: swapState === SwapState.PROGRESS ? (jsxRuntime.jsx(Transfer, { from: timer, to: estimatedTimeToComplete })) : swapState === SwapState.COMPLETED ? (jsxRuntime.jsx(CaptionText, { children: timer })) : (jsxRuntime.jsx(CaptionText, { children: estimatedTimeToComplete })) })] })] }), jsxRuntime.jsx(TrackTransactionView, { ref: trackTransactionViewRef, onTxEnd: () => {
69510
+ } })) }), jsxRuntime.jsx(TxProgressViewHeader, { title: headerTitle, description: headerDescription }), jsxRuntime.jsxs("ul", { className: "tw-squid-property-gradient-bg-odd-container tw-flex tw-w-full tw-flex-col tw-items-center tw-justify-center tw-gap-squid-xxs tw-rounded-squid-l tw-pb-squid-s tw-pt-squid-xs mobile-xs-height:tw-h-[195px] mobile-sm-height:tw-py-squid-s", children: [jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(ArrowsSwapIcon, {}), label: "Swap", detail: jsxRuntime.jsx(Transfer, { from: jsxRuntime.jsx(IconLabel, { src: fromToken.logoUrl, rounded: "full", children: fromAmount }), to: jsxRuntime.jsx(IconLabel, { src: toToken.logoUrl, rounded: "full", children: toAmount }) }) }), jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(ChainLink, { size: "24", strokeWidth: "2" }), label: "Chain", detail: jsxRuntime.jsx(Transfer, { from: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("img", { className: "tw-h-squid-m tw-w-squid-m tw-rounded-squid-xxs", src: fromChain.logoUrl }), jsxRuntime.jsx(CaptionText, { children: fromChain.networkName })] }), to: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("img", { className: "tw-h-squid-m tw-w-squid-m tw-rounded-squid-xxs", src: toChain.logoUrl }), jsxRuntime.jsx(CaptionText, { children: toChain.networkName })] }) }) }), jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(WalletFilledIcon, { size: "24" }), label: "Wallet", detail: jsxRuntime.jsx(Transfer, { from: fromAddressFormatted, to: toAddressFormatted }) }), jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(TimeFliesIcon, {}), label: "Time to complete", detail: swapState === SwapState.PROGRESS ? (jsxRuntime.jsx(Transfer, { from: timer, to: estimatedTimeToComplete })) : swapState === SwapState.COMPLETED ? (jsxRuntime.jsx(CaptionText, { children: timer })) : (jsxRuntime.jsx(CaptionText, { children: estimatedTimeToComplete })) })] })] }), jsxRuntime.jsx(TrackTransactionView, { ref: trackTransactionViewRef, onTxEnd: () => {
69295
69511
  stopTimer();
69296
69512
  }, onTxStart: () => {
69297
69513
  startTimer();
@@ -69845,6 +70061,7 @@ exports.ChevronRightSmallIcon = ChevronRightSmallIcon;
69845
70061
  exports.ChevronTopIcon = ChevronTopIcon;
69846
70062
  exports.ChevronTopSmallIcon = ChevronTopSmallIcon;
69847
70063
  exports.Chip = Chip;
70064
+ exports.CircleCheckIcon = CircleCheckIcon;
69848
70065
  exports.CircleMinusIcon = CircleMinusIcon;
69849
70066
  exports.CirclePlusIcon = CirclePlusIcon;
69850
70067
  exports.CircleX = CircleX;
@@ -69963,6 +70180,7 @@ exports.PercentIcon = PercentIcon;
69963
70180
  exports.PhoneIcon = PhoneIcon;
69964
70181
  exports.PieChartIcon = PieChartIcon;
69965
70182
  exports.PipeSeparator = PipeSeparator;
70183
+ exports.PluginIcon = PluginIcon;
69966
70184
  exports.PlusIcon = PlusIcon;
69967
70185
  exports.PoopIcon = PoopIcon;
69968
70186
  exports.PowerIcon = PowerIcon;
@@ -70070,6 +70288,7 @@ exports.XSocialIcon = XSocialIcon;
70070
70288
  exports.adjustColorForContrast = adjustColorForContrast;
70071
70289
  exports.baseTailwindConfig = baseTailwindConfig;
70072
70290
  exports.blendColors = blendColors;
70291
+ exports.buttonRoundedClassMap = buttonRoundedClassMap;
70073
70292
  exports.cn = cn;
70074
70293
  exports.darkTheme = darkTheme;
70075
70294
  exports.getColorBrightness = getColorBrightness;