@0xsquid/ui 0.21.0 → 0.21.1

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 (27) hide show
  1. package/dist/cjs/index.js +46 -25
  2. package/dist/cjs/types/components/badges/BadgeImage.d.ts +6 -1
  3. package/dist/cjs/types/components/buttons/Button.d.ts +3 -1
  4. package/dist/cjs/types/components/buttons/Chip.d.ts +1 -2
  5. package/dist/cjs/types/components/controls/Input.d.ts +2 -1
  6. package/dist/cjs/types/components/controls/RangeInput.d.ts +2 -1
  7. package/dist/cjs/types/components/layout/NavigationBar.d.ts +3 -1
  8. package/dist/cjs/types/components/lists/ListItem.d.ts +2 -1
  9. package/dist/cjs/types/stories/badges/BadgeImage.stories.d.ts +4 -0
  10. package/dist/cjs/types/stories/buttons/Button.stories.d.ts +2 -0
  11. package/dist/cjs/types/stories/controls/Input.stories.d.ts +1 -0
  12. package/dist/cjs/types/stories/controls/RangeInput.stories.d.ts +1 -0
  13. package/dist/esm/index.js +46 -25
  14. package/dist/esm/types/components/badges/BadgeImage.d.ts +6 -1
  15. package/dist/esm/types/components/buttons/Button.d.ts +3 -1
  16. package/dist/esm/types/components/buttons/Chip.d.ts +1 -2
  17. package/dist/esm/types/components/controls/Input.d.ts +2 -1
  18. package/dist/esm/types/components/controls/RangeInput.d.ts +2 -1
  19. package/dist/esm/types/components/layout/NavigationBar.d.ts +3 -1
  20. package/dist/esm/types/components/lists/ListItem.d.ts +2 -1
  21. package/dist/esm/types/stories/badges/BadgeImage.stories.d.ts +4 -0
  22. package/dist/esm/types/stories/buttons/Button.stories.d.ts +2 -0
  23. package/dist/esm/types/stories/controls/Input.stories.d.ts +1 -0
  24. package/dist/esm/types/stories/controls/RangeInput.stories.d.ts +1 -0
  25. package/dist/index.css +1 -1
  26. package/dist/index.d.ts +22 -12
  27. package/package.json +2 -2
package/dist/cjs/index.js CHANGED
@@ -2637,24 +2637,41 @@ const mainImageSizeClassMap = {
2637
2637
  md: 'tw-w-10 tw-h-10',
2638
2638
  };
2639
2639
  const loadingSkeletonClassName = 'tw-bg-grey-500';
2640
- function BadgeImage({ imageUrl, badgeUrl, size = 'sm', extraMarginForBadge, rounded = false, }) {
2640
+ var ImageState;
2641
+ (function (ImageState) {
2642
+ ImageState[ImageState["LOADING"] = 0] = "LOADING";
2643
+ ImageState[ImageState["LOADED"] = 1] = "LOADED";
2644
+ ImageState[ImageState["ERROR"] = 2] = "ERROR";
2645
+ })(ImageState || (ImageState = {}));
2646
+ function BadgeImage({ imageUrl: _imageUrl, badgeUrl, size = 'sm', extraMarginForBadge, rounded = false, placeholderImageUrl, }) {
2647
+ const imageUrl = (_imageUrl === null || _imageUrl === void 0 ? void 0 : _imageUrl.trim()) || placeholderImageUrl;
2641
2648
  const [imagesLoadState, setImageLoadState] = React.useState({
2642
- badgeLoaded: false,
2643
- mainImageLoaded: false,
2649
+ badge: ImageState.LOADING,
2650
+ mainImage: ImageState.LOADING,
2644
2651
  });
2645
2652
  const badgeImageClassName = cn('tw-absolute -tw-right-1/3 tw-bottom-0 tw-z-10 tw-m-0 -tw-translate-x-1/3 tw-rounded-md tw-border-[1px] tw-border-grey-800', badgeSizeClassMap[size]);
2646
2653
  const mainImageClassName = cn('tw-h-full tw-w-full tw-absolute', rounded ? ' tw-rounded-full' : 'tw-rounded-squid-xs');
2647
- return imageUrl ? (jsxRuntime.jsxs("div", { className: cn('tw-relative', extraMarginForBadge && badgeUrl ? 'tw-mr-1.5' : null, mainImageSizeClassMap[size]), children: [!imagesLoadState.mainImageLoaded && (jsxRuntime.jsx("div", { className: cn(mainImageClassName, loadingSkeletonClassName) })), jsxRuntime.jsx("img", { src: imageUrl, alt: "", onLoad: () => {
2654
+ return imageUrl ? (jsxRuntime.jsxs("div", { className: cn('tw-relative', extraMarginForBadge && badgeUrl ? 'tw-mr-1.5' : null, mainImageSizeClassMap[size]), children: [imagesLoadState.mainImage !== ImageState.LOADED &&
2655
+ (placeholderImageUrl ? (jsxRuntime.jsx("img", { src: placeholderImageUrl, alt: "", className: mainImageClassName })) : (jsxRuntime.jsx("div", { className: cn(mainImageClassName, loadingSkeletonClassName) }))), jsxRuntime.jsx("img", { src: imageUrl, alt: "", onError: () => {
2656
+ setImageLoadState((prevState) => (Object.assign(Object.assign({}, prevState), { mainImage: ImageState.ERROR })));
2657
+ }, onLoad: () => {
2648
2658
  // update state when image is fully loaded
2649
- setImageLoadState((prevState) => (Object.assign(Object.assign({}, prevState), { mainImageLoaded: true })));
2659
+ setImageLoadState((prevState) => (Object.assign(Object.assign({}, prevState), { mainImage: ImageState.LOADED })));
2650
2660
  }, className: cn(mainImageClassName,
2651
2661
  // hide main image while it is loading, and display it when it is loaded
2652
- imagesLoadState.mainImageLoaded ? 'tw-block' : 'tw-hidden') }), badgeUrl ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [!imagesLoadState.badgeLoaded && (jsxRuntime.jsx("div", { className: cn(badgeImageClassName, loadingSkeletonClassName) })), jsxRuntime.jsx("img", { src: badgeUrl, alt: "", onLoad: () => {
2662
+ imagesLoadState.mainImage === ImageState.LOADED
2663
+ ? 'tw-block'
2664
+ : 'tw-hidden') }), badgeUrl ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [imagesLoadState.badge !== ImageState.LOADED &&
2665
+ (placeholderImageUrl ? (jsxRuntime.jsx("img", { src: placeholderImageUrl, alt: "", className: badgeImageClassName })) : (jsxRuntime.jsx("div", { className: cn(badgeImageClassName, loadingSkeletonClassName) }))), jsxRuntime.jsx("img", { src: badgeUrl, alt: "", onError: () => {
2666
+ setImageLoadState((prevState) => (Object.assign(Object.assign({}, prevState), { badge: ImageState.ERROR })));
2667
+ }, onLoad: () => {
2653
2668
  // update state when badge image is fully loaded
2654
- setImageLoadState((prevState) => (Object.assign(Object.assign({}, prevState), { badgeLoaded: true })));
2669
+ setImageLoadState((prevState) => (Object.assign(Object.assign({}, prevState), { badge: ImageState.LOADED })));
2655
2670
  }, className: cn(badgeImageClassName,
2656
2671
  // hide badge image while it is loading, and display it when it is loaded
2657
- imagesLoadState.badgeLoaded ? 'tw-block' : 'tw-hidden') })] })) : null] })) : null;
2672
+ imagesLoadState.badge === ImageState.LOADED
2673
+ ? 'tw-block'
2674
+ : 'tw-hidden') })] })) : null] })) : null;
2658
2675
  }
2659
2676
 
2660
2677
  /******************************************************************************
@@ -2961,6 +2978,11 @@ function WalletLink({ imageURI, address }) {
2961
2978
  return (jsxRuntime.jsx(IconLabel, { src: imageURI, variant: "round", children: jsxRuntime.jsx(HashLink, { hash: address, showCopyButton: true, children: jsxRuntime.jsx(BodyText, { size: "small", children: truncateHash(address) }) }) }));
2962
2979
  }
2963
2980
 
2981
+ function Chip(_a) {
2982
+ var { label, icon } = _a, props = __rest$1(_a, ["label", "icon"]);
2983
+ return (jsxRuntime.jsx("div", Object.assign({}, props, { className: cn('tw-flex tw-h-squid-m tw-items-center tw-justify-center tw-rounded-squid-m tw-bg-grey-500 tw-text-grey-900', icon && 'tw-w-squid-m', props.className), children: label ? (jsxRuntime.jsx(CaptionText, { className: "tw-min-w-squid-xl tw-text-nowrap tw-px-squid-xxs tw-text-center", children: label })) : (icon) })));
2984
+ }
2985
+
2964
2986
  const baseButtonClassName = 'tw-border tw-relative tw-overflow-hidden tw-group/base-button tw-flex tw-items-center tw-justify-center';
2965
2987
  const buttonSizeClassMap = {
2966
2988
  md: 'tw-px-squid-xs tw-py-squid-xxs tw-min-w-[60px] tw-h-squid-xl',
@@ -2980,7 +3002,8 @@ const buttonVariantClassMap = {
2980
3002
  const buttonDisabledClass = '!tw-bg-grey-800 !tw-text-grey-600 tw-cursor-not-allowed';
2981
3003
  const loadingClassname = 'tw-invisible tw-opacity-0';
2982
3004
  function Button$1(_a) {
2983
- var { label, disabled, size, variant, icon, link, isLoading = false } = _a, props = __rest$1(_a, ["label", "disabled", "size", "variant", "icon", "link", "isLoading"]);
3005
+ var { label, disabled, size, variant, icon, link, isLoading = false, chip } = _a, props = __rest$1(_a, ["label", "disabled", "size", "variant", "icon", "link", "isLoading", "chip"]);
3006
+ const chipElement = chip ? (jsxRuntime.jsx(Chip, Object.assign({}, chip, { className: cn('tw-absolute -tw-right-squid-xxs -tw-top-squid-xxs tw-z-10', chip.className) }))) : null;
2984
3007
  const children = (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [!disabled && !isLoading && (jsxRuntime.jsx(ButtonHoverOverlay, { className: roundedClassMap[size] })), jsxRuntime.jsx("div", { className: "tw-relative tw-z-[5] tw-flex tw-items-center tw-justify-center tw-gap-squid-xxs", children: !label && !icon ? (props.children) : size === 'lg' ? (jsxRuntime.jsx("span", { className: "tw-px-squid-m", children: jsxRuntime.jsx(BodyText, { className: isLoading ? loadingClassname : '', size: "medium", children: label }) })) : size === 'md' ? (label && !icon ? (
2985
3008
  // label only
2986
3009
  jsxRuntime.jsx(BodyText, { className: isLoading ? loadingClassname : '', size: "small", children: label })) : !label && icon ? (
@@ -2994,9 +3017,9 @@ function Button$1(_a) {
2994
3017
  // custom classes from props
2995
3018
  props.className);
2996
3019
  if (link) {
2997
- return (jsxRuntime.jsx("a", { "aria-disabled": disabled, href: disabled ? undefined : link, target: "_blank", className: className, children: children }));
3020
+ return (jsxRuntime.jsxs("div", { className: "tw-relative tw-w-full", children: [jsxRuntime.jsx("a", { "aria-disabled": disabled, href: disabled ? undefined : link, target: "_blank", className: className, children: children }), chipElement] }));
2998
3021
  }
2999
- return (jsxRuntime.jsx("button", Object.assign({}, props, { "aria-disabled": disabled || isLoading, className: className, disabled: disabled || isLoading, children: children })));
3022
+ return (jsxRuntime.jsxs("div", { className: "tw-relative tw-w-full", children: [jsxRuntime.jsx("button", Object.assign({}, props, { "aria-disabled": disabled || isLoading, className: className, disabled: disabled || isLoading, children: children })), chipElement] }));
3000
3023
  }
3001
3024
  const ButtonHoverOverlay = ({ className }) => {
3002
3025
  return (jsxRuntime.jsx("span", { className: cn('tw-absolute tw-inset-0 tw-z-0 tw-hidden tw-h-full tw-w-full tw-bg-material-light-thin group-hover/base-button:tw-block', className) }));
@@ -3092,7 +3115,7 @@ function SearchIcon() {
3092
3115
  }
3093
3116
 
3094
3117
  function Input(_a) {
3095
- var { placeholder = 'Search', showIcon = true, className, icon, isError = false, containerClassName, actionButtonProps, autoFocusTimeout, inputRef: inputRefProp } = _a, props = __rest$1(_a, ["placeholder", "showIcon", "className", "icon", "isError", "containerClassName", "actionButtonProps", "autoFocusTimeout", "inputRef"]);
3118
+ var { placeholder = 'Search', showIcon = true, className, icon, isError = false, isWarning = false, containerClassName, actionButtonProps, autoFocusTimeout, inputRef: inputRefProp } = _a, props = __rest$1(_a, ["placeholder", "showIcon", "className", "icon", "isError", "isWarning", "containerClassName", "actionButtonProps", "autoFocusTimeout", "inputRef"]);
3096
3119
  const showActionButton = !!actionButtonProps;
3097
3120
  const localInputRef = React.useRef(null);
3098
3121
  const inputRef = inputRefProp !== null && inputRefProp !== void 0 ? inputRefProp : localInputRef;
@@ -3105,7 +3128,7 @@ function Input(_a) {
3105
3128
  }, autoFocusTimeout);
3106
3129
  return () => clearTimeout(timeoutId);
3107
3130
  }, [autoFocusTimeout]);
3108
- return (jsxRuntime.jsxs("div", { className: cn('tw-relative tw-w-full tw-text-grey-600', containerClassName), children: [jsxRuntime.jsx("input", Object.assign({}, props, { ref: inputRef, "aria-invalid": isError, className: cn('tw-relative tw-h-10 tw-w-full tw-rounded-full tw-border tw-border-material-light-thin tw-bg-grey-900 tw-text-body-small tw-font-typography-regular tw-text-grey-300 placeholder:tw-text-grey-600 invalid:tw-outline-status-negative', showIcon ? 'tw-pl-[40px]' : 'tw-px-squid-s', showActionButton ? 'tw-pr-[70px]' : 'tw-pr-2.5', isError && '!tw-outline-status-negative', className), placeholder: placeholder })), showIcon ? (jsxRuntime.jsx("div", { className: "tw-absolute tw-inset-y-0 tw-left-0 tw-flex tw-h-full tw-w-[44px] tw-items-center tw-justify-center tw-px-squid-xs", children: icon || jsxRuntime.jsx(SearchIcon, {}) })) : null, showActionButton ? (jsxRuntime.jsx("div", { className: "tw-absolute tw-inset-y-0 tw-right-1.5 tw-flex tw-items-center tw-justify-center", children: jsxRuntime.jsx(InputActionButton, Object.assign({}, actionButtonProps)) })) : null] }));
3131
+ return (jsxRuntime.jsxs("div", { className: cn('tw-relative tw-w-full tw-text-grey-600', containerClassName), children: [jsxRuntime.jsx("input", Object.assign({}, props, { ref: inputRef, "aria-invalid": isError, className: cn('tw-relative tw-h-10 tw-w-full tw-rounded-full tw-border tw-border-material-light-thin tw-bg-grey-900 tw-text-body-small tw-font-typography-regular tw-text-grey-300 placeholder:tw-text-grey-600 invalid:tw-outline-status-negative', showIcon ? 'tw-pl-[40px]' : 'tw-px-squid-s', showActionButton ? 'tw-pr-[70px]' : 'tw-pr-2.5', isError && '!tw-outline-status-negative', className, isWarning && 'focus-visible:tw-outline-status-partial'), placeholder: placeholder })), showIcon ? (jsxRuntime.jsx("div", { className: "tw-absolute tw-inset-y-0 tw-left-0 tw-flex tw-h-full tw-w-[44px] tw-items-center tw-justify-center tw-px-squid-xs", children: icon || jsxRuntime.jsx(SearchIcon, {}) })) : null, showActionButton ? (jsxRuntime.jsx("div", { className: "tw-absolute tw-inset-y-0 tw-right-1.5 tw-flex tw-items-center tw-justify-center", children: jsxRuntime.jsx(InputActionButton, Object.assign({}, actionButtonProps)) })) : null] }));
3109
3132
  }
3110
3133
  const InputActionButton = ({ onClick, variant = 'tertiary', label = 'Paste', }) => {
3111
3134
  return (jsxRuntime.jsx(Button$1, { size: "md", variant: variant, onClick: onClick, className: "!tw-h-[30px] !tw-w-fit !tw-min-w-0", children: jsxRuntime.jsx(CaptionText, { children: label }) }));
@@ -16709,11 +16732,6 @@ function generateMarkerLines(count) {
16709
16732
  return allShadows.join(', ');
16710
16733
  }
16711
16734
 
16712
- function Chip(_a) {
16713
- var { label, icon } = _a, props = __rest$1(_a, ["label", "icon"]);
16714
- return (jsxRuntime.jsx("div", Object.assign({}, props, { className: cn('tw-flex tw-h-squid-m tw-items-center tw-justify-center tw-rounded-squid-m tw-bg-grey-500 tw-text-grey-900', icon && 'tw-w-squid-m', props.className), children: label ? (jsxRuntime.jsx(CaptionText, { className: "tw-min-w-squid-xl tw-text-nowrap tw-px-squid-xxs tw-text-center", children: label })) : (icon) })));
16715
- }
16716
-
16717
16735
  function Boost({ boostMode, onToggleBoostMode, estimatedTime, canToggleBoostMode = true, tooltip, }) {
16718
16736
  const boostIndicatorRef = React.useRef(null);
16719
16737
  function handleToggleBoostMode() {
@@ -17081,7 +17099,7 @@ const collapsedListItemClassMap = {
17081
17099
  large: 'tw-w-[80px]',
17082
17100
  };
17083
17101
  function ListItem(_a) {
17084
- var { itemTitle, mainImageUrl, subtitle, subtitleOnHover, detail, icon, secondaryImageUrl, size = 'large', mainIcon, className, isSelected, onDetailClick, showDetailOnHoverOnly, rounded = false, detailButtonClassName, loading, containerProps, compactOnMobile } = _a, props = __rest$1(_a, ["itemTitle", "mainImageUrl", "subtitle", "subtitleOnHover", "detail", "icon", "secondaryImageUrl", "size", "mainIcon", "className", "isSelected", "onDetailClick", "showDetailOnHoverOnly", "rounded", "detailButtonClassName", "loading", "containerProps", "compactOnMobile"]);
17102
+ var { itemTitle, mainImageUrl, subtitle, subtitleOnHover, detail, icon, secondaryImageUrl, placeholderImageUrl, size = 'large', mainIcon, className, isSelected, onDetailClick, showDetailOnHoverOnly, rounded = false, detailButtonClassName, loading, containerProps, compactOnMobile } = _a, props = __rest$1(_a, ["itemTitle", "mainImageUrl", "subtitle", "subtitleOnHover", "detail", "icon", "secondaryImageUrl", "placeholderImageUrl", "size", "mainIcon", "className", "isSelected", "onDetailClick", "showDetailOnHoverOnly", "rounded", "detailButtonClassName", "loading", "containerProps", "compactOnMobile"]);
17085
17103
  const subtitleClassName = cn('tw-h-[14px] tw-max-w-full tw-truncate !tw-leading-[16px] tw-text-grey-500', compactOnMobile ? 'tw-hidden mobile-lg:tw-block' : 'tw-block');
17086
17104
  // 'small' variant does not have detail
17087
17105
  const showDetail = size === 'large' && (!!detail || !!icon || showDetailOnHoverOnly);
@@ -17114,7 +17132,7 @@ function ListItem(_a) {
17114
17132
  const itemProps = isInteractive ? props : {};
17115
17133
  return (jsxRuntime.jsx("li", Object.assign({}, containerProps, { className: cn('tw-flex tw-max-w-full tw-bg-grey-900 tw-text-grey-300', listItemSizeMap[size], compactOnMobile
17116
17134
  ? `${collapsedListItemClassMap[size]} mobile-lg:tw-w-full`
17117
- : 'tw-w-full', className), children: jsxRuntime.jsxs(ItemTag, Object.assign({}, itemProps, { className: cn('tw-group/list-item tw-flex tw-w-full tw-max-w-full tw-items-center tw-justify-start tw-gap-squid-xs tw-rounded-squid-s tw-px-squid-xs tw-py-squid-xxs', isSelected && 'tw-bg-material-light-thin', isInteractive && 'hover:tw-bg-material-light-thin'), children: [size === 'large' ? (jsxRuntime.jsx("div", { className: "tw-h-10 tw-w-10", children: mainIcon ? (mainIcon) : (jsxRuntime.jsx(BadgeImage, { extraMarginForBadge: false, imageUrl: mainImageUrl, badgeUrl: secondaryImageUrl, size: "md", rounded: rounded })) })) : (jsxRuntime.jsx("div", { className: "tw-flex tw-min-h-[30px] tw-min-w-[30px] tw-items-center tw-justify-center", children: mainIcon ? (mainIcon) : (jsxRuntime.jsx("img", { src: mainImageUrl, className: "tw-h-[30px] tw-w-[30px] tw-rounded-squid-xs" })) })), jsxRuntime.jsxs("div", { className: cn('tw-flex tw-h-[40px] tw-flex-1 tw-flex-col tw-items-start tw-justify-center tw-gap-squid-xxs',
17135
+ : 'tw-w-full', className), children: jsxRuntime.jsxs(ItemTag, Object.assign({}, itemProps, { className: cn('tw-group/list-item tw-flex tw-w-full tw-max-w-full tw-items-center tw-justify-start tw-gap-squid-xs tw-rounded-squid-s tw-px-squid-xs tw-py-squid-xxs', isSelected && 'tw-bg-material-light-thin', isInteractive && 'hover:tw-bg-material-light-thin'), children: [size === 'large' ? (jsxRuntime.jsx("div", { className: "tw-h-10 tw-w-10", children: mainIcon ? (mainIcon) : (jsxRuntime.jsx(BadgeImage, { extraMarginForBadge: false, imageUrl: mainImageUrl, badgeUrl: secondaryImageUrl, placeholderImageUrl: placeholderImageUrl, size: "md", rounded: rounded })) })) : (jsxRuntime.jsx("div", { className: "tw-flex tw-min-h-[30px] tw-min-w-[30px] tw-items-center tw-justify-center", children: mainIcon ? (mainIcon) : (jsxRuntime.jsx("img", { src: mainImageUrl, className: "tw-h-[30px] tw-w-[30px] tw-rounded-squid-xs" })) })), jsxRuntime.jsxs("div", { className: cn('tw-flex tw-h-[40px] tw-flex-1 tw-flex-col tw-items-start tw-justify-center tw-gap-squid-xxs',
17118
17136
  // 'large' variant has extra padding
17119
17137
  size === 'large' ? 'tw-w-[56%] tw-pl-squid-xxs' : 'tw-w-[67%]'), children: [typeof itemTitle === 'string' ? (jsxRuntime.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' &&
17120
17138
  ((loading === null || loading === void 0 ? void 0 : loading.subtitle) ? (loadingComponent()) : subtitle ? (jsxRuntime.jsxs(CaptionText, { className: subtitleClassName, children: [subtitleOnHover && (jsxRuntime.jsx(CaptionText, { className: cn(subtitleClassName, 'tw-hidden group-hover/list-item:tw-block'), children: subtitleOnHover })), subtitle] })) : null)] }), showDetail && (jsxRuntime.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
@@ -17508,7 +17526,7 @@ function NavigationBar({ title, displayBackButton = false, logoUrl, transparent
17508
17526
  ? action.labelOrIcon
17509
17527
  : undefined, className: "tw-text-grey-300", icon: typeof action.labelOrIcon === 'string'
17510
17528
  ? null
17511
- : action.labelOrIcon, onClick: action.onClick }) }), action.id))) })] }), title ? (jsxRuntime.jsx("div", { className: "tw-flex tw-h-squid-xxl tw-items-center tw-px-squid-m tw-py-squid-xxs mobile-lg:tw-px-squid-l", children: jsxRuntime.jsx(HeadingText, { size: "small", children: title }) })) : null] }));
17529
+ : action.labelOrIcon, onClick: action.onClick, chip: action.chip }) }), action.id))) })] }), title ? (jsxRuntime.jsx("div", { className: "tw-flex tw-h-squid-xxl tw-items-center tw-px-squid-m tw-py-squid-xxs mobile-lg:tw-px-squid-l", children: jsxRuntime.jsx(HeadingText, { size: "small", children: title }) })) : null] }));
17512
17530
  }
17513
17531
 
17514
17532
  const createStoreImpl = (createState) => {
@@ -24434,6 +24452,7 @@ function NumericInput({ priceImpactPercentage, balance = '0', error, criticalPri
24434
24452
  }
24435
24453
  };
24436
24454
  const handleSwitchInputMode = () => {
24455
+ var _a;
24437
24456
  if (inputValue !== '') {
24438
24457
  const convertedAmount = inputMode === InputMode.TOKEN
24439
24458
  ? convertTokenAmountToUSD(inputValue, token.price, maxUsdDecimals)
@@ -24441,6 +24460,7 @@ function NumericInput({ priceImpactPercentage, balance = '0', error, criticalPri
24441
24460
  setInputValue(convertedAmount);
24442
24461
  }
24443
24462
  setInputMode((prevMode) => prevMode === InputMode.TOKEN ? InputMode.USD : InputMode.TOKEN);
24463
+ (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
24444
24464
  };
24445
24465
  const getRawAmounts = (amount) => {
24446
24466
  if (amount === '')
@@ -24488,7 +24508,7 @@ function NumericInput({ priceImpactPercentage, balance = '0', error, criticalPri
24488
24508
  const { isTokenAmountVerySmall, isUsdAmountVerySmall } = getRawAmounts(inputValue);
24489
24509
  const amountFormatted = React.useMemo(() => {
24490
24510
  var _a;
24491
- if (inputValue === '')
24511
+ if (isNaN(Number(inputValue)) || inputValue === '')
24492
24512
  return '0';
24493
24513
  if (inputMode === InputMode.TOKEN) {
24494
24514
  if (direction === 'from') {
@@ -24516,9 +24536,10 @@ function NumericInput({ priceImpactPercentage, balance = '0', error, criticalPri
24516
24536
  const balanceFormatted = React.useMemo(() => {
24517
24537
  return formatAmount(balance !== null && balance !== void 0 ? balance : '0');
24518
24538
  }, [balance]);
24539
+ const inputRef = React.useRef(null);
24519
24540
  return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [isInteractive && !isLoading ? (jsxRuntime.jsxs("form", { className: "tw-relative tw-h-[80.6px] tw-px-squid-xs tw-pb-[15px] tw-pt-[5px] tw-text-heading-small tw-font-heading-regular mobile-lg:tw-h-[75px] mobile-lg:tw-px-squid-m", onSubmit: (e) => {
24520
24541
  e.preventDefault();
24521
- }, children: [inputMode === InputMode.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", { 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-400 focus:tw-outline-none', inputMode === InputMode.USD && 'tw-pl-[33px]') })] })) : (jsxRuntime.jsx("div", { className: cn('tw-w-full tw-px-squid-xs tw-pb-[15px] tw-pt-[5px] mobile-lg:tw-px-squid-m', isLoading && loadingClassName), children: jsxRuntime.jsx("div", { className: "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-font-heading-regular 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
24542
+ }, children: [inputMode === InputMode.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", { 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-400 focus:tw-outline-none', inputMode === InputMode.USD && 'tw-pl-[33px]') })] })) : (jsxRuntime.jsx("div", { className: cn('tw-w-full tw-px-squid-xs tw-pb-[15px] tw-pt-[5px] mobile-lg:tw-px-squid-m', isLoading && loadingClassName), children: jsxRuntime.jsx("div", { className: "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-font-heading-regular 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
24522
24543
  ? undefined
24523
24544
  : inputMode === InputMode.TOKEN
24524
24545
  ? inputModeButton === null || inputModeButton === void 0 ? void 0 : inputModeButton.tokenModeTooltip
@@ -24647,7 +24668,7 @@ function CirclePlusIcon({ size = '24', className, }) {
24647
24668
  return (jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", className: className, children: jsxRuntime.jsx("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12ZM16 12.9999C16.5523 12.9999 17 12.5522 17 11.9999C17 11.4476 16.5523 10.9999 16 10.9999L13 11V8.00012C13 7.44784 12.5523 7.00012 12 7.00012C11.4477 7.00012 11 7.44784 11 8.00012V11L7.99997 11.0001C7.44769 11.0001 6.99998 11.4479 7 12.0001C7.00002 12.5524 7.44774 13.0001 8.00003 13.0001L11 13V16C11 16.5523 11.4477 17 12 17C12.5523 17 13 16.5523 13 16V13L16 12.9999Z", fill: "currentColor" }) }));
24648
24669
  }
24649
24670
 
24650
- function RangeInput({ label, initialValue, onChange, min = 0, max = 99, }) {
24671
+ function RangeInput({ label, initialValue, onChange, min = 0, max = 99, isWarning = false, }) {
24651
24672
  const [pressedButton, setPressedButton] = React.useState(null);
24652
24673
  const inputRef = React.useRef(null);
24653
24674
  const mousePressedTimeoutRef = React.useRef(null);
@@ -24730,7 +24751,7 @@ function RangeInput({ label, initialValue, onChange, min = 0, max = 99, }) {
24730
24751
  if (event.key === 'Enter' || event.key === ' ') {
24731
24752
  handleUpdateValue();
24732
24753
  }
24733
- }, onMouseLeave: handleUpdateValue, className: cn('tw-flex tw-h-full tw-items-center tw-justify-center tw-self-stretch tw-rounded-squid-xs tw-p-squid-xxs tw-text-left tw-text-caption !tw-font-medium tw-leading-[10px] placeholder-shown:tw-text-grey-600 hover:tw-bg-material-light-thin'), children: jsxRuntime.jsx(CircleMinusIcon, {}) }), jsxRuntime.jsxs("div", { className: "tw-relative", children: [jsxRuntime.jsx(Input, { step: 0.1, min: min, max: max, defaultValue: initialValue || '0', placeholder: "0", showIcon: false, type: "number", inputRef: inputRef, onChange: (event) => {
24754
+ }, onMouseLeave: handleUpdateValue, className: cn('tw-flex tw-h-full tw-items-center tw-justify-center tw-self-stretch tw-rounded-squid-xs tw-p-squid-xxs tw-text-left tw-text-caption !tw-font-medium tw-leading-[10px] placeholder-shown:tw-text-grey-600 hover:tw-bg-material-light-thin'), children: jsxRuntime.jsx(CircleMinusIcon, {}) }), jsxRuntime.jsxs("div", { className: "tw-relative", children: [jsxRuntime.jsx(Input, { step: 0.1, min: min, max: max, isWarning: isWarning, defaultValue: initialValue || '0', placeholder: "0", showIcon: false, type: "number", inputRef: inputRef, onChange: (event) => {
24734
24755
  var _a;
24735
24756
  if (!inputDecoratorRef.current || !inputRef.current)
24736
24757
  return;
@@ -4,7 +4,12 @@ interface BadgeImageProps {
4
4
  size?: BadgeSize;
5
5
  extraMarginForBadge?: boolean;
6
6
  rounded?: boolean;
7
+ /**
8
+ * The URL of the placeholder image. Will be displayed while the images are loading
9
+ * or if there's an error loading them.
10
+ */
11
+ placeholderImageUrl?: string;
7
12
  }
8
13
  type BadgeSize = 'sm' | 'md';
9
- export declare function BadgeImage({ imageUrl, badgeUrl, size, extraMarginForBadge, rounded, }: BadgeImageProps): import("react/jsx-runtime").JSX.Element | null;
14
+ export declare function BadgeImage({ imageUrl: _imageUrl, badgeUrl, size, extraMarginForBadge, rounded, placeholderImageUrl, }: BadgeImageProps): import("react/jsx-runtime").JSX.Element | null;
10
15
  export {};
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { ButtonSize, ButtonVariant } from '../../types/components';
3
+ import { ChipProps } from './Chip';
3
4
  interface ButtonProps extends React.HTMLAttributes<HTMLButtonElement> {
4
5
  label?: string;
5
6
  icon?: React.ReactNode;
@@ -8,6 +9,7 @@ interface ButtonProps extends React.HTMLAttributes<HTMLButtonElement> {
8
9
  disabled?: boolean;
9
10
  link?: string;
10
11
  isLoading?: boolean;
12
+ chip?: ChipProps;
11
13
  }
12
- export declare function Button({ label, disabled, size, variant, icon, link, isLoading, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function Button({ label, disabled, size, variant, icon, link, isLoading, chip, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
13
15
  export {};
@@ -1,7 +1,6 @@
1
1
  /// <reference types="react" />
2
- interface ChipProps extends React.HTMLAttributes<HTMLDivElement> {
2
+ export interface ChipProps extends React.HTMLAttributes<HTMLDivElement> {
3
3
  label?: string;
4
4
  icon?: React.ReactNode;
5
5
  }
6
6
  export declare function Chip({ label, icon, ...props }: ChipProps): import("react/jsx-runtime").JSX.Element;
7
- export {};
@@ -5,12 +5,13 @@ interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
5
5
  showIcon?: boolean;
6
6
  icon?: React.ReactNode;
7
7
  isError?: boolean;
8
+ isWarning?: boolean;
8
9
  containerClassName?: string;
9
10
  actionButtonProps?: InputActionButtonProps;
10
11
  autoFocusTimeout?: number;
11
12
  inputRef?: React.RefObject<HTMLInputElement>;
12
13
  }
13
- export declare function Input({ placeholder, showIcon, className, icon, isError, containerClassName, actionButtonProps, autoFocusTimeout, inputRef: inputRefProp, ...props }: InputProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function Input({ placeholder, showIcon, className, icon, isError, isWarning, containerClassName, actionButtonProps, autoFocusTimeout, inputRef: inputRefProp, ...props }: InputProps): import("react/jsx-runtime").JSX.Element;
14
15
  type InputActionButtonProps = {
15
16
  onClick?: () => void;
16
17
  variant?: ButtonVariant;
@@ -4,6 +4,7 @@ interface RangeInputProps {
4
4
  onChange?: (value: string) => void;
5
5
  min?: number;
6
6
  max?: number;
7
+ isWarning?: boolean;
7
8
  }
8
- export declare function RangeInput({ label, initialValue, onChange, min, max, }: RangeInputProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function RangeInput({ label, initialValue, onChange, min, max, isWarning, }: RangeInputProps): import("react/jsx-runtime").JSX.Element;
9
10
  export {};
@@ -1,10 +1,12 @@
1
1
  /// <reference types="react" />
2
+ import { ChipProps } from '../buttons';
2
3
  import { TooltipProps } from '../controls';
3
- type ActionButton = {
4
+ export type ActionButton = {
4
5
  labelOrIcon: string | React.ReactNode;
5
6
  onClick?: () => void;
6
7
  id: React.Key;
7
8
  tooltip?: Omit<TooltipProps, 'children'>;
9
+ chip?: ChipProps;
8
10
  };
9
11
  interface NavigationBarProps {
10
12
  title?: string;
@@ -3,6 +3,7 @@ interface ListItemProps extends React.HTMLAttributes<HTMLButtonElement> {
3
3
  itemTitle: string | React.ReactNode;
4
4
  mainImageUrl?: string;
5
5
  secondaryImageUrl?: string;
6
+ placeholderImageUrl?: string;
6
7
  subtitle?: string;
7
8
  subtitleOnHover?: React.ReactNode;
8
9
  detail?: string;
@@ -22,5 +23,5 @@ interface ListItemProps extends React.HTMLAttributes<HTMLButtonElement> {
22
23
  compactOnMobile?: boolean;
23
24
  }
24
25
  type ListItemSize = 'small' | 'large';
25
- export declare function ListItem({ itemTitle, mainImageUrl, subtitle, subtitleOnHover, detail, icon, secondaryImageUrl, size, mainIcon, className, isSelected, onDetailClick, showDetailOnHoverOnly, rounded, detailButtonClassName, loading, containerProps, compactOnMobile, ...props }: ListItemProps): import("react/jsx-runtime").JSX.Element;
26
+ export declare function ListItem({ itemTitle, mainImageUrl, subtitle, subtitleOnHover, detail, icon, secondaryImageUrl, placeholderImageUrl, size, mainIcon, className, isSelected, onDetailClick, showDetailOnHoverOnly, rounded, detailButtonClassName, loading, containerProps, compactOnMobile, ...props }: ListItemProps): import("react/jsx-runtime").JSX.Element;
26
27
  export {};
@@ -9,3 +9,7 @@ export declare const ExtraMarginForBadge: Story;
9
9
  export declare const Rounded: Story;
10
10
  export declare const SizeMedium: Story;
11
11
  export declare const SizeSmall: Story;
12
+ export declare const CustomPlaceholderForBrokenImage: Story;
13
+ export declare const CustomPlaceholderForLoadingImage: Story;
14
+ export declare const CustomPlaceholderForBrokenBadgeImage: Story;
15
+ export declare const CustomPlaceholderForLoadingBadgeImage: Story;
@@ -28,3 +28,5 @@ export declare const MediumWithLabelLoading: Story;
28
28
  export declare const MediumWithLongLabelLoading: Story;
29
29
  export declare const LargeWithLabelLoading: Story;
30
30
  export declare const LargeWithLongLabelLoading: Story;
31
+ export declare const MediumWithChip: Story;
32
+ export declare const LargeWithChip: Story;
@@ -8,3 +8,4 @@ export declare const WithoutIcon: Story;
8
8
  export declare const WithActionButton: Story;
9
9
  export declare const Error: Story;
10
10
  export declare const FocusAfter3Seconds: Story;
11
+ export declare const Warning: Story;
@@ -4,3 +4,4 @@ declare const meta: Meta<typeof RangeInput>;
4
4
  export default meta;
5
5
  type Story = StoryObj<typeof meta>;
6
6
  export declare const Default: Story;
7
+ export declare const Warning: Story;
package/dist/esm/index.js CHANGED
@@ -2617,24 +2617,41 @@ const mainImageSizeClassMap = {
2617
2617
  md: 'tw-w-10 tw-h-10',
2618
2618
  };
2619
2619
  const loadingSkeletonClassName = 'tw-bg-grey-500';
2620
- function BadgeImage({ imageUrl, badgeUrl, size = 'sm', extraMarginForBadge, rounded = false, }) {
2620
+ var ImageState;
2621
+ (function (ImageState) {
2622
+ ImageState[ImageState["LOADING"] = 0] = "LOADING";
2623
+ ImageState[ImageState["LOADED"] = 1] = "LOADED";
2624
+ ImageState[ImageState["ERROR"] = 2] = "ERROR";
2625
+ })(ImageState || (ImageState = {}));
2626
+ function BadgeImage({ imageUrl: _imageUrl, badgeUrl, size = 'sm', extraMarginForBadge, rounded = false, placeholderImageUrl, }) {
2627
+ const imageUrl = (_imageUrl === null || _imageUrl === void 0 ? void 0 : _imageUrl.trim()) || placeholderImageUrl;
2621
2628
  const [imagesLoadState, setImageLoadState] = useState({
2622
- badgeLoaded: false,
2623
- mainImageLoaded: false,
2629
+ badge: ImageState.LOADING,
2630
+ mainImage: ImageState.LOADING,
2624
2631
  });
2625
2632
  const badgeImageClassName = cn('tw-absolute -tw-right-1/3 tw-bottom-0 tw-z-10 tw-m-0 -tw-translate-x-1/3 tw-rounded-md tw-border-[1px] tw-border-grey-800', badgeSizeClassMap[size]);
2626
2633
  const mainImageClassName = cn('tw-h-full tw-w-full tw-absolute', rounded ? ' tw-rounded-full' : 'tw-rounded-squid-xs');
2627
- return imageUrl ? (jsxs("div", { className: cn('tw-relative', extraMarginForBadge && badgeUrl ? 'tw-mr-1.5' : null, mainImageSizeClassMap[size]), children: [!imagesLoadState.mainImageLoaded && (jsx("div", { className: cn(mainImageClassName, loadingSkeletonClassName) })), jsx("img", { src: imageUrl, alt: "", onLoad: () => {
2634
+ return imageUrl ? (jsxs("div", { className: cn('tw-relative', extraMarginForBadge && badgeUrl ? 'tw-mr-1.5' : null, mainImageSizeClassMap[size]), children: [imagesLoadState.mainImage !== ImageState.LOADED &&
2635
+ (placeholderImageUrl ? (jsx("img", { src: placeholderImageUrl, alt: "", className: mainImageClassName })) : (jsx("div", { className: cn(mainImageClassName, loadingSkeletonClassName) }))), jsx("img", { src: imageUrl, alt: "", onError: () => {
2636
+ setImageLoadState((prevState) => (Object.assign(Object.assign({}, prevState), { mainImage: ImageState.ERROR })));
2637
+ }, onLoad: () => {
2628
2638
  // update state when image is fully loaded
2629
- setImageLoadState((prevState) => (Object.assign(Object.assign({}, prevState), { mainImageLoaded: true })));
2639
+ setImageLoadState((prevState) => (Object.assign(Object.assign({}, prevState), { mainImage: ImageState.LOADED })));
2630
2640
  }, className: cn(mainImageClassName,
2631
2641
  // hide main image while it is loading, and display it when it is loaded
2632
- imagesLoadState.mainImageLoaded ? 'tw-block' : 'tw-hidden') }), badgeUrl ? (jsxs(Fragment, { children: [!imagesLoadState.badgeLoaded && (jsx("div", { className: cn(badgeImageClassName, loadingSkeletonClassName) })), jsx("img", { src: badgeUrl, alt: "", onLoad: () => {
2642
+ imagesLoadState.mainImage === ImageState.LOADED
2643
+ ? 'tw-block'
2644
+ : 'tw-hidden') }), badgeUrl ? (jsxs(Fragment, { children: [imagesLoadState.badge !== ImageState.LOADED &&
2645
+ (placeholderImageUrl ? (jsx("img", { src: placeholderImageUrl, alt: "", className: badgeImageClassName })) : (jsx("div", { className: cn(badgeImageClassName, loadingSkeletonClassName) }))), jsx("img", { src: badgeUrl, alt: "", onError: () => {
2646
+ setImageLoadState((prevState) => (Object.assign(Object.assign({}, prevState), { badge: ImageState.ERROR })));
2647
+ }, onLoad: () => {
2633
2648
  // update state when badge image is fully loaded
2634
- setImageLoadState((prevState) => (Object.assign(Object.assign({}, prevState), { badgeLoaded: true })));
2649
+ setImageLoadState((prevState) => (Object.assign(Object.assign({}, prevState), { badge: ImageState.LOADED })));
2635
2650
  }, className: cn(badgeImageClassName,
2636
2651
  // hide badge image while it is loading, and display it when it is loaded
2637
- imagesLoadState.badgeLoaded ? 'tw-block' : 'tw-hidden') })] })) : null] })) : null;
2652
+ imagesLoadState.badge === ImageState.LOADED
2653
+ ? 'tw-block'
2654
+ : 'tw-hidden') })] })) : null] })) : null;
2638
2655
  }
2639
2656
 
2640
2657
  /******************************************************************************
@@ -2941,6 +2958,11 @@ function WalletLink({ imageURI, address }) {
2941
2958
  return (jsx(IconLabel, { src: imageURI, variant: "round", children: jsx(HashLink, { hash: address, showCopyButton: true, children: jsx(BodyText, { size: "small", children: truncateHash(address) }) }) }));
2942
2959
  }
2943
2960
 
2961
+ function Chip(_a) {
2962
+ var { label, icon } = _a, props = __rest$1(_a, ["label", "icon"]);
2963
+ return (jsx("div", Object.assign({}, props, { className: cn('tw-flex tw-h-squid-m tw-items-center tw-justify-center tw-rounded-squid-m tw-bg-grey-500 tw-text-grey-900', icon && 'tw-w-squid-m', props.className), children: label ? (jsx(CaptionText, { className: "tw-min-w-squid-xl tw-text-nowrap tw-px-squid-xxs tw-text-center", children: label })) : (icon) })));
2964
+ }
2965
+
2944
2966
  const baseButtonClassName = 'tw-border tw-relative tw-overflow-hidden tw-group/base-button tw-flex tw-items-center tw-justify-center';
2945
2967
  const buttonSizeClassMap = {
2946
2968
  md: 'tw-px-squid-xs tw-py-squid-xxs tw-min-w-[60px] tw-h-squid-xl',
@@ -2960,7 +2982,8 @@ const buttonVariantClassMap = {
2960
2982
  const buttonDisabledClass = '!tw-bg-grey-800 !tw-text-grey-600 tw-cursor-not-allowed';
2961
2983
  const loadingClassname = 'tw-invisible tw-opacity-0';
2962
2984
  function Button$1(_a) {
2963
- var { label, disabled, size, variant, icon, link, isLoading = false } = _a, props = __rest$1(_a, ["label", "disabled", "size", "variant", "icon", "link", "isLoading"]);
2985
+ var { label, disabled, size, variant, icon, link, isLoading = false, chip } = _a, props = __rest$1(_a, ["label", "disabled", "size", "variant", "icon", "link", "isLoading", "chip"]);
2986
+ const chipElement = chip ? (jsx(Chip, Object.assign({}, chip, { className: cn('tw-absolute -tw-right-squid-xxs -tw-top-squid-xxs tw-z-10', chip.className) }))) : null;
2964
2987
  const children = (jsxs(Fragment, { children: [!disabled && !isLoading && (jsx(ButtonHoverOverlay, { className: roundedClassMap[size] })), jsx("div", { className: "tw-relative tw-z-[5] tw-flex tw-items-center tw-justify-center tw-gap-squid-xxs", children: !label && !icon ? (props.children) : size === 'lg' ? (jsx("span", { className: "tw-px-squid-m", children: jsx(BodyText, { className: isLoading ? loadingClassname : '', size: "medium", children: label }) })) : size === 'md' ? (label && !icon ? (
2965
2988
  // label only
2966
2989
  jsx(BodyText, { className: isLoading ? loadingClassname : '', size: "small", children: label })) : !label && icon ? (
@@ -2974,9 +2997,9 @@ function Button$1(_a) {
2974
2997
  // custom classes from props
2975
2998
  props.className);
2976
2999
  if (link) {
2977
- return (jsx("a", { "aria-disabled": disabled, href: disabled ? undefined : link, target: "_blank", className: className, children: children }));
3000
+ return (jsxs("div", { className: "tw-relative tw-w-full", children: [jsx("a", { "aria-disabled": disabled, href: disabled ? undefined : link, target: "_blank", className: className, children: children }), chipElement] }));
2978
3001
  }
2979
- return (jsx("button", Object.assign({}, props, { "aria-disabled": disabled || isLoading, className: className, disabled: disabled || isLoading, children: children })));
3002
+ return (jsxs("div", { className: "tw-relative tw-w-full", children: [jsx("button", Object.assign({}, props, { "aria-disabled": disabled || isLoading, className: className, disabled: disabled || isLoading, children: children })), chipElement] }));
2980
3003
  }
2981
3004
  const ButtonHoverOverlay = ({ className }) => {
2982
3005
  return (jsx("span", { className: cn('tw-absolute tw-inset-0 tw-z-0 tw-hidden tw-h-full tw-w-full tw-bg-material-light-thin group-hover/base-button:tw-block', className) }));
@@ -3072,7 +3095,7 @@ function SearchIcon() {
3072
3095
  }
3073
3096
 
3074
3097
  function Input(_a) {
3075
- var { placeholder = 'Search', showIcon = true, className, icon, isError = false, containerClassName, actionButtonProps, autoFocusTimeout, inputRef: inputRefProp } = _a, props = __rest$1(_a, ["placeholder", "showIcon", "className", "icon", "isError", "containerClassName", "actionButtonProps", "autoFocusTimeout", "inputRef"]);
3098
+ var { placeholder = 'Search', showIcon = true, className, icon, isError = false, isWarning = false, containerClassName, actionButtonProps, autoFocusTimeout, inputRef: inputRefProp } = _a, props = __rest$1(_a, ["placeholder", "showIcon", "className", "icon", "isError", "isWarning", "containerClassName", "actionButtonProps", "autoFocusTimeout", "inputRef"]);
3076
3099
  const showActionButton = !!actionButtonProps;
3077
3100
  const localInputRef = useRef(null);
3078
3101
  const inputRef = inputRefProp !== null && inputRefProp !== void 0 ? inputRefProp : localInputRef;
@@ -3085,7 +3108,7 @@ function Input(_a) {
3085
3108
  }, autoFocusTimeout);
3086
3109
  return () => clearTimeout(timeoutId);
3087
3110
  }, [autoFocusTimeout]);
3088
- return (jsxs("div", { className: cn('tw-relative tw-w-full tw-text-grey-600', containerClassName), children: [jsx("input", Object.assign({}, props, { ref: inputRef, "aria-invalid": isError, className: cn('tw-relative tw-h-10 tw-w-full tw-rounded-full tw-border tw-border-material-light-thin tw-bg-grey-900 tw-text-body-small tw-font-typography-regular tw-text-grey-300 placeholder:tw-text-grey-600 invalid:tw-outline-status-negative', showIcon ? 'tw-pl-[40px]' : 'tw-px-squid-s', showActionButton ? 'tw-pr-[70px]' : 'tw-pr-2.5', isError && '!tw-outline-status-negative', className), placeholder: placeholder })), showIcon ? (jsx("div", { className: "tw-absolute tw-inset-y-0 tw-left-0 tw-flex tw-h-full tw-w-[44px] tw-items-center tw-justify-center tw-px-squid-xs", children: icon || jsx(SearchIcon, {}) })) : null, showActionButton ? (jsx("div", { className: "tw-absolute tw-inset-y-0 tw-right-1.5 tw-flex tw-items-center tw-justify-center", children: jsx(InputActionButton, Object.assign({}, actionButtonProps)) })) : null] }));
3111
+ return (jsxs("div", { className: cn('tw-relative tw-w-full tw-text-grey-600', containerClassName), children: [jsx("input", Object.assign({}, props, { ref: inputRef, "aria-invalid": isError, className: cn('tw-relative tw-h-10 tw-w-full tw-rounded-full tw-border tw-border-material-light-thin tw-bg-grey-900 tw-text-body-small tw-font-typography-regular tw-text-grey-300 placeholder:tw-text-grey-600 invalid:tw-outline-status-negative', showIcon ? 'tw-pl-[40px]' : 'tw-px-squid-s', showActionButton ? 'tw-pr-[70px]' : 'tw-pr-2.5', isError && '!tw-outline-status-negative', className, isWarning && 'focus-visible:tw-outline-status-partial'), placeholder: placeholder })), showIcon ? (jsx("div", { className: "tw-absolute tw-inset-y-0 tw-left-0 tw-flex tw-h-full tw-w-[44px] tw-items-center tw-justify-center tw-px-squid-xs", children: icon || jsx(SearchIcon, {}) })) : null, showActionButton ? (jsx("div", { className: "tw-absolute tw-inset-y-0 tw-right-1.5 tw-flex tw-items-center tw-justify-center", children: jsx(InputActionButton, Object.assign({}, actionButtonProps)) })) : null] }));
3089
3112
  }
3090
3113
  const InputActionButton = ({ onClick, variant = 'tertiary', label = 'Paste', }) => {
3091
3114
  return (jsx(Button$1, { size: "md", variant: variant, onClick: onClick, className: "!tw-h-[30px] !tw-w-fit !tw-min-w-0", children: jsx(CaptionText, { children: label }) }));
@@ -16689,11 +16712,6 @@ function generateMarkerLines(count) {
16689
16712
  return allShadows.join(', ');
16690
16713
  }
16691
16714
 
16692
- function Chip(_a) {
16693
- var { label, icon } = _a, props = __rest$1(_a, ["label", "icon"]);
16694
- return (jsx("div", Object.assign({}, props, { className: cn('tw-flex tw-h-squid-m tw-items-center tw-justify-center tw-rounded-squid-m tw-bg-grey-500 tw-text-grey-900', icon && 'tw-w-squid-m', props.className), children: label ? (jsx(CaptionText, { className: "tw-min-w-squid-xl tw-text-nowrap tw-px-squid-xxs tw-text-center", children: label })) : (icon) })));
16695
- }
16696
-
16697
16715
  function Boost({ boostMode, onToggleBoostMode, estimatedTime, canToggleBoostMode = true, tooltip, }) {
16698
16716
  const boostIndicatorRef = useRef(null);
16699
16717
  function handleToggleBoostMode() {
@@ -17061,7 +17079,7 @@ const collapsedListItemClassMap = {
17061
17079
  large: 'tw-w-[80px]',
17062
17080
  };
17063
17081
  function ListItem(_a) {
17064
- var { itemTitle, mainImageUrl, subtitle, subtitleOnHover, detail, icon, secondaryImageUrl, size = 'large', mainIcon, className, isSelected, onDetailClick, showDetailOnHoverOnly, rounded = false, detailButtonClassName, loading, containerProps, compactOnMobile } = _a, props = __rest$1(_a, ["itemTitle", "mainImageUrl", "subtitle", "subtitleOnHover", "detail", "icon", "secondaryImageUrl", "size", "mainIcon", "className", "isSelected", "onDetailClick", "showDetailOnHoverOnly", "rounded", "detailButtonClassName", "loading", "containerProps", "compactOnMobile"]);
17082
+ var { itemTitle, mainImageUrl, subtitle, subtitleOnHover, detail, icon, secondaryImageUrl, placeholderImageUrl, size = 'large', mainIcon, className, isSelected, onDetailClick, showDetailOnHoverOnly, rounded = false, detailButtonClassName, loading, containerProps, compactOnMobile } = _a, props = __rest$1(_a, ["itemTitle", "mainImageUrl", "subtitle", "subtitleOnHover", "detail", "icon", "secondaryImageUrl", "placeholderImageUrl", "size", "mainIcon", "className", "isSelected", "onDetailClick", "showDetailOnHoverOnly", "rounded", "detailButtonClassName", "loading", "containerProps", "compactOnMobile"]);
17065
17083
  const subtitleClassName = cn('tw-h-[14px] tw-max-w-full tw-truncate !tw-leading-[16px] tw-text-grey-500', compactOnMobile ? 'tw-hidden mobile-lg:tw-block' : 'tw-block');
17066
17084
  // 'small' variant does not have detail
17067
17085
  const showDetail = size === 'large' && (!!detail || !!icon || showDetailOnHoverOnly);
@@ -17094,7 +17112,7 @@ function ListItem(_a) {
17094
17112
  const itemProps = isInteractive ? props : {};
17095
17113
  return (jsx("li", Object.assign({}, containerProps, { className: cn('tw-flex tw-max-w-full tw-bg-grey-900 tw-text-grey-300', listItemSizeMap[size], compactOnMobile
17096
17114
  ? `${collapsedListItemClassMap[size]} mobile-lg:tw-w-full`
17097
- : 'tw-w-full', className), children: jsxs(ItemTag, Object.assign({}, itemProps, { className: cn('tw-group/list-item tw-flex tw-w-full tw-max-w-full tw-items-center tw-justify-start tw-gap-squid-xs tw-rounded-squid-s tw-px-squid-xs tw-py-squid-xxs', isSelected && 'tw-bg-material-light-thin', isInteractive && 'hover:tw-bg-material-light-thin'), children: [size === 'large' ? (jsx("div", { className: "tw-h-10 tw-w-10", children: mainIcon ? (mainIcon) : (jsx(BadgeImage, { extraMarginForBadge: false, imageUrl: mainImageUrl, badgeUrl: secondaryImageUrl, size: "md", rounded: rounded })) })) : (jsx("div", { className: "tw-flex tw-min-h-[30px] tw-min-w-[30px] tw-items-center tw-justify-center", children: mainIcon ? (mainIcon) : (jsx("img", { src: mainImageUrl, className: "tw-h-[30px] tw-w-[30px] tw-rounded-squid-xs" })) })), jsxs("div", { className: cn('tw-flex tw-h-[40px] tw-flex-1 tw-flex-col tw-items-start tw-justify-center tw-gap-squid-xxs',
17115
+ : 'tw-w-full', className), children: jsxs(ItemTag, Object.assign({}, itemProps, { className: cn('tw-group/list-item tw-flex tw-w-full tw-max-w-full tw-items-center tw-justify-start tw-gap-squid-xs tw-rounded-squid-s tw-px-squid-xs tw-py-squid-xxs', isSelected && 'tw-bg-material-light-thin', isInteractive && 'hover:tw-bg-material-light-thin'), children: [size === 'large' ? (jsx("div", { className: "tw-h-10 tw-w-10", children: mainIcon ? (mainIcon) : (jsx(BadgeImage, { extraMarginForBadge: false, imageUrl: mainImageUrl, badgeUrl: secondaryImageUrl, placeholderImageUrl: placeholderImageUrl, size: "md", rounded: rounded })) })) : (jsx("div", { className: "tw-flex tw-min-h-[30px] tw-min-w-[30px] tw-items-center tw-justify-center", children: mainIcon ? (mainIcon) : (jsx("img", { src: mainImageUrl, className: "tw-h-[30px] tw-w-[30px] tw-rounded-squid-xs" })) })), jsxs("div", { className: cn('tw-flex tw-h-[40px] tw-flex-1 tw-flex-col tw-items-start tw-justify-center tw-gap-squid-xxs',
17098
17116
  // 'large' variant has extra padding
17099
17117
  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' &&
17100
17118
  ((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
@@ -17488,7 +17506,7 @@ function NavigationBar({ title, displayBackButton = false, logoUrl, transparent
17488
17506
  ? action.labelOrIcon
17489
17507
  : undefined, className: "tw-text-grey-300", icon: typeof action.labelOrIcon === 'string'
17490
17508
  ? null
17491
- : action.labelOrIcon, onClick: action.onClick }) }), action.id))) })] }), title ? (jsx("div", { className: "tw-flex tw-h-squid-xxl tw-items-center tw-px-squid-m tw-py-squid-xxs mobile-lg:tw-px-squid-l", children: jsx(HeadingText, { size: "small", children: title }) })) : null] }));
17509
+ : action.labelOrIcon, onClick: action.onClick, chip: action.chip }) }), action.id))) })] }), title ? (jsx("div", { className: "tw-flex tw-h-squid-xxl tw-items-center tw-px-squid-m tw-py-squid-xxs mobile-lg:tw-px-squid-l", children: jsx(HeadingText, { size: "small", children: title }) })) : null] }));
17492
17510
  }
17493
17511
 
17494
17512
  const createStoreImpl = (createState) => {
@@ -24414,6 +24432,7 @@ function NumericInput({ priceImpactPercentage, balance = '0', error, criticalPri
24414
24432
  }
24415
24433
  };
24416
24434
  const handleSwitchInputMode = () => {
24435
+ var _a;
24417
24436
  if (inputValue !== '') {
24418
24437
  const convertedAmount = inputMode === InputMode.TOKEN
24419
24438
  ? convertTokenAmountToUSD(inputValue, token.price, maxUsdDecimals)
@@ -24421,6 +24440,7 @@ function NumericInput({ priceImpactPercentage, balance = '0', error, criticalPri
24421
24440
  setInputValue(convertedAmount);
24422
24441
  }
24423
24442
  setInputMode((prevMode) => prevMode === InputMode.TOKEN ? InputMode.USD : InputMode.TOKEN);
24443
+ (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
24424
24444
  };
24425
24445
  const getRawAmounts = (amount) => {
24426
24446
  if (amount === '')
@@ -24468,7 +24488,7 @@ function NumericInput({ priceImpactPercentage, balance = '0', error, criticalPri
24468
24488
  const { isTokenAmountVerySmall, isUsdAmountVerySmall } = getRawAmounts(inputValue);
24469
24489
  const amountFormatted = useMemo(() => {
24470
24490
  var _a;
24471
- if (inputValue === '')
24491
+ if (isNaN(Number(inputValue)) || inputValue === '')
24472
24492
  return '0';
24473
24493
  if (inputMode === InputMode.TOKEN) {
24474
24494
  if (direction === 'from') {
@@ -24496,9 +24516,10 @@ function NumericInput({ priceImpactPercentage, balance = '0', error, criticalPri
24496
24516
  const balanceFormatted = useMemo(() => {
24497
24517
  return formatAmount(balance !== null && balance !== void 0 ? balance : '0');
24498
24518
  }, [balance]);
24519
+ const inputRef = useRef(null);
24499
24520
  return (jsxs(Fragment, { children: [isInteractive && !isLoading ? (jsxs("form", { className: "tw-relative tw-h-[80.6px] tw-px-squid-xs tw-pb-[15px] tw-pt-[5px] tw-text-heading-small tw-font-heading-regular mobile-lg:tw-h-[75px] mobile-lg:tw-px-squid-m", onSubmit: (e) => {
24500
24521
  e.preventDefault();
24501
- }, children: [inputMode === InputMode.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", { 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-400 focus:tw-outline-none', inputMode === InputMode.USD && 'tw-pl-[33px]') })] })) : (jsx("div", { className: cn('tw-w-full tw-px-squid-xs tw-pb-[15px] tw-pt-[5px] mobile-lg:tw-px-squid-m', isLoading && loadingClassName), children: jsx("div", { className: "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-font-heading-regular 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
24522
+ }, children: [inputMode === InputMode.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", { 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-400 focus:tw-outline-none', inputMode === InputMode.USD && 'tw-pl-[33px]') })] })) : (jsx("div", { className: cn('tw-w-full tw-px-squid-xs tw-pb-[15px] tw-pt-[5px] mobile-lg:tw-px-squid-m', isLoading && loadingClassName), children: jsx("div", { className: "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-font-heading-regular 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
24502
24523
  ? undefined
24503
24524
  : inputMode === InputMode.TOKEN
24504
24525
  ? inputModeButton === null || inputModeButton === void 0 ? void 0 : inputModeButton.tokenModeTooltip
@@ -24627,7 +24648,7 @@ function CirclePlusIcon({ size = '24', className, }) {
24627
24648
  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", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12ZM16 12.9999C16.5523 12.9999 17 12.5522 17 11.9999C17 11.4476 16.5523 10.9999 16 10.9999L13 11V8.00012C13 7.44784 12.5523 7.00012 12 7.00012C11.4477 7.00012 11 7.44784 11 8.00012V11L7.99997 11.0001C7.44769 11.0001 6.99998 11.4479 7 12.0001C7.00002 12.5524 7.44774 13.0001 8.00003 13.0001L11 13V16C11 16.5523 11.4477 17 12 17C12.5523 17 13 16.5523 13 16V13L16 12.9999Z", fill: "currentColor" }) }));
24628
24649
  }
24629
24650
 
24630
- function RangeInput({ label, initialValue, onChange, min = 0, max = 99, }) {
24651
+ function RangeInput({ label, initialValue, onChange, min = 0, max = 99, isWarning = false, }) {
24631
24652
  const [pressedButton, setPressedButton] = useState(null);
24632
24653
  const inputRef = useRef(null);
24633
24654
  const mousePressedTimeoutRef = useRef(null);
@@ -24710,7 +24731,7 @@ function RangeInput({ label, initialValue, onChange, min = 0, max = 99, }) {
24710
24731
  if (event.key === 'Enter' || event.key === ' ') {
24711
24732
  handleUpdateValue();
24712
24733
  }
24713
- }, onMouseLeave: handleUpdateValue, className: cn('tw-flex tw-h-full tw-items-center tw-justify-center tw-self-stretch tw-rounded-squid-xs tw-p-squid-xxs tw-text-left tw-text-caption !tw-font-medium tw-leading-[10px] placeholder-shown:tw-text-grey-600 hover:tw-bg-material-light-thin'), children: jsx(CircleMinusIcon, {}) }), jsxs("div", { className: "tw-relative", children: [jsx(Input, { step: 0.1, min: min, max: max, defaultValue: initialValue || '0', placeholder: "0", showIcon: false, type: "number", inputRef: inputRef, onChange: (event) => {
24734
+ }, onMouseLeave: handleUpdateValue, className: cn('tw-flex tw-h-full tw-items-center tw-justify-center tw-self-stretch tw-rounded-squid-xs tw-p-squid-xxs tw-text-left tw-text-caption !tw-font-medium tw-leading-[10px] placeholder-shown:tw-text-grey-600 hover:tw-bg-material-light-thin'), children: jsx(CircleMinusIcon, {}) }), jsxs("div", { className: "tw-relative", children: [jsx(Input, { step: 0.1, min: min, max: max, isWarning: isWarning, defaultValue: initialValue || '0', placeholder: "0", showIcon: false, type: "number", inputRef: inputRef, onChange: (event) => {
24714
24735
  var _a;
24715
24736
  if (!inputDecoratorRef.current || !inputRef.current)
24716
24737
  return;
@@ -4,7 +4,12 @@ interface BadgeImageProps {
4
4
  size?: BadgeSize;
5
5
  extraMarginForBadge?: boolean;
6
6
  rounded?: boolean;
7
+ /**
8
+ * The URL of the placeholder image. Will be displayed while the images are loading
9
+ * or if there's an error loading them.
10
+ */
11
+ placeholderImageUrl?: string;
7
12
  }
8
13
  type BadgeSize = 'sm' | 'md';
9
- export declare function BadgeImage({ imageUrl, badgeUrl, size, extraMarginForBadge, rounded, }: BadgeImageProps): import("react/jsx-runtime").JSX.Element | null;
14
+ export declare function BadgeImage({ imageUrl: _imageUrl, badgeUrl, size, extraMarginForBadge, rounded, placeholderImageUrl, }: BadgeImageProps): import("react/jsx-runtime").JSX.Element | null;
10
15
  export {};
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { ButtonSize, ButtonVariant } from '../../types/components';
3
+ import { ChipProps } from './Chip';
3
4
  interface ButtonProps extends React.HTMLAttributes<HTMLButtonElement> {
4
5
  label?: string;
5
6
  icon?: React.ReactNode;
@@ -8,6 +9,7 @@ interface ButtonProps extends React.HTMLAttributes<HTMLButtonElement> {
8
9
  disabled?: boolean;
9
10
  link?: string;
10
11
  isLoading?: boolean;
12
+ chip?: ChipProps;
11
13
  }
12
- export declare function Button({ label, disabled, size, variant, icon, link, isLoading, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function Button({ label, disabled, size, variant, icon, link, isLoading, chip, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
13
15
  export {};
@@ -1,7 +1,6 @@
1
1
  /// <reference types="react" />
2
- interface ChipProps extends React.HTMLAttributes<HTMLDivElement> {
2
+ export interface ChipProps extends React.HTMLAttributes<HTMLDivElement> {
3
3
  label?: string;
4
4
  icon?: React.ReactNode;
5
5
  }
6
6
  export declare function Chip({ label, icon, ...props }: ChipProps): import("react/jsx-runtime").JSX.Element;
7
- export {};
@@ -5,12 +5,13 @@ interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
5
5
  showIcon?: boolean;
6
6
  icon?: React.ReactNode;
7
7
  isError?: boolean;
8
+ isWarning?: boolean;
8
9
  containerClassName?: string;
9
10
  actionButtonProps?: InputActionButtonProps;
10
11
  autoFocusTimeout?: number;
11
12
  inputRef?: React.RefObject<HTMLInputElement>;
12
13
  }
13
- export declare function Input({ placeholder, showIcon, className, icon, isError, containerClassName, actionButtonProps, autoFocusTimeout, inputRef: inputRefProp, ...props }: InputProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function Input({ placeholder, showIcon, className, icon, isError, isWarning, containerClassName, actionButtonProps, autoFocusTimeout, inputRef: inputRefProp, ...props }: InputProps): import("react/jsx-runtime").JSX.Element;
14
15
  type InputActionButtonProps = {
15
16
  onClick?: () => void;
16
17
  variant?: ButtonVariant;
@@ -4,6 +4,7 @@ interface RangeInputProps {
4
4
  onChange?: (value: string) => void;
5
5
  min?: number;
6
6
  max?: number;
7
+ isWarning?: boolean;
7
8
  }
8
- export declare function RangeInput({ label, initialValue, onChange, min, max, }: RangeInputProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function RangeInput({ label, initialValue, onChange, min, max, isWarning, }: RangeInputProps): import("react/jsx-runtime").JSX.Element;
9
10
  export {};
@@ -1,10 +1,12 @@
1
1
  /// <reference types="react" />
2
+ import { ChipProps } from '../buttons';
2
3
  import { TooltipProps } from '../controls';
3
- type ActionButton = {
4
+ export type ActionButton = {
4
5
  labelOrIcon: string | React.ReactNode;
5
6
  onClick?: () => void;
6
7
  id: React.Key;
7
8
  tooltip?: Omit<TooltipProps, 'children'>;
9
+ chip?: ChipProps;
8
10
  };
9
11
  interface NavigationBarProps {
10
12
  title?: string;
@@ -3,6 +3,7 @@ interface ListItemProps extends React.HTMLAttributes<HTMLButtonElement> {
3
3
  itemTitle: string | React.ReactNode;
4
4
  mainImageUrl?: string;
5
5
  secondaryImageUrl?: string;
6
+ placeholderImageUrl?: string;
6
7
  subtitle?: string;
7
8
  subtitleOnHover?: React.ReactNode;
8
9
  detail?: string;
@@ -22,5 +23,5 @@ interface ListItemProps extends React.HTMLAttributes<HTMLButtonElement> {
22
23
  compactOnMobile?: boolean;
23
24
  }
24
25
  type ListItemSize = 'small' | 'large';
25
- export declare function ListItem({ itemTitle, mainImageUrl, subtitle, subtitleOnHover, detail, icon, secondaryImageUrl, size, mainIcon, className, isSelected, onDetailClick, showDetailOnHoverOnly, rounded, detailButtonClassName, loading, containerProps, compactOnMobile, ...props }: ListItemProps): import("react/jsx-runtime").JSX.Element;
26
+ export declare function ListItem({ itemTitle, mainImageUrl, subtitle, subtitleOnHover, detail, icon, secondaryImageUrl, placeholderImageUrl, size, mainIcon, className, isSelected, onDetailClick, showDetailOnHoverOnly, rounded, detailButtonClassName, loading, containerProps, compactOnMobile, ...props }: ListItemProps): import("react/jsx-runtime").JSX.Element;
26
27
  export {};
@@ -9,3 +9,7 @@ export declare const ExtraMarginForBadge: Story;
9
9
  export declare const Rounded: Story;
10
10
  export declare const SizeMedium: Story;
11
11
  export declare const SizeSmall: Story;
12
+ export declare const CustomPlaceholderForBrokenImage: Story;
13
+ export declare const CustomPlaceholderForLoadingImage: Story;
14
+ export declare const CustomPlaceholderForBrokenBadgeImage: Story;
15
+ export declare const CustomPlaceholderForLoadingBadgeImage: Story;
@@ -28,3 +28,5 @@ export declare const MediumWithLabelLoading: Story;
28
28
  export declare const MediumWithLongLabelLoading: Story;
29
29
  export declare const LargeWithLabelLoading: Story;
30
30
  export declare const LargeWithLongLabelLoading: Story;
31
+ export declare const MediumWithChip: Story;
32
+ export declare const LargeWithChip: Story;
@@ -8,3 +8,4 @@ export declare const WithoutIcon: Story;
8
8
  export declare const WithActionButton: Story;
9
9
  export declare const Error: Story;
10
10
  export declare const FocusAfter3Seconds: Story;
11
+ export declare const Warning: Story;
@@ -4,3 +4,4 @@ declare const meta: Meta<typeof RangeInput>;
4
4
  export default meta;
5
5
  type Story = StoryObj<typeof meta>;
6
6
  export declare const Default: Story;
7
+ export declare const Warning: Story;
package/dist/index.css CHANGED
@@ -1,4 +1,4 @@
1
1
  .rdp{--rdp-cell-size:40px;--rdp-caption-font-size:18px;--rdp-accent-color:#00f;--rdp-background-color:#e7edff;--rdp-accent-color-dark:#3003e1;--rdp-background-color-dark:#180270;--rdp-outline:2px solid var(--rdp-accent-color);--rdp-outline-selected:3px solid var(--rdp-accent-color);--rdp-selected-color:#fff;margin:1em}.rdp-vhidden{clip:rect(1px,1px,1px,1px)!important;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0!important;box-sizing:border-box;height:1px!important;margin:0;overflow:hidden!important;padding:0!important;position:absolute!important;top:0;width:1px!important}.rdp-button_reset{appearance:none;-moz-appearance:none;-webkit-appearance:none;background:none;color:inherit;cursor:default;font:inherit;margin:0;padding:0;position:relative}.rdp-button_reset:focus-visible{outline:none}.rdp-button{border:2px solid transparent}.rdp-button[disabled]:not(.rdp-day_selected){opacity:.25}.rdp-button:not([disabled]){cursor:pointer}.rdp-button:focus-visible:not([disabled]){background-color:var(--rdp-background-color);border:var(--rdp-outline);color:inherit}.rdp-button:hover:not([disabled]):not(.rdp-day_selected){background-color:var(--rdp-background-color)}.rdp-months{display:flex}.rdp-month{margin:0 1em}.rdp-month:first-child{margin-left:0}.rdp-month:last-child{margin-right:0}.rdp-table{border-collapse:collapse;margin:0;max-width:calc(var(--rdp-cell-size)*7)}.rdp-with_weeknumber .rdp-table{border-collapse:collapse;max-width:calc(var(--rdp-cell-size)*8)}.rdp-caption{align-items:center;display:flex;justify-content:space-between;padding:0;text-align:left}.rdp-multiple_months .rdp-caption{display:block;position:relative;text-align:center}.rdp-caption_dropdowns,.rdp-caption_label{display:inline-flex;position:relative}.rdp-caption_label{align-items:center;border:2px solid transparent;color:currentColor;font-family:inherit;font-size:var(--rdp-caption-font-size);font-weight:700;margin:0;padding:0 .25em;white-space:nowrap;z-index:1}.rdp-nav{white-space:nowrap}.rdp-multiple_months .rdp-caption_start .rdp-nav{left:0;position:absolute;top:50%;transform:translateY(-50%)}.rdp-multiple_months .rdp-caption_end .rdp-nav{position:absolute;right:0;top:50%;transform:translateY(-50%)}.rdp-nav_button{align-items:center;border-radius:100%;display:inline-flex;height:var(--rdp-cell-size);justify-content:center;padding:.25em;width:var(--rdp-cell-size)}.rdp-dropdown_month,.rdp-dropdown_year{align-items:center;display:inline-flex;position:relative}.rdp-dropdown{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;bottom:0;cursor:inherit;font-family:inherit;font-size:inherit;left:0;line-height:inherit;margin:0;opacity:0;padding:0;position:absolute;top:0;width:100%;z-index:2}.rdp-dropdown[disabled]{color:unset;opacity:unset}.rdp-dropdown:focus-visible:not([disabled])+.rdp-caption_label{background-color:var(--rdp-background-color);border:var(--rdp-outline);border-radius:6px}.rdp-dropdown_icon{margin:0 0 0 5px}.rdp-head{border:0}.rdp-head_row,.rdp-row{height:100%}.rdp-head_cell{font-size:.75em;font-weight:700;height:100%;height:var(--rdp-cell-size);padding:0;text-align:center;text-transform:uppercase;vertical-align:middle}.rdp-tbody{border:0}.rdp-tfoot{margin:.5em}.rdp-cell{height:100%;height:var(--rdp-cell-size);padding:0;text-align:center;width:var(--rdp-cell-size)}.rdp-weeknumber{font-size:.75em}.rdp-day,.rdp-weeknumber{align-items:center;border:2px solid transparent;border-radius:100%;box-sizing:border-box;display:flex;height:var(--rdp-cell-size);justify-content:center;margin:0;max-width:var(--rdp-cell-size);overflow:hidden;width:var(--rdp-cell-size)}.rdp-day_today:not(.rdp-day_outside){font-weight:700}.rdp-day_selected,.rdp-day_selected:focus-visible,.rdp-day_selected:hover{background-color:var(--rdp-accent-color);color:var(--rdp-selected-color);opacity:1}.rdp-day_outside{opacity:.5}.rdp-day_selected:focus-visible{outline:var(--rdp-outline);outline-offset:2px;z-index:1}.rdp:not([dir=rtl]) .rdp-day_range_start:not(.rdp-day_range_end){border-bottom-right-radius:0;border-top-right-radius:0}.rdp:not([dir=rtl]) .rdp-day_range_end:not(.rdp-day_range_start),.rdp[dir=rtl] .rdp-day_range_start:not(.rdp-day_range_end){border-bottom-left-radius:0;border-top-left-radius:0}.rdp[dir=rtl] .rdp-day_range_end:not(.rdp-day_range_start){border-bottom-right-radius:0;border-top-right-radius:0}.rdp-day_range_end.rdp-day_range_start{border-radius:100%}.rdp-day_range_middle{border-radius:0}
2
2
  /*
3
3
  ! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com
4
- */*,:after,:before{border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.tw-sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.tw-pointer-events-none{pointer-events:none}.tw-visible{visibility:visible}.tw-invisible{visibility:hidden}.tw-fixed{position:fixed}.tw-absolute{position:absolute}.tw-relative{position:relative}.tw-inset-0{inset:0}.tw-inset-squid-xxs{inset:.3125rem}.tw-inset-y-0{bottom:0;top:0}.-tw-bottom-20{bottom:-5rem}.-tw-left-\[20px\]{left:-20px}.-tw-left-\[2px\]{left:-2px}.-tw-left-\[4px\]{left:-4px}.-tw-left-\[5px\]{left:-5px}.-tw-right-1\/3{right:-33.333333%}.-tw-right-squid-xxs{right:-.3125rem}.-tw-top-8{top:-2rem}.-tw-top-\[2px\]{top:-2px}.-tw-top-\[4px\]{top:-4px}.-tw-top-\[55px\]{top:-55px}.tw-bottom-0{bottom:0}.tw-bottom-0\.5{bottom:.125rem}.tw-bottom-1\/2{bottom:50%}.tw-bottom-2{bottom:.5rem}.tw-bottom-4{bottom:1rem}.tw-bottom-7{bottom:1.75rem}.tw-bottom-full{bottom:100%}.tw-bottom-squid-xxs{bottom:.3125rem}.tw-left-0{left:0}.tw-left-1\/2{left:50%}.tw-left-5{left:1.25rem}.tw-left-\[-14px\]{left:-14px}.tw-left-\[15px\]{left:15px}.tw-left-\[17px\]{left:17px}.tw-left-\[1px\]{left:1px}.tw-left-\[26px\]{left:26px}.tw-left-\[2px\]{left:2px}.tw-left-\[54px\]{left:54px}.tw-left-\[calc\(50\%-2px\)\]{left:calc(50% - 2px)}.tw-left-squid-m{left:1.25rem}.tw-left-squid-s{left:.9375rem}.tw-left-squid-xs{left:.625rem}.tw-right-0{right:0}.tw-right-1{right:.25rem}.tw-right-1\.5{right:.375rem}.tw-right-4{right:1rem}.tw-right-\[40px\]{right:40px}.tw-right-\[calc\(100\%-10px\)\]{right:calc(100% - 10px)}.tw-right-full{right:100%}.tw-right-squid-xs{right:.625rem}.tw-right-squid-xxs{right:.3125rem}.tw-top-0{top:0}.tw-top-7{top:1.75rem}.tw-top-\[11px\]{top:11px}.tw-top-\[2px\]{top:2px}.tw-top-full{top:100%}.tw-top-squid-xs{top:.625rem}.tw-top-squid-xxs{top:.3125rem}.-tw-z-40{z-index:-40}.tw-z-0{z-index:0}.tw-z-10{z-index:10}.tw-z-20{z-index:20}.tw-z-40{z-index:40}.tw-z-50{z-index:50}.tw-z-\[5\]{z-index:5}.tw-m-0{margin:0}.tw-mx-auto{margin-left:auto;margin-right:auto}.tw-mx-squid-xxs{margin-left:.3125rem;margin-right:.3125rem}.tw-my-4{margin-bottom:1rem;margin-top:1rem}.-tw-mb-1{margin-bottom:-.25rem}.-tw-ml-1{margin-left:-.25rem}.-tw-ml-squid-xs{margin-left:-.625rem}.tw-ml-2{margin-left:.5rem}.tw-mr-1{margin-right:.25rem}.tw-mr-1\.5{margin-right:.375rem}.tw-mr-squid-xs{margin-right:.625rem}.tw-mt-0{margin-top:0}.tw-mt-0\.5{margin-top:.125rem}.tw-mt-1{margin-top:.25rem}.tw-block{display:block}.tw-inline-block{display:inline-block}.tw-flex{display:flex}.tw-inline-flex{display:inline-flex}.tw-grid{display:grid}.tw-hidden{display:none}.tw-aspect-square{aspect-ratio:1/1}.\!tw-h-\[30px\]{height:30px!important}.tw-h-1{height:.25rem}.tw-h-1\.5{height:.375rem}.tw-h-10{height:2.5rem}.tw-h-2{height:.5rem}.tw-h-2\.5{height:.625rem}.tw-h-4{height:1rem}.tw-h-5{height:1.25rem}.tw-h-52{height:13rem}.tw-h-6{height:1.5rem}.tw-h-8{height:2rem}.tw-h-\[0\.8em\]{height:.8em}.tw-h-\[1\.2em\]{height:1.2em}.tw-h-\[1000px\]{height:1000px}.tw-h-\[100vh\]{height:100vh}.tw-h-\[10px\]{height:10px}.tw-h-\[110px\]{height:110px}.tw-h-\[14px\]{height:14px}.tw-h-\[160px\]{height:160px}.tw-h-\[16px\]{height:16px}.tw-h-\[17px\]{height:17px}.tw-h-\[195px\]{height:195px}.tw-h-\[211px\]{height:211px}.tw-h-\[21px\]{height:21px}.tw-h-\[240px\]{height:240px}.tw-h-\[26px\]{height:26px}.tw-h-\[30px\]{height:30px}.tw-h-\[40px\]{height:40px}.tw-h-\[42px\]{height:42px}.tw-h-\[46px\]{height:46px}.tw-h-\[50px\]{height:50px}.tw-h-\[52px\]{height:52px}.tw-h-\[535px\]{height:535px}.tw-h-\[536px\]{height:536px}.tw-h-\[540px\]{height:540px}.tw-h-\[55px\]{height:55px}.tw-h-\[60px\]{height:60px}.tw-h-\[69px\]{height:69px}.tw-h-\[80\.6px\]{height:80.6px}.tw-h-\[80px\]{height:80px}.tw-h-\[94px\]{height:94px}.tw-h-\[95px\]{height:95px}.tw-h-button{height:3.75rem}.tw-h-card-compact{height:671px}.tw-h-full{height:100%}.tw-h-list-item-large{height:3.125rem}.tw-h-list-item-small{height:2.5rem}.tw-h-screen{height:100vh}.tw-h-squid-l{height:1.875rem}.tw-h-squid-m{height:1.25rem}.tw-h-squid-xl{height:2.5rem}.tw-h-squid-xs{height:.625rem}.tw-h-squid-xxl{height:3.75rem}.\!tw-max-h-\[470px\]{max-height:470px!important}.tw-max-h-\[120px\]{max-height:120px}.tw-max-h-\[211px\]{max-height:211px}.tw-max-h-\[535px\]{max-height:535px}.tw-max-h-\[540px\]{max-height:540px}.tw-max-h-\[55px\]{max-height:55px}.tw-max-h-\[60px\]{max-height:60px}.tw-max-h-\[80px\]{max-height:80px}.tw-max-h-\[80vh\]{max-height:80vh}.tw-max-h-list-item-small{max-height:2.5rem}.tw-max-h-modal-compact{max-height:631px}.tw-max-h-squid-m{max-height:1.25rem}.tw-max-h-squid-xl{max-height:2.5rem}.tw-min-h-\[195px\]{min-height:195px}.tw-min-h-\[30px\]{min-height:30px}.tw-min-h-\[55px\]{min-height:55px}.tw-min-h-button{min-height:3.75rem}.tw-min-h-card-compact{min-height:671px}.tw-min-h-squid-l{min-height:1.875rem}.tw-min-h-squid-m{min-height:1.25rem}.tw-min-h-squid-xl{min-height:2.5rem}.\!tw-w-fit{width:-moz-fit-content!important;width:fit-content!important}.tw-w-10{width:2.5rem}.tw-w-12{width:3rem}.tw-w-36{width:9rem}.tw-w-4{width:1rem}.tw-w-5{width:1.25rem}.tw-w-52{width:13rem}.tw-w-6{width:1.5rem}.tw-w-8{width:2rem}.tw-w-96{width:24rem}.tw-w-\[1\.2em\]{width:1.2em}.tw-w-\[1\.5px\]{width:1.5px}.tw-w-\[1000px\]{width:1000px}.tw-w-\[100px\]{width:100px}.tw-w-\[100vw\]{width:100vw}.tw-w-\[106\.5px\]{width:106.5px}.tw-w-\[110px\]{width:110px}.tw-w-\[1260px\]{width:1260px}.tw-w-\[135px\]{width:135px}.tw-w-\[140px\]{width:140px}.tw-w-\[150px\]{width:150px}.tw-w-\[157px\]{width:157px}.tw-w-\[160px\]{width:160px}.tw-w-\[16px\]{width:16px}.tw-w-\[180px\]{width:180px}.tw-w-\[22px\]{width:22px}.tw-w-\[26px\]{width:26px}.tw-w-\[299px\]{width:299px}.tw-w-\[2px\]{width:2px}.tw-w-\[30px\]{width:30px}.tw-w-\[36px\]{width:36px}.tw-w-\[3px\]{width:3px}.tw-w-\[40px\]{width:40px}.tw-w-\[42px\]{width:42px}.tw-w-\[44px\]{width:44px}.tw-w-\[470px\]{width:470px}.tw-w-\[500px\]{width:500px}.tw-w-\[50px\]{width:50px}.tw-w-\[52px\]{width:52px}.tw-w-\[54px\]{width:54px}.tw-w-\[56\%\]{width:56%}.tw-w-\[600px\]{width:600px}.tw-w-\[60px\]{width:60px}.tw-w-\[67\%\]{width:67%}.tw-w-\[69px\]{width:69px}.tw-w-\[70px\]{width:70px}.tw-w-\[720px\]{width:720px}.tw-w-\[72px\]{width:72px}.tw-w-\[80px\]{width:80px}.tw-w-\[90px\]{width:90px}.tw-w-\[92px\]{width:92px}.tw-w-\[94px\]{width:94px}.tw-w-fit{width:-moz-fit-content;width:fit-content}.tw-w-full{width:100%}.tw-w-list-item-compact{width:22.0625rem}.tw-w-list-item-large{width:23.75rem}.tw-w-max{width:-moz-max-content;width:max-content}.tw-w-modal-compact{width:373px}.tw-w-squid-l{width:1.875rem}.tw-w-squid-m{width:1.25rem}.tw-w-squid-s{width:.9375rem}.tw-w-squid-xl{width:2.5rem}.tw-w-squid-xxl{width:3.75rem}.\!tw-min-w-0{min-width:0!important}.tw-min-w-96{min-width:24rem}.tw-min-w-\[30px\]{min-width:30px}.tw-min-w-\[60px\]{min-width:60px}.tw-min-w-list-item-small{min-width:21.25rem}.tw-min-w-modal-compact{min-width:373px}.tw-min-w-squid-xl{min-width:2.5rem}.tw-min-w-squid-xxl{min-width:3.75rem}.tw-max-w-96{max-width:24rem}.tw-max-w-\[100vw\]{max-width:100vw}.tw-max-w-\[180px\]{max-width:180px}.tw-max-w-\[200px\]{max-width:200px}.tw-max-w-\[299px\]{max-width:299px}.tw-max-w-\[320px\]{max-width:320px}.tw-max-w-\[70px\]{max-width:70px}.tw-max-w-\[72px\]{max-width:72px}.tw-max-w-\[80px\]{max-width:80px}.tw-max-w-full{max-width:100%}.tw-max-w-modal-compact{max-width:373px}.tw-max-w-none{max-width:none}.tw-max-w-xl{max-width:36rem}.tw-flex-1{flex:1 1 0%}.tw-flex-shrink-0{flex-shrink:0}.tw-flex-grow{flex-grow:1}.tw-grow-0{flex-grow:0}.tw-origin-center{transform-origin:center}.-tw-translate-x-1\/2{--tw-translate-x:-50%}.-tw-translate-x-1\/2,.-tw-translate-x-1\/3{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-tw-translate-x-1\/3{--tw-translate-x:-33.333333%}.-tw-translate-y-1\/2{--tw-translate-y:-50%}.-tw-translate-y-1\/2,.tw-translate-x-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.tw-translate-x-1\/2{--tw-translate-x:50%}.tw-translate-y-1\/2{--tw-translate-y:50%}.-tw-rotate-90,.tw-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-tw-rotate-90{--tw-rotate:-90deg}.tw-rotate-180{--tw-rotate:180deg}.tw-rotate-180,.tw-rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.tw-rotate-90{--tw-rotate:90deg}@keyframes tw-blur-in{0%{-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);background-color:var(--squid-theme-material-dark-average)}}.tw-animate-blur-in{animation:tw-blur-in var(--squid-animation-blur-in-duration,0s) cubic-bezier(.165,.84,.44,1) both}@keyframes tw-blur-out{0%{-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);background-color:var(--squid-theme-material-dark-average)}to{-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}}.tw-animate-blur-out{animation:tw-blur-out var(--squid-animation-blur-out-duration,0s) cubic-bezier(.165,.84,.44,1) both}@keyframes tw-collapse-route{0%{height:100%}to{height:60px}}.tw-animate-collapse-route{animation:tw-collapse-route var(--squid-animation-collapse-to-bottom-duration,0s) linear both}@keyframes tw-expand-route{0%{height:60px}to{height:100%}}.tw-animate-expand-route{animation:tw-expand-route var(--squid-animation-expand-to-top-duration,0s) linear both}@keyframes tw-fade-in{0%{opacity:0}to{opacity:1}}.tw-animate-fade-in{animation:tw-fade-in var(--squid-animation-fade-in-duration,0s) ease-out both}@keyframes tw-fade-out{0%{opacity:1}to{opacity:0}}.tw-animate-fade-out{animation:tw-fade-out var(--squid-animation-fade-out-duration,0s) ease-out both}@keyframes tw-loading-gradient{0%{opacity:0;transform:translateX(-70%)}50%{opacity:1}to{opacity:0;transform:translateX(70%)}}.tw-animate-loading-gradient{animation:tw-loading-gradient 1s ease-in-out infinite both}@keyframes tw-move-loading-cover-to-right{0%{transform:translateX(-64%)}to{transform:translateX(0)}}.tw-animate-move-loading-cover-to-right{animation:tw-move-loading-cover-to-right 1.4s linear infinite}@keyframes tw-scale-and-fade-down{0%{opacity:1;transform:scale(1)}to{opacity:.5;transform:scale(.9)}}.tw-animate-scale-and-fade-down{animation:tw-scale-and-fade-down var(--squid-animation-scale-and-fade-down-duration,0s) linear both}@keyframes tw-scale-and-fade-up{0%{opacity:.5;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.tw-animate-scale-and-fade-up{animation:tw-scale-and-fade-up var(--squid-animation-scale-and-fade-up-duration,0s) linear both}@keyframes tw-slide-to-bottom{0%{transform:translateZ(0)}to{transform:translate3d(0,650px,0)}}.tw-animate-slide-to-bottom{animation:tw-slide-to-bottom var(--squid-animation-slide-to-bottom-duration,0s) cubic-bezier(.165,.84,.44,1) both}@keyframes tw-slide-to-top{0%{transform:translate3d(0,650px,0)}to{transform:translateZ(0)}}.tw-animate-slide-to-top{animation:tw-slide-to-top var(--squid-animation-slide-to-top-duration,0s) cubic-bezier(.165,.84,.44,1) both}.tw-cursor-help{cursor:help}.tw-cursor-not-allowed{cursor:not-allowed}.tw-cursor-pointer{cursor:pointer}.tw-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.tw-grid-cols-\[100px\,1fr\,100px\]{grid-template-columns:100px 1fr 100px}.tw-grid-cols-\[180px_299px\]{grid-template-columns:180px 299px}.tw-grid-cols-\[40px\,1fr\,60px\]{grid-template-columns:40px 1fr 60px}.tw-grid-cols-\[70px_1fr\]{grid-template-columns:70px 1fr}.tw-flex-col{flex-direction:column}.tw-flex-col-reverse{flex-direction:column-reverse}.tw-flex-wrap{flex-wrap:wrap}.tw-items-start{align-items:flex-start}.tw-items-end{align-items:flex-end}.tw-items-center{align-items:center}.tw-items-stretch{align-items:stretch}.tw-justify-start{justify-content:flex-start}.tw-justify-end{justify-content:flex-end}.tw-justify-center{justify-content:center}.tw-justify-between{justify-content:space-between}.tw-gap-0{gap:0}.tw-gap-0\.5{gap:.125rem}.tw-gap-1{gap:.25rem}.tw-gap-1\.5{gap:.375rem}.tw-gap-2{gap:.5rem}.tw-gap-\[2px\]{gap:2px}.tw-gap-squid-m{gap:1.25rem}.tw-gap-squid-s{gap:.9375rem}.tw-gap-squid-xs{gap:.625rem}.tw-gap-squid-xxs{gap:.3125rem}.tw-gap-x-squid-xs{-moz-column-gap:.625rem;column-gap:.625rem}.tw-divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.tw-divide-material-light-thin>:not([hidden])~:not([hidden]){border-color:var(--squid-theme-material-light-thin)}.tw-self-end{align-self:flex-end}.tw-self-stretch{align-self:stretch}.tw-overflow-auto{overflow:auto}.tw-overflow-hidden{overflow:hidden}.tw-overflow-y-auto{overflow-y:auto}.tw-overflow-x-hidden{overflow-x:hidden}.tw-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tw-text-nowrap{text-wrap:nowrap}.tw-rounded-2xl{border-radius:1rem}.tw-rounded-\[20px\]{border-radius:20px}.tw-rounded-\[25px\]{border-radius:25px}.tw-rounded-full{border-radius:9999px}.tw-rounded-md{border-radius:.375rem}.tw-rounded-sm{border-radius:.125rem}.tw-rounded-squid-l{border-radius:1.875rem}.tw-rounded-squid-m{border-radius:1.25rem}.tw-rounded-squid-s{border-radius:.9375rem}.tw-rounded-squid-xs{border-radius:.625rem}.tw-rounded-squid-xxl{border-radius:3.75rem}.tw-rounded-squid-xxs{border-radius:.3125rem}.tw-rounded-xl{border-radius:.75rem}.tw-rounded-bl-squid-l{border-bottom-left-radius:1.875rem}.tw-rounded-br-full{border-bottom-right-radius:9999px}.tw-rounded-br-squid-l{border-bottom-right-radius:1.875rem}.tw-rounded-tl-\[25px\]{border-top-left-radius:25px}.tw-rounded-tl-squid-l{border-top-left-radius:1.875rem}.tw-rounded-tl-xl{border-top-left-radius:.75rem}.tw-rounded-tr-\[25px\]{border-top-right-radius:25px}.tw-rounded-tr-full{border-top-right-radius:9999px}.tw-rounded-tr-squid-l{border-top-right-radius:1.875rem}.tw-rounded-tr-xl{border-top-right-radius:.75rem}.tw-border{border-width:1px}.tw-border-2{border-width:2px}.tw-border-\[1px\]{border-width:1px}.tw-border-y-\[4px\]{border-bottom-width:4px;border-top-width:4px}.tw-border-b{border-bottom-width:1px}.tw-border-r{border-right-width:1px}.tw-border-t{border-top-width:1px}.tw-border-solid{border-style:solid}.\!tw-border-transparent{border-color:transparent!important}.tw-border-grey-500{border-color:var(--squid-theme-grey-500)}.tw-border-grey-800{border-color:var(--squid-theme-grey-800)}.tw-border-grey-900{border-color:var(--squid-theme-grey-900)}.tw-border-material-light-thin{border-color:var(--squid-theme-material-light-thin)}.tw-border-slate-800{--tw-border-opacity:1;border-color:rgb(30 41 59/var(--tw-border-opacity))}.tw-border-transparent{border-color:transparent}.tw-border-b-material-dark-thin{border-bottom-color:var(--squid-theme-material-dark-thin)}.tw-border-t-material-light-thin{border-top-color:var(--squid-theme-material-light-thin)}.\!tw-bg-grey-100{background-color:var(--squid-theme-grey-100)!important}.\!tw-bg-grey-300{background-color:var(--squid-theme-grey-300)!important}.\!tw-bg-grey-500{background-color:var(--squid-theme-grey-500)!important}.\!tw-bg-grey-600{background-color:var(--squid-theme-grey-600)!important}.\!tw-bg-grey-800{background-color:var(--squid-theme-grey-800)!important}.\!tw-bg-material-light-thin{background-color:var(--squid-theme-material-light-thin)!important}.\!tw-bg-status-negative{background-color:var(--squid-theme-status-negative)!important}.\!tw-bg-status-partial{background-color:var(--squid-theme-status-partial)!important}.\!tw-bg-status-positive{background-color:var(--squid-theme-status-positive)!important}.\!tw-bg-transparent{background-color:transparent!important}.tw-bg-\[\#E4FE53\]{--tw-bg-opacity:1;background-color:rgb(228 254 83/var(--tw-bg-opacity))}.tw-bg-\[currentColor\]{background-color:currentColor}.tw-bg-grey-100{background-color:var(--squid-theme-grey-100)}.tw-bg-grey-300{background-color:var(--squid-theme-grey-300)}.tw-bg-grey-500{background-color:var(--squid-theme-grey-500)}.tw-bg-grey-700{background-color:var(--squid-theme-grey-700)}.tw-bg-grey-800{background-color:var(--squid-theme-grey-800)}.tw-bg-grey-900{background-color:var(--squid-theme-grey-900)}.tw-bg-inherit{background-color:inherit}.tw-bg-material-dark-thick{background-color:var(--squid-theme-material-dark-thick)}.tw-bg-material-dark-thin{background-color:var(--squid-theme-material-dark-thin)}.tw-bg-material-light-thin{background-color:var(--squid-theme-material-light-thin)}.tw-bg-royal-400{background-color:var(--squid-theme-royal-400)}.tw-bg-royal-500{background-color:var(--squid-theme-royal-500)}.tw-bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity))}.tw-bg-slate-950{--tw-bg-opacity:1;background-color:rgb(2 6 23/var(--tw-bg-opacity))}.tw-bg-status-negative{background-color:var(--squid-theme-status-negative)}.tw-bg-status-partial{background-color:var(--squid-theme-status-partial)}.tw-bg-status-positive{background-color:var(--squid-theme-status-positive)}.tw-bg-transparent{background-color:transparent}.tw-bg-dark-cover{background-image:linear-gradient(90deg,var(--squid-theme-material-dark-thick) 45.4%,transparent 50.85%,var(--squid-theme-material-dark-thick) 55.61%)}.tw-bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.tw-bg-gradient-to-l{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.tw-bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.tw-bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.tw-bg-royal-dark{background-image:linear-gradient(180deg,#bf91f2,#a577d8)}.tw-bg-royal-light{background-image:linear-gradient(180deg,#a577d8,#bf91f2)}.tw-from-grey-800{--tw-gradient-from:var(--squid-theme-grey-800) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.tw-from-grey-900{--tw-gradient-from:var(--squid-theme-grey-900) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.tw-to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.tw-object-cover{-o-object-fit:cover;object-fit:cover}.\!tw-p-0{padding:0!important}.tw-p-0{padding:0}.tw-p-0\.5{padding:.125rem}.tw-p-1{padding:.25rem}.tw-p-2{padding:.5rem}.tw-p-4{padding:1rem}.tw-p-8{padding:2rem}.tw-p-\[3px\]{padding:3px}.tw-p-squid-l{padding:1.875rem}.tw-p-squid-xs{padding:.625rem}.tw-p-squid-xxl{padding:3.75rem}.tw-p-squid-xxs{padding:.3125rem}.\!tw-px-0{padding-left:0!important;padding-right:0!important}.\!tw-px-4{padding-left:1rem!important;padding-right:1rem!important}.tw-px-0{padding-left:0;padding-right:0}.tw-px-4{padding-left:1rem;padding-right:1rem}.tw-px-\[3px\]{padding-left:3px;padding-right:3px}.tw-px-squid-l{padding-left:1.875rem;padding-right:1.875rem}.tw-px-squid-m{padding-left:1.25rem;padding-right:1.25rem}.tw-px-squid-s{padding-left:.9375rem;padding-right:.9375rem}.tw-px-squid-xs{padding-left:.625rem;padding-right:.625rem}.tw-px-squid-xxl{padding-left:3.75rem;padding-right:3.75rem}.tw-px-squid-xxs{padding-left:.3125rem;padding-right:.3125rem}.tw-py-0{padding-bottom:0;padding-top:0}.tw-py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.tw-py-2{padding-bottom:.5rem;padding-top:.5rem}.tw-py-\[1px\]{padding-bottom:1px;padding-top:1px}.tw-py-squid-l{padding-bottom:1.875rem;padding-top:1.875rem}.tw-py-squid-m{padding-bottom:1.25rem;padding-top:1.25rem}.tw-py-squid-s{padding-bottom:.9375rem;padding-top:.9375rem}.tw-py-squid-xl{padding-bottom:2.5rem;padding-top:2.5rem}.tw-py-squid-xs{padding-bottom:.625rem;padding-top:.625rem}.tw-py-squid-xxs{padding-bottom:.3125rem;padding-top:.3125rem}.tw-pb-\[15px\]{padding-bottom:15px}.tw-pb-squid-l{padding-bottom:1.875rem}.tw-pb-squid-m{padding-bottom:1.25rem}.tw-pb-squid-s{padding-bottom:.9375rem}.tw-pb-squid-xs{padding-bottom:.625rem}.tw-pb-squid-xxs{padding-bottom:.3125rem}.tw-pl-1{padding-left:.25rem}.tw-pl-\[33px\]{padding-left:33px}.tw-pl-\[40px\]{padding-left:40px}.tw-pl-\[75px\]{padding-left:75px}.tw-pl-\[7px\]{padding-left:7px}.tw-pl-squid-m{padding-left:1.25rem}.tw-pl-squid-xxs{padding-left:.3125rem}.tw-pr-1{padding-right:.25rem}.tw-pr-2{padding-right:.5rem}.tw-pr-2\.5{padding-right:.625rem}.tw-pr-4{padding-right:1rem}.tw-pr-\[40px\]{padding-right:40px}.tw-pr-\[70px\]{padding-right:70px}.tw-pr-squid-l{padding-right:1.875rem}.tw-pr-squid-m{padding-right:1.25rem}.tw-pr-squid-xl{padding-right:2.5rem}.tw-pr-squid-xs{padding-right:.625rem}.tw-pr-squid-xxs{padding-right:.3125rem}.tw-pt-0{padding-top:0}.tw-pt-\[5px\]{padding-top:5px}.tw-pt-squid-m{padding-top:1.25rem}.tw-pt-squid-xs{padding-top:.625rem}.tw-pt-squid-xxs{padding-top:.3125rem}.tw-text-left{text-align:left}.tw-text-center{text-align:center}.tw-text-right{text-align:right}.tw-font-geist{font-family:Geist,sans-serif}.tw-text-body-large{font-size:1.75625rem}.tw-text-body-medium{font-size:1.40625rem}.tw-text-body-small{font-size:1.14375rem}.tw-text-caption{font-size:.875rem}.tw-text-heading-large{font-size:4.40625rem}.tw-text-heading-medium{font-size:3.08125rem}.tw-text-heading-small{font-size:2.1875rem}.tw-text-lg{font-size:1.125rem;line-height:1.75rem}.tw-text-sm{font-size:.875rem;line-height:1.25rem}.tw-text-xs{font-size:.75rem;line-height:1rem}.\!tw-font-medium{font-weight:500!important}.tw-font-heading-bold{font-weight:600}.tw-font-heading-regular{font-weight:400}.tw-font-semibold,.tw-font-typography-bold{font-weight:600}.tw-font-typography-regular{font-weight:400}.\!tw-leading-\[10px\]{line-height:10px!important}.\!tw-leading-\[13px\]{line-height:13px!important}.\!tw-leading-\[16px\]{line-height:16px!important}.\!tw-leading-\[17px\]{line-height:17px!important}.\!tw-leading-\[18px\]{line-height:18px!important}.\!tw-leading-\[1\]{line-height:1!important}.\!tw-leading-\[20px\]{line-height:20px!important}.\!tw-leading-\[9px\]{line-height:9px!important}.tw-leading-5{line-height:1.25rem}.tw-leading-\[0\]{line-height:0}.tw-leading-\[10px\]{line-height:10px}.tw-leading-\[13px\]{line-height:13px}.tw-leading-\[1\]{line-height:1}.tw-leading-\[43px\]{line-height:43px}.tw-leading-body-large{line-height:39.34px}.tw-leading-body-medium{line-height:31.5px}.tw-leading-body-small{line-height:25.62px}.tw-leading-caption{line-height:19.6px}.tw-leading-heading-large{line-height:66.97px}.tw-leading-heading-medium{line-height:49.3px}.tw-leading-heading-small{line-height:38.5px}.tw-tracking-body-large{letter-spacing:-.843px}.tw-tracking-body-medium{letter-spacing:-.675px}.tw-tracking-body-small{letter-spacing:-.366px}.tw-tracking-heading-large{letter-spacing:-3.525px}.tw-tracking-heading-medium{letter-spacing:-2.465px}.tw-tracking-heading-small{letter-spacing:-1.05px}.\!tw-text-\[transparent\]{color:transparent!important}.\!tw-text-grey-300{color:var(--squid-theme-grey-300)!important}.\!tw-text-grey-500{color:var(--squid-theme-grey-500)!important}.\!tw-text-grey-600{color:var(--squid-theme-grey-600)!important}.\!tw-text-grey-800{color:var(--squid-theme-grey-800)!important}.tw-text-\[\#FBFBFD\]{--tw-text-opacity:1;color:rgb(251 251 253/var(--tw-text-opacity))}.tw-text-grey-100{color:var(--squid-theme-grey-100)}.tw-text-grey-200{color:var(--squid-theme-grey-200)}.tw-text-grey-300{color:var(--squid-theme-grey-300)}.tw-text-grey-400{color:var(--squid-theme-grey-400)}.tw-text-grey-500{color:var(--squid-theme-grey-500)}.tw-text-grey-600{color:var(--squid-theme-grey-600)}.tw-text-grey-700{color:var(--squid-theme-grey-700)}.tw-text-grey-800{color:var(--squid-theme-grey-800)}.tw-text-grey-900{color:var(--squid-theme-grey-900)}.tw-text-material-light-average{color:var(--squid-theme-material-light-average)}.tw-text-material-light-thick{color:var(--squid-theme-material-light-thick)}.tw-text-material-light-thin{color:var(--squid-theme-material-light-thin)}.tw-text-royal-400{color:var(--squid-theme-royal-400)}.tw-text-royal-500{color:var(--squid-theme-royal-500)}.tw-text-status-negative{color:var(--squid-theme-status-negative)}.tw-text-status-partial{color:var(--squid-theme-status-partial)}.tw-text-status-positive{color:var(--squid-theme-status-positive)}.tw-text-transparent{color:transparent}.tw-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.\!tw-opacity-100{opacity:1!important}.tw-opacity-0{opacity:0}.tw-opacity-100{opacity:1}.tw-opacity-33{opacity:.33}.tw-opacity-50{opacity:.5}.tw-opacity-66{opacity:.66}.tw-shadow-elevation-light-1{--tw-shadow:0px 1px 2px 0px #0000001a;--tw-shadow-colored:0px 1px 2px 0px var(--tw-shadow-color)}.tw-shadow-elevation-light-1,.tw-shadow-elevation-light-2{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.tw-shadow-elevation-light-2{--tw-shadow:0px 2px 5px 1px rgba(0,0,0,.1),0px 5px 20px -1px rgba(0,0,0,.1);--tw-shadow-colored:0px 2px 5px 1px var(--tw-shadow-color),0px 5px 20px -1px var(--tw-shadow-color)}.tw-shadow-elevation-light-3{--tw-shadow:0px 2px 4px 0px rgba(0,0,0,.1),0px 5px 50px -1px rgba(0,0,0,.2);--tw-shadow-colored:0px 2px 4px 0px var(--tw-shadow-color),0px 5px 50px -1px var(--tw-shadow-color)}.tw-shadow-elevation-light-3,.tw-shadow-inset-royal{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.tw-shadow-inset-royal{--tw-shadow:0px 0px 50px 0px #876fe2 inset;--tw-shadow-colored:inset 0px 0px 50px 0px var(--tw-shadow-color)}.tw-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.tw-outline{outline-style:solid}.tw-outline-1{outline-width:1px}.tw-outline-2{outline-width:2px}.-tw-outline-offset-2{outline-offset:-2px}.-tw-outline-offset-\[1px\]{outline-offset:-1px}.\!tw-outline-status-negative{outline-color:var(--squid-theme-status-negative)!important}.tw-outline-material-light-thin{outline-color:var(--squid-theme-material-light-thin)}.tw-outline-royal-500{outline-color:var(--squid-theme-royal-500)}.tw-backdrop-blur-2xl{--tw-backdrop-blur:blur(40px)}.tw-backdrop-blur-2xl,.tw-backdrop-blur-lg{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.tw-backdrop-blur-lg{--tw-backdrop-blur:blur(16px)}.tw-backdrop-blur\/10{--tw-backdrop-blur:blur(10px)}.tw-backdrop-blur\/10,.tw-backdrop-blur\/20{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.tw-backdrop-blur\/20{--tw-backdrop-blur:blur(20px)}.tw-backdrop-saturate-150{--tw-backdrop-saturate:saturate(1.5);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.tw-transition-\[border-width\]{transition-duration:.15s;transition-property:border-width;transition-timing-function:cubic-bezier(.4,0,.2,1)}.tw-transition-\[width\,height\]{transition-duration:.15s;transition-property:width,height;transition-timing-function:cubic-bezier(.4,0,.2,1)}.tw-transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.tw-transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.tw-transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.tw-transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.tw-delay-300{transition-delay:.3s}.tw-duration-1000{transition-duration:1s}.tw-duration-150{transition-duration:.15s}.tw-duration-200{transition-duration:.2s}.tw-duration-300{transition-duration:.3s}.tw-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@font-face{font-family:Geist;src:local("Geist"),url(fonts/Geist-Variable.woff2) format("woff2")}*,:after,:before{box-sizing:border-box}:disabled{cursor:not-allowed}.tw-assets-button-mask{-webkit-mask-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIiIGhlaWdodD0iNDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTAgMjBBMTkuOTM4IDE5LjkzOCAwIDAgMSA1Ljg1OCA1Ljg1OCAxOS45MzcgMTkuOTM3IDAgMCAxIDIwIDBhMTkuOTM3IDE5LjkzNyAwIDAgMSAxNC4xNDIgNS44NThjLjUyOC41MjcgMS4wNDYgMS4wNiAxLjU2IDEuNTg5QzM4Ljk4OCAxMC44MyA0Mi4wNjcgMTQgNDYgMTRjMy45MzIgMCA3LjAxMS0zLjE3IDEwLjI5OS02LjU1My41MTMtLjUyOCAxLjAzMS0xLjA2MiAxLjU1OS0xLjU5QTE5LjkzNyAxOS45MzcgMCAwIDEgNzIgMHY0MGExOS45MzcgMTkuOTM3IDAgMCAxLTE0LjE0Mi01Ljg1OGMtLjUyNS0uNTI1LTEuMDQtMS4wNTYtMS41NTEtMS41ODJDNTMuMDE3IDI5LjE3NCA0OS45MzQgMjYgNDYgMjZzLTcuMDE3IDMuMTc0LTEwLjMwNiA2LjU2Yy0uNTExLjUyNi0xLjAyNyAxLjA1Ny0xLjU1MiAxLjU4MkExOS45MzcgMTkuOTM3IDAgMCAxIDIwIDQwYTE5LjkzNyAxOS45MzcgMCAwIDEtMTQuMTQyLTUuODU4QTE5LjkzNyAxOS45MzcgMCAwIDEgMCAyMFoiIGZpbGw9IiNGQkZCRkQiIHN0eWxlPSJmaWxsOmNvbG9yKGRpc3BsYXktcDMgLjk4NCAuOTg2MSAuOTkwNCk7ZmlsbC1vcGFjaXR5OjEiLz48L3N2Zz4=");mask-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIiIGhlaWdodD0iNDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTAgMjBBMTkuOTM4IDE5LjkzOCAwIDAgMSA1Ljg1OCA1Ljg1OCAxOS45MzcgMTkuOTM3IDAgMCAxIDIwIDBhMTkuOTM3IDE5LjkzNyAwIDAgMSAxNC4xNDIgNS44NThjLjUyOC41MjcgMS4wNDYgMS4wNiAxLjU2IDEuNTg5QzM4Ljk4OCAxMC44MyA0Mi4wNjcgMTQgNDYgMTRjMy45MzIgMCA3LjAxMS0zLjE3IDEwLjI5OS02LjU1My41MTMtLjUyOCAxLjAzMS0xLjA2MiAxLjU1OS0xLjU5QTE5LjkzNyAxOS45MzcgMCAwIDEgNzIgMHY0MGExOS45MzcgMTkuOTM3IDAgMCAxLTE0LjE0Mi01Ljg1OGMtLjUyNS0uNTI1LTEuMDQtMS4wNTYtMS41NTEtMS41ODJDNTMuMDE3IDI5LjE3NCA0OS45MzQgMjYgNDYgMjZzLTcuMDE3IDMuMTc0LTEwLjMwNiA2LjU2Yy0uNTExLjUyNi0xLjAyNyAxLjA1Ny0xLjU1MiAxLjU4MkExOS45MzcgMTkuOTM3IDAgMCAxIDIwIDQwYTE5LjkzNyAxOS45MzcgMCAwIDEtMTQuMTQyLTUuODU4QTE5LjkzNyAxOS45MzcgMCAwIDEgMCAyMFoiIGZpbGw9IiNGQkZCRkQiIHN0eWxlPSJmaWxsOmNvbG9yKGRpc3BsYXktcDMgLjk4NCAuOTg2MSAuOTkwNCk7ZmlsbC1vcGFjaXR5OjEiLz48L3N2Zz4=");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.tw-font-geist{font-feature-settings:"ss01" on,"ss03" on}li{list-style-type:none}.squid-property-row-bg:nth-child(odd)>div{background:linear-gradient(91deg,var(--squid-theme-grey-100-005) 0,transparent 100%)}:focus-visible{outline-color:var(--squid-theme-royal-500);outline-style:solid;outline-width:2px}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}:invalid{outline-color:var(--squid-theme-status-negative)}.tw-group[data-squid-theme-type=dark] #squid-lottie-animation #keystroke{stroke:var(--squid-theme-grey-100)!important}.tw-group[data-squid-theme-type=light] #squid-lottie-animation #keystroke{stroke:var(--squid-theme-grey-900)!important}#squid-lottie-animation #keyfill{fill:var(--squid-theme-royal-500)!important}.tw-timeline-gradient-mask{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 calc(50% - 15px),#000 calc(50% + 15px),transparent);mask-image:linear-gradient(180deg,transparent 0,#000 calc(50% - 15px),#000 calc(50% + 15px),transparent)}input.date-input-no-icon::-webkit-calendar-picker-indicator,input.date-input-no-icon::-webkit-inner-spin-button{-webkit-appearance:none;display:none}@keyframes loading-gradient-scroll{0%{transform:translateX(-56%)}to{transform:translateX(0)}}.loading-gradient{--mid-color:transparent;overflow:hidden;position:relative;[data-squid-theme-type=dark] &{--mid-color:var(--squid-theme-material-light-average)}&:after{animation:loading-gradient-scroll 1s ease-in-out infinite both;background-image:linear-gradient(to right,var(--squid-theme-material-light-thin) 43%,var(--mid-color) 52%,var(--squid-theme-material-light-thin) 56%);content:"";display:block;height:100%;left:0;position:absolute;top:0;width:230%}}.boost-badge{--boost-badge-badge-color:var(--squid-theme-royal-400);--boost-badge-text-color:var(--squid-theme-grey-900);--boost-badge-shadow-color:#e4fe53;[data-squid-theme-type=dark] &{--boost-badge-badge-color:#e4fe53;--boost-badge-shadow-color:var(--squid-theme-royal-400)}}:root{.rdp{--rdp-accent-color:var(--squid-theme-material-light-thin);--rdp-background-color:transparent;margin:0!important}.rdp-month,.rdp-table{width:100%}.rdp-table{border-spacing:2px}.rdp-nav{width:28.5%;button{width:50%}}.rdp-cell,.rdp-head_cell{flex-grow:1;font-size:.875rem;height:auto;width:auto}.rdp-head_cell{height:2.5rem}.rdp-day{width:100%}.rdp-caption_label{font-weight:400}.rdp-day,.rdp-day_range_end.rdp-day_range_start{border-radius:.3125rem!important}.day-picker-from .rdp-day_range_start,.day-picker-to .rdp-day_range_end{--tw-text-opacity:1;background-color:var(--squid-theme-royal-500);color:rgb(255 255 255/var(--tw-text-opacity))}.rdp-button:hover:not([disabled]):not(.rdp-nav_button){border:2px solid var(--squid-theme-royal-500)}}.sb-show-main.sb-main-centered #storybook-root{margin:0;padding:0;width:100%}@media (min-width:480px){.sb-show-main.sb-main-centered #storybook-root{margin:auto;width:auto}}.squid-animated-loader-dash{stroke-dasharray:20.942,62.827;stroke-dashoffset:0;animation:squid-animated-loader-dash-grow var(--squid-loader-rotate-duration) infinite alternate ease-in-out}@keyframes squid-animated-loader-dash-grow{0%{stroke-dasharray:62.827;stroke-dashoffset:0}to{stroke-dasharray:4141.884;stroke-dashoffset:-20.942}}.squid-animated-loader{animation:rotate-360 var(--squid-loader-rotate-duration) linear infinite}@keyframes rotate-360{to{transform:rotate(1turn)}}.placeholder\:tw-text-grey-600::-moz-placeholder{color:var(--squid-theme-grey-600)}.placeholder\:tw-text-grey-600::placeholder{color:var(--squid-theme-grey-600)}.placeholder-shown\:tw-text-grey-600:-moz-placeholder-shown{color:var(--squid-theme-grey-600)}.placeholder-shown\:tw-text-grey-600:placeholder-shown{color:var(--squid-theme-grey-600)}.invalid\:tw-outline-status-negative:invalid{outline-color:var(--squid-theme-status-negative)}.hover\:tw-border-material-light-average:hover{border-color:var(--squid-theme-material-light-average)}.hover\:tw-bg-material-light-thin:hover{background-color:var(--squid-theme-material-light-thin)}.hover\:tw-text-grey-400:hover{color:var(--squid-theme-grey-400)}.hover\:tw-opacity-100:hover{opacity:1}.focus\:tw-bg-material-light-thin:focus{background-color:var(--squid-theme-material-light-thin)}.focus\:tw-text-royal-400:focus{color:var(--squid-theme-royal-400)}.focus\:tw-opacity-100:focus{opacity:1}.focus\:tw-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.disabled\:tw-cursor-not-allowed:disabled{cursor:not-allowed}.tw-group\/base-button:hover .group-hover\/base-button\:tw-block,.tw-group\/list-item:hover .group-hover\/list-item\:tw-block{display:block}.tw-group\/history-item:hover .group-hover\/history-item\:tw-hidden{display:none}.tw-group\/flip-button:hover .group-hover\/flip-button\:tw-rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.tw-group\/boost-toggle:hover .group-hover\/boost-toggle\:tw-from-material-light-blend-grey-900{--tw-gradient-from:var(--squid-theme-material-light-blend-grey-900) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.tw-group\/swap-step-item-button:hover .group-hover\/swap-step-item-button\:tw-from-grey-700{--tw-gradient-from:var(--squid-theme-grey-700) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.tw-group\/collapsing-section:hover .group-hover\/collapsing-section\:tw-opacity-100{opacity:1}.tw-group\/history-item:hover .group-hover\/history-item\:tw-opacity-0{opacity:0}.tw-group\/history-item:hover .group-hover\/history-item\:tw-opacity-100,.tw-group\/list-item:focus .group-focus\/list-item\:tw-opacity-100,.tw-group\/list-item:hover .group-hover\/list-item\:tw-opacity-100{opacity:1}.tw-group\/boost-toggle:disabled .group-disabled\/boost-toggle\:tw-grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.tw-peer:focus~.peer-focus\:tw-hidden{display:none}.tw-peer:focus~.peer-focus\:tw-opacity-0{opacity:0}.aria-disabled\:tw-bg-grey-600[aria-disabled=true]{background-color:var(--squid-theme-grey-600)}.aria-disabled\:tw-text-grey-800[aria-disabled=true]{color:var(--squid-theme-grey-800)}@keyframes tw-move-to-left-with-spring-bounce{0%{transform:translateX(25%)}50%{transform:translateX(-27%)}80%{transform:translateX(-24%)}to{transform:translateX(-25%)}}.data-\[boost-mode\=boost\]\:tw-animate-move-to-left-with-spring-bounce[data-boost-mode=boost]{animation:tw-move-to-left-with-spring-bounce var(--squid-animation-move-with-spring-bounce-duration,0s) ease-out both}@keyframes tw-move-to-right-with-spring-bounce{0%{transform:translateX(-25%)}50%{transform:translateX(27%)}80%{transform:translateX(24%)}to{transform:translateX(25%)}}.data-\[boost-mode\=normal\]\:tw-animate-move-to-right-with-spring-bounce[data-boost-mode=normal]{animation:tw-move-to-right-with-spring-bounce var(--squid-animation-move-with-spring-bounce-duration,0s) ease-out both}.tw-group[data-boost-mode=boost] .group-data-\[boost-mode\=boost\]\:tw-left-\[calc\(50\%-2px\)\]{left:calc(50% - 2px)}.tw-group[data-boost-mode=normal] .group-data-\[boost-mode\=normal\]\:tw-left-\[calc\(50\%-6px\)\]{left:calc(50% - 6px)}.tw-group[data-squid-theme-type=dark] .group-data-\[squid-theme-type\=dark\]\:tw-bg-grey-100{background-color:var(--squid-theme-grey-100)}.tw-group[data-squid-theme-type=light] .group-data-\[squid-theme-type\=light\]\:tw-bg-grey-900{background-color:var(--squid-theme-grey-900)}.tw-group[data-squid-theme-type=dark] .group-data-\[squid-theme-type\=\'dark\'\]\:tw-bg-royal-dark{background-image:linear-gradient(180deg,#bf91f2,#a577d8)}.tw-group[data-squid-theme-type=light] .group-data-\[squid-theme-type\=\'light\'\]\:tw-bg-royal-light{background-image:linear-gradient(180deg,#a577d8,#bf91f2)}.tw-group[data-squid-theme-type=dark] .group-data-\[squid-theme-type\=dark\]\:tw-text-grey-100{color:var(--squid-theme-grey-100)}.tw-group[data-squid-theme-type=dark] .group-data-\[squid-theme-type\=dark\]\:tw-text-material-light-average{color:var(--squid-theme-material-light-average)}.tw-group[data-squid-theme-type=light] .group-data-\[squid-theme-type\=light\]\:tw-text-grey-900{color:var(--squid-theme-grey-900)}.tw-group[data-squid-theme-type=light] .group-data-\[squid-theme-type\=light\]\:tw-text-transparent{color:transparent}.tw-group[data-squid-theme-type=dark] .group-data-\[squid-theme-type\=dark\]\:tw-shadow-elevation-dark-2{--tw-shadow:0px 2px 5px 1px rgba(0,0,0,.2),0px 5px 20px -1px rgba(0,0,0,.33);--tw-shadow-colored:0px 2px 5px 1px var(--tw-shadow-color),0px 5px 20px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.tw-group[data-squid-theme-type=dark] .group-data-\[squid-theme-type\=dark\]\:tw-shadow-elevation-dark-3{--tw-shadow:0px 2px 4px 0px rgba(0,0,0,.2),0px 5px 50px -1px rgba(0,0,0,.33);--tw-shadow-colored:0px 2px 4px 0px var(--tw-shadow-color),0px 5px 50px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.tw-group[data-squid-theme-type=light] .group-data-\[squid-theme-type\=light\]\:tw-shadow-elevation-light-2{--tw-shadow:0px 2px 5px 1px rgba(0,0,0,.1),0px 5px 20px -1px rgba(0,0,0,.1);--tw-shadow-colored:0px 2px 5px 1px var(--tw-shadow-color),0px 5px 20px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.tw-group[data-squid-theme-type=light] .group-data-\[squid-theme-type\=light\]\:tw-shadow-elevation-light-3{--tw-shadow:0px 2px 4px 0px rgba(0,0,0,.1),0px 5px 50px -1px rgba(0,0,0,.2);--tw-shadow-colored:0px 2px 4px 0px var(--tw-shadow-color),0px 5px 50px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.tw-peer[data-boost-mode=boost]~.peer-data-\[boost-mode\=boost\]\:tw-bg-status-positive{background-color:var(--squid-theme-status-positive)}.tw-peer[data-boost-mode=normal]~.peer-data-\[boost-mode\=normal\]\:tw-bg-current{background-color:currentColor}@media (min-width:480px){.mobile-lg\:-tw-left-\[3px\]{left:-3px}.mobile-lg\:tw-left-\[30px\]{left:30px}.mobile-lg\:tw-left-squid-l{left:1.875rem}.mobile-lg\:tw-block{display:block}.mobile-lg\:tw-h-\[205px\]{height:205px}.mobile-lg\:tw-h-\[75px\]{height:75px}.mobile-lg\:tw-h-auto{height:auto}.mobile-lg\:tw-h-card-large{height:660px}.mobile-lg\:tw-max-h-\[205px\]{max-height:205px}.mobile-lg\:tw-max-h-modal-large{max-height:600px}.mobile-lg\:tw-min-h-card-large{min-height:660px}.mobile-lg\:tw-w-\[140px\]{width:140px}.mobile-lg\:tw-w-\[190px\]{width:190px}.mobile-lg\:tw-w-card-large{width:480px}.mobile-lg\:tw-w-full{width:100%}.mobile-lg\:tw-w-list-item-large{width:23.75rem}.mobile-lg\:tw-w-modal-extra-large{width:440px}.mobile-lg\:tw-w-modal-large{width:400px}.mobile-lg\:tw-w-squid-xl{width:2.5rem}.mobile-lg\:tw-min-w-modal-large{min-width:400px}.mobile-lg\:tw-max-w-card-large{max-width:480px}.mobile-lg\:tw-max-w-modal-large{max-width:400px}.mobile-lg\:tw-rounded-squid-l{border-radius:1.875rem}.mobile-lg\:tw-px-squid-l{padding-left:1.875rem;padding-right:1.875rem}.mobile-lg\:tw-px-squid-m{padding-left:1.25rem;padding-right:1.25rem}.mobile-lg\:tw-px-squid-xs{padding-left:.625rem;padding-right:.625rem}.mobile-lg\:tw-px-squid-xxs{padding-left:.3125rem;padding-right:.3125rem}.mobile-lg\:tw-pl-squid-l{padding-left:1.875rem}}@media (prefers-color-scheme:dark){.dark\:tw-border-b-material-light-thin{border-bottom-color:var(--squid-theme-material-light-thin)}.dark\:tw-bg-material-dark-thick{background-color:var(--squid-theme-material-dark-thick)}.dark\:tw-text-grey-900{color:var(--squid-theme-grey-900)}}
4
+ */*,:after,:before{border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.tw-sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.tw-pointer-events-none{pointer-events:none}.tw-visible{visibility:visible}.tw-invisible{visibility:hidden}.tw-fixed{position:fixed}.tw-absolute{position:absolute}.tw-relative{position:relative}.tw-inset-0{inset:0}.tw-inset-squid-xxs{inset:.3125rem}.tw-inset-y-0{bottom:0;top:0}.-tw-bottom-20{bottom:-5rem}.-tw-left-\[20px\]{left:-20px}.-tw-left-\[2px\]{left:-2px}.-tw-left-\[4px\]{left:-4px}.-tw-left-\[5px\]{left:-5px}.-tw-right-1\/3{right:-33.333333%}.-tw-right-squid-xxs{right:-.3125rem}.-tw-top-8{top:-2rem}.-tw-top-\[2px\]{top:-2px}.-tw-top-\[4px\]{top:-4px}.-tw-top-\[55px\]{top:-55px}.-tw-top-squid-xxs{top:-.3125rem}.tw-bottom-0{bottom:0}.tw-bottom-0\.5{bottom:.125rem}.tw-bottom-1\/2{bottom:50%}.tw-bottom-2{bottom:.5rem}.tw-bottom-4{bottom:1rem}.tw-bottom-7{bottom:1.75rem}.tw-bottom-full{bottom:100%}.tw-bottom-squid-xxs{bottom:.3125rem}.tw-left-0{left:0}.tw-left-1\/2{left:50%}.tw-left-5{left:1.25rem}.tw-left-\[-14px\]{left:-14px}.tw-left-\[15px\]{left:15px}.tw-left-\[17px\]{left:17px}.tw-left-\[1px\]{left:1px}.tw-left-\[26px\]{left:26px}.tw-left-\[2px\]{left:2px}.tw-left-\[54px\]{left:54px}.tw-left-\[calc\(50\%-2px\)\]{left:calc(50% - 2px)}.tw-left-squid-m{left:1.25rem}.tw-left-squid-s{left:.9375rem}.tw-left-squid-xs{left:.625rem}.tw-right-0{right:0}.tw-right-1{right:.25rem}.tw-right-1\.5{right:.375rem}.tw-right-4{right:1rem}.tw-right-\[40px\]{right:40px}.tw-right-\[calc\(100\%-10px\)\]{right:calc(100% - 10px)}.tw-right-full{right:100%}.tw-right-squid-xs{right:.625rem}.tw-right-squid-xxs{right:.3125rem}.tw-top-0{top:0}.tw-top-7{top:1.75rem}.tw-top-\[11px\]{top:11px}.tw-top-\[2px\]{top:2px}.tw-top-full{top:100%}.tw-top-squid-xs{top:.625rem}.tw-top-squid-xxs{top:.3125rem}.-tw-z-40{z-index:-40}.tw-z-0{z-index:0}.tw-z-10{z-index:10}.tw-z-20{z-index:20}.tw-z-40{z-index:40}.tw-z-50{z-index:50}.tw-z-\[5\]{z-index:5}.tw-m-0{margin:0}.tw-mx-auto{margin-left:auto;margin-right:auto}.tw-mx-squid-xxs{margin-left:.3125rem;margin-right:.3125rem}.tw-my-4{margin-bottom:1rem;margin-top:1rem}.-tw-mb-1{margin-bottom:-.25rem}.-tw-ml-1{margin-left:-.25rem}.-tw-ml-squid-xs{margin-left:-.625rem}.tw-ml-2{margin-left:.5rem}.tw-mr-1{margin-right:.25rem}.tw-mr-1\.5{margin-right:.375rem}.tw-mr-squid-xs{margin-right:.625rem}.tw-mt-0{margin-top:0}.tw-mt-0\.5{margin-top:.125rem}.tw-mt-1{margin-top:.25rem}.tw-block{display:block}.tw-inline-block{display:inline-block}.tw-flex{display:flex}.tw-inline-flex{display:inline-flex}.tw-grid{display:grid}.tw-hidden{display:none}.tw-aspect-square{aspect-ratio:1/1}.\!tw-h-\[30px\]{height:30px!important}.tw-h-1{height:.25rem}.tw-h-1\.5{height:.375rem}.tw-h-10{height:2.5rem}.tw-h-2{height:.5rem}.tw-h-2\.5{height:.625rem}.tw-h-4{height:1rem}.tw-h-5{height:1.25rem}.tw-h-52{height:13rem}.tw-h-6{height:1.5rem}.tw-h-8{height:2rem}.tw-h-\[0\.8em\]{height:.8em}.tw-h-\[1\.2em\]{height:1.2em}.tw-h-\[1000px\]{height:1000px}.tw-h-\[100vh\]{height:100vh}.tw-h-\[10px\]{height:10px}.tw-h-\[110px\]{height:110px}.tw-h-\[14px\]{height:14px}.tw-h-\[160px\]{height:160px}.tw-h-\[16px\]{height:16px}.tw-h-\[17px\]{height:17px}.tw-h-\[195px\]{height:195px}.tw-h-\[211px\]{height:211px}.tw-h-\[21px\]{height:21px}.tw-h-\[240px\]{height:240px}.tw-h-\[26px\]{height:26px}.tw-h-\[30px\]{height:30px}.tw-h-\[40px\]{height:40px}.tw-h-\[42px\]{height:42px}.tw-h-\[46px\]{height:46px}.tw-h-\[50px\]{height:50px}.tw-h-\[52px\]{height:52px}.tw-h-\[535px\]{height:535px}.tw-h-\[536px\]{height:536px}.tw-h-\[540px\]{height:540px}.tw-h-\[55px\]{height:55px}.tw-h-\[60px\]{height:60px}.tw-h-\[69px\]{height:69px}.tw-h-\[80\.6px\]{height:80.6px}.tw-h-\[80px\]{height:80px}.tw-h-\[94px\]{height:94px}.tw-h-\[95px\]{height:95px}.tw-h-button{height:3.75rem}.tw-h-card-compact{height:671px}.tw-h-full{height:100%}.tw-h-list-item-large{height:3.125rem}.tw-h-list-item-small{height:2.5rem}.tw-h-screen{height:100vh}.tw-h-squid-l{height:1.875rem}.tw-h-squid-m{height:1.25rem}.tw-h-squid-xl{height:2.5rem}.tw-h-squid-xs{height:.625rem}.tw-h-squid-xxl{height:3.75rem}.\!tw-max-h-\[470px\]{max-height:470px!important}.tw-max-h-\[120px\]{max-height:120px}.tw-max-h-\[211px\]{max-height:211px}.tw-max-h-\[535px\]{max-height:535px}.tw-max-h-\[540px\]{max-height:540px}.tw-max-h-\[55px\]{max-height:55px}.tw-max-h-\[60px\]{max-height:60px}.tw-max-h-\[80px\]{max-height:80px}.tw-max-h-\[80vh\]{max-height:80vh}.tw-max-h-list-item-small{max-height:2.5rem}.tw-max-h-modal-compact{max-height:631px}.tw-max-h-squid-m{max-height:1.25rem}.tw-max-h-squid-xl{max-height:2.5rem}.tw-min-h-\[195px\]{min-height:195px}.tw-min-h-\[30px\]{min-height:30px}.tw-min-h-\[55px\]{min-height:55px}.tw-min-h-button{min-height:3.75rem}.tw-min-h-card-compact{min-height:671px}.tw-min-h-squid-l{min-height:1.875rem}.tw-min-h-squid-m{min-height:1.25rem}.tw-min-h-squid-xl{min-height:2.5rem}.\!tw-w-fit{width:-moz-fit-content!important;width:fit-content!important}.tw-w-10{width:2.5rem}.tw-w-12{width:3rem}.tw-w-36{width:9rem}.tw-w-4{width:1rem}.tw-w-5{width:1.25rem}.tw-w-52{width:13rem}.tw-w-6{width:1.5rem}.tw-w-8{width:2rem}.tw-w-96{width:24rem}.tw-w-\[1\.2em\]{width:1.2em}.tw-w-\[1\.5px\]{width:1.5px}.tw-w-\[1000px\]{width:1000px}.tw-w-\[100px\]{width:100px}.tw-w-\[100vw\]{width:100vw}.tw-w-\[106\.5px\]{width:106.5px}.tw-w-\[110px\]{width:110px}.tw-w-\[1260px\]{width:1260px}.tw-w-\[135px\]{width:135px}.tw-w-\[140px\]{width:140px}.tw-w-\[150px\]{width:150px}.tw-w-\[157px\]{width:157px}.tw-w-\[160px\]{width:160px}.tw-w-\[16px\]{width:16px}.tw-w-\[180px\]{width:180px}.tw-w-\[22px\]{width:22px}.tw-w-\[26px\]{width:26px}.tw-w-\[299px\]{width:299px}.tw-w-\[2px\]{width:2px}.tw-w-\[30px\]{width:30px}.tw-w-\[36px\]{width:36px}.tw-w-\[3px\]{width:3px}.tw-w-\[40px\]{width:40px}.tw-w-\[42px\]{width:42px}.tw-w-\[44px\]{width:44px}.tw-w-\[470px\]{width:470px}.tw-w-\[500px\]{width:500px}.tw-w-\[50px\]{width:50px}.tw-w-\[52px\]{width:52px}.tw-w-\[54px\]{width:54px}.tw-w-\[56\%\]{width:56%}.tw-w-\[600px\]{width:600px}.tw-w-\[60px\]{width:60px}.tw-w-\[67\%\]{width:67%}.tw-w-\[69px\]{width:69px}.tw-w-\[70px\]{width:70px}.tw-w-\[720px\]{width:720px}.tw-w-\[72px\]{width:72px}.tw-w-\[80px\]{width:80px}.tw-w-\[90px\]{width:90px}.tw-w-\[92px\]{width:92px}.tw-w-\[94px\]{width:94px}.tw-w-fit{width:-moz-fit-content;width:fit-content}.tw-w-full{width:100%}.tw-w-list-item-compact{width:22.0625rem}.tw-w-list-item-large{width:23.75rem}.tw-w-max{width:-moz-max-content;width:max-content}.tw-w-modal-compact{width:373px}.tw-w-squid-l{width:1.875rem}.tw-w-squid-m{width:1.25rem}.tw-w-squid-s{width:.9375rem}.tw-w-squid-xl{width:2.5rem}.tw-w-squid-xxl{width:3.75rem}.\!tw-min-w-0{min-width:0!important}.tw-min-w-96{min-width:24rem}.tw-min-w-\[30px\]{min-width:30px}.tw-min-w-\[60px\]{min-width:60px}.tw-min-w-list-item-small{min-width:21.25rem}.tw-min-w-modal-compact{min-width:373px}.tw-min-w-squid-xl{min-width:2.5rem}.tw-min-w-squid-xxl{min-width:3.75rem}.tw-max-w-96{max-width:24rem}.tw-max-w-\[100vw\]{max-width:100vw}.tw-max-w-\[180px\]{max-width:180px}.tw-max-w-\[200px\]{max-width:200px}.tw-max-w-\[299px\]{max-width:299px}.tw-max-w-\[320px\]{max-width:320px}.tw-max-w-\[70px\]{max-width:70px}.tw-max-w-\[72px\]{max-width:72px}.tw-max-w-\[80px\]{max-width:80px}.tw-max-w-full{max-width:100%}.tw-max-w-modal-compact{max-width:373px}.tw-max-w-none{max-width:none}.tw-max-w-xl{max-width:36rem}.tw-flex-1{flex:1 1 0%}.tw-flex-shrink-0{flex-shrink:0}.tw-flex-grow{flex-grow:1}.tw-grow-0{flex-grow:0}.tw-origin-center{transform-origin:center}.-tw-translate-x-1\/2{--tw-translate-x:-50%}.-tw-translate-x-1\/2,.-tw-translate-x-1\/3{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-tw-translate-x-1\/3{--tw-translate-x:-33.333333%}.-tw-translate-y-1\/2{--tw-translate-y:-50%}.-tw-translate-y-1\/2,.tw-translate-x-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.tw-translate-x-1\/2{--tw-translate-x:50%}.tw-translate-y-1\/2{--tw-translate-y:50%}.-tw-rotate-90,.tw-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-tw-rotate-90{--tw-rotate:-90deg}.tw-rotate-180{--tw-rotate:180deg}.tw-rotate-180,.tw-rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.tw-rotate-90{--tw-rotate:90deg}@keyframes tw-blur-in{0%{-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);background-color:var(--squid-theme-material-dark-average)}}.tw-animate-blur-in{animation:tw-blur-in var(--squid-animation-blur-in-duration,0s) cubic-bezier(.165,.84,.44,1) both}@keyframes tw-blur-out{0%{-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);background-color:var(--squid-theme-material-dark-average)}to{-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}}.tw-animate-blur-out{animation:tw-blur-out var(--squid-animation-blur-out-duration,0s) cubic-bezier(.165,.84,.44,1) both}@keyframes tw-collapse-route{0%{height:100%}to{height:60px}}.tw-animate-collapse-route{animation:tw-collapse-route var(--squid-animation-collapse-to-bottom-duration,0s) linear both}@keyframes tw-expand-route{0%{height:60px}to{height:100%}}.tw-animate-expand-route{animation:tw-expand-route var(--squid-animation-expand-to-top-duration,0s) linear both}@keyframes tw-fade-in{0%{opacity:0}to{opacity:1}}.tw-animate-fade-in{animation:tw-fade-in var(--squid-animation-fade-in-duration,0s) ease-out both}@keyframes tw-fade-out{0%{opacity:1}to{opacity:0}}.tw-animate-fade-out{animation:tw-fade-out var(--squid-animation-fade-out-duration,0s) ease-out both}@keyframes tw-loading-gradient{0%{opacity:0;transform:translateX(-70%)}50%{opacity:1}to{opacity:0;transform:translateX(70%)}}.tw-animate-loading-gradient{animation:tw-loading-gradient 1s ease-in-out infinite both}@keyframes tw-move-loading-cover-to-right{0%{transform:translateX(-64%)}to{transform:translateX(0)}}.tw-animate-move-loading-cover-to-right{animation:tw-move-loading-cover-to-right 1.4s linear infinite}@keyframes tw-scale-and-fade-down{0%{opacity:1;transform:scale(1)}to{opacity:.5;transform:scale(.9)}}.tw-animate-scale-and-fade-down{animation:tw-scale-and-fade-down var(--squid-animation-scale-and-fade-down-duration,0s) linear both}@keyframes tw-scale-and-fade-up{0%{opacity:.5;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.tw-animate-scale-and-fade-up{animation:tw-scale-and-fade-up var(--squid-animation-scale-and-fade-up-duration,0s) linear both}@keyframes tw-slide-to-bottom{0%{transform:translateZ(0)}to{transform:translate3d(0,650px,0)}}.tw-animate-slide-to-bottom{animation:tw-slide-to-bottom var(--squid-animation-slide-to-bottom-duration,0s) cubic-bezier(.165,.84,.44,1) both}@keyframes tw-slide-to-top{0%{transform:translate3d(0,650px,0)}to{transform:translateZ(0)}}.tw-animate-slide-to-top{animation:tw-slide-to-top var(--squid-animation-slide-to-top-duration,0s) cubic-bezier(.165,.84,.44,1) both}.tw-cursor-help{cursor:help}.tw-cursor-not-allowed{cursor:not-allowed}.tw-cursor-pointer{cursor:pointer}.tw-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.tw-grid-cols-\[100px\,1fr\,100px\]{grid-template-columns:100px 1fr 100px}.tw-grid-cols-\[180px_299px\]{grid-template-columns:180px 299px}.tw-grid-cols-\[40px\,1fr\,60px\]{grid-template-columns:40px 1fr 60px}.tw-grid-cols-\[70px_1fr\]{grid-template-columns:70px 1fr}.tw-flex-col{flex-direction:column}.tw-flex-col-reverse{flex-direction:column-reverse}.tw-flex-wrap{flex-wrap:wrap}.tw-items-start{align-items:flex-start}.tw-items-end{align-items:flex-end}.tw-items-center{align-items:center}.tw-items-stretch{align-items:stretch}.tw-justify-start{justify-content:flex-start}.tw-justify-end{justify-content:flex-end}.tw-justify-center{justify-content:center}.tw-justify-between{justify-content:space-between}.tw-gap-0{gap:0}.tw-gap-0\.5{gap:.125rem}.tw-gap-1{gap:.25rem}.tw-gap-1\.5{gap:.375rem}.tw-gap-2{gap:.5rem}.tw-gap-\[2px\]{gap:2px}.tw-gap-squid-m{gap:1.25rem}.tw-gap-squid-s{gap:.9375rem}.tw-gap-squid-xs{gap:.625rem}.tw-gap-squid-xxs{gap:.3125rem}.tw-gap-x-squid-xs{-moz-column-gap:.625rem;column-gap:.625rem}.tw-divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.tw-divide-material-light-thin>:not([hidden])~:not([hidden]){border-color:var(--squid-theme-material-light-thin)}.tw-self-end{align-self:flex-end}.tw-self-stretch{align-self:stretch}.tw-overflow-auto{overflow:auto}.tw-overflow-hidden{overflow:hidden}.tw-overflow-y-auto{overflow-y:auto}.tw-overflow-x-hidden{overflow-x:hidden}.tw-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tw-text-nowrap{text-wrap:nowrap}.tw-rounded-2xl{border-radius:1rem}.tw-rounded-\[20px\]{border-radius:20px}.tw-rounded-\[25px\]{border-radius:25px}.tw-rounded-full{border-radius:9999px}.tw-rounded-md{border-radius:.375rem}.tw-rounded-sm{border-radius:.125rem}.tw-rounded-squid-l{border-radius:1.875rem}.tw-rounded-squid-m{border-radius:1.25rem}.tw-rounded-squid-s{border-radius:.9375rem}.tw-rounded-squid-xs{border-radius:.625rem}.tw-rounded-squid-xxl{border-radius:3.75rem}.tw-rounded-squid-xxs{border-radius:.3125rem}.tw-rounded-xl{border-radius:.75rem}.tw-rounded-bl-squid-l{border-bottom-left-radius:1.875rem}.tw-rounded-br-full{border-bottom-right-radius:9999px}.tw-rounded-br-squid-l{border-bottom-right-radius:1.875rem}.tw-rounded-tl-\[25px\]{border-top-left-radius:25px}.tw-rounded-tl-squid-l{border-top-left-radius:1.875rem}.tw-rounded-tl-xl{border-top-left-radius:.75rem}.tw-rounded-tr-\[25px\]{border-top-right-radius:25px}.tw-rounded-tr-full{border-top-right-radius:9999px}.tw-rounded-tr-squid-l{border-top-right-radius:1.875rem}.tw-rounded-tr-xl{border-top-right-radius:.75rem}.tw-border{border-width:1px}.tw-border-2{border-width:2px}.tw-border-\[1px\]{border-width:1px}.tw-border-y-\[4px\]{border-bottom-width:4px;border-top-width:4px}.tw-border-b{border-bottom-width:1px}.tw-border-r{border-right-width:1px}.tw-border-t{border-top-width:1px}.tw-border-solid{border-style:solid}.\!tw-border-transparent{border-color:transparent!important}.tw-border-grey-500{border-color:var(--squid-theme-grey-500)}.tw-border-grey-800{border-color:var(--squid-theme-grey-800)}.tw-border-grey-900{border-color:var(--squid-theme-grey-900)}.tw-border-material-light-thin{border-color:var(--squid-theme-material-light-thin)}.tw-border-slate-800{--tw-border-opacity:1;border-color:rgb(30 41 59/var(--tw-border-opacity))}.tw-border-transparent{border-color:transparent}.tw-border-b-material-dark-thin{border-bottom-color:var(--squid-theme-material-dark-thin)}.tw-border-t-material-light-thin{border-top-color:var(--squid-theme-material-light-thin)}.\!tw-bg-grey-100{background-color:var(--squid-theme-grey-100)!important}.\!tw-bg-grey-300{background-color:var(--squid-theme-grey-300)!important}.\!tw-bg-grey-500{background-color:var(--squid-theme-grey-500)!important}.\!tw-bg-grey-600{background-color:var(--squid-theme-grey-600)!important}.\!tw-bg-grey-800{background-color:var(--squid-theme-grey-800)!important}.\!tw-bg-material-light-thin{background-color:var(--squid-theme-material-light-thin)!important}.\!tw-bg-status-negative{background-color:var(--squid-theme-status-negative)!important}.\!tw-bg-status-partial{background-color:var(--squid-theme-status-partial)!important}.\!tw-bg-status-positive{background-color:var(--squid-theme-status-positive)!important}.\!tw-bg-transparent{background-color:transparent!important}.tw-bg-\[\#E4FE53\]{--tw-bg-opacity:1;background-color:rgb(228 254 83/var(--tw-bg-opacity))}.tw-bg-\[currentColor\]{background-color:currentColor}.tw-bg-grey-100{background-color:var(--squid-theme-grey-100)}.tw-bg-grey-300{background-color:var(--squid-theme-grey-300)}.tw-bg-grey-500{background-color:var(--squid-theme-grey-500)}.tw-bg-grey-700{background-color:var(--squid-theme-grey-700)}.tw-bg-grey-800{background-color:var(--squid-theme-grey-800)}.tw-bg-grey-900{background-color:var(--squid-theme-grey-900)}.tw-bg-inherit{background-color:inherit}.tw-bg-material-dark-thick{background-color:var(--squid-theme-material-dark-thick)}.tw-bg-material-dark-thin{background-color:var(--squid-theme-material-dark-thin)}.tw-bg-material-light-thin{background-color:var(--squid-theme-material-light-thin)}.tw-bg-royal-400{background-color:var(--squid-theme-royal-400)}.tw-bg-royal-500{background-color:var(--squid-theme-royal-500)}.tw-bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity))}.tw-bg-slate-950{--tw-bg-opacity:1;background-color:rgb(2 6 23/var(--tw-bg-opacity))}.tw-bg-status-negative{background-color:var(--squid-theme-status-negative)}.tw-bg-status-partial{background-color:var(--squid-theme-status-partial)}.tw-bg-status-positive{background-color:var(--squid-theme-status-positive)}.tw-bg-transparent{background-color:transparent}.tw-bg-dark-cover{background-image:linear-gradient(90deg,var(--squid-theme-material-dark-thick) 45.4%,transparent 50.85%,var(--squid-theme-material-dark-thick) 55.61%)}.tw-bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.tw-bg-gradient-to-l{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.tw-bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.tw-bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.tw-bg-royal-dark{background-image:linear-gradient(180deg,#bf91f2,#a577d8)}.tw-bg-royal-light{background-image:linear-gradient(180deg,#a577d8,#bf91f2)}.tw-from-grey-800{--tw-gradient-from:var(--squid-theme-grey-800) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.tw-from-grey-900{--tw-gradient-from:var(--squid-theme-grey-900) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.tw-to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.tw-object-cover{-o-object-fit:cover;object-fit:cover}.\!tw-p-0{padding:0!important}.tw-p-0{padding:0}.tw-p-0\.5{padding:.125rem}.tw-p-1{padding:.25rem}.tw-p-2{padding:.5rem}.tw-p-4{padding:1rem}.tw-p-8{padding:2rem}.tw-p-\[3px\]{padding:3px}.tw-p-squid-l{padding:1.875rem}.tw-p-squid-xs{padding:.625rem}.tw-p-squid-xxl{padding:3.75rem}.tw-p-squid-xxs{padding:.3125rem}.\!tw-px-0{padding-left:0!important;padding-right:0!important}.\!tw-px-4{padding-left:1rem!important;padding-right:1rem!important}.tw-px-0{padding-left:0;padding-right:0}.tw-px-4{padding-left:1rem;padding-right:1rem}.tw-px-\[3px\]{padding-left:3px;padding-right:3px}.tw-px-squid-l{padding-left:1.875rem;padding-right:1.875rem}.tw-px-squid-m{padding-left:1.25rem;padding-right:1.25rem}.tw-px-squid-s{padding-left:.9375rem;padding-right:.9375rem}.tw-px-squid-xs{padding-left:.625rem;padding-right:.625rem}.tw-px-squid-xxl{padding-left:3.75rem;padding-right:3.75rem}.tw-px-squid-xxs{padding-left:.3125rem;padding-right:.3125rem}.tw-py-0{padding-bottom:0;padding-top:0}.tw-py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.tw-py-2{padding-bottom:.5rem;padding-top:.5rem}.tw-py-\[1px\]{padding-bottom:1px;padding-top:1px}.tw-py-squid-l{padding-bottom:1.875rem;padding-top:1.875rem}.tw-py-squid-m{padding-bottom:1.25rem;padding-top:1.25rem}.tw-py-squid-s{padding-bottom:.9375rem;padding-top:.9375rem}.tw-py-squid-xl{padding-bottom:2.5rem;padding-top:2.5rem}.tw-py-squid-xs{padding-bottom:.625rem;padding-top:.625rem}.tw-py-squid-xxs{padding-bottom:.3125rem;padding-top:.3125rem}.tw-pb-\[15px\]{padding-bottom:15px}.tw-pb-squid-l{padding-bottom:1.875rem}.tw-pb-squid-m{padding-bottom:1.25rem}.tw-pb-squid-s{padding-bottom:.9375rem}.tw-pb-squid-xs{padding-bottom:.625rem}.tw-pb-squid-xxs{padding-bottom:.3125rem}.tw-pl-1{padding-left:.25rem}.tw-pl-\[33px\]{padding-left:33px}.tw-pl-\[40px\]{padding-left:40px}.tw-pl-\[75px\]{padding-left:75px}.tw-pl-\[7px\]{padding-left:7px}.tw-pl-squid-m{padding-left:1.25rem}.tw-pl-squid-xxs{padding-left:.3125rem}.tw-pr-1{padding-right:.25rem}.tw-pr-2{padding-right:.5rem}.tw-pr-2\.5{padding-right:.625rem}.tw-pr-4{padding-right:1rem}.tw-pr-\[40px\]{padding-right:40px}.tw-pr-\[70px\]{padding-right:70px}.tw-pr-squid-l{padding-right:1.875rem}.tw-pr-squid-m{padding-right:1.25rem}.tw-pr-squid-xl{padding-right:2.5rem}.tw-pr-squid-xs{padding-right:.625rem}.tw-pr-squid-xxs{padding-right:.3125rem}.tw-pt-0{padding-top:0}.tw-pt-\[5px\]{padding-top:5px}.tw-pt-squid-m{padding-top:1.25rem}.tw-pt-squid-xs{padding-top:.625rem}.tw-pt-squid-xxs{padding-top:.3125rem}.tw-text-left{text-align:left}.tw-text-center{text-align:center}.tw-text-right{text-align:right}.tw-font-geist{font-family:Geist,sans-serif}.tw-text-body-large{font-size:1.75625rem}.tw-text-body-medium{font-size:1.40625rem}.tw-text-body-small{font-size:1.14375rem}.tw-text-caption{font-size:.875rem}.tw-text-heading-large{font-size:4.40625rem}.tw-text-heading-medium{font-size:3.08125rem}.tw-text-heading-small{font-size:2.1875rem}.tw-text-lg{font-size:1.125rem;line-height:1.75rem}.tw-text-sm{font-size:.875rem;line-height:1.25rem}.tw-text-xs{font-size:.75rem;line-height:1rem}.\!tw-font-medium{font-weight:500!important}.tw-font-heading-bold{font-weight:600}.tw-font-heading-regular{font-weight:400}.tw-font-semibold,.tw-font-typography-bold{font-weight:600}.tw-font-typography-regular{font-weight:400}.\!tw-leading-\[10px\]{line-height:10px!important}.\!tw-leading-\[13px\]{line-height:13px!important}.\!tw-leading-\[16px\]{line-height:16px!important}.\!tw-leading-\[17px\]{line-height:17px!important}.\!tw-leading-\[18px\]{line-height:18px!important}.\!tw-leading-\[1\]{line-height:1!important}.\!tw-leading-\[20px\]{line-height:20px!important}.\!tw-leading-\[9px\]{line-height:9px!important}.tw-leading-5{line-height:1.25rem}.tw-leading-\[0\]{line-height:0}.tw-leading-\[10px\]{line-height:10px}.tw-leading-\[13px\]{line-height:13px}.tw-leading-\[1\]{line-height:1}.tw-leading-\[43px\]{line-height:43px}.tw-leading-body-large{line-height:39.34px}.tw-leading-body-medium{line-height:31.5px}.tw-leading-body-small{line-height:25.62px}.tw-leading-caption{line-height:19.6px}.tw-leading-heading-large{line-height:66.97px}.tw-leading-heading-medium{line-height:49.3px}.tw-leading-heading-small{line-height:38.5px}.tw-tracking-body-large{letter-spacing:-.843px}.tw-tracking-body-medium{letter-spacing:-.675px}.tw-tracking-body-small{letter-spacing:-.366px}.tw-tracking-heading-large{letter-spacing:-3.525px}.tw-tracking-heading-medium{letter-spacing:-2.465px}.tw-tracking-heading-small{letter-spacing:-1.05px}.\!tw-text-\[transparent\]{color:transparent!important}.\!tw-text-grey-300{color:var(--squid-theme-grey-300)!important}.\!tw-text-grey-500{color:var(--squid-theme-grey-500)!important}.\!tw-text-grey-600{color:var(--squid-theme-grey-600)!important}.\!tw-text-grey-800{color:var(--squid-theme-grey-800)!important}.tw-text-\[\#FBFBFD\]{--tw-text-opacity:1;color:rgb(251 251 253/var(--tw-text-opacity))}.tw-text-grey-100{color:var(--squid-theme-grey-100)}.tw-text-grey-200{color:var(--squid-theme-grey-200)}.tw-text-grey-300{color:var(--squid-theme-grey-300)}.tw-text-grey-400{color:var(--squid-theme-grey-400)}.tw-text-grey-500{color:var(--squid-theme-grey-500)}.tw-text-grey-600{color:var(--squid-theme-grey-600)}.tw-text-grey-700{color:var(--squid-theme-grey-700)}.tw-text-grey-800{color:var(--squid-theme-grey-800)}.tw-text-grey-900{color:var(--squid-theme-grey-900)}.tw-text-material-light-average{color:var(--squid-theme-material-light-average)}.tw-text-material-light-thick{color:var(--squid-theme-material-light-thick)}.tw-text-material-light-thin{color:var(--squid-theme-material-light-thin)}.tw-text-royal-400{color:var(--squid-theme-royal-400)}.tw-text-royal-500{color:var(--squid-theme-royal-500)}.tw-text-status-negative{color:var(--squid-theme-status-negative)}.tw-text-status-partial{color:var(--squid-theme-status-partial)}.tw-text-status-positive{color:var(--squid-theme-status-positive)}.tw-text-transparent{color:transparent}.tw-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.\!tw-opacity-100{opacity:1!important}.tw-opacity-0{opacity:0}.tw-opacity-100{opacity:1}.tw-opacity-33{opacity:.33}.tw-opacity-50{opacity:.5}.tw-opacity-66{opacity:.66}.tw-shadow-elevation-light-1{--tw-shadow:0px 1px 2px 0px #0000001a;--tw-shadow-colored:0px 1px 2px 0px var(--tw-shadow-color)}.tw-shadow-elevation-light-1,.tw-shadow-elevation-light-2{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.tw-shadow-elevation-light-2{--tw-shadow:0px 2px 5px 1px rgba(0,0,0,.1),0px 5px 20px -1px rgba(0,0,0,.1);--tw-shadow-colored:0px 2px 5px 1px var(--tw-shadow-color),0px 5px 20px -1px var(--tw-shadow-color)}.tw-shadow-elevation-light-3{--tw-shadow:0px 2px 4px 0px rgba(0,0,0,.1),0px 5px 50px -1px rgba(0,0,0,.2);--tw-shadow-colored:0px 2px 4px 0px var(--tw-shadow-color),0px 5px 50px -1px var(--tw-shadow-color)}.tw-shadow-elevation-light-3,.tw-shadow-inset-royal{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.tw-shadow-inset-royal{--tw-shadow:0px 0px 50px 0px #876fe2 inset;--tw-shadow-colored:inset 0px 0px 50px 0px var(--tw-shadow-color)}.tw-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.tw-outline{outline-style:solid}.tw-outline-1{outline-width:1px}.tw-outline-2{outline-width:2px}.-tw-outline-offset-2{outline-offset:-2px}.-tw-outline-offset-\[1px\]{outline-offset:-1px}.\!tw-outline-status-negative{outline-color:var(--squid-theme-status-negative)!important}.tw-outline-material-light-thin{outline-color:var(--squid-theme-material-light-thin)}.tw-outline-royal-500{outline-color:var(--squid-theme-royal-500)}.tw-backdrop-blur-2xl{--tw-backdrop-blur:blur(40px)}.tw-backdrop-blur-2xl,.tw-backdrop-blur-lg{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.tw-backdrop-blur-lg{--tw-backdrop-blur:blur(16px)}.tw-backdrop-blur\/10{--tw-backdrop-blur:blur(10px)}.tw-backdrop-blur\/10,.tw-backdrop-blur\/20{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.tw-backdrop-blur\/20{--tw-backdrop-blur:blur(20px)}.tw-backdrop-saturate-150{--tw-backdrop-saturate:saturate(1.5);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.tw-transition-\[border-width\]{transition-duration:.15s;transition-property:border-width;transition-timing-function:cubic-bezier(.4,0,.2,1)}.tw-transition-\[width\,height\]{transition-duration:.15s;transition-property:width,height;transition-timing-function:cubic-bezier(.4,0,.2,1)}.tw-transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.tw-transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.tw-transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.tw-transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.tw-delay-300{transition-delay:.3s}.tw-duration-1000{transition-duration:1s}.tw-duration-150{transition-duration:.15s}.tw-duration-200{transition-duration:.2s}.tw-duration-300{transition-duration:.3s}.tw-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@font-face{font-family:Geist;src:local("Geist"),url(fonts/Geist-Variable.woff2) format("woff2")}*,:after,:before{box-sizing:border-box}:disabled{cursor:not-allowed}.tw-assets-button-mask{-webkit-mask-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIiIGhlaWdodD0iNDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTAgMjBBMTkuOTM4IDE5LjkzOCAwIDAgMSA1Ljg1OCA1Ljg1OCAxOS45MzcgMTkuOTM3IDAgMCAxIDIwIDBhMTkuOTM3IDE5LjkzNyAwIDAgMSAxNC4xNDIgNS44NThjLjUyOC41MjcgMS4wNDYgMS4wNiAxLjU2IDEuNTg5QzM4Ljk4OCAxMC44MyA0Mi4wNjcgMTQgNDYgMTRjMy45MzIgMCA3LjAxMS0zLjE3IDEwLjI5OS02LjU1My41MTMtLjUyOCAxLjAzMS0xLjA2MiAxLjU1OS0xLjU5QTE5LjkzNyAxOS45MzcgMCAwIDEgNzIgMHY0MGExOS45MzcgMTkuOTM3IDAgMCAxLTE0LjE0Mi01Ljg1OGMtLjUyNS0uNTI1LTEuMDQtMS4wNTYtMS41NTEtMS41ODJDNTMuMDE3IDI5LjE3NCA0OS45MzQgMjYgNDYgMjZzLTcuMDE3IDMuMTc0LTEwLjMwNiA2LjU2Yy0uNTExLjUyNi0xLjAyNyAxLjA1Ny0xLjU1MiAxLjU4MkExOS45MzcgMTkuOTM3IDAgMCAxIDIwIDQwYTE5LjkzNyAxOS45MzcgMCAwIDEtMTQuMTQyLTUuODU4QTE5LjkzNyAxOS45MzcgMCAwIDEgMCAyMFoiIGZpbGw9IiNGQkZCRkQiIHN0eWxlPSJmaWxsOmNvbG9yKGRpc3BsYXktcDMgLjk4NCAuOTg2MSAuOTkwNCk7ZmlsbC1vcGFjaXR5OjEiLz48L3N2Zz4=");mask-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIiIGhlaWdodD0iNDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTAgMjBBMTkuOTM4IDE5LjkzOCAwIDAgMSA1Ljg1OCA1Ljg1OCAxOS45MzcgMTkuOTM3IDAgMCAxIDIwIDBhMTkuOTM3IDE5LjkzNyAwIDAgMSAxNC4xNDIgNS44NThjLjUyOC41MjcgMS4wNDYgMS4wNiAxLjU2IDEuNTg5QzM4Ljk4OCAxMC44MyA0Mi4wNjcgMTQgNDYgMTRjMy45MzIgMCA3LjAxMS0zLjE3IDEwLjI5OS02LjU1My41MTMtLjUyOCAxLjAzMS0xLjA2MiAxLjU1OS0xLjU5QTE5LjkzNyAxOS45MzcgMCAwIDEgNzIgMHY0MGExOS45MzcgMTkuOTM3IDAgMCAxLTE0LjE0Mi01Ljg1OGMtLjUyNS0uNTI1LTEuMDQtMS4wNTYtMS41NTEtMS41ODJDNTMuMDE3IDI5LjE3NCA0OS45MzQgMjYgNDYgMjZzLTcuMDE3IDMuMTc0LTEwLjMwNiA2LjU2Yy0uNTExLjUyNi0xLjAyNyAxLjA1Ny0xLjU1MiAxLjU4MkExOS45MzcgMTkuOTM3IDAgMCAxIDIwIDQwYTE5LjkzNyAxOS45MzcgMCAwIDEtMTQuMTQyLTUuODU4QTE5LjkzNyAxOS45MzcgMCAwIDEgMCAyMFoiIGZpbGw9IiNGQkZCRkQiIHN0eWxlPSJmaWxsOmNvbG9yKGRpc3BsYXktcDMgLjk4NCAuOTg2MSAuOTkwNCk7ZmlsbC1vcGFjaXR5OjEiLz48L3N2Zz4=");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.tw-font-geist{font-feature-settings:"ss01" on,"ss03" on}li{list-style-type:none}.squid-property-row-bg:nth-child(odd)>div{background:linear-gradient(91deg,var(--squid-theme-grey-100-005) 0,transparent 100%)}:focus-visible{outline-color:var(--squid-theme-royal-500);outline-style:solid;outline-width:2px}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}:invalid{outline-color:var(--squid-theme-status-negative)}.tw-group[data-squid-theme-type=dark] #squid-lottie-animation #keystroke{stroke:var(--squid-theme-grey-100)!important}.tw-group[data-squid-theme-type=light] #squid-lottie-animation #keystroke{stroke:var(--squid-theme-grey-900)!important}#squid-lottie-animation #keyfill{fill:var(--squid-theme-royal-500)!important}.tw-timeline-gradient-mask{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 calc(50% - 15px),#000 calc(50% + 15px),transparent);mask-image:linear-gradient(180deg,transparent 0,#000 calc(50% - 15px),#000 calc(50% + 15px),transparent)}input.date-input-no-icon::-webkit-calendar-picker-indicator,input.date-input-no-icon::-webkit-inner-spin-button{-webkit-appearance:none;display:none}@keyframes loading-gradient-scroll{0%{transform:translateX(-56%)}to{transform:translateX(0)}}.loading-gradient{--mid-color:transparent;overflow:hidden;position:relative;[data-squid-theme-type=dark] &{--mid-color:var(--squid-theme-material-light-average)}&:after{animation:loading-gradient-scroll 1s ease-in-out infinite both;background-image:linear-gradient(to right,var(--squid-theme-material-light-thin) 43%,var(--mid-color) 52%,var(--squid-theme-material-light-thin) 56%);content:"";display:block;height:100%;left:0;position:absolute;top:0;width:230%}}.boost-badge{--boost-badge-badge-color:var(--squid-theme-royal-400);--boost-badge-text-color:var(--squid-theme-grey-900);--boost-badge-shadow-color:#e4fe53;[data-squid-theme-type=dark] &{--boost-badge-badge-color:#e4fe53;--boost-badge-shadow-color:var(--squid-theme-royal-400)}}:root{.rdp{--rdp-accent-color:var(--squid-theme-material-light-thin);--rdp-background-color:transparent;margin:0!important}.rdp-month,.rdp-table{width:100%}.rdp-table{border-spacing:2px}.rdp-nav{width:28.5%;button{width:50%}}.rdp-cell,.rdp-head_cell{flex-grow:1;font-size:.875rem;height:auto;width:auto}.rdp-head_cell{height:2.5rem}.rdp-day{width:100%}.rdp-caption_label{font-weight:400}.rdp-day,.rdp-day_range_end.rdp-day_range_start{border-radius:.3125rem!important}.day-picker-from .rdp-day_range_start,.day-picker-to .rdp-day_range_end{--tw-text-opacity:1;background-color:var(--squid-theme-royal-500);color:rgb(255 255 255/var(--tw-text-opacity))}.rdp-button:hover:not([disabled]):not(.rdp-nav_button){border:2px solid var(--squid-theme-royal-500)}}.sb-show-main.sb-main-centered #storybook-root{margin:0;padding:0;width:100%}@media (min-width:480px){.sb-show-main.sb-main-centered #storybook-root{margin:auto;width:auto}}.squid-animated-loader-dash{stroke-dasharray:20.942,62.827;stroke-dashoffset:0;animation:squid-animated-loader-dash-grow var(--squid-loader-rotate-duration) infinite alternate ease-in-out}@keyframes squid-animated-loader-dash-grow{0%{stroke-dasharray:62.827;stroke-dashoffset:0}to{stroke-dasharray:4141.884;stroke-dashoffset:-20.942}}.squid-animated-loader{animation:rotate-360 var(--squid-loader-rotate-duration) linear infinite}@keyframes rotate-360{to{transform:rotate(1turn)}}.placeholder\:tw-text-grey-600::-moz-placeholder{color:var(--squid-theme-grey-600)}.placeholder\:tw-text-grey-600::placeholder{color:var(--squid-theme-grey-600)}.placeholder-shown\:tw-text-grey-600:-moz-placeholder-shown{color:var(--squid-theme-grey-600)}.placeholder-shown\:tw-text-grey-600:placeholder-shown{color:var(--squid-theme-grey-600)}.invalid\:tw-outline-status-negative:invalid{outline-color:var(--squid-theme-status-negative)}.hover\:tw-border-material-light-average:hover{border-color:var(--squid-theme-material-light-average)}.hover\:tw-bg-material-light-thin:hover{background-color:var(--squid-theme-material-light-thin)}.hover\:tw-text-grey-400:hover{color:var(--squid-theme-grey-400)}.hover\:tw-opacity-100:hover{opacity:1}.focus\:tw-bg-material-light-thin:focus{background-color:var(--squid-theme-material-light-thin)}.focus\:tw-text-royal-400:focus{color:var(--squid-theme-royal-400)}.focus\:tw-opacity-100:focus{opacity:1}.focus\:tw-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:tw-outline-status-partial:focus-visible{outline-color:var(--squid-theme-status-partial)}.disabled\:tw-cursor-not-allowed:disabled{cursor:not-allowed}.tw-group\/base-button:hover .group-hover\/base-button\:tw-block,.tw-group\/list-item:hover .group-hover\/list-item\:tw-block{display:block}.tw-group\/history-item:hover .group-hover\/history-item\:tw-hidden{display:none}.tw-group\/flip-button:hover .group-hover\/flip-button\:tw-rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.tw-group\/boost-toggle:hover .group-hover\/boost-toggle\:tw-from-material-light-blend-grey-900{--tw-gradient-from:var(--squid-theme-material-light-blend-grey-900) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.tw-group\/swap-step-item-button:hover .group-hover\/swap-step-item-button\:tw-from-grey-700{--tw-gradient-from:var(--squid-theme-grey-700) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.tw-group\/collapsing-section:hover .group-hover\/collapsing-section\:tw-opacity-100{opacity:1}.tw-group\/history-item:hover .group-hover\/history-item\:tw-opacity-0{opacity:0}.tw-group\/history-item:hover .group-hover\/history-item\:tw-opacity-100,.tw-group\/list-item:focus .group-focus\/list-item\:tw-opacity-100,.tw-group\/list-item:hover .group-hover\/list-item\:tw-opacity-100{opacity:1}.tw-group\/boost-toggle:disabled .group-disabled\/boost-toggle\:tw-grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.tw-peer:focus~.peer-focus\:tw-hidden{display:none}.tw-peer:focus~.peer-focus\:tw-opacity-0{opacity:0}.aria-disabled\:tw-bg-grey-600[aria-disabled=true]{background-color:var(--squid-theme-grey-600)}.aria-disabled\:tw-text-grey-800[aria-disabled=true]{color:var(--squid-theme-grey-800)}@keyframes tw-move-to-left-with-spring-bounce{0%{transform:translateX(25%)}50%{transform:translateX(-27%)}80%{transform:translateX(-24%)}to{transform:translateX(-25%)}}.data-\[boost-mode\=boost\]\:tw-animate-move-to-left-with-spring-bounce[data-boost-mode=boost]{animation:tw-move-to-left-with-spring-bounce var(--squid-animation-move-with-spring-bounce-duration,0s) ease-out both}@keyframes tw-move-to-right-with-spring-bounce{0%{transform:translateX(-25%)}50%{transform:translateX(27%)}80%{transform:translateX(24%)}to{transform:translateX(25%)}}.data-\[boost-mode\=normal\]\:tw-animate-move-to-right-with-spring-bounce[data-boost-mode=normal]{animation:tw-move-to-right-with-spring-bounce var(--squid-animation-move-with-spring-bounce-duration,0s) ease-out both}.tw-group[data-boost-mode=boost] .group-data-\[boost-mode\=boost\]\:tw-left-\[calc\(50\%-2px\)\]{left:calc(50% - 2px)}.tw-group[data-boost-mode=normal] .group-data-\[boost-mode\=normal\]\:tw-left-\[calc\(50\%-6px\)\]{left:calc(50% - 6px)}.tw-group[data-squid-theme-type=dark] .group-data-\[squid-theme-type\=dark\]\:tw-bg-grey-100{background-color:var(--squid-theme-grey-100)}.tw-group[data-squid-theme-type=light] .group-data-\[squid-theme-type\=light\]\:tw-bg-grey-900{background-color:var(--squid-theme-grey-900)}.tw-group[data-squid-theme-type=dark] .group-data-\[squid-theme-type\=\'dark\'\]\:tw-bg-royal-dark{background-image:linear-gradient(180deg,#bf91f2,#a577d8)}.tw-group[data-squid-theme-type=light] .group-data-\[squid-theme-type\=\'light\'\]\:tw-bg-royal-light{background-image:linear-gradient(180deg,#a577d8,#bf91f2)}.tw-group[data-squid-theme-type=dark] .group-data-\[squid-theme-type\=dark\]\:tw-text-grey-100{color:var(--squid-theme-grey-100)}.tw-group[data-squid-theme-type=dark] .group-data-\[squid-theme-type\=dark\]\:tw-text-material-light-average{color:var(--squid-theme-material-light-average)}.tw-group[data-squid-theme-type=light] .group-data-\[squid-theme-type\=light\]\:tw-text-grey-900{color:var(--squid-theme-grey-900)}.tw-group[data-squid-theme-type=light] .group-data-\[squid-theme-type\=light\]\:tw-text-transparent{color:transparent}.tw-group[data-squid-theme-type=dark] .group-data-\[squid-theme-type\=dark\]\:tw-shadow-elevation-dark-2{--tw-shadow:0px 2px 5px 1px rgba(0,0,0,.2),0px 5px 20px -1px rgba(0,0,0,.33);--tw-shadow-colored:0px 2px 5px 1px var(--tw-shadow-color),0px 5px 20px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.tw-group[data-squid-theme-type=dark] .group-data-\[squid-theme-type\=dark\]\:tw-shadow-elevation-dark-3{--tw-shadow:0px 2px 4px 0px rgba(0,0,0,.2),0px 5px 50px -1px rgba(0,0,0,.33);--tw-shadow-colored:0px 2px 4px 0px var(--tw-shadow-color),0px 5px 50px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.tw-group[data-squid-theme-type=light] .group-data-\[squid-theme-type\=light\]\:tw-shadow-elevation-light-2{--tw-shadow:0px 2px 5px 1px rgba(0,0,0,.1),0px 5px 20px -1px rgba(0,0,0,.1);--tw-shadow-colored:0px 2px 5px 1px var(--tw-shadow-color),0px 5px 20px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.tw-group[data-squid-theme-type=light] .group-data-\[squid-theme-type\=light\]\:tw-shadow-elevation-light-3{--tw-shadow:0px 2px 4px 0px rgba(0,0,0,.1),0px 5px 50px -1px rgba(0,0,0,.2);--tw-shadow-colored:0px 2px 4px 0px var(--tw-shadow-color),0px 5px 50px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.tw-peer[data-boost-mode=boost]~.peer-data-\[boost-mode\=boost\]\:tw-bg-status-positive{background-color:var(--squid-theme-status-positive)}.tw-peer[data-boost-mode=normal]~.peer-data-\[boost-mode\=normal\]\:tw-bg-current{background-color:currentColor}@media (min-width:480px){.mobile-lg\:-tw-left-\[3px\]{left:-3px}.mobile-lg\:tw-left-\[30px\]{left:30px}.mobile-lg\:tw-left-squid-l{left:1.875rem}.mobile-lg\:tw-block{display:block}.mobile-lg\:tw-h-\[205px\]{height:205px}.mobile-lg\:tw-h-\[75px\]{height:75px}.mobile-lg\:tw-h-auto{height:auto}.mobile-lg\:tw-h-card-large{height:660px}.mobile-lg\:tw-max-h-\[205px\]{max-height:205px}.mobile-lg\:tw-max-h-modal-large{max-height:600px}.mobile-lg\:tw-min-h-card-large{min-height:660px}.mobile-lg\:tw-w-\[140px\]{width:140px}.mobile-lg\:tw-w-\[190px\]{width:190px}.mobile-lg\:tw-w-card-large{width:480px}.mobile-lg\:tw-w-full{width:100%}.mobile-lg\:tw-w-list-item-large{width:23.75rem}.mobile-lg\:tw-w-modal-extra-large{width:440px}.mobile-lg\:tw-w-modal-large{width:400px}.mobile-lg\:tw-w-squid-xl{width:2.5rem}.mobile-lg\:tw-min-w-modal-large{min-width:400px}.mobile-lg\:tw-max-w-card-large{max-width:480px}.mobile-lg\:tw-max-w-modal-large{max-width:400px}.mobile-lg\:tw-rounded-squid-l{border-radius:1.875rem}.mobile-lg\:tw-px-squid-l{padding-left:1.875rem;padding-right:1.875rem}.mobile-lg\:tw-px-squid-m{padding-left:1.25rem;padding-right:1.25rem}.mobile-lg\:tw-px-squid-xs{padding-left:.625rem;padding-right:.625rem}.mobile-lg\:tw-px-squid-xxs{padding-left:.3125rem;padding-right:.3125rem}.mobile-lg\:tw-pl-squid-l{padding-left:1.875rem}}@media (prefers-color-scheme:dark){.dark\:tw-border-b-material-light-thin{border-bottom-color:var(--squid-theme-material-light-thin)}.dark\:tw-bg-material-dark-thick{background-color:var(--squid-theme-material-dark-thick)}.dark\:tw-text-grey-900{color:var(--squid-theme-grey-900)}}
package/dist/index.d.ts CHANGED
@@ -11,9 +11,14 @@ interface BadgeImageProps {
11
11
  size?: BadgeSize;
12
12
  extraMarginForBadge?: boolean;
13
13
  rounded?: boolean;
14
+ /**
15
+ * The URL of the placeholder image. Will be displayed while the images are loading
16
+ * or if there's an error loading them.
17
+ */
18
+ placeholderImageUrl?: string;
14
19
  }
15
20
  type BadgeSize = 'sm' | 'md';
16
- declare function BadgeImage({ imageUrl, badgeUrl, size, extraMarginForBadge, rounded, }: BadgeImageProps): react_jsx_runtime.JSX.Element | null;
21
+ declare function BadgeImage({ imageUrl: _imageUrl, badgeUrl, size, extraMarginForBadge, rounded, placeholderImageUrl, }: BadgeImageProps): react_jsx_runtime.JSX.Element | null;
17
22
 
18
23
  type TextSize = 'small' | 'medium' | 'large';
19
24
  type SwitchSize = 'small' | 'large';
@@ -135,12 +140,13 @@ interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
135
140
  showIcon?: boolean;
136
141
  icon?: React.ReactNode;
137
142
  isError?: boolean;
143
+ isWarning?: boolean;
138
144
  containerClassName?: string;
139
145
  actionButtonProps?: InputActionButtonProps;
140
146
  autoFocusTimeout?: number;
141
147
  inputRef?: React.RefObject<HTMLInputElement>;
142
148
  }
143
- declare function Input({ placeholder, showIcon, className, icon, isError, containerClassName, actionButtonProps, autoFocusTimeout, inputRef: inputRefProp, ...props }: InputProps): react_jsx_runtime.JSX.Element;
149
+ declare function Input({ placeholder, showIcon, className, icon, isError, isWarning, containerClassName, actionButtonProps, autoFocusTimeout, inputRef: inputRefProp, ...props }: InputProps): react_jsx_runtime.JSX.Element;
144
150
  type InputActionButtonProps = {
145
151
  onClick?: () => void;
146
152
  variant?: ButtonVariant;
@@ -222,8 +228,9 @@ interface RangeInputProps {
222
228
  onChange?: (value: string) => void;
223
229
  min?: number;
224
230
  max?: number;
231
+ isWarning?: boolean;
225
232
  }
226
- declare function RangeInput({ label, initialValue, onChange, min, max, }: RangeInputProps): react_jsx_runtime.JSX.Element;
233
+ declare function RangeInput({ label, initialValue, onChange, min, max, isWarning, }: RangeInputProps): react_jsx_runtime.JSX.Element;
227
234
 
228
235
  interface AssetsButtonProps {
229
236
  token?: {
@@ -250,6 +257,12 @@ interface BoostButtonProps {
250
257
  }
251
258
  declare function BoostButton({ boostMode, canToggleBoostMode, boostIndicatorRef, }: BoostButtonProps): react_jsx_runtime.JSX.Element;
252
259
 
260
+ interface ChipProps extends React.HTMLAttributes<HTMLDivElement> {
261
+ label?: string;
262
+ icon?: React.ReactNode;
263
+ }
264
+ declare function Chip({ label, icon, ...props }: ChipProps): react_jsx_runtime.JSX.Element;
265
+
253
266
  interface ButtonProps extends React.HTMLAttributes<HTMLButtonElement> {
254
267
  label?: string;
255
268
  icon?: React.ReactNode;
@@ -258,14 +271,9 @@ interface ButtonProps extends React.HTMLAttributes<HTMLButtonElement> {
258
271
  disabled?: boolean;
259
272
  link?: string;
260
273
  isLoading?: boolean;
274
+ chip?: ChipProps;
261
275
  }
262
- declare function Button({ label, disabled, size, variant, icon, link, isLoading, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;
263
-
264
- interface ChipProps extends React.HTMLAttributes<HTMLDivElement> {
265
- label?: string;
266
- icon?: React.ReactNode;
267
- }
268
- declare function Chip({ label, icon, ...props }: ChipProps): react_jsx_runtime.JSX.Element;
276
+ declare function Button({ label, disabled, size, variant, icon, link, isLoading, chip, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;
269
277
 
270
278
  interface FeeButtonProps extends React.HTMLAttributes<HTMLButtonElement> {
271
279
  feeInUsd?: string;
@@ -1221,6 +1229,7 @@ interface ListItemProps extends React.HTMLAttributes<HTMLButtonElement> {
1221
1229
  itemTitle: string | React.ReactNode;
1222
1230
  mainImageUrl?: string;
1223
1231
  secondaryImageUrl?: string;
1232
+ placeholderImageUrl?: string;
1224
1233
  subtitle?: string;
1225
1234
  subtitleOnHover?: React.ReactNode;
1226
1235
  detail?: string;
@@ -1240,7 +1249,7 @@ interface ListItemProps extends React.HTMLAttributes<HTMLButtonElement> {
1240
1249
  compactOnMobile?: boolean;
1241
1250
  }
1242
1251
  type ListItemSize = 'small' | 'large';
1243
- declare function ListItem({ itemTitle, mainImageUrl, subtitle, subtitleOnHover, detail, icon, secondaryImageUrl, size, mainIcon, className, isSelected, onDetailClick, showDetailOnHoverOnly, rounded, detailButtonClassName, loading, containerProps, compactOnMobile, ...props }: ListItemProps): react_jsx_runtime.JSX.Element;
1252
+ declare function ListItem({ itemTitle, mainImageUrl, subtitle, subtitleOnHover, detail, icon, secondaryImageUrl, placeholderImageUrl, size, mainIcon, className, isSelected, onDetailClick, showDetailOnHoverOnly, rounded, detailButtonClassName, loading, containerProps, compactOnMobile, ...props }: ListItemProps): react_jsx_runtime.JSX.Element;
1244
1253
 
1245
1254
  interface MenuItemProps {
1246
1255
  label: string;
@@ -1699,6 +1708,7 @@ type ActionButton = {
1699
1708
  onClick?: () => void;
1700
1709
  id: React.Key;
1701
1710
  tooltip?: Omit<TooltipProps, 'children'>;
1711
+ chip?: ChipProps;
1702
1712
  };
1703
1713
  interface NavigationBarProps {
1704
1714
  title?: string;
@@ -2341,4 +2351,4 @@ declare const MEDIA_QUERIES: Record<MediaQuery, {
2341
2351
  value: string;
2342
2352
  }>;
2343
2353
 
2344
- export { ActionLayout, ActionLineOutRow, ActionProperties, ActionRow, type ActionStatus, ActionStatusRow, ActionWrapper, AddressButton, AnimationWrapper, AppContainer, Approve, ApproveAction, ArrowBottomTopIcon, ArrowButton, ArrowCornerDownRightIcon, ArrowLeftIcon, ArrowOutOfBoxIcon, ArrowRightDownCircleIcon, ArrowRightDownIcon, ArrowRightIcon, ArrowRightUpCircleIcon, ArrowRightUpIcon, ArrowRotate, ArrowTriangle, ArrowUpIcon, ArrowWallDownIcon, ArrowsSwapIcon, AssetsButton, type AssetsButtonVariant, AssetsView, BadgeImage, BagIcon, BankIcon, type BaseActionProps, type BaseTransactionViewProps, BlockSkeleton, BodyText, Boost, BoostBadge, BoostButton, BorderedContainer, Breadcrumb, BridgeAction, BridgeHeader, BridgeProperties, BridgeTransactionView, BrokenHeartIcon, Button, BuyNFTHeader, BuyNFTProperties, BuyNFTTransactionView, Calendar, CaptionText, ChainLink, Checkmark1Icon, Checkmark2Icon, ChevronArrowIcon, ChevronGrabberVerticalIcon, ChevronLargeDownIcon, ChevronLargeRightIcon, ChevronRightSmallIcon, ChevronTopIcon, ChevronTopSmallIcon, Chip, CircleMinusIcon, CirclePlusIcon, CircleX, ClockIcon, ClockOutlineIcon, CoinsAddIcon, CoinsIcon, Collapse, CollectionIcon, CompassRound, Copy, DashboardFast, DescriptionBlocks, DetailsToolbar, DockSwapIcon, Dollar, DotGrid1x3HorizontalIcon, DropdownMenu, DropdownMenuItem, type DropdownMenuItemProps, EmojiMeh, EmojiSadIcon, EmptyHeartIcon, ErrorMessage, EthereumIcon, ExplosionIcon, FeeButton, FeesAction, type FeesActionProps, FeesLines, FeesTotal, FilledHeartIcon, FilterButton, FilterIcon, GasIcon, HashLink, HeadingText, HeartSmallIcon, HelpIcon, HistoryItem, type HistoryItemStatus, HomeIcon, IconLabel, ImageIcon, ImageSparkle, IncompleteAction, InfinityIcon, InfoBox, Inline, Input, InteractionHeader, InteractionProperties, InteractionTransactionView, Join, LightningIcon, LinkIcon, List, ListItem, Loader, LoadingProvider, LoadingSkeleton, MEDIA_QUERIES, MainView, MaxIcon, Menu, MenuItem, Modal, ModalContent, ModalContentDivider, NavigationBar, NotAllowedIcon, NumericInput, PathSquareIcon, PercentIcon, PieChartIcon, PipeSeparator, PlusIcon, ProductCard, ProfileHeader, ProfileHeaderBackground, PropertiesLayout, PropertyListItem, type PropertyListItemProps, PunkIcon, RangeInput, ReceiptBillIcon, ReceiveNFTAction, ReceiveTokensAction, RecipientView, RefreshIcon, ReorderIcon, STEP_ITEM_HEIGHT, SearchIcon, SectionTitle, SendTokensAction, SettingsButton, type SettingsButtonProps, type SettingsControl, SettingsGearIcon, SettingsItem, type SettingsItemProps, SettingsSlider, type SettingsSliderProps, SizeTransition, SnapIcon, SortIcon, SparkleIcon, SparklesIcon, SquareArrowCenter, SquareArrowTopLeftIcon, SquareArrowTopRight2Icon, SquidConfigProvider, SquidLogo, type SquidTheme, StakeAction, StartAction, SuccessAction, SwapAction, SwapConfiguration, SwapDetailsView, SwapErrorIcon, SwapHeader, type SwapHeaderProps, SwapInputsIcon, SwapProgressView, SwapProgressViewHeader, SwapProperties, type SwapPropertiesProps, SwapState, type SwapStep, SwapStepItem, SwapStepSeparator, SwapStepsCollapsed, type SwapStepsCollapsedFooterButton, SwapSuccessIcon, SwapTransactionView, SwapWarningIcon, Switch, TagIcon, TagIconFilled, TextSkeleton, type ThemeType, ThumbsUp, Tick, TimeFliesIcon, Timeline, Timestamp, Toast, TokenPair, Tooltip, type TooltipProps, type TooltipThreshold, type TooltipWidth, TradingViewStepsIcon, TransactionAction, type TransactionActionProps, type TransactionActionType, TransactionFilters, TransactionHeader, TransactionHeaderLayout, type TransactionHeaderProps, type TransactionHeaderType, TransactionItem, TransactionProperties, type TransactionPropertiesProps, type TransactionPropertiesType, TransactionSearch, TransactionState, TransactionView, TransactionViewLayout, type TransactionViewProps, type TransactionViewType, Transfer, TriangleExclamation, UsdAmount, WalletFilledIcon, WalletIcon, WalletLink, WalletsView, WrapAction, XSocial, linkActionTimelineProps, statusBgClassMap, statusColorClassMap, statusTextClassMap, useDropdownMenu, useMediaQuery };
2354
+ export { type ActionButton, ActionLayout, ActionLineOutRow, ActionProperties, ActionRow, type ActionStatus, ActionStatusRow, ActionWrapper, AddressButton, AnimationWrapper, AppContainer, Approve, ApproveAction, ArrowBottomTopIcon, ArrowButton, ArrowCornerDownRightIcon, ArrowLeftIcon, ArrowOutOfBoxIcon, ArrowRightDownCircleIcon, ArrowRightDownIcon, ArrowRightIcon, ArrowRightUpCircleIcon, ArrowRightUpIcon, ArrowRotate, ArrowTriangle, ArrowUpIcon, ArrowWallDownIcon, ArrowsSwapIcon, AssetsButton, type AssetsButtonVariant, AssetsView, BadgeImage, BagIcon, BankIcon, type BaseActionProps, type BaseTransactionViewProps, BlockSkeleton, BodyText, Boost, BoostBadge, BoostButton, BorderedContainer, Breadcrumb, BridgeAction, BridgeHeader, BridgeProperties, BridgeTransactionView, BrokenHeartIcon, Button, BuyNFTHeader, BuyNFTProperties, BuyNFTTransactionView, Calendar, CaptionText, ChainLink, Checkmark1Icon, Checkmark2Icon, ChevronArrowIcon, ChevronGrabberVerticalIcon, ChevronLargeDownIcon, ChevronLargeRightIcon, ChevronRightSmallIcon, ChevronTopIcon, ChevronTopSmallIcon, Chip, type ChipProps, CircleMinusIcon, CirclePlusIcon, CircleX, ClockIcon, ClockOutlineIcon, CoinsAddIcon, CoinsIcon, Collapse, CollectionIcon, CompassRound, Copy, DashboardFast, DescriptionBlocks, DetailsToolbar, DockSwapIcon, Dollar, DotGrid1x3HorizontalIcon, DropdownMenu, DropdownMenuItem, type DropdownMenuItemProps, EmojiMeh, EmojiSadIcon, EmptyHeartIcon, ErrorMessage, EthereumIcon, ExplosionIcon, FeeButton, FeesAction, type FeesActionProps, FeesLines, FeesTotal, FilledHeartIcon, FilterButton, FilterIcon, GasIcon, HashLink, HeadingText, HeartSmallIcon, HelpIcon, HistoryItem, type HistoryItemStatus, HomeIcon, IconLabel, ImageIcon, ImageSparkle, IncompleteAction, InfinityIcon, InfoBox, Inline, Input, InteractionHeader, InteractionProperties, InteractionTransactionView, Join, LightningIcon, LinkIcon, List, ListItem, Loader, LoadingProvider, LoadingSkeleton, MEDIA_QUERIES, MainView, MaxIcon, Menu, MenuItem, Modal, ModalContent, ModalContentDivider, NavigationBar, NotAllowedIcon, NumericInput, PathSquareIcon, PercentIcon, PieChartIcon, PipeSeparator, PlusIcon, ProductCard, ProfileHeader, ProfileHeaderBackground, PropertiesLayout, PropertyListItem, type PropertyListItemProps, PunkIcon, RangeInput, ReceiptBillIcon, ReceiveNFTAction, ReceiveTokensAction, RecipientView, RefreshIcon, ReorderIcon, STEP_ITEM_HEIGHT, SearchIcon, SectionTitle, SendTokensAction, SettingsButton, type SettingsButtonProps, type SettingsControl, SettingsGearIcon, SettingsItem, type SettingsItemProps, SettingsSlider, type SettingsSliderProps, SizeTransition, SnapIcon, SortIcon, SparkleIcon, SparklesIcon, SquareArrowCenter, SquareArrowTopLeftIcon, SquareArrowTopRight2Icon, SquidConfigProvider, SquidLogo, type SquidTheme, StakeAction, StartAction, SuccessAction, SwapAction, SwapConfiguration, SwapDetailsView, SwapErrorIcon, SwapHeader, type SwapHeaderProps, SwapInputsIcon, SwapProgressView, SwapProgressViewHeader, SwapProperties, type SwapPropertiesProps, SwapState, type SwapStep, SwapStepItem, SwapStepSeparator, SwapStepsCollapsed, type SwapStepsCollapsedFooterButton, SwapSuccessIcon, SwapTransactionView, SwapWarningIcon, Switch, TagIcon, TagIconFilled, TextSkeleton, type ThemeType, ThumbsUp, Tick, TimeFliesIcon, Timeline, Timestamp, Toast, TokenPair, Tooltip, type TooltipProps, type TooltipThreshold, type TooltipWidth, TradingViewStepsIcon, TransactionAction, type TransactionActionProps, type TransactionActionType, TransactionFilters, TransactionHeader, TransactionHeaderLayout, type TransactionHeaderProps, type TransactionHeaderType, TransactionItem, TransactionProperties, type TransactionPropertiesProps, type TransactionPropertiesType, TransactionSearch, TransactionState, TransactionView, TransactionViewLayout, type TransactionViewProps, type TransactionViewType, Transfer, TriangleExclamation, UsdAmount, WalletFilledIcon, WalletIcon, WalletLink, WalletsView, WrapAction, XSocial, linkActionTimelineProps, statusBgClassMap, statusColorClassMap, statusTextClassMap, useDropdownMenu, useMediaQuery };
package/package.json CHANGED
@@ -5,14 +5,14 @@
5
5
  "url": "git+https://github.com/0xsquid/squid-ui.git"
6
6
  },
7
7
  "description": "Squid's UI components",
8
- "version": "0.21.0",
8
+ "version": "0.21.1",
9
9
  "author": "",
10
10
  "license": "MIT",
11
11
  "resolutions": {
12
12
  "string-width": "4.2.3"
13
13
  },
14
14
  "scripts": {
15
- "storybook": "concurrently 'yarn:watch:*'",
15
+ "dev": "concurrently 'yarn:watch:*'",
16
16
  "watch:storybook": "storybook dev -p 6006",
17
17
  "build-storybook": "storybook build",
18
18
  "watch:build-tailwind": "yarn build-tailwind --watch",