@silentswap/ui-kit 0.0.41 → 0.0.43

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 (148) hide show
  1. package/dist/components/accordion.d.ts +7 -0
  2. package/dist/components/accordion.js +14 -0
  3. package/dist/components/add-button.d.ts +10 -0
  4. package/dist/components/add-button.js +20 -0
  5. package/dist/components/address-selector.d.ts +34 -0
  6. package/dist/components/address-selector.js +57 -0
  7. package/dist/components/alert-dialog.d.ts +20 -0
  8. package/dist/components/alert-dialog.js +26 -0
  9. package/dist/components/alert.d.ts +8 -0
  10. package/dist/components/alert.js +22 -0
  11. package/dist/components/avatar.d.ts +6 -0
  12. package/dist/components/avatar.js +12 -0
  13. package/dist/components/badge.d.ts +9 -0
  14. package/dist/components/badge.js +21 -0
  15. package/dist/components/button.d.ts +12 -0
  16. package/dist/components/button.js +39 -0
  17. package/dist/components/card.d.ts +8 -0
  18. package/dist/components/card.js +16 -0
  19. package/dist/components/coin.d.ts +6 -0
  20. package/dist/components/coin.js +20 -0
  21. package/dist/components/collapsible.d.ts +5 -0
  22. package/dist/components/collapsible.js +6 -0
  23. package/dist/components/context-menu.d.ts +27 -0
  24. package/dist/components/context-menu.js +33 -0
  25. package/dist/components/dialog.d.ts +19 -0
  26. package/dist/components/dialog.js +99 -0
  27. package/dist/components/disconnect-confirmation-dialog.d.ts +10 -0
  28. package/dist/components/disconnect-confirmation-dialog.js +16 -0
  29. package/dist/components/drawer copy.js +25 -0
  30. package/dist/components/drawer.d.ts +22 -0
  31. package/dist/components/drawer.js +25 -0
  32. package/dist/components/dropdown-menu.d.ts +27 -0
  33. package/dist/components/dropdown-menu.js +33 -0
  34. package/dist/components/icons.d.ts +30 -0
  35. package/dist/components/icons.js +71 -0
  36. package/dist/components/input.d.ts +3 -0
  37. package/dist/components/input.js +8 -0
  38. package/dist/components/label.d.ts +5 -0
  39. package/dist/components/label.js +10 -0
  40. package/dist/components/modal.d.ts +40 -0
  41. package/dist/components/modal.js +100 -0
  42. package/dist/components/panel-row.d.ts +11 -0
  43. package/dist/components/panel-row.js +8 -0
  44. package/dist/components/popover.d.ts +15 -0
  45. package/dist/components/popover.js +106 -0
  46. package/dist/components/popular-tokens-area.d.ts +8 -0
  47. package/dist/components/popular-tokens-area.js +34 -0
  48. package/dist/components/progress-bar.d.ts +17 -0
  49. package/dist/components/progress-bar.js +30 -0
  50. package/dist/components/responsive-container.d.ts +7 -0
  51. package/dist/components/responsive-container.js +69 -0
  52. package/dist/components/scroll-area.d.ts +5 -0
  53. package/dist/components/scroll-area.js +10 -0
  54. package/dist/components/select.d.ts +13 -0
  55. package/dist/components/select.js +26 -0
  56. package/dist/components/separator.d.ts +4 -0
  57. package/dist/components/separator.js +8 -0
  58. package/dist/components/sheet.d.ts +25 -0
  59. package/dist/components/sheet.js +37 -0
  60. package/dist/components/sidebar.d.ts +66 -0
  61. package/dist/components/sidebar.js +222 -0
  62. package/dist/components/skeleton.d.ts +3 -0
  63. package/dist/components/skeleton.js +7 -0
  64. package/dist/components/status-card.d.ts +23 -0
  65. package/dist/components/status-card.js +27 -0
  66. package/dist/components/textarea.d.ts +3 -0
  67. package/dist/components/textarea.js +8 -0
  68. package/dist/components/tooltip.d.ts +7 -0
  69. package/dist/components/tooltip.js +11 -0
  70. package/dist/components-v2/accordion.d.ts +7 -0
  71. package/dist/components-v2/accordion.js +14 -0
  72. package/dist/components-v2/add-button.d.ts +10 -0
  73. package/dist/components-v2/add-button.js +21 -0
  74. package/dist/components-v2/address-selector.d.ts +34 -0
  75. package/dist/components-v2/address-selector.js +57 -0
  76. package/dist/components-v2/alert-dialog.d.ts +20 -0
  77. package/dist/components-v2/alert-dialog.js +26 -0
  78. package/dist/components-v2/alert.d.ts +8 -0
  79. package/dist/components-v2/alert.js +22 -0
  80. package/dist/components-v2/assetTile.d.ts +10 -0
  81. package/dist/components-v2/assetTile.js +18 -0
  82. package/dist/components-v2/avatar.d.ts +6 -0
  83. package/dist/components-v2/avatar.js +12 -0
  84. package/dist/components-v2/badge.d.ts +9 -0
  85. package/dist/components-v2/badge.js +21 -0
  86. package/dist/components-v2/collapsible.d.ts +5 -0
  87. package/dist/components-v2/collapsible.js +6 -0
  88. package/dist/components-v2/context-menu.d.ts +27 -0
  89. package/dist/components-v2/context-menu.js +33 -0
  90. package/dist/components-v2/disconnect-confirmation-dialog.d.ts +10 -0
  91. package/dist/components-v2/disconnect-confirmation-dialog.js +16 -0
  92. package/dist/components-v2/drawer.d.ts +22 -0
  93. package/dist/components-v2/drawer.js +25 -0
  94. package/dist/components-v2/dropdown-menu.d.ts +27 -0
  95. package/dist/components-v2/dropdown-menu.js +33 -0
  96. package/dist/components-v2/icons.d.ts +30 -0
  97. package/dist/components-v2/icons.js +72 -0
  98. package/dist/components-v2/label.d.ts +5 -0
  99. package/dist/components-v2/label.js +10 -0
  100. package/dist/components-v2/modal.d.ts +40 -0
  101. package/dist/components-v2/modal.js +100 -0
  102. package/dist/components-v2/popular-tokens-area.d.ts +8 -0
  103. package/dist/components-v2/popular-tokens-area.js +34 -0
  104. package/dist/components-v2/progress-bar.d.ts +17 -0
  105. package/dist/components-v2/progress-bar.js +30 -0
  106. package/dist/components-v2/scroll-area.d.ts +5 -0
  107. package/dist/components-v2/scroll-area.js +10 -0
  108. package/dist/components-v2/separator.d.ts +4 -0
  109. package/dist/components-v2/separator.js +8 -0
  110. package/dist/components-v2/sheet.d.ts +25 -0
  111. package/dist/components-v2/sheet.js +37 -0
  112. package/dist/components-v2/skeleton.d.ts +3 -0
  113. package/dist/components-v2/skeleton.js +7 -0
  114. package/dist/components-v2/status-card.d.ts +23 -0
  115. package/dist/components-v2/status-card.js +27 -0
  116. package/dist/components-v2/textarea.d.ts +3 -0
  117. package/dist/components-v2/textarea.js +8 -0
  118. package/dist/components-v2/tooltip.d.ts +7 -0
  119. package/dist/components-v2/tooltip.js +11 -0
  120. package/dist/components-v2/warning.d.ts +15 -0
  121. package/dist/components-v2/warning.js +23 -0
  122. package/dist/hooks/use-mobile.d.ts +1 -0
  123. package/dist/hooks/use-mobile.js +15 -0
  124. package/dist/index.d.ts +14 -14
  125. package/dist/index.js +8 -8
  126. package/dist/lib/utils.d.ts +2 -0
  127. package/dist/lib/utils.js +5 -0
  128. package/dist/test.css +1383 -0
  129. package/dist/utils.d.ts +2 -0
  130. package/dist/utils.js +5 -0
  131. package/package.json +2 -2
  132. package/src/{components/PopularTokensArea.tsx → components-v2/popular-tokens-area.tsx} +1 -1
  133. package/src/index.ts +14 -14
  134. /package/dist/{components/Button.d.ts → components-v2/button.d.ts} +0 -0
  135. /package/dist/{components/Button.js → components-v2/button.js} +0 -0
  136. /package/dist/{components/Card.d.ts → components-v2/card.d.ts} +0 -0
  137. /package/dist/{components/Card.js → components-v2/card.js} +0 -0
  138. /package/dist/{components/Input.d.ts → components-v2/input.d.ts} +0 -0
  139. /package/dist/{components/Input.js → components-v2/input.js} +0 -0
  140. /package/dist/{components/Select.d.ts → components-v2/select.d.ts} +0 -0
  141. /package/dist/{components/Select.js → components-v2/select.js} +0 -0
  142. /package/src/{components/AssetTile.tsx → components-v2/assetTile.tsx} +0 -0
  143. /package/src/{components/Button.tsx → components-v2/button.tsx} +0 -0
  144. /package/src/{components/Card.tsx → components-v2/card.tsx} +0 -0
  145. /package/src/{components/Input.tsx → components-v2/input.tsx} +0 -0
  146. /package/src/{components/ProgressBar.tsx → components-v2/progress-bar.tsx} +0 -0
  147. /package/src/{components/Select.tsx → components-v2/select.tsx} +0 -0
  148. /package/src/{components/Warning.tsx → components-v2/warning.tsx} +0 -0
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { S_CAIP19_USDC_AVALANCHE } from '../constants';
4
+ import { asset_get } from '../data';
5
+ import { AssetTile } from './assetTile';
6
+ export const PopularTokensArea = ({ onTokenSelect, title = 'Popular Tokens', tokens, className = '' }) => {
7
+ const defaultTokens = [
8
+ 'eip155:1/slip44:60', // ETH on Ethereum
9
+ 'eip155:1/erc20:0xdAC17F958D2ee523a2206206994597C13D831ec7', // USDT on Ethereum
10
+ 'eip155:1/erc20:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC on Ethereum
11
+ 'eip155:1/erc20:0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', // WETH on Ethereum
12
+ 'eip155:1/erc20:0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599', // WBTC on Ethereum
13
+ 'eip155:56/slip44:714', // BNB on BSC
14
+ 'eip155:56/erc20:0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', // WBNB on BSC
15
+ 'eip155:8453/slip44:60', // ETH on Base
16
+ 'eip155:8453/erc20:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC on Base
17
+ 'eip155:43114/slip44:9005', // WAVAX on Avalanche
18
+ S_CAIP19_USDC_AVALANCHE, // USDC on Avalanche
19
+ 'eip155:137/slip44:966', // WMATIC/WPOL on Polygon
20
+ 'eip155:137/erc20:0xc2132D05D31c914a87C6611C10748AEb04B58e8F', // USDT0 on Polygon
21
+ 'eip155:137/erc20:0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359', // USDC on Polygon
22
+ 'eip155:10/slip44:60', // WETH on Optimism
23
+ 'eip155:10/erc20:0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', // USDC on Optimism
24
+ 'eip155:42161/slip44:60', // WETH on Arbitrum
25
+ 'eip155:42161/erc20:0xaf88d065e77c8cC2239327C5EDb3A432268e5831', // USDC on Arbitrum
26
+ ];
27
+ const popularTokens = tokens || defaultTokens;
28
+ return (_jsxs("div", { className: `${className}`, children: [_jsx("div", { className: "font-orbitron text-lg font-bold text-white mb-3", children: title }), _jsx("div", { className: "flex gap-2 overflow-x-auto pb-2", children: popularTokens.map((caip19) => {
29
+ const asset = asset_get(caip19);
30
+ if (!asset)
31
+ return null;
32
+ return (_jsxs("div", { className: "flex flex-col items-center gap-2 bg-dim-med rounded-lg p-2 cursor-pointer hover:bg-dim-light transition-colors min-w-fit", onClick: () => onTokenSelect?.(caip19), role: "button", tabIndex: 0, "aria-label": `Select ${asset.symbol}`, children: [_jsx(AssetTile, { caip19: caip19, size: "small" }), _jsx("div", { className: "text-text-dim text-xs text-center", children: asset.symbol?.toUpperCase() })] }, caip19));
33
+ }) })] }));
34
+ };
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import type { HTMLAttributes } from 'react';
3
+ export interface ProgressBarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
4
+ /** Progress value from 0 to 1 (0 = 0%, 1 = 100%) */
5
+ value: number;
6
+ /** Height of the progress bar in pixels */
7
+ height?: number;
8
+ /** Color of the progress fill */
9
+ color?: 'green' | 'yellow' | 'purple' | 'orange';
10
+ /** Whether to show the progress bar (animates height) */
11
+ show?: boolean;
12
+ }
13
+ /**
14
+ * Simple progress bar component
15
+ * Based on SilentSwap Plate.svelte progress styles
16
+ */
17
+ export declare const ProgressBar: React.FC<ProgressBarProps>;
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ /**
4
+ * Simple progress bar component
5
+ * Based on SilentSwap Plate.svelte progress styles
6
+ */
7
+ export const ProgressBar = ({ value, height = 6, color = 'green', show = true, className = '', style, ...props }) => {
8
+ const colorClasses = {
9
+ green: 'bg-[var(--color-green)]',
10
+ yellow: 'bg-[var(--color-yellow)]',
11
+ purple: 'bg-[var(--color-purple)]',
12
+ orange: 'bg-[var(--color-orange)]',
13
+ };
14
+ // Clamp value between 0 and 1
15
+ const clampedValue = Math.max(0, Math.min(1, value));
16
+ const containerStyle = {
17
+ height: show ? `${height}px` : '0px',
18
+ width: '100%',
19
+ backgroundColor: 'var(--color-gray-dark)',
20
+ transition: 'height 500ms linear',
21
+ overflow: 'hidden',
22
+ ...style,
23
+ };
24
+ const fillStyle = {
25
+ width: `${clampedValue * 100}%`,
26
+ height: '100%',
27
+ transition: 'width 490ms linear',
28
+ };
29
+ return (_jsx("div", { className: className, style: containerStyle, role: "progressbar", "aria-valuenow": clampedValue * 100, "aria-valuemin": 0, "aria-valuemax": 100, ...props, children: _jsx("div", { className: colorClasses[color], style: fillStyle }) }));
30
+ };
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
3
+ declare const ScrollArea: React.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
4
+ declare const ScrollBar: React.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaScrollbarProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
5
+ export { ScrollArea, ScrollBar };
@@ -0,0 +1,10 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
5
+ import { cn } from '../utils';
6
+ const ScrollArea = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(ScrollAreaPrimitive.Root, { ref: ref, className: cn('relative overflow-hidden', className), ...props, children: [_jsx(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children: children }), _jsx(ScrollBar, {}), _jsx(ScrollAreaPrimitive.Corner, {})] })));
7
+ ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
8
+ const ScrollBar = React.forwardRef(({ className, orientation = 'vertical', ...props }, ref) => (_jsx(ScrollAreaPrimitive.ScrollAreaScrollbar, { ref: ref, orientation: orientation, className: cn('flex touch-none select-none transition-colors', orientation === 'vertical' && 'h-full w-2.5 border-l border-l-transparent p-[1px]', orientation === 'horizontal' && 'h-2.5 flex-col border-t border-t-transparent p-[1px]', className), ...props, children: _jsx(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" }) })));
9
+ ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
10
+ export { ScrollArea, ScrollBar };
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import * as SeparatorPrimitive from '@radix-ui/react-separator';
3
+ declare const Separator: React.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
4
+ export { Separator };
@@ -0,0 +1,8 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import * as SeparatorPrimitive from '@radix-ui/react-separator';
5
+ import { cn } from '../utils';
6
+ const Separator = React.forwardRef(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (_jsx(SeparatorPrimitive.Root, { ref: ref, decorative: decorative, orientation: orientation, className: cn('shrink-0 bg-border', orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]', className), ...props })));
7
+ Separator.displayName = SeparatorPrimitive.Root.displayName;
8
+ export { Separator };
@@ -0,0 +1,25 @@
1
+ import * as React from 'react';
2
+ import * as SheetPrimitive from '@radix-ui/react-dialog';
3
+ import { type VariantProps } from 'class-variance-authority';
4
+ declare const Sheet: React.FC<SheetPrimitive.DialogProps>;
5
+ declare const SheetTrigger: React.ForwardRefExoticComponent<SheetPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
6
+ declare const SheetClose: React.ForwardRefExoticComponent<SheetPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
7
+ declare const SheetPortal: React.FC<SheetPrimitive.DialogPortalProps>;
8
+ declare const SheetOverlay: React.ForwardRefExoticComponent<Omit<SheetPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
9
+ declare const sheetVariants: (props?: ({
10
+ side?: "top" | "right" | "bottom" | "left" | null | undefined;
11
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
12
+ interface SheetContentProps extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>, VariantProps<typeof sheetVariants> {
13
+ }
14
+ declare const SheetContent: React.ForwardRefExoticComponent<SheetContentProps & React.RefAttributes<HTMLDivElement>>;
15
+ declare const SheetHeader: {
16
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
17
+ displayName: string;
18
+ };
19
+ declare const SheetFooter: {
20
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
21
+ displayName: string;
22
+ };
23
+ declare const SheetTitle: React.ForwardRefExoticComponent<Omit<SheetPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
24
+ declare const SheetDescription: React.ForwardRefExoticComponent<Omit<SheetPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
25
+ export { Sheet, SheetPortal, SheetOverlay, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription, };
@@ -0,0 +1,37 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import * as SheetPrimitive from '@radix-ui/react-dialog';
5
+ import { cva } from 'class-variance-authority';
6
+ import { cn } from '../utils';
7
+ import { CloseIcon } from './icons';
8
+ const Sheet = SheetPrimitive.Root;
9
+ const SheetTrigger = SheetPrimitive.Trigger;
10
+ const SheetClose = SheetPrimitive.Close;
11
+ const SheetPortal = SheetPrimitive.Portal;
12
+ const SheetOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(SheetPrimitive.Overlay, { className: cn('fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className), ...props, ref: ref })));
13
+ SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
14
+ const sheetVariants = cva('fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out', {
15
+ variants: {
16
+ side: {
17
+ top: 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',
18
+ bottom: 'inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',
19
+ left: 'inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-[400px]',
20
+ right: 'inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-[400px]',
21
+ },
22
+ },
23
+ defaultVariants: {
24
+ side: 'right',
25
+ },
26
+ });
27
+ const SheetContent = React.forwardRef(({ side = 'right', className, children, ...props }, ref) => (_jsxs(SheetPortal, { children: [_jsx(SheetOverlay, {}), _jsxs(SheetPrimitive.Content, { ref: ref, className: cn(sheetVariants({ side }), className), ...props, children: [_jsxs(SheetPrimitive.Close, { className: "cursor-pointer absolute right-5 top-8 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [_jsx(CloseIcon, {}), _jsx("span", { className: "sr-only", children: "Close" })] }), children] })] })));
28
+ SheetContent.displayName = SheetPrimitive.Content.displayName;
29
+ const SheetHeader = ({ className, ...props }) => (_jsx("div", { className: cn('flex flex-col space-y-2 text-center sm:text-left', className), ...props }));
30
+ SheetHeader.displayName = 'SheetHeader';
31
+ const SheetFooter = ({ className, ...props }) => (_jsx("div", { className: cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className), ...props }));
32
+ SheetFooter.displayName = 'SheetFooter';
33
+ const SheetTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx(SheetPrimitive.Title, { ref: ref, className: cn('text-lg font-semibold text-foreground', className), ...props })));
34
+ SheetTitle.displayName = SheetPrimitive.Title.displayName;
35
+ const SheetDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx(SheetPrimitive.Description, { ref: ref, className: cn('text-sm text-muted-foreground', className), ...props })));
36
+ SheetDescription.displayName = SheetPrimitive.Description.displayName;
37
+ export { Sheet, SheetPortal, SheetOverlay, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription, };
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare function Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
3
+ export { Skeleton };
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { cn } from '../utils';
4
+ function Skeleton({ className, ...props }) {
5
+ return _jsx("div", { className: cn('animate-pulse rounded-md', className), ...props });
6
+ }
7
+ export { Skeleton };
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ interface StatusCardProps {
3
+ variant?: 'info' | 'warning' | 'error' | 'success';
4
+ title?: string;
5
+ message: string;
6
+ action?: {
7
+ label: string;
8
+ onClick: () => void;
9
+ loading?: boolean;
10
+ disabled?: boolean;
11
+ };
12
+ className?: string;
13
+ }
14
+ export declare const StatusCard: React.FC<StatusCardProps>;
15
+ interface ErrorCardProps {
16
+ errors: Array<{
17
+ type: string;
18
+ message: string;
19
+ }>;
20
+ className?: string;
21
+ }
22
+ export declare const ErrorCard: React.FC<ErrorCardProps>;
23
+ export {};
@@ -0,0 +1,27 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import React from 'react';
4
+ import { Card } from './card';
5
+ import { Button } from './button';
6
+ import { AlertCircle, Loader2 } from 'lucide-react';
7
+ import { cn } from '../utils';
8
+ export const StatusCard = ({ variant = 'info', title, message, action, className }) => {
9
+ const variantStyles = {
10
+ info: 'border-border-bright/20 bg-dim-med',
11
+ warning: 'border-yellow/50 bg-yellow/10',
12
+ error: 'border-red-500/50 bg-red-500/10',
13
+ success: 'border-green-500/50 bg-green-500/10',
14
+ };
15
+ const textStyles = {
16
+ info: 'text-text-dim',
17
+ warning: 'text-yellow',
18
+ error: 'text-red-500',
19
+ success: 'text-green-500',
20
+ };
21
+ return (_jsxs(Card, { className: cn('text-center p-4 mb-4', variantStyles[variant], className), children: [title && (_jsxs("div", { className: cn('mb-2 text-sm font-medium', textStyles[variant]), children: [variant === 'error' && (_jsx(AlertCircle, { className: "w-4 h-4 inline mr-1" })), title] })), _jsx("p", { className: cn('text-sm', textStyles[variant]), children: message }), action && (_jsxs(Button, { variant: variant === 'error' ? 'destructive' : 'default', onClick: action.onClick, disabled: action.disabled || action.loading, className: "mt-4", children: [action.loading && (_jsx(_Fragment, { children: _jsx(Loader2, { className: "w-4 h-4 mr-2 animate-spin" }) })), action.label] }))] }));
22
+ };
23
+ export const ErrorCard = ({ errors, className }) => {
24
+ if (errors.length === 0)
25
+ return null;
26
+ return (_jsx(Card, { className: cn('border-red-500 bg-red-500/10 p-4 mb-4', className), children: errors.map((error, index) => (_jsxs("div", { className: "mb-2 last:mb-0 text-sm text-red-500", children: [_jsxs("strong", { children: [error.type, ":"] }), " ", error.message] }, index))) }));
27
+ };
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ declare const Textarea: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "ref"> & React.RefAttributes<HTMLTextAreaElement>>;
3
+ export { Textarea };
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ import { cn } from '../utils';
4
+ const Textarea = React.forwardRef(({ className, ...props }, ref) => {
5
+ return (_jsx("textarea", { className: cn('flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm', className), ref: ref, ...props }));
6
+ });
7
+ Textarea.displayName = 'Textarea';
8
+ export { Textarea };
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
3
+ declare const TooltipProvider: any;
4
+ declare const Tooltip: React.FC<TooltipPrimitive.TooltipProps>;
5
+ declare const TooltipTrigger: React.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React.RefAttributes<HTMLButtonElement>>;
6
+ declare const TooltipContent: React.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
7
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
@@ -0,0 +1,11 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
5
+ import { cn } from '../utils';
6
+ const TooltipProvider = TooltipPrimtive.Provider;
7
+ const Tooltip = TooltipPrimitive.Root;
8
+ const TooltipTrigger = TooltipPrimitive.Trigger;
9
+ const TooltipContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => (_jsx(TooltipPrimitive.Portal, { children: _jsx(TooltipPrimitive.Content, { ref: ref, sideOffset: sideOffset, className: cn('z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', className), ...props }) })));
10
+ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
11
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import type { HTMLAttributes, ReactNode } from 'react';
3
+ export interface WarningProps extends HTMLAttributes<HTMLDivElement> {
4
+ /** Warning content */
5
+ children: ReactNode;
6
+ /** Variant of the warning */
7
+ variant?: 'warning' | 'error' | 'info' | 'success';
8
+ /** Whether to show a dot indicator */
9
+ showDot?: boolean;
10
+ }
11
+ /**
12
+ * Simple warning/notice component
13
+ * Based on SilentSwap Plate.svelte input-notice styles
14
+ */
15
+ export declare const Warning: React.FC<WarningProps>;
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ /**
4
+ * Simple warning/notice component
5
+ * Based on SilentSwap Plate.svelte input-notice styles
6
+ */
7
+ export const Warning = ({ children, variant = 'warning', showDot = true, className = '', ...props }) => {
8
+ const baseClasses = 'text-xs bg-black/80 rounded px-2 py-1 flex items-center gap-1';
9
+ const variantClasses = {
10
+ warning: 'text-[#FED703]',
11
+ error: 'text-red-500',
12
+ info: 'text-blue-400',
13
+ success: 'text-[var(--color-green)]',
14
+ };
15
+ const dotColor = {
16
+ warning: '#FED703',
17
+ error: '#ef4444',
18
+ info: '#60a5fa',
19
+ success: 'var(--color-green)',
20
+ };
21
+ const classes = `${baseClasses} ${variantClasses[variant]} ${className}`.trim();
22
+ return (_jsxs("div", { className: classes, ...props, children: [showDot && (_jsx("span", { className: "inline-block w-[5px] h-[6px] rounded-full", style: { backgroundColor: dotColor[variant] } })), _jsx("span", { children: children })] }));
23
+ };
@@ -0,0 +1 @@
1
+ export declare function useIsMobile(): boolean;
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ const MOBILE_BREAKPOINT = 768;
3
+ export function useIsMobile() {
4
+ const [isMobile, setIsMobile] = React.useState(undefined);
5
+ React.useEffect(() => {
6
+ const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
7
+ const onChange = () => {
8
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
9
+ };
10
+ mql.addEventListener('change', onChange);
11
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
12
+ return () => mql.removeEventListener('change', onChange);
13
+ }, []);
14
+ return !!isMobile;
15
+ }
package/dist/index.d.ts CHANGED
@@ -1,17 +1,17 @@
1
- export { Button } from './components/Button';
2
- export { Input } from './components/Input';
3
- export { Select } from './components/Select';
4
- export { Card } from './components/Card';
5
- export { Warning } from './components/Warning';
6
- export { ProgressBar } from './components/ProgressBar';
7
- export { AssetTile } from './components/AssetTile';
8
- export { PopularTokensArea } from './components/PopularTokensArea';
1
+ export { Button } from './components-v2/button';
2
+ export { Input } from './components-v2/input';
3
+ export { Select } from './components-v2/select';
4
+ export { Card } from './components-v2/card';
5
+ export { Warning } from './components-v2/warning';
6
+ export { ProgressBar } from './components-v2/progress-bar';
7
+ export { AssetTile } from './components-v2/assetTile';
8
+ export { PopularTokensArea } from './components-v2/popular-tokens-area';
9
9
  export type { Asset, ContactId } from './types';
10
- export type { ButtonProps } from './components/Button';
11
- export type { InputProps } from './components/Input';
12
- export type { SelectProps, SelectOption } from './components/Select';
13
- export type { CardProps } from './components/Card';
14
- export type { WarningProps } from './components/Warning';
15
- export type { ProgressBarProps } from './components/ProgressBar';
10
+ export type { ButtonProps } from './components-v2/button';
11
+ export type { InputProps } from './components-v2/input';
12
+ export type { SelectProps, SelectOption } from './components-v2/select';
13
+ export type { CardProps } from './components-v2/card';
14
+ export type { WarningProps } from './components-v2/warning';
15
+ export type { ProgressBarProps } from './components-v2/progress-bar';
16
16
  export { S_CAIP19_USDC_AVALANCHE, X_MINIMUM_INPUT_USD } from './constants';
17
17
  export { loadAssets } from './data';
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  // Components
2
- export { Button } from './components/Button';
3
- export { Input } from './components/Input';
4
- export { Select } from './components/Select';
5
- export { Card } from './components/Card';
6
- export { Warning } from './components/Warning';
7
- export { ProgressBar } from './components/ProgressBar';
8
- export { AssetTile } from './components/AssetTile';
9
- export { PopularTokensArea } from './components/PopularTokensArea';
2
+ export { Button } from './components-v2/button';
3
+ export { Input } from './components-v2/input';
4
+ export { Select } from './components-v2/select';
5
+ export { Card } from './components-v2/card';
6
+ export { Warning } from './components-v2/warning';
7
+ export { ProgressBar } from './components-v2/progress-bar';
8
+ export { AssetTile } from './components-v2/assetTile';
9
+ export { PopularTokensArea } from './components-v2/popular-tokens-area';
10
10
  // Constants
11
11
  export { S_CAIP19_USDC_AVALANCHE, X_MINIMUM_INPUT_USD } from './constants';
12
12
  // Data utilities
@@ -0,0 +1,2 @@
1
+ import { type ClassValue } from 'clsx';
2
+ export declare function cn(...inputs: ClassValue[]): string;
@@ -0,0 +1,5 @@
1
+ import { clsx } from 'clsx';
2
+ import { twMerge } from 'tailwind-merge';
3
+ export function cn(...inputs) {
4
+ return twMerge(clsx(inputs));
5
+ }