@0xsquid/ui 2.6.8-send-beta.0 → 2.6.8

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 (45) hide show
  1. package/dist/cjs/index.js +272 -88
  2. package/dist/cjs/types/components/badges/PriceChange.d.ts +3 -1
  3. package/dist/cjs/types/components/badges/index.d.ts +1 -1
  4. package/dist/cjs/types/components/buttons/Button.d.ts +2 -1
  5. package/dist/cjs/types/components/controls/NumericInput.d.ts +8 -1
  6. package/dist/cjs/types/components/feedback/LoadingText.d.ts +7 -0
  7. package/dist/cjs/types/components/icons/Loader.d.ts +1 -1
  8. package/dist/cjs/types/components/icons/PaymentIcons.d.ts +12 -0
  9. package/dist/cjs/types/components/icons/index.d.ts +1 -0
  10. package/dist/cjs/types/components/layout/SwapConfiguration.d.ts +17 -1
  11. package/dist/cjs/types/core/index.d.ts +1 -1
  12. package/dist/cjs/types/core/utils.d.ts +16 -0
  13. package/dist/cjs/types/hooks/index.d.ts +3 -2
  14. package/dist/cjs/types/hooks/useNumericInput.d.ts +2 -1
  15. package/dist/cjs/types/services/internal/colorService.d.ts +0 -2
  16. package/dist/cjs/types/stories/buttons/Button.stories.d.ts +3 -0
  17. package/dist/cjs/types/stories/controls/NumericInput.stories.d.ts +17 -0
  18. package/dist/{esm/types/stories/badges → cjs/types/stories/feedback}/Loader.stories.d.ts +1 -1
  19. package/dist/cjs/types/stories/{badges → feedback}/LoadingSkeleton.stories.d.ts +2 -2
  20. package/dist/cjs/types/stories/feedback/LoadingText.stories.d.ts +6 -0
  21. package/dist/esm/index.js +250 -71
  22. package/dist/esm/types/components/badges/PriceChange.d.ts +3 -1
  23. package/dist/esm/types/components/badges/index.d.ts +1 -1
  24. package/dist/esm/types/components/buttons/Button.d.ts +2 -1
  25. package/dist/esm/types/components/controls/NumericInput.d.ts +8 -1
  26. package/dist/esm/types/components/feedback/LoadingText.d.ts +7 -0
  27. package/dist/esm/types/components/icons/Loader.d.ts +1 -1
  28. package/dist/esm/types/components/icons/PaymentIcons.d.ts +12 -0
  29. package/dist/esm/types/components/icons/index.d.ts +1 -0
  30. package/dist/esm/types/components/layout/SwapConfiguration.d.ts +17 -1
  31. package/dist/esm/types/core/index.d.ts +1 -1
  32. package/dist/esm/types/core/utils.d.ts +16 -0
  33. package/dist/esm/types/hooks/index.d.ts +3 -2
  34. package/dist/esm/types/hooks/useNumericInput.d.ts +2 -1
  35. package/dist/esm/types/services/internal/colorService.d.ts +0 -2
  36. package/dist/esm/types/stories/buttons/Button.stories.d.ts +3 -0
  37. package/dist/esm/types/stories/controls/NumericInput.stories.d.ts +17 -0
  38. package/dist/{cjs/types/stories/badges → esm/types/stories/feedback}/Loader.stories.d.ts +1 -1
  39. package/dist/esm/types/stories/{badges → feedback}/LoadingSkeleton.stories.d.ts +2 -2
  40. package/dist/esm/types/stories/feedback/LoadingText.stories.d.ts +6 -0
  41. package/dist/index.css +1 -1
  42. package/dist/index.d.ts +87 -16
  43. package/package.json +1 -1
  44. /package/dist/cjs/types/components/{badges → feedback}/LoadingSkeleton.d.ts +0 -0
  45. /package/dist/esm/types/components/{badges → feedback}/LoadingSkeleton.d.ts +0 -0
package/dist/cjs/index.js CHANGED
@@ -3000,6 +3000,39 @@ function hashStringToIndex(str, max) {
3000
3000
  }
3001
3001
  return index;
3002
3002
  }
3003
+ /**
3004
+ * Formats a value for CSS properties by adding 'px' if no unit is present.
3005
+ * @param {string | number} value - The value to format (can be a number or string)
3006
+ * @returns {string} - The formatted CSS value with appropriate units
3007
+ *
3008
+ * @example
3009
+ * // Returns "20px"
3010
+ * formatCSSValue(20)
3011
+ *
3012
+ * @example
3013
+ * // Returns "5rem"
3014
+ * formatCSSValue("5rem")
3015
+ */
3016
+ function formatCSSValue(value) {
3017
+ if (typeof value === "number" || /^\d+$/.test(value.toString())) {
3018
+ return `${value}px`;
3019
+ }
3020
+ const validCSSUnits = /(px|em|rem|%|vh|vw|vmin|vmax|ex|ch|cm|mm|in|pt|pc)$/i;
3021
+ if (validCSSUnits.test(String(value))) {
3022
+ return value;
3023
+ }
3024
+ return `${pxToRem(value)}rem`;
3025
+ }
3026
+ const remToPx = (rem, baseFontSize = 16) => {
3027
+ if (typeof rem === "string")
3028
+ return Number(rem.replace("rem", "")) * baseFontSize;
3029
+ return rem * baseFontSize;
3030
+ };
3031
+ const pxToRem = (px, baseFontSize = 16) => {
3032
+ if (typeof px === "string")
3033
+ return Number(px.replace("px", "")) / baseFontSize;
3034
+ return px / baseFontSize;
3035
+ };
3003
3036
 
3004
3037
  const spacing$1 = {
3005
3038
  "squid-xxs": "0.3125rem", // 5px
@@ -3063,6 +3096,15 @@ const backgrounds = {
3063
3096
  rgba(223, 159, 196, 1) 91.82%,
3064
3097
  rgba(180, 143, 233, 1) 100%
3065
3098
  )`,
3099
+ shimmer: "linear-gradient(90deg, currentColor 0%, currentColor 50%, rgba(255, 255, 255, 0.4) 57.5%, currentColor 65%, currentColor 100%)",
3100
+ "shimmer-light": `linear-gradient(90deg, color-mix(in srgb, var(${themeKeysToCssVariables.color["grey-100"].cssVariable}) 40%, transparent) 0%, var(${themeKeysToCssVariables.color["grey-100"].cssVariable}) 10%, color-mix(in srgb, var(${themeKeysToCssVariables.color["grey-100"].cssVariable}) 40%, transparent) 60%)`,
3101
+ "shimmer-dark": `linear-gradient(90deg, color-mix(in srgb, var(${themeKeysToCssVariables.color["grey-900"].cssVariable}) 40%, transparent) 0%, var(${themeKeysToCssVariables.color["grey-900"].cssVariable}) 10%, color-mix(in srgb, var(${themeKeysToCssVariables.color["grey-900"].cssVariable}) 40%, transparent) 60%)`,
3102
+ "loading-gradient": `linear-gradient(
3103
+ to right,
3104
+ var(${themeKeysToCssVariables.color["material-light-thin"].cssVariable}) 43%,
3105
+ var(--mid-color) 52%,
3106
+ var(${themeKeysToCssVariables.color["material-light-thin"].cssVariable}) 56%
3107
+ )`,
3066
3108
  };
3067
3109
  // Format animation durations object to Tailwind config
3068
3110
  // This way Tailwind can generate utility classes for each duration
@@ -3280,6 +3322,37 @@ const baseTailwindConfig = {
3280
3322
  opacity: "1",
3281
3323
  },
3282
3324
  },
3325
+ shimmer: {
3326
+ "0%": {
3327
+ backgroundPosition: "100% center",
3328
+ },
3329
+ "100%": {
3330
+ backgroundPosition: "-100% center",
3331
+ },
3332
+ },
3333
+ "loading-gradient-scroll": {
3334
+ "0%": {
3335
+ transform: "translateX(-56%)",
3336
+ },
3337
+ "100%": {
3338
+ transform: "translateX(0)",
3339
+ },
3340
+ },
3341
+ "squid-animated-loader-dash-grow": {
3342
+ "0%": {
3343
+ "stroke-dasharray": "62.827" /* 1/4 circle visible */,
3344
+ "stroke-dashoffset": "0" /* Starting from the beginning of the path */,
3345
+ },
3346
+ "100%": {
3347
+ "stroke-dasharray": "4141.884" /* 1/2 circle visible */,
3348
+ "stroke-dashoffset": "-20.942" /* Move the beginning of the path to make it grow */,
3349
+ },
3350
+ },
3351
+ "rotate-360": {
3352
+ to: {
3353
+ transform: "rotate(360deg)",
3354
+ },
3355
+ },
3283
3356
  },
3284
3357
  animation: {
3285
3358
  "move-to-right-with-spring-bounce": `move-to-right-with-spring-bounce var(${CSS_VARS.MOVE_WITH_SPRING_BOUNCE_DURATION}, 0s) ease-out both`,
@@ -3302,6 +3375,10 @@ const baseTailwindConfig = {
3302
3375
  "display-delayed": `display 0s var(${CSS_VARS.DISPLAY_DELAYED_DURATION}, 0s) ease-out both`,
3303
3376
  hide: `hide 0s ease-out forwards`,
3304
3377
  "move-loading-cover-to-right": "move-loading-cover-to-right 1.4s linear infinite",
3378
+ shimmer: "shimmer 1.5s linear infinite",
3379
+ "loading-gradient-scroll": "loading-gradient-scroll 1s ease-in-out both infinite",
3380
+ "squid-animated-loader-dash-grow": "squid-animated-loader-dash-grow var(--squid-loader-rotate-duration) infinite alternate ease-in-out",
3381
+ "squid-animated-loader": "rotate-360 var(--squid-loader-rotate-duration) linear infinite",
3305
3382
  },
3306
3383
  opacity: {
3307
3384
  33: "0.33",
@@ -3368,6 +3445,57 @@ const baseTailwindConfig = {
3368
3445
  ".h-d-screen": {
3369
3446
  height: "100dvh",
3370
3447
  },
3448
+ ".assets-button-mask": {
3449
+ "mask-image": 'url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA3MiA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAgMjBDMCAxNC44ODE2IDEuOTUyNjIgOS43NjMxMSA1Ljg1Nzg2IDUuODU3ODZDOS43NjMwOSAxLjk1MjY0IDE0Ljg4MTUgMi4yMDcwMmUtMDUgMTkuOTk5OSAxLjg3MzU2ZS0xMEMyNS4xMTg0IC0yLjIwNjkxZS0wNSAzMC4yMzY5IDEuOTUyNiAzNC4xNDIxIDUuODU3ODZDMzQuNjY5NiA2LjM4NTI5IDM1LjE4NzkgNi45MTg3MyAzNS43MDExIDcuNDQ2OTVDMzguOTg4OCAxMC44MzA2IDQyLjA2ODMgMTQgNDYgMTRDNDkuOTMxNyAxNCA1My4wMTEyIDEwLjgzMDYgNTYuMjk4OSA3LjQ0Njk1QzU2LjgxMjEgNi45MTg3MyA1Ny4zMzA0IDYuMzg1MjkgNTcuODU3OSA1Ljg1Nzg2QzYxLjc2MzEgMS45NTI2IDY2Ljg4MTYgLTIuMjA2OTFlLTA1IDcyLjAwMDEgMS44NzM1NmUtMTBWNDBDNjYuODgxNiA0MCA2MS43NjMxIDM4LjA0NzQgNTcuODU3OSAzNC4xNDIxQzU3LjMzMzEgMzMuNjE3MSA1Ni44MTc0IDMzLjA4NjEgNTYuMzA2NSAzMi41NjAyQzUzLjAxNzQgMjkuMTc0IDQ5LjkzNDQgMjYgNDYgMjZDNDIuMDY1NiAyNiAzOC45ODI2IDI5LjE3NCAzNS42OTM1IDMyLjU2MDJDMzUuMTgyNiAzMy4wODYxIDM0LjY2NjkgMzMuNjE3MSAzNC4xNDIxIDM0LjE0MjFDMzAuMjM2OSAzOC4wNDc0IDI1LjExODQgNDAgMTkuOTk5OSA0MEMxNC44ODE1IDQwIDkuNzYzMDkgMzguMDQ3NCA1Ljg1Nzg2IDM0LjE0MjFDMS45NTI2MiAzMC4yMzY5IDAgMjUuMTE4NCAwIDIwWiIgZmlsbD0iI0ZCRkJGRCIgc3R5bGU9ImZpbGw6I0ZCRkJGRDtmaWxsOmNvbG9yKGRpc3BsYXktcDMgMC45ODQwIDAuOTg2MSAwLjk5MDQpO2ZpbGwtb3BhY2l0eToxOyIvPgo8L3N2Zz4=")',
3450
+ "mask-repeat": "no-repeat",
3451
+ },
3452
+ li: {
3453
+ "list-style-type": "none",
3454
+ },
3455
+ ".squid-property-gradient-bg-odd-container .squid-property-row-bg:nth-child(odd) > :is(div, button)": {
3456
+ background: `linear-gradient(
3457
+ 91deg,
3458
+ /* grey-100 with 0.05 opacity */ var(${themeKeysToCssVariables.color["grey-100-005"].cssVariable}) 0%,
3459
+ transparent 100%
3460
+ )`,
3461
+ },
3462
+ ".squid-property-gradient-bg-even-container .squid-property-row-bg:nth-child(even) > :is(div, button)": {
3463
+ background: `linear-gradient(
3464
+ 91deg,
3465
+ /* grey-100 with 0.05 opacity */ var(${themeKeysToCssVariables.color["grey-100-005"].cssVariable}) 0%,
3466
+ transparent 100%
3467
+ )`,
3468
+ },
3469
+ ":focus-visible": {
3470
+ "@apply tw-outline tw-outline-2 tw-outline-royal-500": {},
3471
+ },
3472
+ ":invalid": {
3473
+ "@apply tw-outline-status-negative": {},
3474
+ },
3475
+ ":disabled": {
3476
+ cursor: "not-allowed",
3477
+ },
3478
+ "*, *::before, *::after": {
3479
+ boxSizing: "border-box",
3480
+ },
3481
+ "input::-webkit-outer-spin-button, input::-webkit-inner-spin-button": {
3482
+ "-webkit-appearance": "none",
3483
+ margin: "0",
3484
+ },
3485
+ "input[type='number']": {
3486
+ "-moz-appearance": "textfield",
3487
+ },
3488
+ "#squid-lottie-animation #keystroke": {
3489
+ stroke: `var(${themeKeysToCssVariables.color["animation-text"].cssVariable})`,
3490
+ },
3491
+ "#squid-lottie-animation #keyfill": {
3492
+ fill: `var(${themeKeysToCssVariables.color["animation-bg"].cssVariable})`,
3493
+ },
3494
+ ".squid-animated-loader-dash": {
3495
+ "@apply tw-animate-squid-animated-loader-dash-grow": {},
3496
+ "stroke-dasharray": "20.942, 62.827" /* Initial visible part: 1/4 circle */,
3497
+ "stroke-dashoffset": "0",
3498
+ },
3371
3499
  });
3372
3500
  }),
3373
3501
  ],
@@ -3663,12 +3791,17 @@ function BadgeImage({ image, badge, extraMarginForBadge = false, className, }) {
3663
3791
 
3664
3792
  const LoadingContext = React$1.createContext(false);
3665
3793
  const LoadingProvider = LoadingContext.Provider;
3794
+ const loadingGradientClassName = "tw-relative tw-overflow-hidden [--mid-color:transparent] data-[squid-theme-type=dark]:[--mid-color:var(--st-color-material-light-average)] after:tw-content-[''] after:tw-absolute after:tw-block after:tw-top-0 after:tw-left-0 after:tw-h-full after:tw-w-[230%] after:tw-animate-loading-gradient-scroll after:tw-bg-loading-gradient";
3666
3795
  function LoadingSkeleton({ className, height = "20", isLoading: isLoadingProp, children, width = "100", }) {
3667
3796
  const contextValue = React$1.useContext(LoadingContext);
3668
3797
  const isLoading = isLoadingProp !== null && isLoadingProp !== void 0 ? isLoadingProp : contextValue;
3669
3798
  if (children && !isLoading)
3670
3799
  return children;
3671
- return (jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: width, height: height, viewBox: "0 0 100 20", fill: "none", className: className, children: [jsxRuntime.jsx("g", { clipPath: "url(#clip0_1246_29063)", children: jsxRuntime.jsx("rect", { width: "100", height: "20", fill: "url(#paint0_linear_1246_29063)" }) }), jsxRuntime.jsxs("defs", { children: [jsxRuntime.jsxs("linearGradient", { id: "paint0_linear_1246_29063", x1: "0", y1: "10", x2: "100", y2: "10", gradientUnits: "userSpaceOnUse", className: "tw-animate-loading-gradient tw-text-material-light-thin", children: [jsxRuntime.jsx("stop", { stopColor: "currentColor" }), jsxRuntime.jsx("stop", { offset: "0.395881", stopColor: "currentColor" }), jsxRuntime.jsx("stop", { offset: "0.597867", stopColor: "currentColor", className: "group-data-[squid-theme-type=dark]:tw-text-material-light-average group-data-[squid-theme-type=light]:tw-text-transparent" }), jsxRuntime.jsx("stop", { offset: "0.697004", stopColor: "currentColor" })] }), jsxRuntime.jsx("clipPath", { id: "clip0_1246_29063", children: jsxRuntime.jsx("path", { d: "M0 10C0 4.47715 4.47715 0 10 0H90C95.5228 0 100 4.47715 100 10C100 15.5228 95.5229 20 90 20H10C4.47716 20 0 15.5228 0 10Z", fill: "white" }) })] })] }));
3800
+ return (jsxRuntime.jsx("div", { className: cn("tw-animate-shimmer tw-rounded-full tw-bg-shimmer tw-text-material-light-thin [--gradient-middle-color:transparent] group-data-[squid-theme-type='dark']:[--gradient-middle-color:rgba(255,255,255,0.5)]", className), style: {
3801
+ backgroundSize: "200% 100%",
3802
+ width: formatCSSValue(width),
3803
+ height: formatCSSValue(height),
3804
+ } }));
3672
3805
  }
3673
3806
  function TextSkeleton(_a) {
3674
3807
  var { className, width = ["4em", "6em"], children, isLoading } = _a, props = __rest$1(_a, ["className", "width", "children", "isLoading"]);
@@ -3679,7 +3812,7 @@ function TextSkeleton(_a) {
3679
3812
  const t = React$1.useMemo(Math.random, []);
3680
3813
  if (isLoading === false)
3681
3814
  return children;
3682
- return (jsxRuntime.jsx("span", Object.assign({ className: cn("loading-gradient tw-inline-flex tw-rounded-full", className), style: {
3815
+ return (jsxRuntime.jsx("span", Object.assign({ className: cn("tw-inline-flex tw-rounded-full", loadingGradientClassName, className), style: {
3683
3816
  ["--min-width"]: minWidth,
3684
3817
  ["--max-width"]: maxWidth,
3685
3818
  width: calcLerp(`var(${minWidthVar})`, `var(${maxWidthVar})`, t),
@@ -3689,7 +3822,7 @@ function BlockSkeleton(_a) {
3689
3822
  var { isLoading, className, children } = _a, props = __rest$1(_a, ["isLoading", "className", "children"]);
3690
3823
  if (isLoading === false)
3691
3824
  return children;
3692
- return (jsxRuntime.jsx("div", Object.assign({ className: cn("loading-gradient tw-rounded-squid-s", className) }, props)));
3825
+ return (jsxRuntime.jsx("div", Object.assign({ className: cn("tw-rounded-squid-s", loadingGradientClassName, className) }, props)));
3693
3826
  }
3694
3827
 
3695
3828
  // font size, line height, and letter spacing classes
@@ -4173,8 +4306,8 @@ function Loader(_a) {
4173
4306
  var { size = "24", strokeWidth = "2", className, rotateDuration = "0.8s" } = _a, props = __rest$1(_a, ["size", "strokeWidth", "className", "rotateDuration"]);
4174
4307
  return (jsxRuntime.jsxs("svg", Object.assign({ width: size, height: size, viewBox: "0 0 32 32", fill: "none" }, props, { style: {
4175
4308
  "--squid-loader-rotate-duration": rotateDuration,
4176
- }, className: cn("squid-animated-loader", className), children: [jsxRuntime.jsx("style", { children: `
4177
- ` }), jsxRuntime.jsxs("g", { id: "Spinner", children: [jsxRuntime.jsx("circle", { id: "Groove", cx: "16.0001", cy: "16", r: "13.3333", stroke: "currentColor", strokeOpacity: "0.1", strokeWidth: strokeWidth }), jsxRuntime.jsx("path", { className: "squid-animated-loader-dash", d: "M16,2.66666 A13.3334,13.3334 0 0,1 16,29.3334", stroke: "currentColor", strokeWidth: strokeWidth, strokeLinecap: "round" })] })] })));
4309
+ }, className: cn("tw-animate-squid-animated-loader", className), children: [jsxRuntime.jsx("style", { children: `
4310
+ ` }), jsxRuntime.jsxs("g", { id: "Spinner", children: [jsxRuntime.jsx("circle", { id: "Groove", cx: "16.0001", cy: "16", r: "13.3333", stroke: "currentColor", strokeOpacity: "0.1", strokeWidth: strokeWidth }), jsxRuntime.jsx("path", { className: "tw-squid-animated-loader-dash", d: "M16,2.66666 A13.3334,13.3334 0 0,1 16,29.3334", stroke: "currentColor", strokeWidth: strokeWidth, strokeLinecap: "round" })] })] })));
4178
4311
  }
4179
4312
 
4180
4313
  function MarketCapIcon({ size = "20", className, }) {
@@ -4192,6 +4325,16 @@ function NotAllowedIcon() {
4192
4325
  return (jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", fill: "none", viewBox: "0 0 16 16", children: jsxRuntime.jsx("path", { stroke: "currentColor", strokeLinecap: "round", strokeWidth: "2", d: "M12.243 3.757a6 6 0 00-8.485 8.485m8.485-8.485a6 6 0 11-8.485 8.485m8.485-8.485l-8.486 8.486" }) }));
4193
4326
  }
4194
4327
 
4328
+ function GooglePayIcon({ className, size = "40", }) {
4329
+ return (jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 40 40", fill: "none", className: className, children: [jsxRuntime.jsx("rect", { width: "40", height: "40", fill: "white" }), jsxRuntime.jsx("path", { d: "M31.9805 20.2842C31.9805 19.3978 31.901 18.5454 31.7532 17.7273H19.9805V22.5682H26.7077C26.4122 24.125 25.5258 25.4432 24.1963 26.3295V29.4773H28.2532C30.6168 27.2954 31.9805 24.0909 31.9805 20.2842Z", fill: "#4285F4" }), jsxRuntime.jsx("path", { d: "M19.9775 32.4999C23.3525 32.4999 26.182 31.3862 28.2502 29.4771L24.1934 26.3294C23.0797 27.0794 21.6592 27.534 19.9775 27.534C16.7275 27.534 13.9661 25.3407 12.9774 22.3862H8.81836V25.6135C10.8752 29.6931 15.0911 32.4999 19.9775 32.4999Z", fill: "#34A853" }), jsxRuntime.jsx("path", { d: "M12.9805 22.375C12.7305 21.625 12.5827 20.8295 12.5827 20C12.5827 19.1704 12.7305 18.375 12.9805 17.625V14.3977H8.82137C7.96909 16.0795 7.48047 17.9773 7.48047 20C7.48047 22.0228 7.96909 23.9205 8.82137 25.6023L12.06 23.0795L12.9805 22.375Z", fill: "#FABB05" }), jsxRuntime.jsx("path", { d: "M19.9775 12.4773C21.8184 12.4773 23.4547 13.1136 24.7615 14.3409L28.3411 10.7614C26.1706 8.73864 23.3525 7.5 19.9775 7.5C15.0911 7.5 10.8752 10.3068 8.81836 14.3977L12.9774 17.625C13.9661 14.6705 16.7275 12.4773 19.9775 12.4773Z", fill: "#E94235" })] }));
4330
+ }
4331
+ function ApplePayIcon({ className, size = "40", }) {
4332
+ return (jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 40 40", fill: "none", className: className, children: [jsxRuntime.jsx("rect", { width: "40", height: "40", fill: "black" }), jsxRuntime.jsx("path", { d: "M30.0044 13.9477C29.1463 14.473 28.4356 15.2074 27.9387 16.0822C27.4418 16.957 27.175 17.9436 27.1632 18.9496C27.1666 20.0819 27.502 21.1883 28.128 22.1318C28.754 23.0753 29.643 23.8144 30.6849 24.2576C30.2741 25.583 29.6661 26.839 28.8814 27.9835C27.7587 29.5998 26.5846 31.2159 24.7983 31.2159C23.012 31.2159 22.5526 30.1781 20.494 30.1781C18.4865 30.1781 17.7719 31.25 16.1386 31.25C14.5053 31.25 13.3656 29.7528 12.0555 27.9154C10.325 25.3415 9.37391 22.3228 9.31641 19.2218C9.31641 14.1178 12.634 11.4128 15.9004 11.4128C17.6358 11.4128 19.082 12.5526 20.1708 12.5526C21.2086 12.5526 22.8249 11.3446 24.7983 11.3446C25.813 11.3185 26.8185 11.5422 27.7264 11.9961C28.6342 12.45 29.4165 13.1202 30.0044 13.9477ZM23.8627 9.18408C24.7326 8.16073 25.2251 6.86987 25.2578 5.52713C25.2592 5.35012 25.2421 5.17344 25.2067 5C23.7124 5.14597 22.3306 5.85819 21.3447 6.99057C20.4663 7.97314 19.9553 9.22953 19.8985 10.5462C19.8992 10.7063 19.9163 10.866 19.9496 11.0226C20.0674 11.0449 20.187 11.0563 20.3069 11.0567C20.9955 11.0019 21.6659 10.8076 22.2772 10.4857C22.8884 10.1638 23.4279 9.72095 23.8627 9.18408Z", fill: "#FBFBFD" })] }));
4333
+ }
4334
+ function CreditCardIcon({ className, size = "30", }) {
4335
+ return (jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 30 30", fill: "none", className: className, children: [jsxRuntime.jsx("path", { d: "M6.25 5C4.17893 5 2.5 6.67893 2.5 8.75L2.5 11.25L27.5 11.25V8.74969C27.5 6.67842 25.8209 5 23.75 5L6.25 5Z", fill: "currentColor" }), jsxRuntime.jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M2.5 21.25L2.5 13.75L27.5 13.75L27.5 21.25C27.5 23.3211 25.8211 25 23.75 25L6.25 25C4.17893 25 2.5 23.3211 2.5 21.25ZM8.75 16.25C8.05964 16.25 7.5 16.8096 7.5 17.5C7.5 18.1904 8.05964 18.75 8.75 18.75H12.5C13.1904 18.75 13.75 18.1904 13.75 17.5C13.75 16.8096 13.1904 16.25 12.5 16.25H8.75Z", fill: "currentColor" })] }));
4336
+ }
4337
+
4195
4338
  function PercentIcon({ size = "24", className, }) {
4196
4339
  return (jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", className: className, children: [jsxRuntime.jsx("path", { d: "M15.5 8.5L8.5 15.5M21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C16.9706 3 21 7.02944 21 12Z", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntime.jsx("path", { d: "M9 9.875C9.48325 9.875 9.875 9.48325 9.875 9C9.875 8.51675 9.48325 8.125 9 8.125C8.51675 8.125 8.125 8.51675 8.125 9C8.125 9.48325 8.51675 9.875 9 9.875Z", fill: "currentColor", stroke: "currentColor", strokeWidth: "0.75", strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntime.jsx("path", { d: "M15 15.875C15.4832 15.875 15.875 15.4832 15.875 15C15.875 14.5168 15.4832 14.125 15 14.125C14.5168 14.125 14.125 14.5168 14.125 15C14.125 15.4832 14.5168 15.875 15 15.875Z", fill: "currentColor", stroke: "currentColor", strokeWidth: "0.75", strokeLinecap: "round", strokeLinejoin: "round" })] }));
4197
4340
  }
@@ -4373,14 +4516,23 @@ const priceChangeSignToIconMap = {
4373
4516
  [PriceChangeSign.NEGATIVE]: (jsxRuntime.jsx(ArrowTriangle, { className: "tw-text-status-negative" })),
4374
4517
  [PriceChangeSign.NEUTRAL]: jsxRuntime.jsx(PauseIcon, {}),
4375
4518
  };
4376
- function PriceChange({ value: rawValue = 0, variant = "small", }) {
4519
+ const priceChangeSignToTextColorMap = {
4520
+ [PriceChangeSign.POSITIVE]: "tw-text-status-positive",
4521
+ [PriceChangeSign.NEGATIVE]: "tw-text-status-negative",
4522
+ [PriceChangeSign.NEUTRAL]: "tw-text-grey-500",
4523
+ };
4524
+ function PriceChange({ value: rawValue = 0, variant = "small", highlightText = false, triangle = "suffix", }) {
4377
4525
  const valueFormatted = Math.abs(Number(rawValue)).toFixed(2);
4378
4526
  const sign = Number(rawValue) > 0
4379
4527
  ? PriceChangeSign.POSITIVE
4380
4528
  : Number(rawValue) < 0
4381
4529
  ? PriceChangeSign.NEGATIVE
4382
4530
  : PriceChangeSign.NEUTRAL;
4383
- return (jsxRuntime.jsx("div", { className: "tw-flex tw-h-squid-xs tw-items-center tw-justify-end tw-text-grey-500", children: jsxRuntime.jsxs("div", { className: "tw-flex tw-items-center tw-justify-center", children: [variant === "small" ? (jsxRuntime.jsx(CaptionText, { className: valueWrapperClassName, children: valueFormatted })) : (jsxRuntime.jsx(BodyText, { size: "small", className: valueWrapperClassName, children: valueFormatted })), jsxRuntime.jsx(CaptionText, { className: "!tw-leading-[10px] tw-text-grey-600", children: "%" }), priceChangeSignToIconMap[sign]] }) }));
4531
+ const textColorClass = highlightText
4532
+ ? priceChangeSignToTextColorMap[sign]
4533
+ : "tw-text-grey-500";
4534
+ const triangleElement = triangle !== "none" ? priceChangeSignToIconMap[sign] : null;
4535
+ return (jsxRuntime.jsx("div", { className: cn("tw-flex tw-h-squid-xs tw-items-center tw-justify-end", textColorClass), children: jsxRuntime.jsxs("div", { className: "tw-flex tw-items-center tw-justify-center tw-gap-[2px]", children: [triangle === "prefix" && triangleElement, variant === "small" ? (jsxRuntime.jsx(CaptionText, { className: valueWrapperClassName, children: valueFormatted })) : (jsxRuntime.jsx(BodyText, { size: "small", className: valueWrapperClassName, children: valueFormatted })), variant === "small" ? (jsxRuntime.jsx(CaptionText, { className: cn("!tw-leading-[10px]", highlightText ? textColorClass : "tw-text-grey-600"), children: "%" })) : (jsxRuntime.jsx(BodyText, { size: "small", className: cn("!tw-leading-[10px]", highlightText ? textColorClass : "tw-text-grey-600"), children: "%" })), triangle === "suffix" && triangleElement] }) }));
4384
4536
  }
4385
4537
 
4386
4538
  const statusBgClassMap$1 = {
@@ -4471,6 +4623,23 @@ function ImageStack(_a) {
4471
4623
  : undefined }, imageProps), index))) })));
4472
4624
  }
4473
4625
 
4626
+ const renderGradient = (variant) => {
4627
+ switch (variant) {
4628
+ case "primary":
4629
+ return "group-data-[squid-theme-type=light]:tw-bg-shimmer-dark group-data-[squid-theme-type=dark]:tw-bg-shimmer-light";
4630
+ case "secondary":
4631
+ return "tw-bg-shimmer-dark";
4632
+ default:
4633
+ return "tw-bg-shimmer-light";
4634
+ }
4635
+ };
4636
+ function LoadingText(_a) {
4637
+ var { children, className } = _a, props = __rest$1(_a, ["children", "className"]);
4638
+ return (jsxRuntime.jsx("span", Object.assign({}, props, { className: cn("tw-animate-shimmer tw-bg-clip-text tw-text-transparent ", renderGradient(props.variant), className), style: {
4639
+ backgroundSize: "200% 100%",
4640
+ }, children: children })));
4641
+ }
4642
+
4474
4643
  function Chip(_a) {
4475
4644
  var { label, icon } = _a, props = __rest$1(_a, ["label", "icon"]);
4476
4645
  const isInteractive = !!props.onClick;
@@ -4533,12 +4702,12 @@ const buttonVariantClassMap = {
4533
4702
  const buttonDisabledClass = "!tw-bg-grey-800 !tw-text-grey-600 tw-cursor-not-allowed";
4534
4703
  const loadingClassname = "tw-invisible tw-opacity-0";
4535
4704
  function Button$1(_a) {
4536
- var { label, disabled = false, size, variant, icon, link, isLoading = false, showLoader = false, loaderSize = "md", chip, containerClassName, anchorRef, buttonRef } = _a, props = __rest$1(_a, ["label", "disabled", "size", "variant", "icon", "link", "isLoading", "showLoader", "loaderSize", "chip", "containerClassName", "anchorRef", "buttonRef"]);
4705
+ var { label, disabled = false, size, variant, icon, link, isLoading = false, isShimmering = false, showLoader = false, loaderSize = "md", chip, containerClassName, anchorRef, buttonRef } = _a, props = __rest$1(_a, ["label", "disabled", "size", "variant", "icon", "link", "isLoading", "isShimmering", "showLoader", "loaderSize", "chip", "containerClassName", "anchorRef", "buttonRef"]);
4537
4706
  const chipElement = chip != null ? (jsxRuntime.jsx(Chip, Object.assign({}, chip, { className: cn("tw-absolute -tw-right-squid-xxs -tw-top-squid-xxs tw-z-10", chip.className) }))) : null;
4707
+ const TextWrap = isShimmering ? LoadingText : "span";
4538
4708
  const children = (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [!disabled && !isLoading && (jsxRuntime.jsx(ButtonHoverOverlay, { className: buttonRoundedClassMap[size][variant] })), jsxRuntime.jsx("div", { className: "tw-relative tw-z-[5] tw-flex tw-items-center tw-justify-center tw-gap-squid-xxs", children: label == null && icon == null && !showLoader ? (props.children) : (jsxRuntime.jsxs("span", { className: cn("tw-flex tw-items-center tw-justify-center", size === "lg"
4539
4709
  ? "tw-gap-squid-xs tw-px-squid-m"
4540
- : "tw-gap-squid-xxs"), children: [showLoader && jsxRuntime.jsx(Loader, { size: loaderSizeMap[loaderSize] }), !isLoading && icon, label != null &&
4541
- (size === "sm" ? (jsxRuntime.jsx(CaptionText, { className: cn(isLoading && loadingClassname, icon != null && "tw-pr-1"), children: label })) : (jsxRuntime.jsx(BodyText, { className: cn(isLoading && loadingClassname, icon != null && "tw-pr-1"), size: size === "lg" ? "medium" : "small", children: label })))] })) })] }));
4710
+ : "tw-gap-squid-xxs"), children: [showLoader && jsxRuntime.jsx(Loader, { size: loaderSizeMap[loaderSize] }), !isLoading && icon, label != null && (jsxRuntime.jsx(TextWrap, { variant: variant, children: size === "sm" ? (jsxRuntime.jsx(CaptionText, { className: cn(isLoading && loadingClassname, icon != null && "tw-pr-1"), children: label })) : (jsxRuntime.jsx(BodyText, { className: cn(isLoading && loadingClassname, icon != null && "tw-pr-1"), size: size === "lg" ? "medium" : "small", children: label })) }))] })) })] }));
4542
4711
  const className = cn(baseButtonClassName, buttonSizeClassMap[size], buttonWidthClassnameMap[size], buttonVariantClassMap[size][variant], "tw-border-material-light-thin", !disabled && !isLoading && "hover:tw-border-material-light-average", buttonRoundedClassMap[size][variant],
4543
4712
  // disabled styles
4544
4713
  disabled && buttonDisabledClass, isLoading && "tw-cursor-not-allowed",
@@ -7630,14 +7799,14 @@ function trimExtraDecimals(value, maxDecimals) {
7630
7799
 
7631
7800
  // checks that the value includes at least one character different than `0` (zero), or `.` (dot)
7632
7801
  const RegExpNonZeroValue = /[^0.]/;
7633
- var UserInputType;
7802
+ exports.UserInputType = void 0;
7634
7803
  (function (UserInputType) {
7635
7804
  UserInputType[UserInputType["TOKEN"] = 0] = "TOKEN";
7636
7805
  UserInputType[UserInputType["USD"] = 1] = "USD";
7637
- })(UserInputType || (UserInputType = {}));
7638
- function useNumericInput({ onAmountChange, token, balance, debounceInput, forcedAmount, formatIfVerySmall, inputModeButton, maxUsdDecimals, direction, }) {
7806
+ })(exports.UserInputType || (exports.UserInputType = {}));
7807
+ function useNumericInput({ onAmountChange, token, balance, debounceInput, forcedAmount, formatIfVerySmall, inputModeButton, maxUsdDecimals, direction, initialInputMode = exports.UserInputType.TOKEN, }) {
7639
7808
  const [inputValue, setInputValue] = React$1.useState("");
7640
- const [userInputType, setUserInputType] = React$1.useState(UserInputType.TOKEN);
7809
+ const [userInputType, setUserInputType] = React$1.useState(initialInputMode);
7641
7810
  React$1.useEffect(() => {
7642
7811
  if (forcedAmount !== undefined) {
7643
7812
  updateInputValue(forcedAmount);
@@ -7645,7 +7814,7 @@ function useNumericInput({ onAmountChange, token, balance, debounceInput, forced
7645
7814
  }, [forcedAmount]);
7646
7815
  const updateInputValue = React$1.useCallback((newValue) => {
7647
7816
  const safeNewValue = trimExtraDecimals(newValue, token.decimals);
7648
- const formattedAmount = userInputType === UserInputType.TOKEN
7817
+ const formattedAmount = userInputType === exports.UserInputType.TOKEN
7649
7818
  ? safeNewValue
7650
7819
  : convertTokenAmountToUSD(safeNewValue, token.price, maxUsdDecimals);
7651
7820
  setInputValue(formattedAmount);
@@ -7657,7 +7826,7 @@ function useNumericInput({ onAmountChange, token, balance, debounceInput, forced
7657
7826
  const onAmountChangeDebounced = React$1.useCallback(debounce(onAmountChange, debounceInput ? 1000 : 0), [onAmountChange]);
7658
7827
  const handleInputChange = (e) => {
7659
7828
  const value = e.target.value.replace(/,/g, "."); // Replace commas with dots
7660
- const maxDecimalsForInputType = userInputType === UserInputType.TOKEN ? token.decimals : maxUsdDecimals;
7829
+ const maxDecimalsForInputType = userInputType === exports.UserInputType.TOKEN ? token.decimals : maxUsdDecimals;
7661
7830
  const isValidAmount = new RegExp(`^\\d*\\.?\\d{0,${maxDecimalsForInputType}}$`).test(value);
7662
7831
  if (isValidAmount) {
7663
7832
  setInputValue(value);
@@ -7675,14 +7844,14 @@ function useNumericInput({ onAmountChange, token, balance, debounceInput, forced
7675
7844
  };
7676
7845
  const handleSwitchInputMode = () => {
7677
7846
  if (inputValue !== "") {
7678
- const convertedAmount = userInputType === UserInputType.TOKEN
7847
+ const convertedAmount = userInputType === exports.UserInputType.TOKEN
7679
7848
  ? convertTokenAmountToUSD(inputValue, token.price, maxUsdDecimals)
7680
7849
  : convertUSDToTokenAmount(inputValue, token.price, token.decimals);
7681
7850
  setInputValue(convertedAmount);
7682
7851
  }
7683
- setUserInputType((prevMode) => prevMode === UserInputType.TOKEN
7684
- ? UserInputType.USD
7685
- : UserInputType.TOKEN);
7852
+ setUserInputType((prevMode) => prevMode === exports.UserInputType.TOKEN
7853
+ ? exports.UserInputType.USD
7854
+ : exports.UserInputType.TOKEN);
7686
7855
  };
7687
7856
  const getRawAmounts = (amount) => {
7688
7857
  if (amount === "")
@@ -7692,7 +7861,7 @@ function useNumericInput({ onAmountChange, token, balance, debounceInput, forced
7692
7861
  isTokenAmountVerySmall: false,
7693
7862
  isUsdAmountVerySmall: false,
7694
7863
  };
7695
- if (userInputType === UserInputType.TOKEN) {
7864
+ if (userInputType === exports.UserInputType.TOKEN) {
7696
7865
  const usdRawAmount = convertTokenAmountToUSD(amount, token.price, maxUsdDecimals);
7697
7866
  const tokenRawAmount = amount;
7698
7867
  const isTokenAmountVerySmall = !!tokenRawAmount &&
@@ -7732,7 +7901,7 @@ function useNumericInput({ onAmountChange, token, balance, debounceInput, forced
7732
7901
  var _a;
7733
7902
  if (isNaN(Number(inputValue)) || inputValue === "")
7734
7903
  return "0";
7735
- if (userInputType === UserInputType.TOKEN) {
7904
+ if (userInputType === exports.UserInputType.TOKEN) {
7736
7905
  if (direction === "from") {
7737
7906
  return formatUsdAmount(convertTokenAmountToUSD(inputValue, token.price, maxUsdDecimals), {
7738
7907
  includeSign: false,
@@ -7758,9 +7927,9 @@ function useNumericInput({ onAmountChange, token, balance, debounceInput, forced
7758
7927
  ]);
7759
7928
  const balanceFormatted = React$1.useMemo(() => {
7760
7929
  switch (userInputType) {
7761
- case UserInputType.TOKEN:
7930
+ case exports.UserInputType.TOKEN:
7762
7931
  return formatTokenAmount(balance !== null && balance !== void 0 ? balance : "0");
7763
- case UserInputType.USD:
7932
+ case exports.UserInputType.USD:
7764
7933
  return formatUsdAmount(convertTokenAmountToUSD(balance !== null && balance !== void 0 ? balance : "0", token === null || token === void 0 ? void 0 : token.price), {
7765
7934
  includeSign: false,
7766
7935
  });
@@ -9661,18 +9830,18 @@ function LargeNumericInput({ balance = "0", token, onAmountChange, forcedAmount,
9661
9830
  };
9662
9831
  }, []);
9663
9832
  const isBalanceButtonInteractive = Number(balance) > 0;
9664
- return (jsxRuntime.jsxs("section", { className: "tw-flex tw-flex-1 tw-flex-col tw-items-center tw-justify-center tw-self-stretch tw-px-squid-m tw-pb-squid-m", children: [jsxRuntime.jsx("div", { className: "tw-flex tw-w-full tw-flex-1 tw-items-center tw-justify-center tw-self-stretch tw-text-[4.40625rem] tw-text-royal-500", children: jsxRuntime.jsxs("label", { className: "tw-flex tw-min-w-squid-xl 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: [jsxRuntime.jsx("span", { ref: inputValueSpyRef, className: "tw-pointer-events-none tw-absolute tw-opacity-0", children: inputValue || placeholder }), userInputType === UserInputType.USD && jsxRuntime.jsx("span", { children: "$" }), jsxRuntime.jsx("input", { inputMode: "decimal", pattern: "[0-9.,]*", ref: inputRef, value: inputValue, onChange: handleInputChange, className: cn("tw-bg-transparent tw-placeholder-royal-500 tw-outline-none focus:tw-outline-none", userInputType === UserInputType.USD &&
9665
- "tw-max-w-[calc(100%-3.125rem)]"), placeholder: placeholder })] }) }), jsxRuntime.jsxs("footer", { className: "tw-flex tw-h-squid-m tw-items-center tw-justify-center tw-self-stretch tw-text-grey-500", children: [jsxRuntime.jsx("div", { className: "tw-flex-1", children: jsxRuntime.jsx(Tooltip, Object.assign({}, (userInputType === UserInputType.TOKEN
9833
+ return (jsxRuntime.jsxs("section", { className: "tw-flex tw-flex-1 tw-flex-col tw-items-center tw-justify-center tw-self-stretch tw-px-squid-m tw-pb-squid-m", children: [jsxRuntime.jsx("div", { className: "tw-flex tw-w-full tw-flex-1 tw-items-center tw-justify-center tw-self-stretch tw-text-[4.40625rem] tw-text-royal-500", children: jsxRuntime.jsxs("label", { className: "tw-flex tw-min-w-squid-xl 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: [jsxRuntime.jsx("span", { ref: inputValueSpyRef, className: "tw-pointer-events-none tw-absolute tw-opacity-0", children: inputValue || placeholder }), userInputType === exports.UserInputType.USD && jsxRuntime.jsx("span", { children: "$" }), jsxRuntime.jsx("input", { inputMode: "decimal", pattern: "[0-9.,]*", ref: inputRef, value: inputValue, onChange: handleInputChange, className: cn("tw-bg-transparent tw-placeholder-royal-500 tw-outline-none focus:tw-outline-none", userInputType === exports.UserInputType.USD &&
9834
+ "tw-max-w-[calc(100%-3.125rem)]"), placeholder: placeholder })] }) }), jsxRuntime.jsxs("footer", { className: "tw-flex tw-h-squid-m tw-items-center tw-justify-center tw-self-stretch tw-text-grey-500", children: [jsxRuntime.jsx("div", { className: "tw-flex-1", children: jsxRuntime.jsx(Tooltip, Object.assign({}, (userInputType === exports.UserInputType.TOKEN
9666
9835
  ? inputModeButton === null || inputModeButton === void 0 ? void 0 : inputModeButton.tokenModeTooltip
9667
9836
  : inputModeButton === null || inputModeButton === void 0 ? void 0 : inputModeButton.usdModeTooltip), { tooltipWidth: "max", childrenClassName: "tw-rounded-squid-s", containerClassName: "tw-rounded-squid-s tw-w-fit", children: jsxRuntime.jsxs("button", { onClick: () => {
9668
9837
  var _a;
9669
9838
  handleSwitchInputMode();
9670
9839
  (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
9671
- }, className: "tw-flex tw-flex-1 tw-items-center tw-gap-squid-xxs tw-rounded-squid-s tw-px-squid-xs tw-py-squid-xxs hover:tw-bg-material-light-thin", children: [jsxRuntime.jsx(SwapInputsIcon, { size: "20" }), userInputType === UserInputType.TOKEN ? (jsxRuntime.jsxs("span", { className: "tw-flex tw-items-center tw-justify-center", children: [jsxRuntime.jsxs(CaptionText, { className: "tw-opacity-66", children: [isUsdAmountVerySmall ? "<" : "", "$"] }), jsxRuntime.jsx(CaptionText, { children: isUsdAmountVerySmall
9840
+ }, className: "tw-flex tw-flex-1 tw-items-center tw-gap-squid-xxs tw-rounded-squid-s tw-px-squid-xs tw-py-squid-xxs hover:tw-bg-material-light-thin", children: [jsxRuntime.jsx(SwapInputsIcon, { size: "20" }), userInputType === exports.UserInputType.TOKEN ? (jsxRuntime.jsxs("span", { className: "tw-flex tw-items-center tw-justify-center", children: [jsxRuntime.jsxs(CaptionText, { className: "tw-opacity-66", children: [isUsdAmountVerySmall ? "<" : "", "$"] }), jsxRuntime.jsx(CaptionText, { children: isUsdAmountVerySmall
9672
9841
  ? formatIfVerySmall.token
9673
9842
  : amountFormatted })] })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(CaptionText, { children: [isTokenAmountVerySmall ? "<" : "", isTokenAmountVerySmall
9674
9843
  ? formatIfVerySmall.token
9675
- : amountFormatted] }), " ", jsxRuntime.jsx(CaptionText, { className: "tw-opacity-66", children: token.symbol })] }))] }) })) }), jsxRuntime.jsx(Tooltip, Object.assign({}, (isBalanceButtonInteractive ? balanceButton === null || balanceButton === void 0 ? void 0 : balanceButton.tooltip : undefined), { tooltipWidth: "max", childrenClassName: "tw-rounded-squid-s", containerClassName: "tw-rounded-squid-s", children: jsxRuntime.jsxs("button", { disabled: !isBalanceButtonInteractive, onClick: onBalanceButtonClick, className: cn("tw-flex tw-h-squid-l tw-items-center tw-gap-1.5 tw-rounded-squid-s tw-px-squid-xs", isBalanceButtonInteractive && "hover:tw-bg-material-light-thin"), children: [jsxRuntime.jsx(CaptionText, { className: "tw-opacity-66", children: "Balance" }), jsxRuntime.jsxs("div", { children: [userInputType === UserInputType.USD && (jsxRuntime.jsx(CaptionText, { className: "tw-opacity-66", children: "$" })), jsxRuntime.jsx(CaptionText, { children: balanceFormatted })] }), jsxRuntime.jsx(Chip, { className: "tw-text-grey-900", label: "Max" })] }) }))] })] }));
9844
+ : amountFormatted] }), " ", jsxRuntime.jsx(CaptionText, { className: "tw-opacity-66", children: token.symbol })] }))] }) })) }), jsxRuntime.jsx(Tooltip, Object.assign({}, (isBalanceButtonInteractive ? balanceButton === null || balanceButton === void 0 ? void 0 : balanceButton.tooltip : undefined), { tooltipWidth: "max", childrenClassName: "tw-rounded-squid-s", containerClassName: "tw-rounded-squid-s", children: jsxRuntime.jsxs("button", { disabled: !isBalanceButtonInteractive, onClick: onBalanceButtonClick, className: cn("tw-flex tw-h-squid-l tw-items-center tw-gap-1.5 tw-rounded-squid-s tw-px-squid-xs", isBalanceButtonInteractive && "hover:tw-bg-material-light-thin"), children: [jsxRuntime.jsx(CaptionText, { className: "tw-opacity-66", children: "Balance" }), jsxRuntime.jsxs("div", { children: [userInputType === exports.UserInputType.USD && (jsxRuntime.jsx(CaptionText, { className: "tw-opacity-66", children: "$" })), jsxRuntime.jsx(CaptionText, { children: balanceFormatted })] }), jsxRuntime.jsx(Chip, { className: "tw-text-grey-900", label: "Max" })] }) }))] })] }));
9676
9845
  }
9677
9846
 
9678
9847
  /*! *****************************************************************************
@@ -20051,24 +20220,19 @@ function LogoContainer({ children }) {
20051
20220
  return (jsxRuntime.jsx("div", { className: "tw-flex tw-h-[60px] tw-w-[60px] tw-items-center tw-justify-center", children: children }));
20052
20221
  }
20053
20222
 
20054
- function SwapConfiguration({ amount, tokenPrice = 0, isFetching: isFetchingProp = false, chain, token, direction = "from", onAmountChange, balance, criticalPriceImpactPercentage, error, priceImpactPercentage, maxUsdDecimals, isInputInteractive = true, isLoading = false, inputModeButton, balanceButton, assetsButton, walletButton, showNumericInputDetails = true, fullHeight = true, debounceInput = true, }) {
20055
- var _a, _b;
20056
- const isWalletButtonInteractive = !isLoading && !!(walletButton === null || walletButton === void 0 ? void 0 : walletButton.onClick);
20057
- const WalletButtonTag = isWalletButtonInteractive ? "button" : "div";
20223
+ const AddressHeader = ({ direction, onClick, isDisabled, tooltip, label, walletIconUrl, isLoading, displayLabel = true, highlightLabel = false, showIcon = true, }) => {
20224
+ const ButtonTag = onClick && !isDisabled ? "button" : "div";
20225
+ return (jsxRuntime.jsx("header", { className: "tw-flex tw-h-squid-xl2 tw-items-center tw-self-stretch tw-px-squid-m tw-py-squid-xxs", children: jsxRuntime.jsx(Tooltip, { tooltipContent: tooltip, tooltipWidth: "max", childrenClassName: "tw-rounded-squid-s", containerClassName: "tw-rounded-squid-s", children: jsxRuntime.jsxs(ButtonTag, { onClick: onClick, disabled: isDisabled, type: onClick ? "button" : undefined, className: cn("tw-flex tw-h-squid-l tw-items-center tw-gap-squid-xxs tw-rounded-squid-s tw-px-squid-xs", onClick && !isDisabled && "hover:tw-bg-material-light-thin", isLoading && "tw-opacity-50"), children: [jsxRuntime.jsx(BodyText, { size: "small", className: "tw-text-grey-500", children: direction === "from" ? "Pay" : "Receive" }), displayLabel && !isLoading && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(BodyText, { size: "small", className: "tw-text-grey-600", children: ":" }), jsxRuntime.jsxs("div", { className: "tw-flex tw-items-center tw-gap-squid-xxs", children: [showIcon &&
20226
+ (walletIconUrl ? (jsxRuntime.jsx(Image$1, { width: 24, height: 24, rounded: "xxs", src: walletIconUrl })) : (jsxRuntime.jsx("div", { className: "tw-flex tw-h-6 tw-w-6 tw-items-center tw-justify-center tw-rounded-lg tw-bg-royal-500 tw-px-0.5 tw-outline tw-outline-1 tw-outline-material-light-thin", children: jsxRuntime.jsx(WalletFilledIcon, { size: "18" }) }))), jsxRuntime.jsx(BodyText, { size: "small", className: cn(highlightLabel ? "tw-text-royal-500" : "tw-text-grey-300"), children: label }), jsxRuntime.jsx(ChevronArrowIcon, { className: cn(highlightLabel ? "tw-text-royal-500" : "tw-text-grey-600"), size: "16" })] })] }))] }) }) }));
20227
+ };
20228
+ function SwapConfiguration({ amount, tokenPrice = 0, isFetching: isFetchingProp = false, chain, token, direction = "from", onAmountChange, balance, criticalPriceImpactPercentage, error, priceImpactPercentage, maxUsdDecimals, isInputInteractive = true, isLoading = false, inputModeButton, balanceButton, assetsButton, walletButton, showNumericInputDetails = true, fullHeight = true, debounceInput = true, showWalletButtonHeader = true, }) {
20229
+ var _a, _b, _c, _d;
20058
20230
  const isFetching = isFetchingProp || isLoading;
20059
- const showWalletButtonLabel = !isLoading &&
20060
- !(walletButton === null || walletButton === void 0 ? void 0 : walletButton.disabled) &&
20061
- !!token &&
20062
- (!!(walletButton === null || walletButton === void 0 ? void 0 : walletButton.address) || !!(walletButton === null || walletButton === void 0 ? void 0 : walletButton.emptyAddressLabel));
20063
- return (jsxRuntime.jsxs("section", { className: cn("tw-relative tw-flex tw-w-full tw-flex-col tw-border-t tw-border-t-material-light-thin tw-bg-grey-900 mobile-lg:tw-w-card-large", fullHeight && "tw-h-full tw-pb-squid-m"), children: [jsxRuntime.jsx("header", { className: "tw-flex tw-items-center tw-gap-1 tw-px-squid-m tw-py-squid-xs tw-leading-5 tw-text-grey-300 mobile-lg:tw-px-squid-l", children: jsxRuntime.jsx(Tooltip, Object.assign({}, walletButton === null || walletButton === void 0 ? void 0 : walletButton.tooltip, { tooltipWidth: "max", childrenClassName: "tw-rounded-squid-s", containerClassName: "tw-rounded-squid-s", children: jsxRuntime.jsxs(WalletButtonTag, { onClick: isWalletButtonInteractive ? walletButton === null || walletButton === void 0 ? void 0 : walletButton.onClick : undefined, className: cn("-tw-ml-squid-xs tw-flex tw-h-squid-l tw-items-center tw-gap-squid-xxs tw-rounded-squid-s tw-px-squid-xs tw-text-grey-600", isWalletButtonInteractive && "hover:tw-bg-material-light-thin", isLoading && "tw-opacity-50"), children: [jsxRuntime.jsx(BodyText, { className: "tw-text-grey-500", size: "small", children: direction === "from" ? "Pay" : "Receive" }), showWalletButtonLabel && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(BodyText, { size: "small", children: ":" }), jsxRuntime.jsxs("div", { className: "tw-flex tw-items-center tw-gap-1", children: [jsxRuntime.jsx(BodyText, { size: "small", className: (walletButton === null || walletButton === void 0 ? void 0 : walletButton.address)
20064
- ? "tw-text-grey-300"
20065
- : "tw-text-royal-500", children: (walletButton === null || walletButton === void 0 ? void 0 : walletButton.address)
20066
- ? walletButton === null || walletButton === void 0 ? void 0 : walletButton.address
20067
- : walletButton === null || walletButton === void 0 ? void 0 : walletButton.emptyAddressLabel }), jsxRuntime.jsx(ChevronArrowIcon, { className: (walletButton === null || walletButton === void 0 ? void 0 : walletButton.address)
20068
- ? "tw-text-grey-600"
20069
- : "tw-text-royal-500" })] })] }))] }) })) }), jsxRuntime.jsx("div", { className: "tw-px-squid-m mobile-lg:tw-px-squid-l", children: jsxRuntime.jsx(AssetsButton, Object.assign({}, assetsButton, { chain: chain, token: token, isLoading: isLoading })) }), jsxRuntime.jsx(NumericInput, { inputMode: "decimal", pattern: "[0-9.,]*", token: {
20070
- decimals: (_a = token === null || token === void 0 ? void 0 : token.decimals) !== null && _a !== void 0 ? _a : 18,
20071
- symbol: (_b = token === null || token === void 0 ? void 0 : token.symbol) !== null && _b !== void 0 ? _b : "",
20231
+ return (jsxRuntime.jsxs("section", { className: cn("tw-relative tw-flex tw-w-full tw-flex-col tw-border-t tw-border-t-material-light-thin tw-bg-grey-900 mobile-lg:tw-w-card-large", fullHeight && "tw-h-full tw-pb-squid-m"), children: [jsxRuntime.jsx(AddressHeader, { direction: direction, onClick: walletButton === null || walletButton === void 0 ? void 0 : walletButton.onClick, isDisabled: walletButton === null || walletButton === void 0 ? void 0 : walletButton.disabled, tooltip: (_a = walletButton === null || walletButton === void 0 ? void 0 : walletButton.tooltip) === null || _a === void 0 ? void 0 : _a.tooltipContent, label: (walletButton === null || walletButton === void 0 ? void 0 : walletButton.address) ||
20232
+ (walletButton === null || walletButton === void 0 ? void 0 : walletButton.emptyAddressLabel) ||
20233
+ (direction === "from" ? "Connect wallet" : "Select recipient"), walletIconUrl: walletButton === null || walletButton === void 0 ? void 0 : walletButton.walletIconUrl, isLoading: isLoading, displayLabel: showWalletButtonHeader, highlightLabel: !(walletButton === null || walletButton === void 0 ? void 0 : walletButton.address), showIcon: (_b = walletButton === null || walletButton === void 0 ? void 0 : walletButton.showIcon) !== null && _b !== void 0 ? _b : true }), jsxRuntime.jsx("div", { className: "tw-px-squid-m mobile-lg:tw-px-squid-l", children: jsxRuntime.jsx(AssetsButton, Object.assign({}, assetsButton, { chain: chain, token: token, isLoading: isLoading })) }), jsxRuntime.jsx(NumericInput, { inputMode: "decimal", pattern: "[0-9.,]*", token: {
20234
+ decimals: (_c = token === null || token === void 0 ? void 0 : token.decimals) !== null && _c !== void 0 ? _c : 18,
20235
+ symbol: (_d = token === null || token === void 0 ? void 0 : token.symbol) !== null && _d !== void 0 ? _d : "",
20072
20236
  price: tokenPrice,
20073
20237
  }, onAmountChange: (value) => {
20074
20238
  onAmountChange === null || onAmountChange === void 0 ? void 0 : onAmountChange(value);
@@ -20094,6 +20258,28 @@ function AccountListItem({ isConnected, imageUrls = [], imageUrl, badgeUrl, acti
20094
20258
  }, badge: badge })) : (jsxRuntime.jsx(ImageGroup, { imageUrls: imageUrls, badge: badge })), jsxRuntime.jsxs("div", { className: "tw-flex tw-flex-1 tw-flex-col tw-items-start tw-gap-squid-xs", children: [jsxRuntime.jsx(BodyText, { size: "small", className: "tw-h-[13px] !tw-leading-[13px]", children: title }), jsxRuntime.jsx(BodyText, { size: "small", className: "tw-h-[13px] !tw-leading-[13px] tw-text-grey-500", children: subtitle })] }), jsxRuntime.jsx("menu", { className: "tw-flex tw-items-center tw-gap-squid-xxs", children: actions })] }));
20095
20259
  }
20096
20260
 
20261
+ function useCollapsibleMenu() {
20262
+ const [isMenuOpen, setIsMenuOpen] = React$1.useState(false);
20263
+ const menuRef = React$1.useRef(null);
20264
+ const toggleMenu = () => {
20265
+ setIsMenuOpen(!isMenuOpen);
20266
+ };
20267
+ React$1.useEffect(() => {
20268
+ const handleClickOutside = (event) => {
20269
+ if (menuRef.current && !menuRef.current.contains(event.target)) {
20270
+ setIsMenuOpen(false);
20271
+ }
20272
+ };
20273
+ document.addEventListener("mousedown", handleClickOutside);
20274
+ return () => document.removeEventListener("mousedown", handleClickOutside);
20275
+ }, []);
20276
+ return {
20277
+ isMenuOpen,
20278
+ toggleMenu,
20279
+ menuRef,
20280
+ };
20281
+ }
20282
+
20097
20283
  const SPACING = 10;
20098
20284
  function useDropdownMenu(props) {
20099
20285
  const { initialIsDropdownOpen, itemsContainerRef } = props !== null && props !== void 0 ? props : {};
@@ -20250,28 +20436,6 @@ function useMediaQuery(query, { defaultValue = false, initializeWithValue = true
20250
20436
  return matches;
20251
20437
  }
20252
20438
 
20253
- function useCollapsibleMenu() {
20254
- const [isMenuOpen, setIsMenuOpen] = React$1.useState(false);
20255
- const menuRef = React$1.useRef(null);
20256
- const toggleMenu = () => {
20257
- setIsMenuOpen(!isMenuOpen);
20258
- };
20259
- React$1.useEffect(() => {
20260
- const handleClickOutside = (event) => {
20261
- if (menuRef.current && !menuRef.current.contains(event.target)) {
20262
- setIsMenuOpen(false);
20263
- }
20264
- };
20265
- document.addEventListener("mousedown", handleClickOutside);
20266
- return () => document.removeEventListener("mousedown", handleClickOutside);
20267
- }, []);
20268
- return {
20269
- isMenuOpen,
20270
- toggleMenu,
20271
- menuRef,
20272
- };
20273
- }
20274
-
20275
20439
  const useTimer = ({ immediateStart = true, }) => {
20276
20440
  const [timer, setTimer] = React$1.useState("0s");
20277
20441
  const intervalRef = React$1.useRef(null);
@@ -20603,7 +20767,7 @@ function PropertyListItem(_a) {
20603
20767
  const Text = variant === "small" ? CaptionText : SmallBodyText;
20604
20768
  const isCollapsible = !!collapsibleContent;
20605
20769
  const ContentWrapperTag = isCollapsible ? "button" : "div";
20606
- return (jsxRuntime.jsx("li", Object.assign({}, props, { className: cn("tw-flex tw-w-full tw-gap-squid-xs tw-rounded-squid-xs tw-text-grey-300", showGradientBg && "squid-property-row-bg", addExtraPadding && containerPaddingClassNameMap[variant], className), children: jsxRuntime.jsxs(ContentWrapperTag, { onClick: isCollapsible ? handleToggleCollapsed : undefined, className: "tw-w-full tw-rounded-squid-xs", children: [jsxRuntime.jsxs("div", { className: cn("tw-flex tw-h-squid-l tw-w-full tw-items-center tw-justify-between tw-gap-squid-xs", childrenVariantClassNameMap[variant]), children: [jsxRuntime.jsx("div", { className: cn("tw-w-6 tw-text-grey-500", iconClassName), children: icon }), jsxRuntime.jsxs(Text, { className: cn("tw-flex tw-min-w-fit tw-flex-1 tw-gap-squid-xxs tw-text-grey-500", labelClassName), children: [jsxRuntime.jsx(TextSkeleton, { isLoading: isLoading, children: label }), !!tooltip && (jsxRuntime.jsx(Tooltip, Object.assign({}, tooltip, { children: jsxRuntime.jsx(HelpIcon, { className: "tw-cursor-help tw-text-grey-600 hover:tw-text-grey-500" }) })))] }), jsxRuntime.jsx(Text, { truncate: variant === "small" || undefined, className: cn("tw-flex tw-text-grey-300", detailClassName), children: jsxRuntime.jsx(TextSkeleton, { isLoading: isLoading, children: detail }) }), isCollapsible && (jsxRuntime.jsx(ChevronLargeRightIcon, { className: cn("tw-text-grey-600 tw-duration-generic", !isCollapsed && "tw-rotate-90"), size: "16" }))] }), isCollapsible && (jsxRuntime.jsx(Collapse, { collapsed: isCollapsed, children: collapsibleContent }))] }) })));
20770
+ return (jsxRuntime.jsx("li", Object.assign({}, props, { className: cn("tw-flex tw-w-full tw-gap-squid-xs tw-rounded-squid-xs tw-text-grey-300", showGradientBg && "tw-squid-property-row-bg", addExtraPadding && containerPaddingClassNameMap[variant], className), children: jsxRuntime.jsxs(ContentWrapperTag, { onClick: isCollapsible ? handleToggleCollapsed : undefined, className: "tw-w-full tw-rounded-squid-xs", children: [jsxRuntime.jsxs("div", { className: cn("tw-flex tw-h-squid-l tw-w-full tw-items-center tw-justify-between tw-gap-squid-xs", childrenVariantClassNameMap[variant]), children: [jsxRuntime.jsx("div", { className: cn("tw-w-6 tw-text-grey-500", iconClassName), children: icon }), jsxRuntime.jsxs(Text, { className: cn("tw-flex tw-min-w-fit tw-flex-1 tw-gap-squid-xxs tw-text-grey-500", labelClassName), children: [jsxRuntime.jsx(TextSkeleton, { isLoading: isLoading, children: label }), !!tooltip && (jsxRuntime.jsx(Tooltip, Object.assign({}, tooltip, { children: jsxRuntime.jsx(HelpIcon, { className: "tw-cursor-help tw-text-grey-600 hover:tw-text-grey-500" }) })))] }), jsxRuntime.jsx(Text, { truncate: variant === "small" || undefined, className: cn("tw-flex tw-text-grey-300", detailClassName), children: jsxRuntime.jsx(TextSkeleton, { isLoading: isLoading, children: detail }) }), isCollapsible && (jsxRuntime.jsx(ChevronLargeRightIcon, { className: cn("tw-text-grey-600 tw-duration-generic", !isCollapsed && "tw-rotate-90"), size: "16" }))] }), isCollapsible && (jsxRuntime.jsx(Collapse, { collapsed: isCollapsed, children: collapsibleContent }))] }) })));
20607
20771
  }
20608
20772
 
20609
20773
  function RouteStep({ imageUrl, descriptionBlocks, subtitle, showStepSeparator = false, }) {
@@ -27070,7 +27234,7 @@ function UnsupportedPairNotice({ description, fromImageUrl, toImageUrl, }) {
27070
27234
  return (jsxRuntime.jsxs("article", { className: "tw-flex tw-flex-col tw-items-center tw-justify-center tw-gap-squid-xs", children: [jsxRuntime.jsxs("div", { className: "tw-flex tw-items-center tw-gap-squid-xs -tw-space-x-[18px] tw-p-squid-xs", children: [jsxRuntime.jsx(Image$1, { src: fromImageUrl, size: "large", rounded: "xs" }), jsxRuntime.jsx("span", { className: "tw-z-[1] tw-rounded-full tw-bg-grey-900", children: jsxRuntime.jsx(CircleXFilledIcon, {}) }), jsxRuntime.jsx(Image$1, { src: toImageUrl, size: "large", rounded: "xs" })] }), jsxRuntime.jsx(CaptionText, { className: "tw-max-w-[260px] tw-text-balance tw-text-center tw-text-grey-500", children: description })] }));
27071
27235
  }
27072
27236
 
27073
- 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]";
27237
+ 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-h-[65px] mobile-sm-height:tw-h-[75px]";
27074
27238
  const buttonClassName = "tw-flex tw-h-squid-l tw-items-center tw-gap-1.5 tw-rounded-squid-s tw-px-squid-xs";
27075
27239
  const interactiveChipClassName = "hover:tw-bg-material-light-thin";
27076
27240
  const notInteractiveChipClassName = "tw-cursor-not-allowed";
@@ -27080,7 +27244,7 @@ function NumericInput(_a) {
27080
27244
  var { priceImpactPercentage, balance = "0", error, criticalPriceImpactPercentage = 5, token, onAmountChange, forcedAmount, maxUsdDecimals = 2, formatIfVerySmall = {
27081
27245
  token: "0.001",
27082
27246
  usd: "0.01",
27083
- }, showDetails = true, isLoading = false, direction, inputModeButton, isInteractive = false, balanceButton, debounceInput = true } = _a, props = __rest$1(_a, ["priceImpactPercentage", "balance", "error", "criticalPriceImpactPercentage", "token", "onAmountChange", "forcedAmount", "maxUsdDecimals", "formatIfVerySmall", "showDetails", "isLoading", "direction", "inputModeButton", "isInteractive", "balanceButton", "debounceInput"]);
27247
+ }, showDetails = true, isLoading = false, direction, inputModeButton, isInteractive = false, balanceButton, debounceInput = true, initialInputMode = exports.UserInputType.TOKEN, customSymbol, hideControls = false, hideBalance = false, containerClassName, inputClassName } = _a, props = __rest$1(_a, ["priceImpactPercentage", "balance", "error", "criticalPriceImpactPercentage", "token", "onAmountChange", "forcedAmount", "maxUsdDecimals", "formatIfVerySmall", "showDetails", "isLoading", "direction", "inputModeButton", "isInteractive", "balanceButton", "debounceInput", "initialInputMode", "customSymbol", "hideControls", "hideBalance", "containerClassName", "inputClassName"]);
27084
27248
  const { userInputType, inputValue, handleInputChange, handleSwitchInputMode, isTokenAmountVerySmall, isUsdAmountVerySmall, amountFormatted, onBalanceButtonClick, balanceFormatted, } = useNumericInput({
27085
27249
  onAmountChange,
27086
27250
  token,
@@ -27091,6 +27255,7 @@ function NumericInput(_a) {
27091
27255
  inputModeButton,
27092
27256
  maxUsdDecimals,
27093
27257
  direction,
27258
+ initialInputMode,
27094
27259
  });
27095
27260
  const balanceChipClickable = isInteractive && parseFloat(balance) > 0;
27096
27261
  const AmountChip = isInteractive ? "button" : "div";
@@ -27099,11 +27264,35 @@ function NumericInput(_a) {
27099
27264
  : "tw-text-grey-300";
27100
27265
  const BalanceChipTag = balanceChipClickable ? "button" : "div";
27101
27266
  const inputRef = React$1.useRef(null);
27102
- return (jsxRuntime.jsxs("div", { className: "tw-relative tw-flex tw-w-full tw-flex-col", children: [isLoading && (jsxRuntime.jsx("div", { className: "tw-pointer-events-none tw-absolute tw-inset-0 tw-top-squid-xxs tw-z-10 tw-overflow-hidden", children: jsxRuntime.jsx("div", { className: "tw-h-full tw-w-[78.75rem] tw-animate-move-loading-cover-to-right tw-bg-dark-cover" }) })), isInteractive && !isLoading ? (jsxRuntime.jsxs("form", { className: containerClassname, onSubmit: (e) => {
27267
+ const symbolRef = React$1.useRef(null);
27268
+ const [symbolWidth, setSymbolWidth] = React$1.useState(0);
27269
+ const displaySymbol = customSymbol !== null && customSymbol !== void 0 ? customSymbol : (userInputType === exports.UserInputType.USD ? "$" : undefined);
27270
+ // Calculate symbol width when it changes
27271
+ React$1.useEffect(() => {
27272
+ if (symbolRef.current && displaySymbol) {
27273
+ const width = symbolRef.current.getBoundingClientRect().width;
27274
+ setSymbolWidth(width);
27275
+ }
27276
+ }, [displaySymbol]);
27277
+ // Calculate left padding based on symbol width plus some spacing
27278
+ const getInputPadding = () => {
27279
+ if (!displaySymbol)
27280
+ return undefined;
27281
+ const basePadding = 5; // Base padding in pixels
27282
+ const totalPadding = Math.ceil(symbolWidth) + basePadding;
27283
+ return `${totalPadding}px`;
27284
+ };
27285
+ return (jsxRuntime.jsxs("div", { className: "tw-relative tw-flex tw-w-full tw-flex-col", children: [isLoading && (jsxRuntime.jsx("div", { className: "tw-pointer-events-none tw-absolute tw-inset-0 tw-top-squid-xxs tw-z-10 tw-overflow-hidden", children: jsxRuntime.jsx("div", { className: "tw-h-full tw-w-[78.75rem] tw-animate-move-loading-cover-to-right tw-bg-dark-cover" }) })), isInteractive && !isLoading ? (jsxRuntime.jsx("form", { className: cn(containerClassname, containerClassName), onSubmit: (e) => {
27103
27286
  e.preventDefault();
27104
- }, children: [userInputType === UserInputType.USD && (jsxRuntime.jsx("span", { className: "tw-absolute tw-left-5 tw-top-[11px] tw-leading-[43px] tw-text-grey-600 mobile-lg:tw-left-[30px]", children: "$" })), jsxRuntime.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))] })) : (jsxRuntime.jsx("div", { className: cn(containerClassname, (isLoading || Number(inputValue || 0) === 0) && loadingClassName), children: jsxRuntime.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: jsxRuntime.jsx("span", { children: inputValue || 0 }) }) })), !showDetails ? null : (jsxRuntime.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 ? (jsxRuntime.jsx("div", { className: "tw-px-squid-xs", children: jsxRuntime.jsx(ErrorMessage, { message: error.message }) })) : (jsxRuntime.jsx(Tooltip, Object.assign({}, (isLoading
27287
+ }, children: jsxRuntime.jsxs("span", { className: "tw-relative tw-w-full", children: [displaySymbol && (jsxRuntime.jsx("span", { ref: symbolRef, style: {
27288
+ transform: "translateY(-50%)",
27289
+ }, className: "tw-absolute tw-top-1/2 tw-pl-squid-xs tw-text-grey-600", children: displaySymbol })), jsxRuntime.jsx("input", Object.assign({ ref: inputRef, type: "text", value: inputValue, onChange: handleInputChange, placeholder: "0", style: displaySymbol
27290
+ ? {
27291
+ paddingLeft: getInputPadding(),
27292
+ }
27293
+ : undefined, className: cn("tw-h-[55px] tw-w-full tw-rounded-squid-s tw-bg-transparent 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", displaySymbol ? "tw-pr-squid-xs" : "tw-px-squid-xs", inputClassName) }, props))] }) })) : (jsxRuntime.jsx("div", { className: cn(containerClassname, (isLoading || Number(inputValue || 0) === 0) && loadingClassName, containerClassName), children: jsxRuntime.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: jsxRuntime.jsx("span", { children: inputValue }) }) })), !showDetails || hideControls ? null : (jsxRuntime.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 ? (jsxRuntime.jsx("div", { className: "tw-px-squid-xs", children: jsxRuntime.jsx(ErrorMessage, { message: error.message }) })) : (jsxRuntime.jsx(Tooltip, Object.assign({}, (isLoading
27105
27294
  ? undefined
27106
- : userInputType === UserInputType.TOKEN
27295
+ : userInputType === exports.UserInputType.TOKEN
27107
27296
  ? inputModeButton === null || inputModeButton === void 0 ? void 0 : inputModeButton.tokenModeTooltip
27108
27297
  : inputModeButton === null || inputModeButton === void 0 ? void 0 : inputModeButton.usdModeTooltip), { tooltipWidth: "max", childrenClassName: "tw-rounded-squid-s", containerClassName: "tw-rounded-squid-s", children: jsxRuntime.jsxs(AmountChip, { onClick: isInteractive
27109
27298
  ? () => {
@@ -27113,15 +27302,15 @@ function NumericInput(_a) {
27113
27302
  }
27114
27303
  : undefined, className: cn(buttonClassName, isInteractive
27115
27304
  ? interactiveChipClassName
27116
- : notInteractiveChipClassName), children: [jsxRuntime.jsx(SwapInputsIcon, {}), userInputType === UserInputType.TOKEN ? (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("span", { className: "tw-flex tw-items-center tw-text-grey-500", children: [jsxRuntime.jsxs(CaptionText, { className: "tw-opacity-66", children: [isUsdAmountVerySmall ? "<" : "", "$"] }), jsxRuntime.jsx(CaptionText, { children: isUsdAmountVerySmall
27305
+ : notInteractiveChipClassName), children: [jsxRuntime.jsx(SwapInputsIcon, {}), userInputType === exports.UserInputType.TOKEN ? (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("span", { className: "tw-flex tw-items-center tw-text-grey-500", children: [jsxRuntime.jsxs(CaptionText, { className: "tw-opacity-66", children: [isUsdAmountVerySmall ? "<" : "", "$"] }), jsxRuntime.jsx(CaptionText, { children: isUsdAmountVerySmall
27117
27306
  ? formatIfVerySmall.token
27118
27307
  : amountFormatted })] }) })) : (jsxRuntime.jsxs("span", { className: "tw-text-grey-500", children: [isTokenAmountVerySmall ? "<" : "", jsxRuntime.jsx(CaptionText, { children: isTokenAmountVerySmall
27119
27308
  ? formatIfVerySmall.token
27120
27309
  : amountFormatted }), " ", jsxRuntime.jsx(CaptionText, { className: "tw-opacity-66", children: token.symbol })] })), priceImpactPercentage && direction === "to" ? (jsxRuntime.jsxs("span", { className: cn("tw-flex tw-items-center", priceImpactClass), children: [jsxRuntime.jsx(ArrowTriangle, { className: Number(priceImpactPercentage) === 0
27121
27310
  ? "tw-opacity-0"
27122
- : "" }), jsxRuntime.jsx(CaptionText, { bold: true, children: priceImpactPercentage.toString().concat("%") })] })) : null] }) }))), jsxRuntime.jsx(Tooltip, Object.assign({}, (isLoading ? undefined : balanceButton === null || balanceButton === void 0 ? void 0 : balanceButton.tooltip), { tooltipWidth: "max", childrenClassName: "tw-rounded-squid-s", containerClassName: "tw-rounded-squid-s", children: jsxRuntime.jsxs(BalanceChipTag, { disabled: !balanceChipClickable, onClick: balanceChipClickable ? onBalanceButtonClick : undefined, className: cn(buttonClassName, balanceChipClickable
27311
+ : "" }), jsxRuntime.jsx(CaptionText, { bold: true, children: priceImpactPercentage.toString().concat("%") })] })) : null] }) }))), !hideBalance && (jsxRuntime.jsx(Tooltip, Object.assign({}, (isLoading ? undefined : balanceButton === null || balanceButton === void 0 ? void 0 : balanceButton.tooltip), { tooltipWidth: "max", childrenClassName: "tw-rounded-squid-s", containerClassName: "tw-rounded-squid-s", children: jsxRuntime.jsxs(BalanceChipTag, { disabled: !balanceChipClickable, onClick: balanceChipClickable ? onBalanceButtonClick : undefined, className: cn(buttonClassName, balanceChipClickable
27123
27312
  ? interactiveChipClassName
27124
- : notInteractiveChipClassName), children: [jsxRuntime.jsx(CaptionText, { className: "tw-opacity-66", children: "Balance" }), jsxRuntime.jsxs("div", { children: [userInputType === UserInputType.USD && (jsxRuntime.jsx(CaptionText, { className: "tw-opacity-66", children: "$" })), jsxRuntime.jsx(CaptionText, { children: balanceFormatted })] }), !(balanceButton === null || balanceButton === void 0 ? void 0 : balanceButton.hideMaxChip) && jsxRuntime.jsx(Chip, { label: "Max" })] }) }))] }))] }));
27313
+ : notInteractiveChipClassName), children: [jsxRuntime.jsx(CaptionText, { className: "tw-opacity-66", children: "Balance" }), jsxRuntime.jsxs("div", { children: [userInputType === exports.UserInputType.USD && (jsxRuntime.jsx(CaptionText, { className: "tw-opacity-66", children: "$" })), jsxRuntime.jsx(CaptionText, { children: balanceFormatted })] }), !(balanceButton === null || balanceButton === void 0 ? void 0 : balanceButton.hideMaxChip) && jsxRuntime.jsx(Chip, { label: "Max" })] }) })))] }))] }));
27125
27314
  }
27126
27315
 
27127
27316
  function RangeInput({ label, initialValue, onChange, min = 0, max = 99, isWarning = false, }) {
@@ -27559,7 +27748,7 @@ function DepositAddressView({ isOpen = true, fromToken, toToken, handleClose, fr
27559
27748
  }, borderType: "outline", children: [jsxRuntime.jsxs("div", { className: "tw-relative tw-flex tw-h-[160px] tw-w-full tw-items-center tw-justify-center tw-rounded-tl-modal tw-rounded-tr-modal tw-bg-grey-900 tw-py-squid-s tw-text-material-light-thin", style: {
27560
27749
  // box shadow simulating bottom outline (we do not use css outline because cannot apply it to only one side)
27561
27750
  boxShadow: "0 1px 0 currentColor",
27562
- }, children: [jsxRuntime.jsx("div", { className: "tw-absolute tw-right-squid-xs tw-top-squid-xs", children: jsxRuntime.jsx(Button$1, { size: "md", variant: "secondary", label: "Copy" }) }), headerContent] }), jsxRuntime.jsx("div", { className: "tw-relative tw-flex tw-h-squid-m tw-w-full tw-items-end tw-justify-between tw-self-stretch tw-px-squid-m", children: jsxRuntime.jsx(Image$1, { src: fromToken.logoUrl, rounded: "full", shadow: true, size: "xlarge" }) }), jsxRuntime.jsx(TxProgressViewHeader, { title: title, description: description, isWarning: true }), jsxRuntime.jsxs("ul", { className: "squid-property-gradient-bg-even-container tw-flex tw-w-full tw-flex-col tw-items-center tw-justify-start tw-gap-squid-xxs tw-overflow-auto tw-rounded-squid-l tw-pb-squid-s tw-scrollbar-hidden", children: [jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(WalletFilledIcon, { size: "24" }), label: "Deposit address", detail: jsxRuntime.jsx(HashLink, { className: "tw-text-royal-500", formattedHash: depositAddressFormatted, hash: depositAddress, showCopyButton: true, copyIconSize: "24" }), tooltip: (tooltips === null || tooltips === void 0 ? void 0 : tooltips.depositAddress)
27751
+ }, children: [jsxRuntime.jsx("div", { className: "tw-absolute tw-right-squid-xs tw-top-squid-xs", children: jsxRuntime.jsx(Button$1, { size: "md", variant: "secondary", label: "Copy" }) }), headerContent] }), jsxRuntime.jsx("div", { className: "tw-relative tw-flex tw-h-squid-m tw-w-full tw-items-end tw-justify-between tw-self-stretch tw-px-squid-m", children: jsxRuntime.jsx(Image$1, { src: fromToken.logoUrl, rounded: "full", shadow: true, size: "xlarge" }) }), jsxRuntime.jsx(TxProgressViewHeader, { title: title, description: description, isWarning: true }), jsxRuntime.jsxs("ul", { className: "tw-squid-property-gradient-bg-even-container tw-flex tw-w-full tw-flex-col tw-items-center tw-justify-start tw-gap-squid-xxs tw-overflow-auto tw-rounded-squid-l tw-pb-squid-s tw-scrollbar-hidden", children: [jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(WalletFilledIcon, { size: "24" }), label: "Deposit address", detail: jsxRuntime.jsx(HashLink, { className: "tw-text-royal-500", formattedHash: depositAddressFormatted, hash: depositAddress, showCopyButton: true, copyIconSize: "24" }), tooltip: (tooltips === null || tooltips === void 0 ? void 0 : tooltips.depositAddress)
27563
27752
  ? {
27564
27753
  tooltipContent: tooltips.depositAddress,
27565
27754
  tooltipWidth: "max",
@@ -69010,7 +69199,7 @@ function SwapProgressView({ steps, isOpen = true, handleClose, handleComplete, s
69010
69199
  }, secondToken: {
69011
69200
  bgColor: toToken.bgColor,
69012
69201
  logoURI: toToken.logoUrl,
69013
- } })) }), jsxRuntime.jsx(TxProgressViewHeader, { title: headerTitle, description: headerDescription }), jsxRuntime.jsxs("ul", { className: "squid-property-gradient-bg-odd-container tw-flex tw-w-full tw-flex-col tw-items-center tw-justify-center tw-gap-squid-xxs tw-rounded-squid-l tw-pb-squid-s tw-pt-squid-xs mobile-xs-height:tw-h-[195px] mobile-sm-height:tw-py-squid-s", children: [jsxRuntime.jsx(PropertyListItem, { icon: isSendTransaction ? (jsxRuntime.jsx(ArrowRightUpCircleIcon, {})) : (jsxRuntime.jsx(ArrowsSwapIcon, {})), label: isSendTransaction ? "Send" : "Swap", detail: isSendTransaction ? (jsxRuntime.jsx(IconLabel, { src: fromToken.logoUrl, rounded: "full", children: fromAmount })) : (jsxRuntime.jsx(Transfer, { from: jsxRuntime.jsx(IconLabel, { src: fromToken.logoUrl, rounded: "full", children: fromAmount }), to: jsxRuntime.jsx(IconLabel, { src: toToken.logoUrl, rounded: "full", children: toAmount }) })) }), jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(ChainLink, { size: "24", strokeWidth: "2" }), label: "Chain", detail: isSendTransaction ? (jsxRuntime.jsxs("span", { className: "tw-flex tw-items-center tw-gap-squid-xxs", children: [jsxRuntime.jsx(Image$1, { size: "medium", rounded: "xxs", src: fromChain.logoUrl }), jsxRuntime.jsx(CaptionText, { children: fromChain.networkName })] })) : (jsxRuntime.jsx(Transfer, { from: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Image$1, { size: "medium", rounded: "xxs", src: fromChain.logoUrl }), jsxRuntime.jsx(CaptionText, { children: fromChain.networkName })] }), to: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Image$1, { size: "medium", rounded: "xxs", src: toChain.logoUrl }), jsxRuntime.jsx(CaptionText, { children: toChain.networkName })] }) })) }), jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(WalletFilledIcon, { size: "24" }), label: "Wallet", detail: jsxRuntime.jsx(Transfer, { from: fromAddressFormatted, to: toAddressFormatted }) }), jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(TimeFliesIcon, {}), label: "Time to complete", detail: swapState === SwapState.PROGRESS ? (jsxRuntime.jsx(Transfer, { from: timer, to: estimatedTimeToComplete })) : swapState === SwapState.COMPLETED ? (jsxRuntime.jsx(CaptionText, { children: timer })) : (jsxRuntime.jsx(CaptionText, { children: estimatedTimeToComplete })) })] })] }), jsxRuntime.jsx(TrackTransactionView, { ref: trackTransactionViewRef, onTxEnd: () => {
69202
+ } })) }), jsxRuntime.jsx(TxProgressViewHeader, { title: headerTitle, description: headerDescription }), jsxRuntime.jsxs("ul", { className: "tw-squid-property-gradient-bg-odd-container tw-flex tw-w-full tw-flex-col tw-items-center tw-justify-center tw-gap-squid-xxs tw-rounded-squid-l tw-pb-squid-s tw-pt-squid-xs mobile-xs-height:tw-h-[195px] mobile-sm-height:tw-py-squid-s", children: [jsxRuntime.jsx(PropertyListItem, { icon: isSendTransaction ? (jsxRuntime.jsx(ArrowRightUpCircleIcon, {})) : (jsxRuntime.jsx(ArrowsSwapIcon, {})), label: isSendTransaction ? "Send" : "Swap", detail: isSendTransaction ? (jsxRuntime.jsx(IconLabel, { src: fromToken.logoUrl, rounded: "full", children: fromAmount })) : (jsxRuntime.jsx(Transfer, { from: jsxRuntime.jsx(IconLabel, { src: fromToken.logoUrl, rounded: "full", children: fromAmount }), to: jsxRuntime.jsx(IconLabel, { src: toToken.logoUrl, rounded: "full", children: toAmount }) })) }), jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(ChainLink, { size: "24", strokeWidth: "2" }), label: "Chain", detail: isSendTransaction ? (jsxRuntime.jsxs("span", { className: "tw-flex tw-items-center tw-gap-squid-xxs", children: [jsxRuntime.jsx(Image$1, { size: "medium", rounded: "xxs", src: fromChain.logoUrl }), jsxRuntime.jsx(CaptionText, { children: fromChain.networkName })] })) : (jsxRuntime.jsx(Transfer, { from: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Image$1, { size: "medium", rounded: "xxs", src: fromChain.logoUrl }), jsxRuntime.jsx(CaptionText, { children: fromChain.networkName })] }), to: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Image$1, { size: "medium", rounded: "xxs", src: toChain.logoUrl }), jsxRuntime.jsx(CaptionText, { children: toChain.networkName })] }) })) }), jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(WalletFilledIcon, { size: "24" }), label: "Wallet", detail: jsxRuntime.jsx(Transfer, { from: fromAddressFormatted, to: toAddressFormatted }) }), jsxRuntime.jsx(PropertyListItem, { icon: jsxRuntime.jsx(TimeFliesIcon, {}), label: "Time to complete", detail: swapState === SwapState.PROGRESS ? (jsxRuntime.jsx(Transfer, { from: timer, to: estimatedTimeToComplete })) : swapState === SwapState.COMPLETED ? (jsxRuntime.jsx(CaptionText, { children: timer })) : (jsxRuntime.jsx(CaptionText, { children: estimatedTimeToComplete })) })] })] }), jsxRuntime.jsx(TrackTransactionView, { ref: trackTransactionViewRef, onTxEnd: () => {
69014
69203
  stopTimer();
69015
69204
  }, onTxStart: () => {
69016
69205
  startTimer();
@@ -69370,16 +69559,6 @@ const parseSquidTheme = (userTheme, themeType) => {
69370
69559
  prefix: THEME_CSS_VARIABLE_PREFIX,
69371
69560
  });
69372
69561
  };
69373
- const remToPx = (rem, baseFontSize = 16) => {
69374
- if (typeof rem === "string")
69375
- return Number(rem.replace("rem", "")) * baseFontSize;
69376
- return rem * baseFontSize;
69377
- };
69378
- const pxToRem = (px, baseFontSize = 16) => {
69379
- if (typeof px === "string")
69380
- return Number(px.replace("px", "")) / baseFontSize;
69381
- return px / baseFontSize;
69382
- };
69383
69562
  function getContrastColor({ r, g, b, }, threshold = 128) {
69384
69563
  const brightness = (r * 299 + g * 587 + b * 114) / 1000;
69385
69564
  return brightness >= threshold ? "dark" : "light";
@@ -69508,10 +69687,12 @@ exports.ActionRow = ActionRow;
69508
69687
  exports.ActionStatusRow = ActionStatusRow;
69509
69688
  exports.ActionWrapper = ActionWrapper;
69510
69689
  exports.AddressButton = AddressButton;
69690
+ exports.AddressHeader = AddressHeader;
69511
69691
  exports.AnimationCard = AnimationCard;
69512
69692
  exports.AnimationWrapper = AnimationWrapper;
69513
69693
  exports.Announcement = Announcement;
69514
69694
  exports.AppContainer = AppContainer;
69695
+ exports.ApplePayIcon = ApplePayIcon;
69515
69696
  exports.Approve = Approve;
69516
69697
  exports.ApproveAction = ApproveAction;
69517
69698
  exports.ArrowBottomTopIcon = ArrowBottomTopIcon;
@@ -69593,6 +69774,7 @@ exports.CompassRoundSolidIcon = CompassRoundSolidIcon;
69593
69774
  exports.ConsoleIcon = ConsoleIcon;
69594
69775
  exports.Copy2Icon = Copy2Icon;
69595
69776
  exports.CopyOutlinedIcon = CopyOutlinedIcon;
69777
+ exports.CreditCardIcon = CreditCardIcon;
69596
69778
  exports.CrossAnimatedIcon = CrossAnimatedIcon;
69597
69779
  exports.CrossedOutSunSolidIcon = CrossedOutSunSolidIcon;
69598
69780
  exports.DashboardFast = DashboardFast;
@@ -69635,6 +69817,7 @@ exports.FilterTimelineIcon = FilterTimelineIcon;
69635
69817
  exports.GasIcon = GasIcon;
69636
69818
  exports.GhostIcon = GhostIcon;
69637
69819
  exports.GithubIcon = GithubIcon;
69820
+ exports.GooglePayIcon = GooglePayIcon;
69638
69821
  exports.HashLink = HashLink;
69639
69822
  exports.HeadingText = HeadingText;
69640
69823
  exports.HeartSmallIcon = HeartSmallIcon;
@@ -69829,6 +70012,7 @@ exports.transactionSuccessAnimation = transactionSuccessAnimation;
69829
70012
  exports.useCollapsibleMenu = useCollapsibleMenu;
69830
70013
  exports.useDropdownMenu = useDropdownMenu;
69831
70014
  exports.useMediaQuery = useMediaQuery;
70015
+ exports.useNumericInput = useNumericInput;
69832
70016
  exports.useOnResize = useOnResize;
69833
70017
  exports.useRect = useRect;
69834
70018
  exports.useTimer = useTimer;