@0xsquid/ui 0.27.0 → 0.27.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 (61) hide show
  1. package/dist/cjs/index.js +962 -792
  2. package/dist/cjs/types/components/badges/IconLabel.d.ts +2 -2
  3. package/dist/cjs/types/components/badges/Image.d.ts +9 -0
  4. package/dist/cjs/types/components/badges/index.d.ts +1 -1
  5. package/dist/cjs/types/components/buttons/IconButton.d.ts +1 -1
  6. package/dist/cjs/types/components/controls/Switch.d.ts +4 -3
  7. package/dist/cjs/types/components/icons/Arrow.d.ts +4 -1
  8. package/dist/cjs/types/components/icons/Clock.d.ts +1 -1
  9. package/dist/cjs/types/components/icons/Coins.d.ts +5 -1
  10. package/dist/cjs/types/components/icons/Generic.d.ts +40 -0
  11. package/dist/cjs/types/components/icons/Search.d.ts +4 -1
  12. package/dist/cjs/types/components/icons/index.d.ts +1 -0
  13. package/dist/cjs/types/components/layout/DropdownMenu.d.ts +6 -3
  14. package/dist/cjs/types/components/layout/Menu.d.ts +2 -2
  15. package/dist/cjs/types/components/lists/DropdownMenuItem.d.ts +17 -2
  16. package/dist/cjs/types/components/lists/DropdownMenuTitle.d.ts +3 -0
  17. package/dist/cjs/types/components/lists/HistoryItem.d.ts +2 -3
  18. package/dist/cjs/types/components/lists/ListItem.d.ts +5 -4
  19. package/dist/cjs/types/components/lists/index.d.ts +1 -0
  20. package/dist/cjs/types/hooks/useDropdownMenu.d.ts +7 -3
  21. package/dist/cjs/types/stories/badges/ImageIcon.stories.d.ts +2 -2
  22. package/dist/cjs/types/stories/layout/DropdownMenu.stories.d.ts +4 -1
  23. package/dist/cjs/types/stories/lists/DropdownMenuItem.stories.d.ts +7 -2
  24. package/dist/cjs/types/stories/lists/DropdownMenuTitle.stories.d.ts +6 -0
  25. package/dist/cjs/types/stories/lists/HistoryItem.stories.d.ts +1 -0
  26. package/dist/cjs/types/types/components.d.ts +2 -2
  27. package/dist/cjs/types/types/index.d.ts +1 -0
  28. package/dist/cjs/types/types/utils.d.ts +11 -0
  29. package/dist/esm/index.js +949 -791
  30. package/dist/esm/types/components/badges/IconLabel.d.ts +2 -2
  31. package/dist/esm/types/components/badges/Image.d.ts +9 -0
  32. package/dist/esm/types/components/badges/index.d.ts +1 -1
  33. package/dist/esm/types/components/buttons/IconButton.d.ts +1 -1
  34. package/dist/esm/types/components/controls/Switch.d.ts +4 -3
  35. package/dist/esm/types/components/icons/Arrow.d.ts +4 -1
  36. package/dist/esm/types/components/icons/Clock.d.ts +1 -1
  37. package/dist/esm/types/components/icons/Coins.d.ts +5 -1
  38. package/dist/esm/types/components/icons/Generic.d.ts +40 -0
  39. package/dist/esm/types/components/icons/Search.d.ts +4 -1
  40. package/dist/esm/types/components/icons/index.d.ts +1 -0
  41. package/dist/esm/types/components/layout/DropdownMenu.d.ts +6 -3
  42. package/dist/esm/types/components/layout/Menu.d.ts +2 -2
  43. package/dist/esm/types/components/lists/DropdownMenuItem.d.ts +17 -2
  44. package/dist/esm/types/components/lists/DropdownMenuTitle.d.ts +3 -0
  45. package/dist/esm/types/components/lists/HistoryItem.d.ts +2 -3
  46. package/dist/esm/types/components/lists/ListItem.d.ts +5 -4
  47. package/dist/esm/types/components/lists/index.d.ts +1 -0
  48. package/dist/esm/types/hooks/useDropdownMenu.d.ts +7 -3
  49. package/dist/esm/types/stories/badges/ImageIcon.stories.d.ts +2 -2
  50. package/dist/esm/types/stories/layout/DropdownMenu.stories.d.ts +4 -1
  51. package/dist/esm/types/stories/lists/DropdownMenuItem.stories.d.ts +7 -2
  52. package/dist/esm/types/stories/lists/DropdownMenuTitle.stories.d.ts +6 -0
  53. package/dist/esm/types/stories/lists/HistoryItem.stories.d.ts +1 -0
  54. package/dist/esm/types/types/components.d.ts +2 -2
  55. package/dist/esm/types/types/index.d.ts +1 -0
  56. package/dist/esm/types/types/utils.d.ts +11 -0
  57. package/dist/index.css +1 -1
  58. package/dist/index.d.ts +818 -728
  59. package/package.json +1 -1
  60. package/dist/cjs/types/components/badges/ImageIcon.d.ts +0 -9
  61. package/dist/esm/types/components/badges/ImageIcon.d.ts +0 -9
@@ -1,10 +1,10 @@
1
1
  import { ReactNode } from "react";
2
- import { ImageIconVariant } from "../../types/components";
2
+ import { ImageVariant } from "../../types/components";
3
3
  interface IconLabelProps {
4
4
  isLoading?: boolean;
5
5
  src?: string;
6
6
  children?: ReactNode;
7
- variant?: ImageIconVariant;
7
+ variant?: ImageVariant;
8
8
  }
9
9
  export declare function IconLabel({ src, children, variant }: IconLabelProps): import("react/jsx-runtime").JSX.Element;
10
10
  export {};
@@ -0,0 +1,9 @@
1
+ import { ImageSize, ImageVariant } from "../../types/components";
2
+ interface ImageProps {
3
+ src?: string;
4
+ variant?: ImageVariant;
5
+ size?: ImageSize;
6
+ className?: string;
7
+ }
8
+ export declare function Image({ src, variant, size, className: propsClassName, }: ImageProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -1,6 +1,6 @@
1
1
  export * from "./BadgeImage";
2
2
  export * from "./IconLabel";
3
- export * from "./ImageIcon";
3
+ export * from "./Image";
4
4
  export * from "./LoadingSkeleton";
5
5
  export * from "./TransactionState";
6
6
  export * from "./UsdAmount";
@@ -2,5 +2,5 @@
2
2
  interface IconButtonProps extends React.ComponentProps<"button"> {
3
3
  icon: React.ReactNode;
4
4
  }
5
- export declare const IconButton: ({ icon, ...props }: IconButtonProps) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const IconButton: import("react").ForwardRefExoticComponent<Omit<IconButtonProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
6
6
  export {};
@@ -1,9 +1,10 @@
1
+ /// <reference types="react" />
1
2
  import { SwitchSize } from "../../types/components";
2
- interface SwitchProps {
3
+ export interface SwitchProps {
3
4
  checked?: boolean;
4
5
  onChange?: (checked: boolean) => void;
5
6
  size: SwitchSize;
6
7
  disabled?: boolean;
8
+ inputProps?: React.ComponentProps<"input">;
7
9
  }
8
- export declare function Switch({ checked, onChange, size, disabled, }: SwitchProps): import("react/jsx-runtime").JSX.Element;
9
- export {};
10
+ export declare function Switch({ checked, onChange, size, disabled, inputProps, }: SwitchProps): import("react/jsx-runtime").JSX.Element;
@@ -20,7 +20,10 @@ export declare function ChevronLargeRightIcon({ size, className, }: {
20
20
  size?: string;
21
21
  className?: string;
22
22
  }): import("react/jsx-runtime").JSX.Element;
23
- export declare function ChevronRightSmallIcon(): import("react/jsx-runtime").JSX.Element;
23
+ export declare function ChevronRightSmallIcon({ className, size, }: {
24
+ className?: string;
25
+ size?: string;
26
+ }): import("react/jsx-runtime").JSX.Element;
24
27
  export declare function ArrowLeftIcon({ className, size, }: {
25
28
  className?: string;
26
29
  size?: string;
@@ -1,4 +1,4 @@
1
- export declare function ClockIcon({ className, size, }: {
1
+ export declare function ClockSolidIcon({ className, size, }: {
2
2
  className?: string;
3
3
  size?: string;
4
4
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  export declare function CoinsIcon(): import("react/jsx-runtime").JSX.Element;
2
2
  export declare function CoinsAddIcon(): import("react/jsx-runtime").JSX.Element;
3
- export declare function Dollar({ className, size, }: {
3
+ export declare function DollarOutlinedIcon({ className, size, }: {
4
4
  className?: string;
5
5
  size?: string;
6
6
  }): import("react/jsx-runtime").JSX.Element;
@@ -8,3 +8,7 @@ export declare function StocksIcon({ size, className, }: {
8
8
  size?: string;
9
9
  className?: string;
10
10
  }): import("react/jsx-runtime").JSX.Element;
11
+ export declare function DollarSolidIcon({ size, className, }: {
12
+ size?: string;
13
+ className?: string;
14
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,40 @@
1
+ export declare function GhostIcon({ size, className, }: {
2
+ size?: string;
3
+ className?: string;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ export declare function SettingsSliderIcon({ size, className, }: {
6
+ size?: string;
7
+ className?: string;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ export declare function EyeOpenIcon({ size, className, }: {
10
+ size?: string;
11
+ className?: string;
12
+ }): import("react/jsx-runtime").JSX.Element;
13
+ export declare function BellAlarmIcon({ size, className, }: {
14
+ size?: string;
15
+ className?: string;
16
+ }): import("react/jsx-runtime").JSX.Element;
17
+ export declare function LimitIcon({ size, className, }: {
18
+ size?: string;
19
+ className?: string;
20
+ }): import("react/jsx-runtime").JSX.Element;
21
+ export declare function PoopIcon({ size, className, }: {
22
+ size?: string;
23
+ className?: string;
24
+ }): import("react/jsx-runtime").JSX.Element;
25
+ export declare function CatSquareIcon({ size, className, }: {
26
+ size?: string;
27
+ className?: string;
28
+ }): import("react/jsx-runtime").JSX.Element;
29
+ export declare function FilterAscendingIcon({ size, className, }: {
30
+ size?: string;
31
+ className?: string;
32
+ }): import("react/jsx-runtime").JSX.Element;
33
+ export declare function ImageIcon({ size, className, }: {
34
+ size?: string;
35
+ className?: string;
36
+ }): import("react/jsx-runtime").JSX.Element;
37
+ export declare function FilterTimelineIcon({ size, className, }: {
38
+ size?: string;
39
+ className?: string;
40
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1 +1,4 @@
1
- export declare function SearchIcon(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function SearchIcon({ className, size, }: {
2
+ className?: string;
3
+ size?: string;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -52,3 +52,4 @@ export * from "./Wallet";
52
52
  export * from "./CrossAnimatedIcon";
53
53
  export * from "./Weather";
54
54
  export * from "./DockIcons";
55
+ export * from "./Generic";
@@ -1,12 +1,15 @@
1
1
  /// <reference types="react" />
2
- import { DropdownMenuItemProps } from "../lists";
3
2
  interface DropdownMenuProps {
4
3
  dropdownRef?: React.RefObject<HTMLDivElement>;
5
4
  menuRef?: React.RefObject<HTMLDivElement>;
6
- items: DropdownMenuItemProps[];
7
5
  className?: string;
8
6
  isHidden?: boolean;
9
7
  listClassName?: string;
8
+ containerClassName?: string;
9
+ containerRef?: React.RefObject<HTMLDivElement>;
10
+ children?: React.ReactNode;
11
+ contentWrapperProps?: React.ComponentProps<"div">;
12
+ menuContentClassName?: string;
10
13
  }
11
- export declare function DropdownMenu({ dropdownRef, items, className, menuRef, isHidden, listClassName, }: DropdownMenuProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function DropdownMenu({ dropdownRef, className, menuRef, isHidden, listClassName, containerClassName, children, contentWrapperProps, menuContentClassName, }: DropdownMenuProps): import("react/jsx-runtime").JSX.Element;
12
15
  export {};
@@ -5,7 +5,7 @@ interface MenuProps extends React.ComponentProps<"div"> {
5
5
  contentClassName?: string;
6
6
  rounded?: Rounded;
7
7
  menuRef?: React.RefObject<HTMLDivElement>;
8
- contentWrapperClassName?: string;
8
+ contentWrapperProps?: React.ComponentProps<"div">;
9
9
  }
10
- export declare function Menu({ children, containerClassName, contentClassName, rounded, menuRef, contentWrapperClassName, ...props }: MenuProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function Menu({ children, containerClassName, contentClassName, rounded, menuRef, contentWrapperProps, ...props }: MenuProps): import("react/jsx-runtime").JSX.Element;
11
11
  export {};
@@ -1,10 +1,25 @@
1
1
  /// <reference types="react" />
2
+ import { AllOrNone } from "../../types";
3
+ import { SwitchProps } from "../controls";
4
+ interface DropdownMenuItemControl extends Omit<SwitchProps, "size"> {
5
+ type: "switch";
6
+ }
2
7
  export interface DropdownMenuItemProps {
3
8
  label: string;
4
9
  labelClassName?: string;
5
10
  imageUrl?: string;
6
11
  icon?: React.ReactNode;
7
- onClick?: () => void;
12
+ onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
8
13
  link?: string;
14
+ control?: DropdownMenuItemControl;
15
+ detail?: React.ReactNode;
16
+ isSelected?: boolean;
17
+ itemRef?: React.RefObject<HTMLLIElement>;
18
+ children?: React.ReactNode;
19
+ contentRef?: React.RefObject<HTMLButtonElement>;
9
20
  }
10
- export declare function DropdownMenuItem({ label, imageUrl, icon, labelClassName, onClick, link, }: DropdownMenuItemProps): import("react/jsx-runtime").JSX.Element;
21
+ export declare function DropdownMenuItem(props: DropdownMenuItemProps & AllOrNone<{
22
+ submenu: React.ReactNode;
23
+ containerRef: React.RefObject<HTMLDivElement>;
24
+ }>): import("react/jsx-runtime").JSX.Element;
25
+ export {};
@@ -0,0 +1,3 @@
1
+ export declare function DropdownMenuTitle({ title }: {
2
+ title: string;
3
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import { HistoryItemStatus } from "../../types/components";
3
- import { DropdownMenuItemProps } from "./DropdownMenuItem";
4
3
  interface HistoryItemProps {
5
4
  firstImageUrl: string;
6
5
  secondImageUrl: string;
@@ -10,10 +9,10 @@ interface HistoryItemProps {
10
9
  dateCompleted: string;
11
10
  fromAmount: string;
12
11
  toAmount: string;
13
- dropdownMenuItems?: DropdownMenuItemProps[];
14
12
  itemsContainerRef?: React.RefObject<HTMLElement>;
15
13
  onClick?: () => void;
16
14
  warningLabel?: string;
15
+ dropdownMenuContent?: React.ReactNode;
17
16
  }
18
- export declare function HistoryItem({ firstImageUrl, secondImageUrl, dateCompleted, fromAmount, fromLabel, toAmount, toLabel, dropdownMenuItems: _dropdownMenuItemsProp, itemsContainerRef, status, warningLabel, onClick, }: HistoryItemProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function HistoryItem({ firstImageUrl, secondImageUrl, dateCompleted, fromAmount, fromLabel, toAmount, toLabel, dropdownMenuContent, itemsContainerRef, status, warningLabel, onClick, }: HistoryItemProps): import("react/jsx-runtime").JSX.Element;
19
18
  export {};
@@ -1,5 +1,4 @@
1
1
  /// <reference types="react" />
2
- import { DropdownMenuItemProps } from "./DropdownMenuItem";
3
2
  interface ListItemProps extends React.HTMLAttributes<HTMLButtonElement> {
4
3
  itemTitle: string | React.ReactNode;
5
4
  mainImageUrl?: string;
@@ -23,10 +22,12 @@ interface ListItemProps extends React.HTMLAttributes<HTMLButtonElement> {
23
22
  containerProps?: React.HTMLAttributes<HTMLLIElement>;
24
23
  compactOnMobile?: boolean;
25
24
  extraPadding?: boolean;
26
- dropdownMenuItems?: DropdownMenuItemProps[];
25
+ dropdownMenuContent?: React.ReactNode;
27
26
  itemsContainerRef?: React.RefObject<HTMLElement>;
28
27
  }
29
28
  type ListItemSize = "small" | "large";
30
- export declare function ListItem({ itemTitle, mainImageUrl, subtitle, subtitleOnHover, detail, icon, secondaryImageUrl, placeholderImageUrl, size, mainIcon, className, isSelected, onDetailClick, showDetailOnHoverOnly, rounded, detailButtonClassName, loading, containerProps, compactOnMobile, extraPadding, itemsContainerRef, dropdownMenuItems: _dropdownMenuItemsProp, ...props }: ListItemProps): import("react/jsx-runtime").JSX.Element;
31
- export declare const ListItemActionsButton: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
29
+ export declare function ListItem({ itemTitle, mainImageUrl, subtitle, subtitleOnHover, detail, icon, secondaryImageUrl, placeholderImageUrl, size, mainIcon, className, isSelected, onDetailClick, showDetailOnHoverOnly, rounded, detailButtonClassName, loading, containerProps, compactOnMobile, extraPadding, itemsContainerRef, dropdownMenuContent, ...props }: ListItemProps): import("react/jsx-runtime").JSX.Element;
30
+ export declare const ListItemActionsButton: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement> & {
31
+ isActive?: boolean | undefined;
32
+ }, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
32
33
  export {};
@@ -24,3 +24,4 @@ export * from "./TransactionAction/TransactionAction";
24
24
  export * from "./TransactionAction/WrapAction";
25
25
  export * from "./TransactionItem";
26
26
  export * from "./RouteStep";
27
+ export * from "./DropdownMenuTitle";
@@ -1,5 +1,9 @@
1
- /// <reference types="react" />
2
- import { DropdownPosition } from "../types/components";
1
+ import React from "react";
2
+ export type DropdownPosition = "top" | "bottom" | "center";
3
+ export type DropdownStyles = {
4
+ position: DropdownPosition;
5
+ maxHeight: number | null;
6
+ };
3
7
  interface UseDropdownMenuParams {
4
8
  initialIsModalOpen?: boolean;
5
9
  itemsContainerRef?: React.RefObject<HTMLElement>;
@@ -10,7 +14,7 @@ export declare function useDropdownMenu(props?: UseDropdownMenuParams): {
10
14
  closeDropdown: () => void;
11
15
  dropdownRef: React.RefObject<HTMLDivElement>;
12
16
  openDropdownButtonRef: React.RefObject<HTMLButtonElement>;
13
- dropdownPosition: DropdownPosition | null;
17
+ dropdownStyles: DropdownStyles | null;
14
18
  itemRef: React.RefObject<HTMLLIElement>;
15
19
  menuRef: React.RefObject<HTMLDivElement>;
16
20
  };
@@ -1,6 +1,6 @@
1
1
  import { Meta, StoryObj } from "@storybook/react";
2
- import { ImageIcon } from "../../components/badges/ImageIcon";
3
- declare const meta: Meta<typeof ImageIcon>;
2
+ import { Image } from "../../components/badges/Image";
3
+ declare const meta: Meta<typeof Image>;
4
4
  export default meta;
5
5
  type Story = StoryObj<typeof meta>;
6
6
  export declare const Square: Story;
@@ -3,4 +3,7 @@ import { DropdownMenu } from "../../components/layout/DropdownMenu";
3
3
  declare const meta: Meta<typeof DropdownMenu>;
4
4
  export default meta;
5
5
  type Story = StoryObj<typeof meta>;
6
- export declare const Default: Story;
6
+ export declare const Images: Story;
7
+ export declare const Icons: Story;
8
+ export declare const DetailsControlsAndLinks: Story;
9
+ export declare const SubMenu: Story;
@@ -1,8 +1,13 @@
1
1
  import { Meta, StoryObj } from "@storybook/react";
2
- import { DropdownMenuItem } from "../../components/lists/DropdownMenuItem";
2
+ import { DropdownMenuItem, DropdownMenuItemProps } from "../../components/lists/DropdownMenuItem";
3
3
  declare const meta: Meta<typeof DropdownMenuItem>;
4
4
  export default meta;
5
- type Story = StoryObj<typeof meta>;
5
+ type Story = Omit<StoryObj<typeof meta>, "args"> & {
6
+ args: DropdownMenuItemProps;
7
+ };
6
8
  export declare const Image: Story;
7
9
  export declare const Icon: Story;
8
10
  export declare const Link: Story;
11
+ export declare const SwitchControl: Story;
12
+ export declare const Detail: Story;
13
+ export declare const Selected: Story;
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from "@storybook/react";
2
+ import { DropdownMenuTitle } from "../../components/lists/DropdownMenuTitle";
3
+ declare const meta: Meta<typeof DropdownMenuTitle>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Default: Story;
@@ -8,4 +8,5 @@ export declare const Pending: Story;
8
8
  export declare const Failed: Story;
9
9
  export declare const Warning: Story;
10
10
  export declare const WithActions: Story;
11
+ export declare const WithActionsSubmenu: Story;
11
12
  export declare const IsClickable: Story;
@@ -35,8 +35,8 @@ export type InputMode = "token" | "price";
35
35
  export type TransactionStateVariant = "full" | "compact" | "small";
36
36
  export type TokenPairVariant = "horizontal" | "vertical";
37
37
  export type TokenPairSize = "small" | "medium";
38
- export type ImageIconVariant = "square" | "round" | "proportional";
39
- export type ImageIconSize = "small" | "medium" | "large" | "xlarge";
38
+ export type ImageVariant = "square" | "round" | "proportional";
39
+ export type ImageSize = "small" | "medium" | "large" | "xlarge";
40
40
  export type ChainTypeFilter = "source" | "destination";
41
41
  export type StatusFilter = "success" | "ongoing" | "error";
42
42
  export type AssetsButtonVariant = "primary" | "accent";
@@ -1,2 +1,3 @@
1
1
  export type { SquidTheme } from "./config";
2
+ export * from "./utils";
2
3
  export type { SwapState, ThemeType, SwapStep, HistoryItemStatus, ActionStatus, AssetsButtonVariant, } from "./components";
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Utility type to allow for a type to be either all of the properties of another type, or none of them
3
+ * @example
4
+ * type Person = { age: number } & AllOrNone<{ name: string, lastName: string }>
5
+ * const person: Person = { age: 30 } // ok
6
+ * const person: Person = { age: 30, name: "John" } // error, requires lastName
7
+ * const person: Person = { age: 30, name: "John", lastName: "Doe" } // ok, all properties are present
8
+ */
9
+ export type AllOrNone<T> = T | {
10
+ [K in keyof T]?: never;
11
+ };