@0xsquid/ui 2.6.6 → 2.7.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 (43) hide show
  1. package/dist/cjs/index.js +414 -384
  2. package/dist/cjs/types/components/badges/ImageGroup.d.ts +1 -1
  3. package/dist/cjs/types/components/icons/Arrow.d.ts +6 -1
  4. package/dist/cjs/types/components/icons/Generic.d.ts +29 -0
  5. package/dist/cjs/types/components/icons/Wallet.d.ts +1 -1
  6. package/dist/cjs/types/components/icons/index.d.ts +0 -1
  7. package/dist/cjs/types/components/layout/DropdownMenu.d.ts +1 -0
  8. package/dist/cjs/types/components/layout/NavigationBar.d.ts +1 -2
  9. package/dist/cjs/types/components/lists/TokenGroup.d.ts +2 -1
  10. package/dist/cjs/types/core/constants.d.ts +1 -1
  11. package/dist/cjs/types/core/design-system.d.ts +1 -0
  12. package/dist/cjs/types/services/internal/colorService.d.ts +2 -2
  13. package/dist/cjs/types/stories/badges/ImageGroup.stories.d.ts +3 -2
  14. package/dist/cjs/types/stories/controls/Input.stories.d.ts +1 -1
  15. package/dist/cjs/types/stories/layout/NavigationBar.stories.d.ts +0 -1
  16. package/dist/cjs/types/stories/layout/SwapConfiguration.stories.d.ts +0 -2
  17. package/dist/cjs/types/stories/lists/ListItem.stories.d.ts +1 -0
  18. package/dist/cjs/types/stories/lists/TokenGroup.stories.d.ts +1 -0
  19. package/dist/esm/index.js +405 -383
  20. package/dist/esm/types/components/badges/ImageGroup.d.ts +1 -1
  21. package/dist/esm/types/components/icons/Arrow.d.ts +6 -1
  22. package/dist/esm/types/components/icons/Generic.d.ts +29 -0
  23. package/dist/esm/types/components/icons/Wallet.d.ts +1 -1
  24. package/dist/esm/types/components/icons/index.d.ts +0 -1
  25. package/dist/esm/types/components/layout/DropdownMenu.d.ts +1 -0
  26. package/dist/esm/types/components/layout/NavigationBar.d.ts +1 -2
  27. package/dist/esm/types/components/lists/TokenGroup.d.ts +2 -1
  28. package/dist/esm/types/core/constants.d.ts +1 -1
  29. package/dist/esm/types/core/design-system.d.ts +1 -0
  30. package/dist/esm/types/services/internal/colorService.d.ts +2 -2
  31. package/dist/esm/types/stories/badges/ImageGroup.stories.d.ts +3 -2
  32. package/dist/esm/types/stories/controls/Input.stories.d.ts +1 -1
  33. package/dist/esm/types/stories/layout/NavigationBar.stories.d.ts +0 -1
  34. package/dist/esm/types/stories/layout/SwapConfiguration.stories.d.ts +0 -2
  35. package/dist/esm/types/stories/lists/ListItem.stories.d.ts +1 -0
  36. package/dist/esm/types/stories/lists/TokenGroup.stories.d.ts +1 -0
  37. package/dist/index.css +1 -1
  38. package/dist/index.d.ts +46 -17
  39. package/package.json +1 -1
  40. package/dist/cjs/types/components/icons/CrossAnimatedIcon.d.ts +0 -7
  41. package/dist/cjs/types/stories/controls/LargeNumericInput.stories.d.ts +0 -6
  42. package/dist/esm/types/components/icons/CrossAnimatedIcon.d.ts +0 -7
  43. package/dist/esm/types/stories/controls/LargeNumericInput.stories.d.ts +0 -6
package/dist/esm/index.js CHANGED
@@ -61,6 +61,11 @@ const MEDIA_QUERIES = {
61
61
  key: "mobile-sm-height",
62
62
  value: 670,
63
63
  },
64
+ DESKTOP_MD: {
65
+ media: "(min-width: 768px)",
66
+ key: "desktop-md",
67
+ value: 768,
68
+ },
64
69
  };
65
70
 
66
71
  const THEME_COLOR_KEYS = [
@@ -2967,6 +2972,7 @@ const spacing$1 = {
2967
2972
  "squid-m": "1.25rem", // 20px
2968
2973
  "squid-l": "1.875rem", // 30px
2969
2974
  "squid-xl": "2.5rem", // 40px
2975
+ "squid-xl2": "3.125rem", // 50px
2970
2976
  "squid-xxl": "3.75rem", // 60px
2971
2977
  };
2972
2978
  const backdropBlur = {
@@ -3694,24 +3700,366 @@ function IconLabel({ src, children, rounded }) {
3694
3700
  return (jsxs("div", { className: "tw-inline-flex tw-items-center tw-gap-squid-xxs", children: [src && jsx(Image$1, { src: src, rounded: rounded, size: "medium" }), typeof children === "string" ? (jsx(CaptionText, { children: children })) : (children)] }));
3695
3701
  }
3696
3702
 
3703
+ var isMergeableObject = function isMergeableObject(value) {
3704
+ return isNonNullObject(value)
3705
+ && !isSpecial(value)
3706
+ };
3707
+
3708
+ function isNonNullObject(value) {
3709
+ return !!value && typeof value === 'object'
3710
+ }
3711
+
3712
+ function isSpecial(value) {
3713
+ var stringValue = Object.prototype.toString.call(value);
3714
+
3715
+ return stringValue === '[object RegExp]'
3716
+ || stringValue === '[object Date]'
3717
+ || isReactElement(value)
3718
+ }
3719
+
3720
+ // see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25
3721
+ var canUseSymbol = typeof Symbol === 'function' && Symbol.for;
3722
+ var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;
3723
+
3724
+ function isReactElement(value) {
3725
+ return value.$$typeof === REACT_ELEMENT_TYPE
3726
+ }
3727
+
3728
+ function emptyTarget(val) {
3729
+ return Array.isArray(val) ? [] : {}
3730
+ }
3731
+
3732
+ function cloneUnlessOtherwiseSpecified(value, options) {
3733
+ return (options.clone !== false && options.isMergeableObject(value))
3734
+ ? deepmerge(emptyTarget(value), value, options)
3735
+ : value
3736
+ }
3737
+
3738
+ function defaultArrayMerge(target, source, options) {
3739
+ return target.concat(source).map(function(element) {
3740
+ return cloneUnlessOtherwiseSpecified(element, options)
3741
+ })
3742
+ }
3743
+
3744
+ function getMergeFunction(key, options) {
3745
+ if (!options.customMerge) {
3746
+ return deepmerge
3747
+ }
3748
+ var customMerge = options.customMerge(key);
3749
+ return typeof customMerge === 'function' ? customMerge : deepmerge
3750
+ }
3751
+
3752
+ function getEnumerableOwnPropertySymbols(target) {
3753
+ return Object.getOwnPropertySymbols
3754
+ ? Object.getOwnPropertySymbols(target).filter(function(symbol) {
3755
+ return Object.propertyIsEnumerable.call(target, symbol)
3756
+ })
3757
+ : []
3758
+ }
3759
+
3760
+ function getKeys(target) {
3761
+ return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))
3762
+ }
3763
+
3764
+ function propertyIsOnObject(object, property) {
3765
+ try {
3766
+ return property in object
3767
+ } catch(_) {
3768
+ return false
3769
+ }
3770
+ }
3771
+
3772
+ // Protects from prototype poisoning and unexpected merging up the prototype chain.
3773
+ function propertyIsUnsafe(target, key) {
3774
+ return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,
3775
+ && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,
3776
+ && Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.
3777
+ }
3778
+
3779
+ function mergeObject(target, source, options) {
3780
+ var destination = {};
3781
+ if (options.isMergeableObject(target)) {
3782
+ getKeys(target).forEach(function(key) {
3783
+ destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);
3784
+ });
3785
+ }
3786
+ getKeys(source).forEach(function(key) {
3787
+ if (propertyIsUnsafe(target, key)) {
3788
+ return
3789
+ }
3790
+
3791
+ if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {
3792
+ destination[key] = getMergeFunction(key, options)(target[key], source[key], options);
3793
+ } else {
3794
+ destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);
3795
+ }
3796
+ });
3797
+ return destination
3798
+ }
3799
+
3800
+ function deepmerge(target, source, options) {
3801
+ options = options || {};
3802
+ options.arrayMerge = options.arrayMerge || defaultArrayMerge;
3803
+ options.isMergeableObject = options.isMergeableObject || isMergeableObject;
3804
+ // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()
3805
+ // implementations can use it. The caller may not replace it.
3806
+ options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;
3807
+
3808
+ var sourceIsArray = Array.isArray(source);
3809
+ var targetIsArray = Array.isArray(target);
3810
+ var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;
3811
+
3812
+ if (!sourceAndTargetTypesMatch) {
3813
+ return cloneUnlessOtherwiseSpecified(source, options)
3814
+ } else if (sourceIsArray) {
3815
+ return options.arrayMerge(target, source, options)
3816
+ } else {
3817
+ return mergeObject(target, source, options)
3818
+ }
3819
+ }
3820
+
3821
+ deepmerge.all = function deepmergeAll(array, options) {
3822
+ if (!Array.isArray(array)) {
3823
+ throw new Error('first argument should be an array')
3824
+ }
3825
+
3826
+ return array.reduce(function(prev, next) {
3827
+ return deepmerge(prev, next, options)
3828
+ }, {})
3829
+ };
3830
+
3831
+ var deepmerge_1 = deepmerge;
3832
+
3833
+ var cjs = deepmerge_1;
3834
+
3835
+ var deepmerge$1 = /*@__PURE__*/getDefaultExportFromCjs(cjs);
3836
+
3837
+ /* eslint-disable @typescript-eslint/prefer-reduce-type-parameter */
3838
+ /**
3839
+ * Parses the user readable config to css variables
3840
+ * and adds the material-* variants
3841
+ * @param style
3842
+ */
3843
+ const parseSquidTheme = (userTheme, themeType) => {
3844
+ var _a, _b;
3845
+ const fullPublicTheme = deepmerge$1(lightTheme, userTheme);
3846
+ // Add material-{light,dark}-{thin,average,thick} colors to the squid theme object
3847
+ // using the following formula:
3848
+ // material-light-thin -> grey-100 + 10% opacity
3849
+ // material-light-average -> grey-100 + 33% opacity
3850
+ // material-light-thick -> grey-100 + 66% opacity
3851
+ // material-dark-thin -> grey-900 + 10% opacity
3852
+ // material-dark-average -> grey-900 + 33% opacity
3853
+ // material-dark-thick -> grey-900 + 66% opacity
3854
+ const materialVariants = {
3855
+ "material-light-thin": getHexColorFromOpacityPercentage(fullPublicTheme.color["grey-100"], 0.1),
3856
+ "material-light-average": getHexColorFromOpacityPercentage(fullPublicTheme.color["grey-100"], 0.33),
3857
+ "material-light-thick": getHexColorFromOpacityPercentage(fullPublicTheme.color["grey-100"], 0.66),
3858
+ "material-dark-thin": getHexColorFromOpacityPercentage(fullPublicTheme.color["grey-900"], 0.1),
3859
+ "material-dark-average": getHexColorFromOpacityPercentage(fullPublicTheme.color["grey-900"], 0.33),
3860
+ "material-dark-thick": getHexColorFromOpacityPercentage(fullPublicTheme.color["grey-900"], 0.66),
3861
+ };
3862
+ // Add some other extra colors that are not part of the public theme
3863
+ const opacityVariants = {
3864
+ // opacity variants
3865
+ "grey-100-005": getHexColorFromOpacityPercentage(fullPublicTheme.color["grey-100"], 0.05),
3866
+ // color representing the blend of material-light and grey-900
3867
+ "material-light-blend-grey-900": (_a = blendColors(materialVariants["material-light-thin"], fullPublicTheme.color["grey-900"])) !== null && _a !== void 0 ? _a : "",
3868
+ // color representing the blend of material-light and grey-300
3869
+ "material-light-blend-grey-800": (_b = blendColors(materialVariants["material-light-thin"], fullPublicTheme.color["grey-800"])) !== null && _b !== void 0 ? _b : "",
3870
+ };
3871
+ const defaultButtonColors = {
3872
+ "button-lg-primary-bg": fullPublicTheme.color["royal-500"],
3873
+ "button-lg-primary-text": fullPublicTheme.color[themeType === "light" ? "grey-900" : "grey-100"],
3874
+ "button-lg-secondary-bg": fullPublicTheme.color["grey-100"],
3875
+ "button-lg-secondary-text": fullPublicTheme.color["grey-800"],
3876
+ "button-lg-tertiary-bg": fullPublicTheme.color["grey-800"],
3877
+ "button-lg-tertiary-text": fullPublicTheme.color["grey-300"],
3878
+ "button-md-primary-bg": fullPublicTheme.color["royal-500"],
3879
+ "button-md-primary-text": fullPublicTheme.color[themeType === "light" ? "grey-900" : "grey-100"],
3880
+ "button-md-secondary-bg": fullPublicTheme.color["grey-100"],
3881
+ "button-md-secondary-text": fullPublicTheme.color["grey-800"],
3882
+ "button-md-tertiary-bg": fullPublicTheme.color["grey-800"],
3883
+ "button-md-tertiary-text": fullPublicTheme.color["grey-300"],
3884
+ "button-sm-primary-bg": fullPublicTheme.color["royal-500"],
3885
+ "button-sm-primary-text": fullPublicTheme.color[themeType === "light" ? "grey-900" : "grey-100"],
3886
+ "button-sm-secondary-bg": fullPublicTheme.color["grey-100"],
3887
+ "button-sm-secondary-text": fullPublicTheme.color["grey-800"],
3888
+ "button-sm-tertiary-bg": fullPublicTheme.color["grey-800"],
3889
+ "button-sm-tertiary-text": fullPublicTheme.color["grey-300"],
3890
+ };
3891
+ const defaultInputColors = {
3892
+ "input-placeholder": fullPublicTheme.color["grey-600"],
3893
+ "input-text": fullPublicTheme.color["grey-300"],
3894
+ "input-selection": fullPublicTheme.color["grey-300"],
3895
+ "input-bg": fullPublicTheme.color["grey-900"],
3896
+ };
3897
+ const defaultAnimationColors = {
3898
+ "animation-bg": fullPublicTheme.color["royal-500"],
3899
+ "animation-text": fullPublicTheme.color[themeType === "light" ? "grey-900" : "grey-100"],
3900
+ };
3901
+ const defaultModalColors = {
3902
+ "modal-backdrop": materialVariants["material-dark-average"],
3903
+ };
3904
+ const defaultMenuColors = {
3905
+ "menu-bg": materialVariants["material-dark-thick"],
3906
+ "menu-text": materialVariants["material-light-thick"],
3907
+ "menu-backdrop": materialVariants["material-light-thin"],
3908
+ };
3909
+ // Adds the internal colors and any missing config to the full theme
3910
+ const fullTheme = deepmerge$1({
3911
+ color: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, materialVariants), opacityVariants), defaultButtonColors), defaultInputColors), defaultAnimationColors), defaultModalColors), defaultMenuColors),
3912
+ }, fullPublicTheme);
3913
+ return flatten(fullTheme, {
3914
+ prefix: THEME_CSS_VARIABLE_PREFIX,
3915
+ });
3916
+ };
3917
+ const BASE_FONT_SIZE = 16;
3918
+ const remToPx = (rem, addSuffix = true) => {
3919
+ if (typeof rem === "string") {
3920
+ const pxValue = Number(rem.replace("rem", "")) * BASE_FONT_SIZE;
3921
+ return pxValue + (addSuffix ? "px" : "");
3922
+ }
3923
+ return rem * BASE_FONT_SIZE + (addSuffix ? "px" : "");
3924
+ };
3925
+ const pxToRem = (px, addSuffix = true) => {
3926
+ if (typeof px === "string") {
3927
+ const remValue = Number(px.replace("px", "")) / BASE_FONT_SIZE;
3928
+ return remValue + (addSuffix ? "rem" : "");
3929
+ }
3930
+ return px / BASE_FONT_SIZE + (addSuffix ? "rem" : "");
3931
+ };
3932
+ function getContrastColor({ r, g, b, }, threshold = 128) {
3933
+ const brightness = (r * 299 + g * 587 + b * 114) / 1000;
3934
+ return brightness >= threshold ? "dark" : "light";
3935
+ }
3936
+ /**
3937
+ * Returns a hexadecimal color with opacity based on the given color and opacity percentage.
3938
+ *
3939
+ * @example getHexColorFromOpacityPercentage('#FF0000', 0.5) // '#FF000080'
3940
+ *
3941
+ * @param {string} color - The base color in hexadecimal format.
3942
+ * @param {number} opacity - The opacity percentage (0-1).
3943
+ * @returns {string} The hexadecimal color with opacity.
3944
+ */
3945
+ function getHexColorFromOpacityPercentage(color, opacity) {
3946
+ return (color +
3947
+ Math.round(opacity * 255)
3948
+ .toString(16)
3949
+ .padStart(2, "0")).toUpperCase();
3950
+ }
3951
+ function hexToRgb(hex) {
3952
+ var _a;
3953
+ // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF")
3954
+ const shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i;
3955
+ const cleanHex = hex.replace(shorthandRegex, function (m, r, g, b, a) {
3956
+ return r + r + g + g + b + b + (a != null ? a + a : "");
3957
+ });
3958
+ const [, r, g, b, a] = ((_a = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(cleanHex)) !== null && _a !== void 0 ? _a : []);
3959
+ if (r == null || g == null || b == null)
3960
+ return null;
3961
+ return {
3962
+ r: parseInt(r, 16),
3963
+ g: parseInt(g, 16),
3964
+ b: parseInt(b, 16),
3965
+ a: a != null ? parseInt(a, 16) / 255 : 1,
3966
+ };
3967
+ }
3968
+ function rgbToHex(r, g, b) {
3969
+ return ("#" +
3970
+ [r, g, b]
3971
+ .map((x) => {
3972
+ const hex = x.toString(16);
3973
+ return hex.length === 1 ? "0" + hex : hex;
3974
+ })
3975
+ .join(""));
3976
+ }
3977
+ // Example usage:
3978
+ // let foregroundColor = '#FBFBFD1A'
3979
+ // let bgColor = '#17191C'
3980
+ // let resultingColor = blendColors(foregroundColor, bgColor)
3981
+ // console.log(resultingColor) // Output: ~#2f3033
3982
+ function blendColors(foreground, background) {
3983
+ const fg = hexToRgb(foreground);
3984
+ const bg = hexToRgb(background);
3985
+ if (fg == null || bg == null)
3986
+ return null;
3987
+ const r = Math.round(fg.r * fg.a + bg.r * (1 - fg.a));
3988
+ const g = Math.round(fg.g * fg.a + bg.g * (1 - fg.a));
3989
+ const b = Math.round(fg.b * fg.a + bg.b * (1 - fg.a));
3990
+ return rgbToHex(r, g, b);
3991
+ }
3992
+ function adjustColorForContrast(foreground, background, factor = 1) {
3993
+ const fg = parseColor(foreground);
3994
+ const bg = parseColor(background);
3995
+ if (fg == null || bg == null)
3996
+ return null;
3997
+ const r = Math.round(fg.r * (1 - factor) + bg.r * factor);
3998
+ const g = Math.round(fg.g * (1 - factor) + bg.g * factor);
3999
+ const b = Math.round(fg.b * (1 - factor) + bg.b * factor);
4000
+ return rgbToHex(r, g, b);
4001
+ }
4002
+ const isValidHexColor = (hex) => {
4003
+ return /^#([0-9A-F]{3}|[0-9A-F]{6}|[0-9A-F]{4}|[0-9A-F]{8})$/i.test(hex);
4004
+ };
4005
+ function parseColor(color) {
4006
+ var _a, _b, _c, _d;
4007
+ if (color.startsWith("#")) {
4008
+ return hexToRgb(color);
4009
+ }
4010
+ else if (color.startsWith("rgb")) {
4011
+ const match = color.match(/\d+(\.\d+)?/g);
4012
+ if (match) {
4013
+ return {
4014
+ r: parseInt((_a = match[0]) !== null && _a !== void 0 ? _a : "0"),
4015
+ g: parseInt((_b = match[1]) !== null && _b !== void 0 ? _b : "0"),
4016
+ b: parseInt((_c = match[2]) !== null && _c !== void 0 ? _c : "0"),
4017
+ a: match[3] ? parseFloat((_d = match[3]) !== null && _d !== void 0 ? _d : "0") : 1,
4018
+ };
4019
+ }
4020
+ }
4021
+ return null;
4022
+ }
4023
+ const getColorBrightness = (color) => {
4024
+ const rgb = parseColor(color);
4025
+ if (!rgb)
4026
+ return 0;
4027
+ return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;
4028
+ };
4029
+ const getWalletCardBackground = (colors) => {
4030
+ if (colors.length >= 3) {
4031
+ return `linear-gradient(73deg, ${colors[0]} 8.18%, ${colors[1]} 50.16%, ${colors[2]} 91.82%)`;
4032
+ }
4033
+ if (colors.length === 2) {
4034
+ return `linear-gradient(73deg, ${colors[0]} 8.18%, ${colors[1]} 50.16%)`;
4035
+ }
4036
+ return colors[0];
4037
+ };
4038
+
3697
4039
  const sizeClassMap = {
3698
- large: "tw-h-squid-xxl tw-w-squid-xxl tw-rounded-squid-s",
3699
- small: "tw-h-squid-xl tw-w-squid-xl tw-rounded-squid-xs",
4040
+ large: "tw-h-squid-xxl tw-w-squid-xxl tw-rounded-squid-s tw-gap-0.5",
4041
+ medium: "tw-h-squid-xl tw-w-squid-xl tw-rounded-squid-xs tw-gap-0.5",
4042
+ small: "tw-h-squid-l tw-w-squid-l tw-rounded-squid-xxs tw-gap-[0.09375rem]",
3700
4043
  };
3701
4044
  const customImageStylesMap = {
3702
4045
  large: {
3703
- width: "24px",
3704
- height: "24px",
3705
- borderRadius: "7.5px",
4046
+ width: pxToRem(24),
4047
+ height: pxToRem(24),
4048
+ borderRadius: pxToRem(7.5),
4049
+ },
4050
+ medium: {
4051
+ width: pxToRem(16),
4052
+ height: pxToRem(16),
4053
+ borderRadius: pxToRem(5),
3706
4054
  },
3707
4055
  small: {
3708
- width: "16px",
3709
- height: "16px",
3710
- borderRadius: "5px",
4056
+ width: pxToRem(12),
4057
+ height: pxToRem(12),
4058
+ borderRadius: pxToRem(5),
3711
4059
  },
3712
4060
  };
3713
4061
  function ImageGroup({ imageUrls, badge, size = "large", }) {
3714
- return (jsxs("div", { className: cn("tw-relative tw-flex tw-flex-shrink-0 tw-flex-wrap tw-content-center tw-items-center tw-justify-center tw-gap-0.5 tw-border tw-border-solid tw-border-material-light-thin tw-bg-grey-700", sizeClassMap[size]), children: [imageUrls.map((url) => (jsx(Image$1, { src: url, size: "medium", rounded: "xxs", style: customImageStylesMap[size] }, url))), badge != null && size !== "small" && (jsx("div", { className: "tw-absolute -tw-bottom-[1px] -tw-right-[1px]", children: jsx(Image$1, Object.assign({}, badge, { border: "outline-lg", size: "medium" })) }))] }));
4062
+ return (jsxs("div", { className: cn("tw-relative tw-flex tw-flex-shrink-0 tw-flex-wrap tw-content-center tw-items-center tw-justify-center tw-border tw-border-solid tw-border-material-light-thin tw-bg-grey-700", sizeClassMap[size]), children: [imageUrls.map((url) => (jsx(Image$1, { src: url, size: "medium", rounded: "xxs", style: customImageStylesMap[size] }, url))), badge != null && size === "large" && (jsx("div", { className: "tw-absolute -tw-bottom-[1px] -tw-right-[1px]", children: jsx(Image$1, Object.assign({}, badge, { border: "outline-lg", size: "medium" })) }))] }));
3715
4063
  }
3716
4064
 
3717
4065
  function Approve() {
@@ -3730,8 +4078,11 @@ function ArrowRightUpIcon({ size = "10", className, strokeWidth = "2", }) {
3730
4078
  function ChevronArrowIcon({ size = "16", className, }) {
3731
4079
  return (jsx("svg", { width: size, height: size, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: className, children: jsx("path", { d: "M6.66663 14L9.64022 8.64754C9.86394 8.24484 9.86394 7.75519 9.64022 7.35249L6.66663 2", stroke: "currentColor", strokeOpacity: "0.66", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }));
3732
4080
  }
3733
- function ArrowTriangle({ className }) {
3734
- return (jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: className, children: jsx("path", { d: "M2.87921 5.55701C2.21562 4.22933 3.18052 2.6665 4.66531 2.6665H11.3348C12.8196 2.6665 13.7845 4.22933 13.1209 5.55701L9.78615 12.229C9.05029 13.7012 6.94983 13.7012 6.21397 12.229L2.87921 5.55701Z", fill: "currentColor" }) }));
4081
+ function ArrowTriangle({ className, size = "16", }) {
4082
+ return (jsx("svg", { width: size, height: size, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: className, children: jsx("path", { d: "M2.87921 5.55701C2.21562 4.22933 3.18052 2.6665 4.66531 2.6665H11.3348C12.8196 2.6665 13.7845 4.22933 13.1209 5.55701L9.78615 12.229C9.05029 13.7012 6.94983 13.7012 6.21397 12.229L2.87921 5.55701Z", fill: "currentColor" }) }));
4083
+ }
4084
+ function ArrowCornerDownLeftIcon({ className, size = "16", }) {
4085
+ 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: "M13.3334 3.33333V8C13.3334 9.10457 12.438 10 11.3334 10H3.33341M5.33341 7.33333L2.66675 10L5.33341 12.6667", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }));
3735
4086
  }
3736
4087
  function PauseIcon({ size = "16", className, }) {
3737
4088
  return (jsxs("svg", { width: size, height: size, viewBox: "0 0 16 17", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: className, children: [jsx("path", { d: "M2.66666 4.5C2.66666 3.39543 3.56209 2.5 4.66666 2.5C5.77123 2.5 6.66666 3.39543 6.66666 4.5V12.5C6.66666 13.6046 5.77123 14.5 4.66666 14.5C3.56209 14.5 2.66666 13.6046 2.66666 12.5V4.5Z", fill: "currentColor" }), jsx("path", { d: "M9.33332 4.5C9.33332 3.39543 10.2288 2.5 11.3333 2.5C12.4379 2.5 13.3333 3.39543 13.3333 4.5V12.5C13.3333 13.6046 12.4379 14.5 11.3333 14.5C10.2288 14.5 9.33332 13.6046 9.33332 12.5V4.5Z", fill: "currentColor" })] }));
@@ -3899,28 +4250,6 @@ function PowerIcon({ size = "24", className, }) {
3899
4250
  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: "M7.02331 4.5C4.59826 6.11238 3 8.86954 3 12C3 16.9706 7.02944 21 12 21C16.9706 21 21 16.9706 21 12C21 8.86954 19.4017 6.11238 16.9767 4.5M12 2V7", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }));
3900
4251
  }
3901
4252
 
3902
- function CrossAnimatedIcon({ size = 24, isOpen, transitionDuration, className, }) {
3903
- const rotateDegrees = isOpen ? 45 : 0;
3904
- return (jsxs("div", { style: {
3905
- width: size,
3906
- height: size * 0.585,
3907
- }, className: cn("tw-relative tw-rotate-0 tw-transition-transform", className), children: [jsx("span", { style: {
3908
- height: size * 0.1,
3909
- top: isOpen ? size * -0.05 : 0,
3910
- transformOrigin: "left center",
3911
- left: isOpen ? size * 0.13 : 0,
3912
- transitionDuration,
3913
- transform: isOpen ? `rotate(${rotateDegrees}deg)` : "rotate(0)",
3914
- }, className: "tw-absolute tw-block tw-w-full tw-rounded-sm tw-bg-current tw-opacity-100 tw-transition-transform" }), jsx("span", { style: {
3915
- height: size * 0.1,
3916
- top: isOpen ? size * 0.65 : size * 0.6,
3917
- transformOrigin: "left center",
3918
- left: isOpen ? size * 0.13 : 0,
3919
- transitionDuration,
3920
- transform: isOpen ? `rotate(-${rotateDegrees}deg)` : "rotate(0)",
3921
- }, className: "tw-absolute tw-block tw-w-full tw-rounded-sm tw-bg-current tw-opacity-100 tw-transition-transform" })] }));
3922
- }
3923
-
3924
4253
  function DashboardFast({ size = "24", className, }) {
3925
4254
  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: "M15 10L12.25 15.5M19.5 16H4.5M21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21C16.9706 21 21 16.9706 21 12Z", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }));
3926
4255
  }
@@ -4068,6 +4397,27 @@ function PluginIcon({ size = "16", className, }) {
4068
4397
  function CircleCheckIcon({ className, size = "24", }) {
4069
4398
  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
4399
  }
4400
+ function EscKeyIcon({ className, width = "20", height = "8", }) {
4401
+ return (jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: width, height: height, viewBox: "0 0 20 8", fill: "none", className: className, children: [jsx("path", { d: "M13.3862 4.37183V3.53803C13.3862 1.32394 14.6088 0 16.7271 0C17.7299 0 18.62 0.304225 19.1721 0.839437C19.544 1.2 19.7693 1.63944 19.7693 1.98873C19.7693 2.43944 19.4595 2.73803 19.0088 2.73803C18.7102 2.73803 18.4905 2.62535 18.1975 2.32676C17.775 1.80845 17.3806 1.57183 16.8398 1.57183C15.8257 1.57183 15.251 2.32113 15.251 3.62254V4.28732C15.251 5.67324 15.8144 6.42254 16.8398 6.42254C17.3862 6.42254 17.8257 6.18592 18.2257 5.67887C18.5243 5.36901 18.7271 5.26197 19.0144 5.26197C19.4707 5.26197 19.7806 5.5662 19.7806 6.01127C19.7806 6.45634 19.4764 6.95211 18.9862 7.31831C18.4341 7.74648 17.6567 8 16.7271 8C14.575 8 13.3862 6.68169 13.3862 4.37183Z", fill: "currentColor" }), jsx("path", { d: "M6.34302 6.24789C6.34302 5.79718 6.66978 5.48169 7.06978 5.48169C7.3402 5.48169 7.57119 5.5831 7.88105 5.85916C8.34302 6.29296 8.90076 6.52958 9.46978 6.52958C10.2754 6.52958 10.7092 6.23662 10.7092 5.70704C10.7092 5.27887 10.3712 5.01408 9.55992 4.83944L8.50076 4.59718C7.11485 4.30423 6.43316 3.58873 6.43316 2.41127C6.43316 0.935211 7.58245 0 9.38527 0C10.3712 0 11.2613 0.287324 11.7796 0.777465C12.112 1.08169 12.2867 1.41972 12.2867 1.76338C12.2867 2.17465 11.9937 2.45634 11.5599 2.45634C11.3177 2.45634 11.0754 2.3493 10.8388 2.12394C10.4444 1.69014 9.98809 1.46479 9.40781 1.46479C8.72612 1.46479 8.29795 1.77465 8.29795 2.25916C8.29795 2.68169 8.62471 2.98028 9.3402 3.12113L10.4106 3.35211C11.8416 3.63944 12.5346 4.34366 12.5346 5.50986C12.5346 7.02535 11.3008 8 9.374 8C8.31485 8 7.374 7.69578 6.85006 7.2C6.5233 6.89014 6.34302 6.56338 6.34302 6.24789Z", fill: "currentColor" }), jsx("path", { d: "M0.219482 6.7662V1.20563C0.219482 0.518309 0.596947 0.140844 1.30117 0.140844H4.7885C5.21667 0.140844 5.52089 0.44507 5.52089 0.884506C5.52089 1.31831 5.21667 1.6169 4.7885 1.6169H2.06174V3.27887H4.65329C5.05329 3.27887 5.32371 3.56056 5.32371 3.9662C5.32371 4.37746 5.05329 4.64225 4.65329 4.64225H2.06174V6.35493H4.76596C5.21667 6.35493 5.52089 6.64789 5.52089 7.09296C5.52089 7.54366 5.21667 7.83099 4.76033 7.83099H1.30117C0.596947 7.83099 0.219482 7.45915 0.219482 6.7662Z", fill: "currentColor" })] }));
4402
+ }
4403
+ function StarFilledIcon({ className, size = "24", }) {
4404
+ 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: "M13.2868 2.49584C12.7691 1.41806 11.231 1.41805 10.7133 2.49584L8.49879 7.10557L3.39811 7.77343C2.21558 7.92827 1.7232 9.38947 2.60366 10.2197L6.33108 13.7343L5.39563 18.7523C5.17354 19.9437 6.43483 20.8269 7.47686 20.2652L12 17.8267L16.5232 20.2652C17.5652 20.8269 18.8265 19.9437 18.6044 18.7523L17.669 13.7343L21.3964 10.2197C22.2769 9.38947 21.7845 7.92827 20.602 7.77343L15.5013 7.10557L13.2868 2.49584Z", fill: "currentColor" }) }));
4405
+ }
4406
+ function StarOutlinedIcon({ className, size = "24", }) {
4407
+ return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 20 20", fill: "none", className: className, children: jsx("path", { d: "M9.6074 1.91272C9.76499 1.58468 10.2351 1.58468 10.3927 1.91272L12.4549 6.20542C12.5183 6.33744 12.6446 6.42863 12.7906 6.44775L17.538 7.06935C17.9008 7.11686 18.0461 7.56096 17.7807 7.8112L14.3078 11.0858C14.201 11.1866 14.1527 11.3341 14.1796 11.4779L15.0514 16.1548C15.118 16.5122 14.7377 16.7867 14.4161 16.6133L10.2076 14.3444C10.0781 14.2747 9.92195 14.2747 9.79251 14.3444L5.58399 16.6133C5.26237 16.7867 4.88205 16.5122 4.94868 16.1548L5.82053 11.4779C5.84735 11.3341 5.79908 11.1866 5.69227 11.0858L2.21941 7.8112C1.95401 7.56096 2.09928 7.11686 2.46207 7.06935L7.20944 6.44775C7.35544 6.42863 7.4818 6.33744 7.54522 6.20542L9.6074 1.91272Z", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }));
4408
+ }
4409
+ function FireIcon({ className, size = "24", }) {
4410
+ return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 20 20", fill: "none", className: className, children: jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M9.29792 2.39894C9.78493 1.70321 10.7622 1.45171 11.5255 1.97651C12.3185 2.5218 13.69 3.57571 14.8703 5.05521C16.0501 6.53397 17.0833 8.49511 17.0833 10.8332C17.0833 14.9977 13.9564 18.3332 9.99996 18.3332C6.04348 18.3332 2.91663 14.9977 2.91663 10.8332C2.91663 9.13711 3.64503 6.96996 5.06457 5.23976C5.68651 4.48171 6.75968 4.52692 7.38668 5.12928L9.29792 2.39894ZM9.99996 16.6666C11.2081 16.6666 12.1875 15.5487 12.1875 14.1696C12.1875 12.6898 11.0365 11.6013 10.4043 11.1151C10.1629 10.9295 9.83699 10.9295 9.59563 11.1151C8.96345 11.6013 7.81246 12.6898 7.81246 14.1696C7.81246 15.5487 8.79184 16.6666 9.99996 16.6666Z", fill: "currentColor" }) }));
4411
+ }
4412
+ function TrophyIcon({ size = "20", className, }) {
4413
+ return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 20 20", fill: "none", className: className, children: jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M6.66675 1.66663C5.57823 1.66663 4.6522 2.3623 4.309 3.33329H4.16675C2.78604 3.33329 1.66675 4.45258 1.66675 5.83329C1.66675 7.58084 3.01154 9.0143 4.72272 9.15525C5.54372 10.8932 7.19798 12.1604 9.17 12.4414V13.3333H7.50008C6.11937 13.3333 5.00008 14.4526 5.00008 15.8333C5.00008 17.214 6.11937 18.3333 7.50008 18.3333H12.5001C13.8808 18.3333 15.0001 17.214 15.0001 15.8333C15.0001 14.4526 13.8808 13.3333 12.5001 13.3333H10.8367V12.4404C12.8058 12.1576 14.4573 10.8913 15.2774 9.15525C16.9886 9.0143 18.3334 7.58084 18.3334 5.83329C18.3334 4.45258 17.2141 3.33329 15.8334 3.33329H15.6912C15.348 2.3623 14.4219 1.66663 13.3334 1.66663H6.66675ZM4.16675 6.66663C4.16675 6.87922 4.17812 7.08917 4.20029 7.29588C3.68368 7.01278 3.33341 6.46394 3.33341 5.83329C3.33341 5.37306 3.70651 4.99996 4.16675 4.99996V6.66663ZM16.6667 5.83329C16.6667 6.46394 16.3165 7.01278 15.7999 7.29588C15.822 7.08917 15.8334 6.87922 15.8334 6.66663V4.99996C16.2937 4.99996 16.6667 5.37306 16.6667 5.83329Z", fill: "currentColor" }) }));
4414
+ }
4415
+ function SearchMenuIcon({ size = "20", className, }) {
4416
+ return (jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 20 20", fill: "none", className: className, children: [jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M12.5033 4.16675C9.28159 4.16675 6.66992 6.77842 6.66992 10.0001C6.66992 13.2217 9.28159 15.8334 12.5033 15.8334C13.8127 15.8334 15.0214 15.402 15.9949 14.6735L17.7441 16.4227C18.0695 16.7481 18.5972 16.7481 18.9226 16.4227C19.248 16.0972 19.248 15.5696 18.9226 15.2442L17.1738 13.4954C17.904 12.5213 18.3366 11.3112 18.3366 10.0001C18.3366 6.77842 15.7249 4.16675 12.5033 4.16675ZM12.5 7.50008C11.1193 7.50008 10 8.61937 10 10.0001C10 10.4603 9.6269 10.8334 9.16667 10.8334C8.70643 10.8334 8.33333 10.4603 8.33333 10.0001C8.33333 7.69889 10.1988 5.83341 12.5 5.83341C12.9602 5.83341 13.3333 6.20651 13.3333 6.66675C13.3333 7.12699 12.9602 7.50008 12.5 7.50008Z", fill: "currentColor" }), jsx("path", { d: "M1.66992 5.83341C1.66992 5.37318 2.04302 5.00008 2.50326 5.00008H5.00326C5.46349 5.00008 5.83659 5.37318 5.83659 5.83341C5.83659 6.29365 5.46349 6.66675 5.00326 6.66675H2.50326C2.04302 6.66675 1.66992 6.29365 1.66992 5.83341Z", fill: "currentColor" }), jsx("path", { d: "M1.66992 10.0001C1.66992 9.53984 2.04302 9.16675 2.50326 9.16675H4.16992C4.63016 9.16675 5.00326 9.53984 5.00326 10.0001C5.00326 10.4603 4.63016 10.8334 4.16992 10.8334H2.50326C2.04302 10.8334 1.66992 10.4603 1.66992 10.0001Z", fill: "currentColor" }), jsx("path", { d: "M2.50326 13.3334C2.04302 13.3334 1.66992 13.7065 1.66992 14.1667C1.66992 14.627 2.04302 15.0001 2.50326 15.0001H5.00326C5.46349 15.0001 5.83659 14.627 5.83659 14.1667C5.83659 13.7065 5.46349 13.3334 5.00326 13.3334H2.50326Z", fill: "currentColor" })] }));
4417
+ }
4418
+ function MoneyBagSolidIcon({ size = "20", className, }) {
4419
+ return (jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 20 20", fill: "none", className: className, children: [jsx("path", { d: "M3.20936 15.8585C2.74521 15.1586 2.50001 14.315 2.5 13.3333C2.87506 10.7079 4.60051 8.75772 6.46082 6.87496H13.6268C15.3671 8.72127 17.1214 10.6833 17.5 13.3333C17.5 14.315 17.2548 15.1586 16.7907 15.8585C16.3297 16.5534 15.6857 17.0575 14.962 17.4187C13.539 18.1289 11.7155 18.3333 10 18.3333C8.28455 18.3333 6.46098 18.1289 5.03805 17.4187C4.31431 17.0575 3.67029 16.5534 3.20936 15.8585Z", fill: "currentColor" }), jsx("path", { d: "M13.2509 4.2731C13.6005 3.34097 13.2461 2.25704 12.2912 1.97578C11.5795 1.76617 10.8146 1.66663 10 1.66663C9.18537 1.66663 8.42051 1.76617 7.70883 1.97578C6.75387 2.25704 6.39955 3.34097 6.74909 4.2731L7.25187 5.61384L7.22222 5.62496H12.7778L12.7481 5.61384L13.2509 4.2731Z", fill: "currentColor" })] }));
4420
+ }
4071
4421
 
4072
4422
  function EmptyHeartIcon({ className }) {
4073
4423
  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" }) }));
@@ -4299,7 +4649,7 @@ function TriangleExclamation() {
4299
4649
  function WalletIcon({ size = "16" }) {
4300
4650
  return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 16 16", fill: "none", children: jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.33333 2C3.04467 2 2 3.04467 2 4.33333V11.3333C2 12.8061 3.19391 14 4.66667 14H12C13.1046 14 14 13.1046 14 12V7.33333C14 6.22876 13.1046 5.33333 12 5.33333H11.3333V3.60784C11.3333 2.71986 10.6135 2 9.72549 2H4.33333ZM10 5.33333V3.60784C10 3.45624 9.8771 3.33333 9.72549 3.33333H4.33333C3.78105 3.33333 3.33333 3.78105 3.33333 4.33333C3.33333 4.88562 3.78105 5.33333 4.33333 5.33333H10ZM10.3333 10.5C10.7936 10.5 11.1667 10.1269 11.1667 9.66667C11.1667 9.20643 10.7936 8.83333 10.3333 8.83333C9.8731 8.83333 9.5 9.20643 9.5 9.66667C9.5 10.1269 9.8731 10.5 10.3333 10.5Z", fill: "currentColor" }) }));
4301
4651
  }
4302
- function WalletFilledIcon({ size = "24" }) {
4652
+ function WalletOutlinedIcon({ size = "24" }) {
4303
4653
  return (jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", children: [jsx("path", { d: "M4 6.5V17C4 18.6569 5.34315 20 7 20H18C19.1046 20 20 19.1046 20 18V11C20 9.89543 19.1046 9 18 9H16M4 6.5C4 7.88071 5.11929 9 6.5 9H16M4 6.5C4 5.11929 5.11929 4 6.5 4H14.5882C15.3679 4 16 4.63207 16 5.41176V9", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "square", strokeLinejoin: "round" }), jsx("path", { d: "M15.5 15.375C15.9832 15.375 16.375 14.9832 16.375 14.5C16.375 14.0168 15.9832 13.625 15.5 13.625C15.0168 13.625 14.625 14.0168 14.625 14.5C14.625 14.9832 15.0168 15.375 15.5 15.375Z", fill: "currentColor", stroke: "currentColor", strokeWidth: "0.75" })] }));
4304
4654
  }
4305
4655
 
@@ -4612,7 +4962,7 @@ function LargeNumericInput({ onChange, value }) {
4612
4962
  if (isValidAmount)
4613
4963
  onChange(value || "");
4614
4964
  }, [onChange]);
4615
- return (jsxs("section", { className: "tw-flex tw-flex-1 tw-flex-col tw-items-center tw-justify-center tw-self-stretch tw-px-squid-l tw-pb-squid-m", children: [jsx("div", { className: "tw-relative tw-flex tw-w-full tw-flex-1 tw-items-center tw-justify-center tw-self-stretch tw-text-7xl tw-text-royal-500", children: jsxs("label", { className: "tw-flex tw-max-w-full tw-cursor-text tw-items-center tw-overflow-hidden tw-rounded-squid-l tw-px-squid-s tw-py-squid-xxs focus-within:tw-bg-material-light-thin hover:tw-bg-material-light-thin", children: [jsx("span", { ref: inputValueSpyRef, className: "tw-pointer-events-none tw-absolute tw-opacity-0", children: value || placeholder }), jsx("span", { children: "$" }), jsx("input", { inputMode: "decimal", pattern: "[0-9.,]*", ref: inputRef, value: value, onChange: handleInputChange, className: "tw-max-w-[calc(100%-3.125rem)] tw-bg-transparent tw-placeholder-royal-500 tw-outline-none focus:tw-outline-none", placeholder: placeholder })] }) }), jsx("footer", { className: "tw-flex tw-h-squid-m tw-items-center tw-justify-center tw-gap-squid-xxs tw-self-stretch", children: suggestedAmounts.map((amount) => (jsx(Chip, { label: `$${amount}`, onClick: () => {
4965
+ return (jsxs("section", { className: "tw-flex tw-flex-1 tw-flex-col tw-items-center tw-justify-center tw-self-stretch tw-px-squid-l tw-pb-squid-m", children: [jsxs("div", { className: "tw-relative tw-flex tw-w-full tw-flex-1 tw-items-center tw-justify-center tw-self-stretch tw-text-7xl tw-text-royal-500", children: [jsx("span", { ref: inputValueSpyRef, className: "tw-pointer-events-none tw-absolute tw-opacity-0", children: value || placeholder }), jsx("span", { children: "$" }), jsx("input", { inputMode: "decimal", pattern: "[0-9.,]*", ref: inputRef, value: value, onChange: handleInputChange, className: "tw-max-w-full tw-bg-transparent tw-placeholder-royal-500 tw-outline-none focus:tw-outline-none", placeholder: placeholder })] }), jsx("footer", { className: "tw-flex tw-h-squid-m tw-items-center tw-justify-center tw-gap-squid-xxs tw-self-stretch", children: suggestedAmounts.map((amount) => (jsx(Chip, { label: `$${amount}`, onClick: () => {
4616
4966
  onChange(amount);
4617
4967
  } }, amount))) })] }));
4618
4968
  }
@@ -18990,6 +19340,9 @@ function DetailsToolbar({ errorMessage, helpButton, isLoading, isEmpty, flipButt
18990
19340
  function DropdownMenu({ dropdownRef, className, menuRef, isHidden = false, listClassName, containerClassName, children, contentWrapperProps, menuContentClassName, trigger, }) {
18991
19341
  return (jsxs("div", { ref: dropdownRef, className: cn("tw-relative", containerClassName), children: [trigger, jsx(Menu, { menuRef: menuRef, rounded: "sm", containerClassName: cn("tw-absolute tw-right-0 tw-z-30", className), contentClassName: cn("!tw-p-0", menuContentClassName), contentWrapperProps: contentWrapperProps, children: !isHidden && (jsx("ul", { className: cn("tw-flex tw-max-w-full tw-flex-col tw-gap-squid-xxs tw-px-0 tw-py-squid-xxs", listClassName), children: children })) })] }));
18992
19342
  }
19343
+ function DropdownMenuSeparator() {
19344
+ return (jsx("span", { className: "tw-h-[0.0625rem] tw-min-h-[0.0625rem] tw-bg-material-light-thin" }));
19345
+ }
18993
19346
 
18994
19347
  function InfoBox({ title, description, icon }) {
18995
19348
  return (jsxs("div", { className: "tw-align-self-stretch tw-flex tw-flex-col tw-items-center tw-gap-squid-xs tw-px-squid-m tw-pb-squid-l tw-pt-squid-xs tw-text-royal-500", children: [icon, jsxs("div", { className: "tw-flex tw-flex-col tw-items-center tw-justify-center tw-gap-squid-xs tw-self-stretch tw-pt-squid-xxs tw-text-center", children: [jsx(BodyText, { size: "small", className: "!tw-leading-[9px]", children: title }), typeof description === "string" ? (jsx(CaptionText, { className: "tw-text-grey-500", children: description })) : (description)] })] }));
@@ -19052,10 +19405,10 @@ function ModalTitle({ title }) {
19052
19405
  }
19053
19406
 
19054
19407
  function NavigationBar(_a) {
19055
- var { title, displayBackButton = false, logoUrl, transparent = false, displayButtonShadows = false, onBackButtonClick, actions, isLoading = false, subtitle, paddingRight = 0 } = _a, props = __rest$1(_a, ["title", "displayBackButton", "logoUrl", "transparent", "displayButtonShadows", "onBackButtonClick", "actions", "isLoading", "subtitle", "paddingRight"]);
19408
+ var { title, displayBackButton = false, logoUrl, transparent = false, displayButtonShadows = false, onBackButtonClick, actions, isLoading = false, subtitle } = _a, props = __rest$1(_a, ["title", "displayBackButton", "logoUrl", "transparent", "displayButtonShadows", "onBackButtonClick", "actions", "isLoading", "subtitle"]);
19056
19409
  return (jsxs("nav", Object.assign({}, props, { className: cn("tw-flex tw-max-h-[120px] tw-flex-row-reverse tw-text-grey-300 mobile-xs-height:tw-flex-col", transparent ? "tw-bg-transparent" : "tw-bg-grey-900", props.className), children: [jsxs("div", { className: cn("tw-flex tw-h-squid-xxl tw-items-center tw-justify-end tw-gap-x-squid-xs tw-pl-squid-m", displayBackButton
19057
19410
  ? "tw-w-full tw-pr-squid-xs mobile-xs-height:tw-pr-squid-m"
19058
- : "tw-pr-squid-m mobile-lg:tw-pl-squid-l", !title && "tw-w-full mobile-xs-height:tw-w-[unset]"), style: { paddingRight: paddingRight ? `${paddingRight}px` : undefined }, children: [displayBackButton ? (jsx(Button$1, { className: displayButtonShadows
19411
+ : "tw-pr-squid-m mobile-lg:tw-pl-squid-l", !title && "tw-w-full mobile-xs-height:tw-w-[unset]"), children: [displayBackButton ? (jsx(Button$1, { className: displayButtonShadows
19059
19412
  ? "group-data-[squid-theme-type=dark]:tw-shadow-elevation-dark-2 group-data-[squid-theme-type=light]:tw-shadow-elevation-light-2"
19060
19413
  : undefined, variant: "tertiary", size: "md", isLoading: isLoading, icon: jsx(ArrowLeftIcon, {}), onClick: onBackButtonClick })) : null, logoUrl ? (jsx("img", { src: logoUrl, className: "tw-h-squid-xl tw-min-w-squid-xl" })) : null, jsx("span", { className: "tw-flex tw-flex-1 tw-items-center tw-justify-end tw-gap-squid-xxs", children: actions === null || actions === void 0 ? void 0 : actions.map((action) => {
19061
19414
  var _a;
@@ -19123,7 +19476,7 @@ function SwapConfiguration({ amount, tokenPrice = 0, isFetching: isFetchingProp
19123
19476
  ? walletButton === null || walletButton === void 0 ? void 0 : walletButton.address
19124
19477
  : walletButton === null || walletButton === void 0 ? void 0 : walletButton.emptyAddressLabel }), jsx(ChevronArrowIcon, { className: (walletButton === null || walletButton === void 0 ? void 0 : walletButton.address)
19125
19478
  ? "tw-text-grey-600"
19126
- : "tw-text-royal-500" })] })] }))] }) })) }), jsx("div", { className: "tw-px-squid-m mobile-lg:tw-px-squid-l", children: jsx(AssetsButton, Object.assign({}, assetsButton, { chain: chain, token: token, isLoading: isLoading })) }), jsx(NumericInput, { inputMode: "decimal", pattern: "[0-9.,]*", token: {
19479
+ : "tw-text-royal-500" })] })] }))] }) })) }), jsx("div", { className: "tw-px-squid-m mobile-lg:tw-px-squid-l", children: jsx(AssetsButton, Object.assign({}, assetsButton, { chain: chain, token: token, isLoading: isLoading })) }), isFetching && (jsx("div", { className: "tw-absolute tw-bottom-2 tw-left-squid-m tw-z-10 tw-overflow-hidden mobile-lg:tw-left-squid-l", children: jsx("div", { className: "tw-h-[94px] tw-w-[1260px] tw-animate-move-loading-cover-to-right tw-bg-dark-cover" }) })), jsx(NumericInput, { inputMode: "decimal", pattern: "[0-9.,]*", token: {
19127
19480
  decimals: (_a = token === null || token === void 0 ? void 0 : token.decimals) !== null && _a !== void 0 ? _a : 18,
19128
19481
  symbol: (_b = token === null || token === void 0 ? void 0 : token.symbol) !== null && _b !== void 0 ? _b : "",
19129
19482
  price: tokenPrice,
@@ -19148,7 +19501,7 @@ function AccountListItem({ isConnected, imageUrls = [], imageUrl, badgeUrl, acti
19148
19501
  size: "xxlarge",
19149
19502
  rounded: "s",
19150
19503
  border: "outline-sm",
19151
- }, badge: badge })) : (jsx(ImageGroup, { imageUrls: imageUrls, badge: badge })), jsxs("div", { className: "tw-flex tw-flex-1 tw-flex-col tw-items-start tw-gap-squid-xs", children: [jsx(BodyText, { size: "small", className: "tw-h-[13px] !tw-leading-[13px]", children: title }), jsx(BodyText, { size: "small", className: "tw-h-[13px] !tw-leading-[13px] tw-text-grey-500", children: subtitle })] }), jsx("menu", { className: "tw-flex tw-items-center tw-gap-squid-xxs", children: actions })] }));
19504
+ }, badge: badge })) : (jsx(ImageGroup, { imageUrls: imageUrls, badge: badge, size: "large" })), jsxs("div", { className: "tw-flex tw-flex-1 tw-flex-col tw-items-start tw-gap-squid-xs", children: [jsx(BodyText, { size: "small", className: "tw-h-[13px] !tw-leading-[13px]", children: title }), jsx(BodyText, { size: "small", className: "tw-h-[13px] !tw-leading-[13px] tw-text-grey-500", children: subtitle })] }), jsx("menu", { className: "tw-flex tw-items-center tw-gap-squid-xxs", children: actions })] }));
19152
19505
  }
19153
19506
 
19154
19507
  const SPACING = 10;
@@ -19557,7 +19910,7 @@ function ListItem(_a) {
19557
19910
  ? `${collapsedListItemClassMap[size]} mobile-lg:tw-w-full`
19558
19911
  : "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
19559
19912
  ? "tw-items-center tw-py-squid-xxs"
19560
- : "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: {
19913
+ : "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: "medium", imageUrls: imageGroup })) : (jsx(BadgeImage, { image: {
19561
19914
  src: mainImageUrl,
19562
19915
  placeholderImageUrl,
19563
19916
  size: "xlarge",
@@ -19569,7 +19922,7 @@ function ListItem(_a) {
19569
19922
  size: "medium",
19570
19923
  border: "outline-lg",
19571
19924
  }
19572
- : undefined }))) })) : (jsx("div", { className: "tw-flex tw-min-h-[30px] tw-min-w-[30px] tw-items-center tw-justify-center", children: mainIcon !== null && mainIcon !== void 0 ? mainIcon : (jsx(Image$1, { size: "large", src: mainImageUrl, placeholderImageUrl: placeholderImageUrl, rounded: rounded })) })), jsxs("div", { className: cn("tw-flex tw-flex-1 tw-flex-col tw-items-start tw-justify-center tw-gap-squid-xxs", multilineSubtitle ? "tw-pl-squid-xxs" : "tw-h-[40px]", !multilineSubtitle &&
19925
+ : undefined }))) })) : (jsx("div", { className: "tw-flex tw-min-h-[30px] tw-min-w-[30px] tw-items-center tw-justify-center", children: mainIcon !== null && mainIcon !== void 0 ? mainIcon : (imageGroup != null ? (jsx(ImageGroup, { size: "small", imageUrls: imageGroup })) : (jsx(Image$1, { size: "large", src: mainImageUrl, placeholderImageUrl: placeholderImageUrl, rounded: rounded }))) })), jsxs("div", { className: cn("tw-flex tw-flex-1 tw-flex-col tw-items-start tw-justify-center tw-gap-squid-xxs", multilineSubtitle ? "tw-pl-squid-xxs" : "tw-h-[40px]", !multilineSubtitle &&
19573
19926
  // 'large' variant has extra padding
19574
19927
  (size === "large" ? "tw-w-[56%] tw-pl-squid-xxs" : "tw-w-[67%]")), children: [typeof itemTitle === "string" ? (jsx(BodyText, { size: "small", className: cn("tw-max-w-full tw-truncate", subtitle && "tw-h-[17px] !tw-leading-[17px]", compactOnMobile ? "tw-hidden mobile-lg:tw-block" : "tw-block"), children: itemTitle })) : (itemTitle), size === "large" &&
19575
19928
  ((loading === null || loading === void 0 ? void 0 : loading.subtitle) ? (loadingComponent()) : subtitle ? (jsxs(CaptionText, { className: subtitleClassName, children: [subtitleOnHover && (jsx(CaptionText, { className: cn(subtitleClassName, "tw-hidden group-hover/list-item:tw-block"), children: subtitleOnHover })), subtitle] })) : null)] }), showDetail && (jsxs(DetailTag, Object.assign({}, detailProps, { className: cn("tw-flex tw-w-fit tw-items-center tw-justify-center tw-rounded-squid-xs", size === "large" ? "tw-h-squid-xl" : "tw-h-squid-l", showDetailOnHoverOnly
@@ -19757,7 +20110,7 @@ const mainImageSizeMap = {
19757
20110
  large: "xxlarge",
19758
20111
  small: "xlarge",
19759
20112
  };
19760
- function TokenGroup({ isSelected = false, tokenItems, priceChange, balance, balanceUsd, extraSpacing = true, chainImageUrl, imageUrl, symbol, name, onClick, variant = "large", className, onChildClick, isAdjacentToPreviousExpanded = false, isAdjacentToNextExpanded = false, }) {
20113
+ function TokenGroup({ isSelected = false, tokenItems, priceChange, balance, balanceUsd, extraSpacing = true, chainImageUrl, imageUrl, symbol, name, onClick, variant = "large", className, onChildClick, isAdjacentToPreviousExpanded = false, isAdjacentToNextExpanded = false, action, }) {
19761
20114
  var _a;
19762
20115
  const [isCollapsed, setIsCollapsed] = useState(true);
19763
20116
  const isCollapsible = tokenItems && tokenItems.length > 0;
@@ -19792,7 +20145,7 @@ function TokenGroup({ isSelected = false, tokenItems, priceChange, balance, bala
19792
20145
  : "tw-h-squid-xl tw-gap-squid-xxs"
19793
20146
  : isSmallVariant
19794
20147
  ? "tw-h-[50px] tw-gap-squid-s tw-py-squid-xxs"
19795
- : "tw-h-squid-xl tw-gap-squid-xxs"), children: [jsxs("div", { className: "tw-relative tw-min-w-fit", children: [jsx(Image$1, { src: imageUrl, size: isLargeVariant && !isCollapsed
20148
+ : "tw-h-squid-xl tw-gap-squid-xxs"), children: [!!action && action, jsxs("div", { className: "tw-relative tw-min-w-fit", children: [jsx(Image$1, { src: imageUrl, size: isLargeVariant && !isCollapsed
19796
20149
  ? "medium"
19797
20150
  : (_a = mainImageSizeMap[variant]) !== null && _a !== void 0 ? _a : "medium", rounded: isCompactVariant ? "xxs" : "full", style: {
19798
20151
  transition: `${ANIMATION_DURATIONS.GENERIC}ms ${ANIMATION_TIMINGS.GENERIC}`,
@@ -26056,22 +26409,22 @@ function PropertiesLayout({ children, className, }) {
26056
26409
  }
26057
26410
 
26058
26411
  function BridgeProperties({ amount, token, fromChain, toChain, wallet, boosted, timeToComplete, }) {
26059
- return (jsxs(PropertiesLayout, { children: [jsx(PropertyListItem, { variant: "large", icon: jsx(SquareArrowTopLeftIcon, { size: "20" }), label: jsxs(BodyText, { size: "small", children: ["Bridge ", token.symbol] }), detail: jsx(IconLabel, { src: token.logoURI, rounded: "full", children: jsx(BodyText, { size: "small", children: amount }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(ChainLink, { size: "24" }), label: "Chain", detail: jsx(Transfer, { from: jsx(IconLabel, { src: fromChain.logoURI, children: jsx(BodyText, { size: "small", children: fromChain.name }) }), to: jsx(IconLabel, { src: toChain.logoURI, children: jsx(BodyText, { size: "small", children: toChain.name }) }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(WalletFilledIcon, {}), label: "Wallet", detail: jsx(BodyText, { size: "small", children: jsx(HashLink, { hash: wallet, showCopyButton: true }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(TimeFliesIcon, {}), label: "Time to complete", detail: jsxs("div", { className: "tw-flex tw-items-center", children: [boosted && jsx(BoostBadge, {}), jsx(BodyText, { size: "small", children: timeToComplete })] }) })] }));
26412
+ return (jsxs(PropertiesLayout, { children: [jsx(PropertyListItem, { variant: "large", icon: jsx(SquareArrowTopLeftIcon, { size: "20" }), label: jsxs(BodyText, { size: "small", children: ["Bridge ", token.symbol] }), detail: jsx(IconLabel, { src: token.logoURI, rounded: "full", children: jsx(BodyText, { size: "small", children: amount }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(ChainLink, { size: "24" }), label: "Chain", detail: jsx(Transfer, { from: jsx(IconLabel, { src: fromChain.logoURI, children: jsx(BodyText, { size: "small", children: fromChain.name }) }), to: jsx(IconLabel, { src: toChain.logoURI, children: jsx(BodyText, { size: "small", children: toChain.name }) }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(WalletOutlinedIcon, {}), label: "Wallet", detail: jsx(BodyText, { size: "small", children: jsx(HashLink, { hash: wallet, showCopyButton: true }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(TimeFliesIcon, {}), label: "Time to complete", detail: jsxs("div", { className: "tw-flex tw-items-center", children: [boosted && jsx(BoostBadge, {}), jsx(BodyText, { size: "small", children: timeToComplete })] }) })] }));
26060
26413
  }
26061
26414
 
26062
26415
  function BuyNFTProperties({ title, imageURI, collection, price, token, marketplace, fromChain, toChain, fromAddress, toAddress, boosted, timeToComplete, tokenId, nftType, }) {
26063
- return (jsxs(PropertiesLayout, { className: "tw-flex tw-flex-col tw-gap-squid-m", children: [jsx(NFTPreviewCard, { name: title, imageURI: imageURI, collectionName: collection.name, tokenId: tokenId, nftType: nftType }), jsxs("div", { children: [jsx(PropertyListItem, { variant: "large", icon: jsx(CollectionIcon, {}), label: "Collection", detail: jsx(IconLabel, { src: collection.imageURI, children: jsx(BodyText, { size: "small", children: collection.name }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(TagIcon, {}), label: "NFT Price", detail: jsx(IconLabel, { src: token.logoURI, rounded: "full", children: jsx(BodyText, { size: "small", children: price }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(ShoppingBagIcon, {}), label: "Marketplace", detail: jsx(IconLabel, { src: marketplace.logoURI, children: jsx(BodyText, { size: "small", children: marketplace.name }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(ChainLink, { size: "24" }), label: "Chain", detail: jsx(Transfer, { from: jsx(IconLabel, { src: fromChain.logoURI, children: jsx(BodyText, { size: "small", children: fromChain.name }) }), to: jsx(IconLabel, { src: toChain.logoURI, children: jsx(BodyText, { size: "small", children: toChain.name }) }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(WalletFilledIcon, {}), label: "Wallet", detail: jsx(Transfer, { from: jsx(BodyText, { size: "small", children: jsx(HashLink, { hash: fromAddress, showCopyButton: true }) }), to: jsx(BodyText, { size: "small", children: jsx(HashLink, { hash: toAddress, showCopyButton: true }) }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(TimeFliesIcon, {}), label: "Time to complete", detail: jsxs("div", { className: "tw-flex tw-items-center", children: [boosted && jsx(BoostBadge, {}), jsx(BodyText, { size: "small", children: timeToComplete })] }) })] })] }));
26416
+ return (jsxs(PropertiesLayout, { className: "tw-flex tw-flex-col tw-gap-squid-m", children: [jsx(NFTPreviewCard, { name: title, imageURI: imageURI, collectionName: collection.name, tokenId: tokenId, nftType: nftType }), jsxs("div", { children: [jsx(PropertyListItem, { variant: "large", icon: jsx(CollectionIcon, {}), label: "Collection", detail: jsx(IconLabel, { src: collection.imageURI, children: jsx(BodyText, { size: "small", children: collection.name }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(TagIcon, {}), label: "NFT Price", detail: jsx(IconLabel, { src: token.logoURI, rounded: "full", children: jsx(BodyText, { size: "small", children: price }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(ShoppingBagIcon, {}), label: "Marketplace", detail: jsx(IconLabel, { src: marketplace.logoURI, children: jsx(BodyText, { size: "small", children: marketplace.name }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(ChainLink, { size: "24" }), label: "Chain", detail: jsx(Transfer, { from: jsx(IconLabel, { src: fromChain.logoURI, children: jsx(BodyText, { size: "small", children: fromChain.name }) }), to: jsx(IconLabel, { src: toChain.logoURI, children: jsx(BodyText, { size: "small", children: toChain.name }) }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(WalletOutlinedIcon, {}), label: "Wallet", detail: jsx(Transfer, { from: jsx(BodyText, { size: "small", children: jsx(HashLink, { hash: fromAddress, showCopyButton: true }) }), to: jsx(BodyText, { size: "small", children: jsx(HashLink, { hash: toAddress, showCopyButton: true }) }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(TimeFliesIcon, {}), label: "Time to complete", detail: jsxs("div", { className: "tw-flex tw-items-center", children: [boosted && jsx(BoostBadge, {}), jsx(BodyText, { size: "small", children: timeToComplete })] }) })] })] }));
26064
26417
  }
26065
26418
  function NFTPreviewCard({ name, imageURI, tokenId, nftType, collectionName, }) {
26066
26419
  return (jsxs("div", { className: "tw-flex tw-flex-col tw-items-center tw-gap-squid-m tw-px-squid-l tw-pt-squid-m tw-text-grey-300", children: [jsx("img", { className: "tw-max-w-96 tw-overflow-hidden tw-rounded-squid-xxs tw-shadow-elevation-light-3", src: imageURI, alt: name }), jsxs("div", { className: "tw-grid tw-w-full tw-grid-cols-[100px,1fr,100px]", children: [jsx("div", { className: "tw-flex tw-items-center", children: jsx(Chip, { className: "tw-border tw-border-grey-500 tw-bg-transparent !tw-text-grey-500", label: tokenId }) }), jsxs("div", { className: "tw-flex tw-flex-col tw-items-center", children: [jsxs(BodyText, { size: "small", children: [jsx("span", { className: "tw-text-grey-600", children: "\u201C\u00A0" }), name, jsx("span", { className: "tw-text-grey-600", children: "\u00A0\u201D" })] }), jsx(CaptionText, { children: collectionName })] }), jsx("div", { className: "tw-flex tw-items-center tw-justify-end", children: jsx(Chip, { className: "tw-border tw-border-grey-500 tw-bg-transparent !tw-text-grey-500", label: nftType }) })] })] }));
26067
26420
  }
26068
26421
 
26069
26422
  function InteractionProperties({ chain, wallet, boosted, timeToComplete, }) {
26070
- return (jsxs(PropertiesLayout, { children: [jsx(PropertyListItem, { variant: "large", icon: jsx(ChainLink, { size: "24" }), label: "Chain", detail: jsx(IconLabel, { src: chain.logoURI, children: jsx(BodyText, { size: "small", children: chain.name }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(WalletFilledIcon, {}), label: "Wallet", detail: jsx(BodyText, { size: "small", children: jsx(HashLink, { hash: wallet, showCopyButton: true }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(TimeFliesIcon, {}), label: "Time to complete", detail: jsxs("div", { className: "tw-flex tw-items-center", children: [boosted && jsx(BoostBadge, {}), jsx(BodyText, { size: "small", children: timeToComplete })] }) })] }));
26423
+ return (jsxs(PropertiesLayout, { children: [jsx(PropertyListItem, { variant: "large", icon: jsx(ChainLink, { size: "24" }), label: "Chain", detail: jsx(IconLabel, { src: chain.logoURI, children: jsx(BodyText, { size: "small", children: chain.name }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(WalletOutlinedIcon, {}), label: "Wallet", detail: jsx(BodyText, { size: "small", children: jsx(HashLink, { hash: wallet, showCopyButton: true }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(TimeFliesIcon, {}), label: "Time to complete", detail: jsxs("div", { className: "tw-flex tw-items-center", children: [boosted && jsx(BoostBadge, {}), jsx(BodyText, { size: "small", children: timeToComplete })] }) })] }));
26071
26424
  }
26072
26425
 
26073
26426
  function SwapProperties({ fromAmount, fromToken, toAmount, toToken, fromChain, toChain, fromAddress, toAddress, exchangeRate, boosted, timeToComplete, }) {
26074
- return (jsxs(PropertiesLayout, { children: [jsx(PropertyListItem, { variant: "large", icon: jsx(ArrowRightUpCircleIcon, {}), label: jsxs(BodyText, { size: "small", children: ["Swap ", fromToken.symbol] }), detail: jsx(IconLabel, { src: fromToken.logoURI, rounded: "full", children: jsx(BodyText, { size: "small", children: fromAmount }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(ArrowRightDownCircleIcon, {}), label: jsxs(BodyText, { size: "small", children: ["Receive ", toToken.symbol] }), detail: jsx(IconLabel, { src: toToken.logoURI, rounded: "full", children: jsx(BodyText, { size: "small", children: toAmount }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(ChainLink, { size: "24" }), label: "Chain", detail: jsx(Transfer, { from: jsx(IconLabel, { src: fromChain.logoURI, children: jsx(BodyText, { size: "small", children: fromChain.name }) }), to: jsx(IconLabel, { src: toChain.logoURI, children: jsx(BodyText, { size: "small", children: toChain.name }) }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(WalletFilledIcon, {}), label: "Wallet", detail: jsx(Transfer, { from: jsx(BodyText, { size: "small", children: jsx(HashLink, { hash: fromAddress, showCopyButton: true }) }), to: jsx(BodyText, { size: "small", children: jsx(HashLink, { hash: toAddress, showCopyButton: true }) }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(ArrowsSwapIcon, {}), label: "Exchange rate", detail: jsx(Transfer, { from: jsxs(BodyText, { size: "small", children: ["1 ", fromToken.symbol] }), to: jsxs(BodyText, { size: "small", children: [exchangeRate, " ", toToken.symbol] }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(TimeFliesIcon, {}), label: "Time to complete", detail: jsxs("div", { className: "tw-flex tw-items-center", children: [boosted && jsx(BoostBadge, {}), jsx(BodyText, { size: "small", children: timeToComplete })] }) })] }));
26427
+ return (jsxs(PropertiesLayout, { children: [jsx(PropertyListItem, { variant: "large", icon: jsx(ArrowRightUpCircleIcon, {}), label: jsxs(BodyText, { size: "small", children: ["Swap ", fromToken.symbol] }), detail: jsx(IconLabel, { src: fromToken.logoURI, rounded: "full", children: jsx(BodyText, { size: "small", children: fromAmount }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(ArrowRightDownCircleIcon, {}), label: jsxs(BodyText, { size: "small", children: ["Receive ", toToken.symbol] }), detail: jsx(IconLabel, { src: toToken.logoURI, rounded: "full", children: jsx(BodyText, { size: "small", children: toAmount }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(ChainLink, { size: "24" }), label: "Chain", detail: jsx(Transfer, { from: jsx(IconLabel, { src: fromChain.logoURI, children: jsx(BodyText, { size: "small", children: fromChain.name }) }), to: jsx(IconLabel, { src: toChain.logoURI, children: jsx(BodyText, { size: "small", children: toChain.name }) }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(WalletOutlinedIcon, {}), label: "Wallet", detail: jsx(Transfer, { from: jsx(BodyText, { size: "small", children: jsx(HashLink, { hash: fromAddress, showCopyButton: true }) }), to: jsx(BodyText, { size: "small", children: jsx(HashLink, { hash: toAddress, showCopyButton: true }) }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(ArrowsSwapIcon, {}), label: "Exchange rate", detail: jsx(Transfer, { from: jsxs(BodyText, { size: "small", children: ["1 ", fromToken.symbol] }), to: jsxs(BodyText, { size: "small", children: [exchangeRate, " ", toToken.symbol] }) }) }), jsx(PropertyListItem, { variant: "large", icon: jsx(TimeFliesIcon, {}), label: "Time to complete", detail: jsxs("div", { className: "tw-flex tw-items-center", children: [boosted && jsx(BoostBadge, {}), jsx(BodyText, { size: "small", children: timeToComplete })] }) })] }));
26075
26428
  }
26076
26429
 
26077
26430
  const propertiesComponentsMap = {
@@ -27562,9 +27915,9 @@ function NumericInput(_a) {
27562
27915
  }, [userInputType, balance, token.price]);
27563
27916
  const containerClassname = "tw-px-squid-xs !tw-h-full tw-pt-squid-xxs mobile-xs-height:tw-pb-squid-s tw-text-heading-small tw-font-regular mobile-lg:tw-px-squid-m tw-relative tw-h-[65px] mobile-sm-height:tw-h-[75px]";
27564
27917
  const inputRef = useRef(null);
27565
- return (jsxs("div", { className: "tw-relative tw-flex tw-w-full tw-flex-col", children: [isLoading && (jsx("div", { className: "tw-pointer-events-none tw-absolute tw-inset-0 tw-top-squid-xxs tw-z-10 tw-overflow-hidden", children: jsx("div", { className: "tw-h-full tw-w-[78.75rem] tw-animate-move-loading-cover-to-right tw-bg-dark-cover" }) })), isInteractive && !isLoading ? (jsxs("form", { className: containerClassname, onSubmit: (e) => {
27918
+ return (jsxs(Fragment, { children: [isInteractive && !isLoading ? (jsxs("form", { className: containerClassname, onSubmit: (e) => {
27566
27919
  e.preventDefault();
27567
- }, children: [userInputType === UserInputType.USD && (jsx("span", { className: "tw-absolute tw-left-5 tw-top-[11px] tw-leading-[43px] tw-text-grey-600 mobile-lg:tw-left-[30px]", children: "$" })), jsx("input", Object.assign({ ref: inputRef, type: "text", value: inputValue, onChange: handleInputChange, placeholder: "0", className: cn("tw-h-[55px] tw-w-full tw-rounded-squid-s tw-bg-transparent tw-px-squid-xs tw-py-squid-s tw-text-grey-300 placeholder:tw-text-grey-600 hover:tw-bg-material-light-thin focus:tw-bg-material-light-thin focus:tw-text-royal-500 focus:tw-outline-none", userInputType === UserInputType.USD && "tw-pl-[33px]") }, props))] })) : (jsx("div", { className: cn(containerClassname, (isLoading || Number(inputValue || 0) === 0) && loadingClassName), children: jsx("div", { className: "tw-font-regular tw-flex tw-h-[55px] tw-w-full tw-cursor-default tw-items-center tw-rounded-squid-s tw-bg-transparent tw-px-squid-xs tw-py-squid-s tw-text-heading-small tw-text-grey-300", children: jsx("span", { children: inputValue || 0 }) }) })), !showDetails ? null : (jsxs("footer", { className: cn("tw-flex tw-h-squid-m tw-max-h-squid-m tw-items-center tw-justify-between tw-gap-2 tw-px-squid-xs tw-text-grey-500 mobile-lg:tw-px-squid-m", isLoading && loadingClassName), children: [error ? (jsx("div", { className: "tw-px-squid-xs", children: jsx(ErrorMessage, { message: error.message }) })) : (jsx(Tooltip, Object.assign({}, (isLoading
27920
+ }, children: [userInputType === UserInputType.USD && (jsx("span", { className: "tw-absolute tw-left-5 tw-top-[11px] tw-leading-[43px] tw-text-grey-600 mobile-lg:tw-left-[30px]", children: "$" })), jsx("input", Object.assign({ ref: inputRef, type: "text", value: inputValue, onChange: handleInputChange, placeholder: "0", className: cn("tw-h-[55px] tw-w-full tw-rounded-squid-s tw-bg-transparent tw-px-squid-xs tw-py-squid-s tw-text-grey-300 placeholder:tw-text-grey-600 hover:tw-bg-material-light-thin focus:tw-bg-material-light-thin focus:tw-text-royal-500 focus:tw-outline-none", userInputType === UserInputType.USD && "tw-pl-[33px]") }, props))] })) : (jsx("div", { className: cn(containerClassname, (isLoading || Number(inputValue || 0) === 0) && loadingClassName), children: jsx("div", { className: "tw-font-regular tw-flex tw-h-[55px] tw-w-full tw-items-center tw-rounded-squid-s tw-bg-transparent tw-px-squid-xs tw-py-squid-s tw-text-heading-small tw-text-grey-300", children: jsx("span", { children: inputValue || 0 }) }) })), !showDetails ? null : (jsxs("footer", { className: cn("tw-flex tw-h-squid-m tw-max-h-squid-m tw-items-center tw-justify-between tw-gap-2 tw-px-squid-xs tw-text-grey-500 mobile-lg:tw-px-squid-m", isLoading && loadingClassName), children: [error ? (jsx("div", { className: "tw-px-squid-xs", children: jsx(ErrorMessage, { message: error.message }) })) : (jsx(Tooltip, Object.assign({}, (isLoading
27568
27921
  ? undefined
27569
27922
  : userInputType === UserInputType.TOKEN
27570
27923
  ? inputModeButton === null || inputModeButton === void 0 ? void 0 : inputModeButton.tokenModeTooltip
@@ -28016,7 +28369,7 @@ function DepositAddressView({ isOpen = true, fromToken, toToken, handleClose, fr
28016
28369
  }, borderType: "outline", children: [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: {
28017
28370
  // box shadow simulating bottom outline (we do not use css outline because cannot apply it to only one side)
28018
28371
  boxShadow: "0 1px 0 currentColor",
28019
- }, children: [jsx("div", { className: "tw-absolute tw-right-squid-xs tw-top-squid-xs", children: jsx(Button$1, { size: "md", variant: "secondary", label: "Copy" }) }), headerContent] }), 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: jsx(Image$1, { src: fromToken.logoUrl, rounded: "full", shadow: true, size: "xlarge" }) }), jsx(TxProgressViewHeader, { title: title, description: description, isWarning: true }), 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: [jsx(PropertyListItem, { icon: jsx(WalletFilledIcon, { size: "24" }), label: "Deposit address", detail: 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)
28372
+ }, children: [jsx("div", { className: "tw-absolute tw-right-squid-xs tw-top-squid-xs", children: jsx(Button$1, { size: "md", variant: "secondary", label: "Copy" }) }), headerContent] }), 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: jsx(Image$1, { src: fromToken.logoUrl, rounded: "full", shadow: true, size: "xlarge" }) }), jsx(TxProgressViewHeader, { title: title, description: description, isWarning: true }), 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: [jsx(PropertyListItem, { icon: jsx(WalletOutlinedIcon, { size: "24" }), label: "Deposit address", detail: 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)
28020
28373
  ? {
28021
28374
  tooltipContent: tooltips.depositAddress,
28022
28375
  tooltipWidth: "max",
@@ -69444,7 +69797,7 @@ function SwapProgressView({ steps, isOpen = true, handleClose, handleComplete, s
69444
69797
  }, secondToken: {
69445
69798
  bgColor: toToken.bgColor,
69446
69799
  logoURI: toToken.logoUrl,
69447
- } })) }), jsx(TxProgressViewHeader, { title: headerTitle, description: headerDescription }), 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: [jsx(PropertyListItem, { icon: jsx(ArrowsSwapIcon, {}), label: "Swap", detail: jsx(Transfer, { from: jsx(IconLabel, { src: fromToken.logoUrl, rounded: "full", children: fromAmount }), to: jsx(IconLabel, { src: toToken.logoUrl, rounded: "full", children: toAmount }) }) }), jsx(PropertyListItem, { icon: jsx(ChainLink, { size: "24", strokeWidth: "2" }), label: "Chain", detail: jsx(Transfer, { from: jsxs(Fragment, { children: [jsx("img", { className: "tw-h-squid-m tw-w-squid-m tw-rounded-squid-xxs", src: fromChain.logoUrl }), jsx(CaptionText, { children: fromChain.networkName })] }), to: jsxs(Fragment, { children: [jsx("img", { className: "tw-h-squid-m tw-w-squid-m tw-rounded-squid-xxs", src: toChain.logoUrl }), jsx(CaptionText, { children: toChain.networkName })] }) }) }), jsx(PropertyListItem, { icon: jsx(WalletFilledIcon, { size: "24" }), label: "Wallet", detail: jsx(Transfer, { from: fromAddressFormatted, to: toAddressFormatted }) }), jsx(PropertyListItem, { icon: jsx(TimeFliesIcon, {}), label: "Time to complete", detail: swapState === SwapState.PROGRESS ? (jsx(Transfer, { from: timer, to: estimatedTimeToComplete })) : swapState === SwapState.COMPLETED ? (jsx(CaptionText, { children: timer })) : (jsx(CaptionText, { children: estimatedTimeToComplete })) })] })] }), jsx(TrackTransactionView, { ref: trackTransactionViewRef, onTxEnd: () => {
69800
+ } })) }), jsx(TxProgressViewHeader, { title: headerTitle, description: headerDescription }), 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: [jsx(PropertyListItem, { icon: jsx(ArrowsSwapIcon, {}), label: "Swap", detail: jsx(Transfer, { from: jsx(IconLabel, { src: fromToken.logoUrl, rounded: "full", children: fromAmount }), to: jsx(IconLabel, { src: toToken.logoUrl, rounded: "full", children: toAmount }) }) }), jsx(PropertyListItem, { icon: jsx(ChainLink, { size: "24", strokeWidth: "2" }), label: "Chain", detail: jsx(Transfer, { from: jsxs(Fragment, { children: [jsx("img", { className: "tw-h-squid-m tw-w-squid-m tw-rounded-squid-xxs", src: fromChain.logoUrl }), jsx(CaptionText, { children: fromChain.networkName })] }), to: jsxs(Fragment, { children: [jsx("img", { className: "tw-h-squid-m tw-w-squid-m tw-rounded-squid-xxs", src: toChain.logoUrl }), jsx(CaptionText, { children: toChain.networkName })] }) }) }), jsx(PropertyListItem, { icon: jsx(WalletOutlinedIcon, { size: "24" }), label: "Wallet", detail: jsx(Transfer, { from: fromAddressFormatted, to: toAddressFormatted }) }), jsx(PropertyListItem, { icon: jsx(TimeFliesIcon, {}), label: "Time to complete", detail: swapState === SwapState.PROGRESS ? (jsx(Transfer, { from: timer, to: estimatedTimeToComplete })) : swapState === SwapState.COMPLETED ? (jsx(CaptionText, { children: timer })) : (jsx(CaptionText, { children: estimatedTimeToComplete })) })] })] }), jsx(TrackTransactionView, { ref: trackTransactionViewRef, onTxEnd: () => {
69448
69801
  stopTimer();
69449
69802
  }, onTxStart: () => {
69450
69803
  startTimer();
@@ -69590,337 +69943,6 @@ function TransactionView({ type, props }) {
69590
69943
  return jsx(Component, Object.assign({}, props));
69591
69944
  }
69592
69945
 
69593
- var isMergeableObject = function isMergeableObject(value) {
69594
- return isNonNullObject(value)
69595
- && !isSpecial(value)
69596
- };
69597
-
69598
- function isNonNullObject(value) {
69599
- return !!value && typeof value === 'object'
69600
- }
69601
-
69602
- function isSpecial(value) {
69603
- var stringValue = Object.prototype.toString.call(value);
69604
-
69605
- return stringValue === '[object RegExp]'
69606
- || stringValue === '[object Date]'
69607
- || isReactElement(value)
69608
- }
69609
-
69610
- // see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25
69611
- var canUseSymbol = typeof Symbol === 'function' && Symbol.for;
69612
- var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;
69613
-
69614
- function isReactElement(value) {
69615
- return value.$$typeof === REACT_ELEMENT_TYPE
69616
- }
69617
-
69618
- function emptyTarget(val) {
69619
- return Array.isArray(val) ? [] : {}
69620
- }
69621
-
69622
- function cloneUnlessOtherwiseSpecified(value, options) {
69623
- return (options.clone !== false && options.isMergeableObject(value))
69624
- ? deepmerge(emptyTarget(value), value, options)
69625
- : value
69626
- }
69627
-
69628
- function defaultArrayMerge(target, source, options) {
69629
- return target.concat(source).map(function(element) {
69630
- return cloneUnlessOtherwiseSpecified(element, options)
69631
- })
69632
- }
69633
-
69634
- function getMergeFunction(key, options) {
69635
- if (!options.customMerge) {
69636
- return deepmerge
69637
- }
69638
- var customMerge = options.customMerge(key);
69639
- return typeof customMerge === 'function' ? customMerge : deepmerge
69640
- }
69641
-
69642
- function getEnumerableOwnPropertySymbols(target) {
69643
- return Object.getOwnPropertySymbols
69644
- ? Object.getOwnPropertySymbols(target).filter(function(symbol) {
69645
- return Object.propertyIsEnumerable.call(target, symbol)
69646
- })
69647
- : []
69648
- }
69649
-
69650
- function getKeys(target) {
69651
- return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))
69652
- }
69653
-
69654
- function propertyIsOnObject(object, property) {
69655
- try {
69656
- return property in object
69657
- } catch(_) {
69658
- return false
69659
- }
69660
- }
69661
-
69662
- // Protects from prototype poisoning and unexpected merging up the prototype chain.
69663
- function propertyIsUnsafe(target, key) {
69664
- return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,
69665
- && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,
69666
- && Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.
69667
- }
69668
-
69669
- function mergeObject(target, source, options) {
69670
- var destination = {};
69671
- if (options.isMergeableObject(target)) {
69672
- getKeys(target).forEach(function(key) {
69673
- destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);
69674
- });
69675
- }
69676
- getKeys(source).forEach(function(key) {
69677
- if (propertyIsUnsafe(target, key)) {
69678
- return
69679
- }
69680
-
69681
- if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {
69682
- destination[key] = getMergeFunction(key, options)(target[key], source[key], options);
69683
- } else {
69684
- destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);
69685
- }
69686
- });
69687
- return destination
69688
- }
69689
-
69690
- function deepmerge(target, source, options) {
69691
- options = options || {};
69692
- options.arrayMerge = options.arrayMerge || defaultArrayMerge;
69693
- options.isMergeableObject = options.isMergeableObject || isMergeableObject;
69694
- // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()
69695
- // implementations can use it. The caller may not replace it.
69696
- options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;
69697
-
69698
- var sourceIsArray = Array.isArray(source);
69699
- var targetIsArray = Array.isArray(target);
69700
- var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;
69701
-
69702
- if (!sourceAndTargetTypesMatch) {
69703
- return cloneUnlessOtherwiseSpecified(source, options)
69704
- } else if (sourceIsArray) {
69705
- return options.arrayMerge(target, source, options)
69706
- } else {
69707
- return mergeObject(target, source, options)
69708
- }
69709
- }
69710
-
69711
- deepmerge.all = function deepmergeAll(array, options) {
69712
- if (!Array.isArray(array)) {
69713
- throw new Error('first argument should be an array')
69714
- }
69715
-
69716
- return array.reduce(function(prev, next) {
69717
- return deepmerge(prev, next, options)
69718
- }, {})
69719
- };
69720
-
69721
- var deepmerge_1 = deepmerge;
69722
-
69723
- var cjs = deepmerge_1;
69724
-
69725
- var deepmerge$1 = /*@__PURE__*/getDefaultExportFromCjs(cjs);
69726
-
69727
- /* eslint-disable @typescript-eslint/prefer-reduce-type-parameter */
69728
- /**
69729
- * Parses the user readable config to css variables
69730
- * and adds the material-* variants
69731
- * @param style
69732
- */
69733
- const parseSquidTheme = (userTheme, themeType) => {
69734
- var _a, _b;
69735
- const fullPublicTheme = deepmerge$1(lightTheme, userTheme);
69736
- // Add material-{light,dark}-{thin,average,thick} colors to the squid theme object
69737
- // using the following formula:
69738
- // material-light-thin -> grey-100 + 10% opacity
69739
- // material-light-average -> grey-100 + 33% opacity
69740
- // material-light-thick -> grey-100 + 66% opacity
69741
- // material-dark-thin -> grey-900 + 10% opacity
69742
- // material-dark-average -> grey-900 + 33% opacity
69743
- // material-dark-thick -> grey-900 + 66% opacity
69744
- const materialVariants = {
69745
- "material-light-thin": getHexColorFromOpacityPercentage(fullPublicTheme.color["grey-100"], 0.1),
69746
- "material-light-average": getHexColorFromOpacityPercentage(fullPublicTheme.color["grey-100"], 0.33),
69747
- "material-light-thick": getHexColorFromOpacityPercentage(fullPublicTheme.color["grey-100"], 0.66),
69748
- "material-dark-thin": getHexColorFromOpacityPercentage(fullPublicTheme.color["grey-900"], 0.1),
69749
- "material-dark-average": getHexColorFromOpacityPercentage(fullPublicTheme.color["grey-900"], 0.33),
69750
- "material-dark-thick": getHexColorFromOpacityPercentage(fullPublicTheme.color["grey-900"], 0.66),
69751
- };
69752
- // Add some other extra colors that are not part of the public theme
69753
- const opacityVariants = {
69754
- // opacity variants
69755
- "grey-100-005": getHexColorFromOpacityPercentage(fullPublicTheme.color["grey-100"], 0.05),
69756
- // color representing the blend of material-light and grey-900
69757
- "material-light-blend-grey-900": (_a = blendColors(materialVariants["material-light-thin"], fullPublicTheme.color["grey-900"])) !== null && _a !== void 0 ? _a : "",
69758
- // color representing the blend of material-light and grey-300
69759
- "material-light-blend-grey-800": (_b = blendColors(materialVariants["material-light-thin"], fullPublicTheme.color["grey-800"])) !== null && _b !== void 0 ? _b : "",
69760
- };
69761
- const defaultButtonColors = {
69762
- "button-lg-primary-bg": fullPublicTheme.color["royal-500"],
69763
- "button-lg-primary-text": fullPublicTheme.color[themeType === "light" ? "grey-900" : "grey-100"],
69764
- "button-lg-secondary-bg": fullPublicTheme.color["grey-100"],
69765
- "button-lg-secondary-text": fullPublicTheme.color["grey-800"],
69766
- "button-lg-tertiary-bg": fullPublicTheme.color["grey-800"],
69767
- "button-lg-tertiary-text": fullPublicTheme.color["grey-300"],
69768
- "button-md-primary-bg": fullPublicTheme.color["royal-500"],
69769
- "button-md-primary-text": fullPublicTheme.color[themeType === "light" ? "grey-900" : "grey-100"],
69770
- "button-md-secondary-bg": fullPublicTheme.color["grey-100"],
69771
- "button-md-secondary-text": fullPublicTheme.color["grey-800"],
69772
- "button-md-tertiary-bg": fullPublicTheme.color["grey-800"],
69773
- "button-md-tertiary-text": fullPublicTheme.color["grey-300"],
69774
- "button-sm-primary-bg": fullPublicTheme.color["royal-500"],
69775
- "button-sm-primary-text": fullPublicTheme.color[themeType === "light" ? "grey-900" : "grey-100"],
69776
- "button-sm-secondary-bg": fullPublicTheme.color["grey-100"],
69777
- "button-sm-secondary-text": fullPublicTheme.color["grey-800"],
69778
- "button-sm-tertiary-bg": fullPublicTheme.color["grey-800"],
69779
- "button-sm-tertiary-text": fullPublicTheme.color["grey-300"],
69780
- };
69781
- const defaultInputColors = {
69782
- "input-placeholder": fullPublicTheme.color["grey-600"],
69783
- "input-text": fullPublicTheme.color["grey-300"],
69784
- "input-selection": fullPublicTheme.color["grey-300"],
69785
- "input-bg": fullPublicTheme.color["grey-900"],
69786
- };
69787
- const defaultAnimationColors = {
69788
- "animation-bg": fullPublicTheme.color["royal-500"],
69789
- "animation-text": fullPublicTheme.color[themeType === "light" ? "grey-900" : "grey-100"],
69790
- };
69791
- const defaultModalColors = {
69792
- "modal-backdrop": materialVariants["material-dark-average"],
69793
- };
69794
- const defaultMenuColors = {
69795
- "menu-bg": materialVariants["material-dark-thick"],
69796
- "menu-text": materialVariants["material-light-thick"],
69797
- "menu-backdrop": materialVariants["material-light-thin"],
69798
- };
69799
- // Adds the internal colors and any missing config to the full theme
69800
- const fullTheme = deepmerge$1({
69801
- color: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, materialVariants), opacityVariants), defaultButtonColors), defaultInputColors), defaultAnimationColors), defaultModalColors), defaultMenuColors),
69802
- }, fullPublicTheme);
69803
- return flatten(fullTheme, {
69804
- prefix: THEME_CSS_VARIABLE_PREFIX,
69805
- });
69806
- };
69807
- const remToPx = (rem, baseFontSize = 16) => {
69808
- if (typeof rem === "string")
69809
- return Number(rem.replace("rem", "")) * baseFontSize;
69810
- return rem * baseFontSize;
69811
- };
69812
- const pxToRem = (px, baseFontSize = 16) => {
69813
- if (typeof px === "string")
69814
- return Number(px.replace("px", "")) / baseFontSize;
69815
- return px / baseFontSize;
69816
- };
69817
- function getContrastColor({ r, g, b, }, threshold = 128) {
69818
- const brightness = (r * 299 + g * 587 + b * 114) / 1000;
69819
- return brightness >= threshold ? "dark" : "light";
69820
- }
69821
- /**
69822
- * Returns a hexadecimal color with opacity based on the given color and opacity percentage.
69823
- *
69824
- * @example getHexColorFromOpacityPercentage('#FF0000', 0.5) // '#FF000080'
69825
- *
69826
- * @param {string} color - The base color in hexadecimal format.
69827
- * @param {number} opacity - The opacity percentage (0-1).
69828
- * @returns {string} The hexadecimal color with opacity.
69829
- */
69830
- function getHexColorFromOpacityPercentage(color, opacity) {
69831
- return (color +
69832
- Math.round(opacity * 255)
69833
- .toString(16)
69834
- .padStart(2, "0")).toUpperCase();
69835
- }
69836
- function hexToRgb(hex) {
69837
- var _a;
69838
- // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF")
69839
- const shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i;
69840
- const cleanHex = hex.replace(shorthandRegex, function (m, r, g, b, a) {
69841
- return r + r + g + g + b + b + (a != null ? a + a : "");
69842
- });
69843
- const [, r, g, b, a] = ((_a = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(cleanHex)) !== null && _a !== void 0 ? _a : []);
69844
- if (r == null || g == null || b == null)
69845
- return null;
69846
- return {
69847
- r: parseInt(r, 16),
69848
- g: parseInt(g, 16),
69849
- b: parseInt(b, 16),
69850
- a: a != null ? parseInt(a, 16) / 255 : 1,
69851
- };
69852
- }
69853
- function rgbToHex(r, g, b) {
69854
- return ("#" +
69855
- [r, g, b]
69856
- .map((x) => {
69857
- const hex = x.toString(16);
69858
- return hex.length === 1 ? "0" + hex : hex;
69859
- })
69860
- .join(""));
69861
- }
69862
- // Example usage:
69863
- // let foregroundColor = '#FBFBFD1A'
69864
- // let bgColor = '#17191C'
69865
- // let resultingColor = blendColors(foregroundColor, bgColor)
69866
- // console.log(resultingColor) // Output: ~#2f3033
69867
- function blendColors(foreground, background) {
69868
- const fg = hexToRgb(foreground);
69869
- const bg = hexToRgb(background);
69870
- if (fg == null || bg == null)
69871
- return null;
69872
- const r = Math.round(fg.r * fg.a + bg.r * (1 - fg.a));
69873
- const g = Math.round(fg.g * fg.a + bg.g * (1 - fg.a));
69874
- const b = Math.round(fg.b * fg.a + bg.b * (1 - fg.a));
69875
- return rgbToHex(r, g, b);
69876
- }
69877
- function adjustColorForContrast(foreground, background, factor = 1) {
69878
- const fg = parseColor(foreground);
69879
- const bg = parseColor(background);
69880
- if (fg == null || bg == null)
69881
- return null;
69882
- const r = Math.round(fg.r * (1 - factor) + bg.r * factor);
69883
- const g = Math.round(fg.g * (1 - factor) + bg.g * factor);
69884
- const b = Math.round(fg.b * (1 - factor) + bg.b * factor);
69885
- return rgbToHex(r, g, b);
69886
- }
69887
- const isValidHexColor = (hex) => {
69888
- return /^#([0-9A-F]{3}|[0-9A-F]{6}|[0-9A-F]{4}|[0-9A-F]{8})$/i.test(hex);
69889
- };
69890
- function parseColor(color) {
69891
- var _a, _b, _c, _d;
69892
- if (color.startsWith("#")) {
69893
- return hexToRgb(color);
69894
- }
69895
- else if (color.startsWith("rgb")) {
69896
- const match = color.match(/\d+(\.\d+)?/g);
69897
- if (match) {
69898
- return {
69899
- r: parseInt((_a = match[0]) !== null && _a !== void 0 ? _a : "0"),
69900
- g: parseInt((_b = match[1]) !== null && _b !== void 0 ? _b : "0"),
69901
- b: parseInt((_c = match[2]) !== null && _c !== void 0 ? _c : "0"),
69902
- a: match[3] ? parseFloat((_d = match[3]) !== null && _d !== void 0 ? _d : "0") : 1,
69903
- };
69904
- }
69905
- }
69906
- return null;
69907
- }
69908
- const getColorBrightness = (color) => {
69909
- const rgb = parseColor(color);
69910
- if (!rgb)
69911
- return 0;
69912
- return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;
69913
- };
69914
- const getWalletCardBackground = (colors) => {
69915
- if (colors.length >= 3) {
69916
- return `linear-gradient(73deg, ${colors[0]} 8.18%, ${colors[1]} 50.16%, ${colors[2]} 91.82%)`;
69917
- }
69918
- if (colors.length === 2) {
69919
- return `linear-gradient(73deg, ${colors[0]} 8.18%, ${colors[1]} 50.16%)`;
69920
- }
69921
- return colors[0];
69922
- };
69923
-
69924
69946
  function ThemeProvider(_a) {
69925
69947
  var { theme = lightTheme, children, themeType = "light", settings } = _a, props = __rest$1(_a, ["theme", "children", "themeType", "settings"]);
69926
69948
  const parsedStyle = parseSquidTheme(theme, themeType);
@@ -69932,4 +69954,4 @@ function ThemeProvider(_a) {
69932
69954
  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 })));
69933
69955
  }
69934
69956
 
69935
- export { ANIMATION_DURATIONS, AccountListItem, AccountsButton, ActionLayout, ActionLineOutRow, ActionProperties, ActionRow, ActionStatusRow, ActionWrapper, AddressButton, AnimationCard, 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, LargeNumericInput, LightningIcon, LimitIcon, LinkIcon, ListItem, ListItemActionsButton, Loader, LoadingProvider, LoadingSkeleton, MEDIA_QUERIES, MarketCapIcon, MaxIcon, Menu, MenuItem, MenuSwapIcon, MirrorIcon, Modal, ModalContent, ModalContentDivider, ModalTitle, 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 };
69957
+ export { ANIMATION_DURATIONS, AccountListItem, AccountsButton, ActionLayout, ActionLineOutRow, ActionProperties, ActionRow, ActionStatusRow, ActionWrapper, AddressButton, AnimationCard, AnimationWrapper, Announcement, AppContainer, Approve, ApproveAction, ArrowBottomTopIcon, ArrowButton, ArrowCornerDownLeftIcon, 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, CrossedOutSunSolidIcon, DashboardFast, DepositAddressView, DescriptionBlocks, DetailsToolbar, DiscordIcon, DockIconAnalytics, DockIconCheckout, DockIconHelp, DockIconProfile, DockIconScan, DockIconSwap, DockSwapIcon, DollarOutlinedIcon, DollarSolidIcon, DotGrid1x3HorizontalIcon, DropdownMenu, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTitle, EmojiMeh, EmojiSadIcon, EmptyHeartIcon, ErrorMessage, EscKeyIcon, EthereumIcon, ExplosionIcon, EyeOpenIcon, FarcasterIcon, FavouriteFilterIcon, FeeButton, FeesAction, FeesLines, FeesTotal, FileDownloadIcon, FilledHeartIcon, FilterAscendingIcon, FilterButton, FilterIcon, FilterTimelineIcon, FireIcon, 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, LargeNumericInput, LightningIcon, LimitIcon, LinkIcon, ListItem, ListItemActionsButton, Loader, LoadingProvider, LoadingSkeleton, MEDIA_QUERIES, MarketCapIcon, MaxIcon, Menu, MenuItem, MenuSwapIcon, MirrorIcon, Modal, ModalContent, ModalContentDivider, ModalTitle, MoneyBagIcon, MoneyBagSolidIcon, 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, SearchMenuIcon, SectionTitle, SendTokensAction, SettingsButton, SettingsGearIcon, SettingsItem, SettingsSlider, SettingsSliderIcon, ShoppingBagIcon, SizeTransition, SmileFilledIcon, SmileIcon, SnapIcon, SortIcon, SparkleIcon, SparklesIcon, SquareArrowCenter, SquareArrowTopLeftIcon, SquareArrowTopRight2Icon, SquidLogo, SquidVector, StakeAction, StarFilledIcon, StarLinesIcon, StarOutlinedIcon, 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, TrophyIcon, TxProgressViewHeader, UnsupportedPairNotice, UsdAmount, WalletIcon, WalletLink, WalletOutlinedIcon, 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 };