@0xsquid/ui 0.6.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/cjs/index.js +49 -41
  2. package/dist/cjs/types/components/buttons/BoostButton.d.ts +1 -1
  3. package/dist/cjs/types/components/controls/Switch.d.ts +2 -1
  4. package/dist/cjs/types/components/icons/Arrow.d.ts +4 -1
  5. package/dist/cjs/types/components/icons/Heart.d.ts +9 -3
  6. package/dist/cjs/types/components/layout/DetailsToolbar.d.ts +6 -2
  7. package/dist/cjs/types/components/layout/ErrorMessage.d.ts +3 -0
  8. package/dist/cjs/types/components/layout/Modal.d.ts +3 -1
  9. package/dist/cjs/types/components/layout/ProductCard.d.ts +1 -5
  10. package/dist/cjs/types/components/layout/SwapConfiguration.d.ts +4 -1
  11. package/dist/cjs/types/components/layout/SwapStepsCollapsed.d.ts +2 -2
  12. package/dist/cjs/types/components/layout/index.d.ts +1 -1
  13. package/dist/cjs/types/components/lists/ListItem.d.ts +3 -1
  14. package/dist/cjs/types/components/views/AssetsView.d.ts +2 -6
  15. package/dist/cjs/types/services/internal/colorService.d.ts +1 -18
  16. package/dist/cjs/types/stories/controls/Switch.stories.d.ts +2 -0
  17. package/dist/cjs/types/stories/layout/DetailsToolbar.stories.d.ts +1 -0
  18. package/dist/cjs/types/stories/layout/ErrorMessage.stories.d.ts +6 -0
  19. package/dist/cjs/types/stories/layout/SwapConfiguration.stories.d.ts +3 -0
  20. package/dist/{esm/types/stories/layout/SwapProgressView.stories.d.ts → cjs/types/stories/layout/SwapStepsCollapsed.stories.d.ts} +2 -1
  21. package/dist/cjs/types/stories/lists/ListItem.stories.d.ts +3 -0
  22. package/dist/cjs/types/types/components.d.ts +0 -1
  23. package/dist/esm/index.js +49 -41
  24. package/dist/esm/types/components/buttons/BoostButton.d.ts +1 -1
  25. package/dist/esm/types/components/controls/Switch.d.ts +2 -1
  26. package/dist/esm/types/components/icons/Arrow.d.ts +4 -1
  27. package/dist/esm/types/components/icons/Heart.d.ts +9 -3
  28. package/dist/esm/types/components/layout/DetailsToolbar.d.ts +6 -2
  29. package/dist/esm/types/components/layout/ErrorMessage.d.ts +3 -0
  30. package/dist/esm/types/components/layout/Modal.d.ts +3 -1
  31. package/dist/esm/types/components/layout/ProductCard.d.ts +1 -5
  32. package/dist/esm/types/components/layout/SwapConfiguration.d.ts +4 -1
  33. package/dist/esm/types/components/layout/SwapStepsCollapsed.d.ts +2 -2
  34. package/dist/esm/types/components/layout/index.d.ts +1 -1
  35. package/dist/esm/types/components/lists/ListItem.d.ts +3 -1
  36. package/dist/esm/types/components/views/AssetsView.d.ts +2 -6
  37. package/dist/esm/types/services/internal/colorService.d.ts +1 -18
  38. package/dist/esm/types/stories/controls/Switch.stories.d.ts +2 -0
  39. package/dist/esm/types/stories/layout/DetailsToolbar.stories.d.ts +1 -0
  40. package/dist/esm/types/stories/layout/ErrorMessage.stories.d.ts +6 -0
  41. package/dist/esm/types/stories/layout/SwapConfiguration.stories.d.ts +3 -0
  42. package/dist/{cjs/types/stories/layout/SwapProgressView.stories.d.ts → esm/types/stories/layout/SwapStepsCollapsed.stories.d.ts} +2 -1
  43. package/dist/esm/types/stories/lists/ListItem.stories.d.ts +3 -0
  44. package/dist/esm/types/types/components.d.ts +0 -1
  45. package/dist/index.css +73 -39
  46. package/dist/index.d.ts +27 -21
  47. package/package.json +1 -1
  48. package/dist/cjs/types/components/layout/WalletAddress.d.ts +0 -6
  49. package/dist/cjs/types/services/internal/walletService.d.ts +0 -1
  50. package/dist/esm/types/components/layout/WalletAddress.d.ts +0 -6
  51. package/dist/esm/types/services/internal/walletService.d.ts +0 -1
package/dist/index.css CHANGED
@@ -787,10 +787,6 @@ video {
787
787
  margin-top: 0.25rem;
788
788
  }
789
789
 
790
- .tw-block {
791
- display: block;
792
- }
793
-
794
790
  .tw-inline-block {
795
791
  display: inline-block;
796
792
  }
@@ -967,10 +963,6 @@ video {
967
963
  height: 3.75rem;
968
964
  }
969
965
 
970
- .tw-max-h-4 {
971
- max-height: 1rem;
972
- }
973
-
974
966
  .tw-max-h-\[120px\] {
975
967
  max-height: 120px;
976
968
  }
@@ -983,6 +975,10 @@ video {
983
975
  max-height: 535px;
984
976
  }
985
977
 
978
+ .tw-max-h-\[536px\] {
979
+ max-height: 536px;
980
+ }
981
+
986
982
  .tw-max-h-\[540px\] {
987
983
  max-height: 540px;
988
984
  }
@@ -1047,10 +1043,6 @@ video {
1047
1043
  width: 3rem;
1048
1044
  }
1049
1045
 
1050
- .tw-w-16 {
1051
- width: 4rem;
1052
- }
1053
-
1054
1046
  .tw-w-36 {
1055
1047
  width: 9rem;
1056
1048
  }
@@ -1312,14 +1304,52 @@ video {
1312
1304
  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));
1313
1305
  }
1314
1306
 
1315
- @keyframes tw-pulse {
1307
+ @keyframes tw-fade-in {
1308
+ 0% {
1309
+ opacity: 0;
1310
+ }
1311
+
1312
+ 100% {
1313
+ opacity: 1;
1314
+ }
1315
+ }
1316
+
1317
+ .tw-animate-fade-in {
1318
+ animation: tw-fade-in 0.2s ease-out both;
1319
+ }
1320
+
1321
+ @keyframes tw-fade-out {
1322
+ 0% {
1323
+ opacity: 1;
1324
+ }
1325
+
1326
+ 100% {
1327
+ opacity: 0;
1328
+ }
1329
+ }
1330
+
1331
+ .tw-animate-fade-out {
1332
+ animation: tw-fade-out 0.2s ease-out both;
1333
+ }
1334
+
1335
+ @keyframes tw-loading-gradient {
1336
+ 0% {
1337
+ transform: translateX(-70%);
1338
+ opacity: 0;
1339
+ }
1340
+
1316
1341
  50% {
1317
- opacity: .5;
1342
+ opacity: 1;
1343
+ }
1344
+
1345
+ 100% {
1346
+ opacity: 0;
1347
+ transform: translateX(70%);
1318
1348
  }
1319
1349
  }
1320
1350
 
1321
- .tw-animate-pulse {
1322
- animation: tw-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
1351
+ .tw-animate-loading-gradient {
1352
+ animation: tw-loading-gradient 1s ease-in-out both infinite;
1323
1353
  }
1324
1354
 
1325
1355
  @keyframes tw-slide-to-bottom {
@@ -1335,7 +1365,7 @@ video {
1335
1365
  }
1336
1366
 
1337
1367
  .tw-animate-slide-to-bottom {
1338
- animation: tw-slide-to-bottom 0.35s ease-out both;
1368
+ animation: tw-slide-to-bottom 0.2s ease-out both;
1339
1369
  }
1340
1370
 
1341
1371
  @keyframes tw-slide-to-top {
@@ -1354,6 +1384,10 @@ video {
1354
1384
  animation: tw-slide-to-top 0.35s ease-out both;
1355
1385
  }
1356
1386
 
1387
+ .tw-cursor-not-allowed {
1388
+ cursor: not-allowed;
1389
+ }
1390
+
1357
1391
  .tw-cursor-pointer {
1358
1392
  cursor: pointer;
1359
1393
  }
@@ -1668,10 +1702,6 @@ video {
1668
1702
  background-color: var(--squid-theme-grey-500);
1669
1703
  }
1670
1704
 
1671
- .tw-bg-grey-700 {
1672
- background-color: var(--squid-theme-grey-700);
1673
- }
1674
-
1675
1705
  .tw-bg-grey-800 {
1676
1706
  background-color: var(--squid-theme-grey-800);
1677
1707
  }
@@ -1684,6 +1714,10 @@ video {
1684
1714
  background-color: inherit;
1685
1715
  }
1686
1716
 
1717
+ .tw-bg-material-dark-average {
1718
+ background-color: var(--squid-theme-material-dark-average);
1719
+ }
1720
+
1687
1721
  .tw-bg-material-dark-thick {
1688
1722
  background-color: var(--squid-theme-material-dark-thick);
1689
1723
  }
@@ -1722,10 +1756,6 @@ video {
1722
1756
  background-color: transparent;
1723
1757
  }
1724
1758
 
1725
- .tw-bg-opacity-70 {
1726
- --tw-bg-opacity: 0.7;
1727
- }
1728
-
1729
1759
  .tw-bg-gradient-to-b {
1730
1760
  background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
1731
1761
  }
@@ -1847,6 +1877,11 @@ video {
1847
1877
  padding-right: 1.25rem;
1848
1878
  }
1849
1879
 
1880
+ .tw-px-\[3px\] {
1881
+ padding-left: 3px;
1882
+ padding-right: 3px;
1883
+ }
1884
+
1850
1885
  .tw-px-\[70px\] {
1851
1886
  padding-left: 70px;
1852
1887
  padding-right: 70px;
@@ -1887,6 +1922,11 @@ video {
1887
1922
  padding-bottom: 0.125rem;
1888
1923
  }
1889
1924
 
1925
+ .tw-py-2 {
1926
+ padding-top: 0.5rem;
1927
+ padding-bottom: 0.5rem;
1928
+ }
1929
+
1890
1930
  .tw-py-squid-s {
1891
1931
  padding-top: 0.9375rem;
1892
1932
  padding-bottom: 0.9375rem;
@@ -2289,6 +2329,12 @@ video {
2289
2329
  outline-color: var(--squid-theme-material-light-thin);
2290
2330
  }
2291
2331
 
2332
+ .tw-backdrop-blur-2xl {
2333
+ --tw-backdrop-blur: blur(40px);
2334
+ -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);
2335
+ 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);
2336
+ }
2337
+
2292
2338
  .tw-backdrop-blur\/10 {
2293
2339
  --tw-backdrop-blur: blur(10px);
2294
2340
  -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);
@@ -2432,20 +2478,8 @@ li {
2432
2478
  color: var(--squid-theme-grey-600);
2433
2479
  }
2434
2480
 
2435
- .tw-group\/token-action-add:hover .group-hover\/token-action-add\:tw-block {
2436
- display: block;
2437
- }
2438
-
2439
- .tw-group\/token-action-remove:hover .group-hover\/token-action-remove\:tw-block {
2440
- display: block;
2441
- }
2442
-
2443
- .tw-group\/token-action-add:hover .group-hover\/token-action-add\:tw-hidden {
2444
- display: none;
2445
- }
2446
-
2447
- .tw-group\/token-action-remove:hover .group-hover\/token-action-remove\:tw-hidden {
2448
- display: none;
2481
+ .tw-group\/list-item:hover .group-hover\/list-item\:tw-flex {
2482
+ display: flex;
2449
2483
  }
2450
2484
 
2451
2485
  .tw-group\/history-item:hover .group-hover\/history-item\:tw-opacity-0 {
package/dist/index.d.ts CHANGED
@@ -55,7 +55,6 @@ type SwapStepDescriptionBlock = {
55
55
  type SwapStep = {
56
56
  descriptionBlocks: SwapStepDescriptionBlock[];
57
57
  chipContent: React.ReactNode;
58
- routeStepOrder: number;
59
58
  };
60
59
  type DetailsToolbarState = 'full' | 'loading' | 'empty' | 'error';
61
60
  type ThemeType = 'light' | 'dark';
@@ -68,7 +67,7 @@ interface BoostButtonProps {
68
67
  }) => void;
69
68
  boostDisabledMessage?: string;
70
69
  }
71
- declare function BoostButton({ boostMode: _boostMode, onToggleBoostMode, canToggleBoostMode, boostDisabledMessage, }: BoostButtonProps): react_jsx_runtime.JSX.Element;
70
+ declare function BoostButton({ boostMode, onToggleBoostMode, canToggleBoostMode, boostDisabledMessage, }: BoostButtonProps): react_jsx_runtime.JSX.Element;
72
71
 
73
72
  interface ButtonProps extends React.HTMLAttributes<HTMLButtonElement> {
74
73
  label?: string;
@@ -114,8 +113,9 @@ interface SwitchProps {
114
113
  checked?: boolean;
115
114
  onChange?: (checked: boolean) => void;
116
115
  size: SwitchSize;
116
+ disabled?: boolean;
117
117
  }
118
- declare function Switch({ checked, onChange, size }: SwitchProps): react_jsx_runtime.JSX.Element;
118
+ declare function Switch({ checked, onChange, size, disabled, }: SwitchProps): react_jsx_runtime.JSX.Element;
119
119
 
120
120
  type TooltipWidth = 'max' | 'container';
121
121
  type TooltipThreshold = 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl';
@@ -143,7 +143,7 @@ declare function Boost({ boostMode, onToggleBoostMode, estimatedTime, boostDisab
143
143
 
144
144
  interface DetailsToolbarProps {
145
145
  state?: DetailsToolbarState;
146
- errorMessage: string;
146
+ errorMessage?: string;
147
147
  boostMode?: BoostMode;
148
148
  onToggleBoostMode?: ({ boostMode }: {
149
149
  boostMode: BoostMode;
@@ -154,8 +154,12 @@ interface DetailsToolbarProps {
154
154
  estimatedTime?: string;
155
155
  canToggleBoostMode?: boolean;
156
156
  boostDisabledMessage?: string;
157
+ helpButton?: {
158
+ label: string;
159
+ onClick: () => void;
160
+ };
157
161
  }
158
- declare function DetailsToolbar({ state, errorMessage, boostMode, onToggleBoostMode, onInvertSwapButtonClick, onFeeButtonClick, feeInUsd, estimatedTime, canToggleBoostMode, boostDisabledMessage, }: DetailsToolbarProps): react_jsx_runtime.JSX.Element;
162
+ declare function DetailsToolbar({ state, errorMessage, boostMode, onToggleBoostMode, onInvertSwapButtonClick, onFeeButtonClick, feeInUsd, estimatedTime, canToggleBoostMode, boostDisabledMessage, helpButton, }: DetailsToolbarProps): react_jsx_runtime.JSX.Element;
159
163
 
160
164
  interface DropdownMenuItemProps {
161
165
  label: string;
@@ -189,9 +193,11 @@ interface ListItemProps extends React.HTMLAttributes<HTMLLIElement> {
189
193
  mainIcon?: React.ReactNode;
190
194
  isSelected?: boolean;
191
195
  className?: string;
196
+ onDetailClick?: () => void;
197
+ showDetailOnHoverOnly?: boolean;
192
198
  }
193
199
  type ListItemSize = 'small' | 'large';
194
- declare function ListItem({ itemTitle, mainImageUrl, subtitle, detail, icon, secondaryImageUrl, size, mainIcon, className, isSelected, ...props }: ListItemProps): react_jsx_runtime.JSX.Element;
200
+ declare function ListItem({ itemTitle, mainImageUrl, subtitle, detail, icon, secondaryImageUrl, size, mainIcon, className, isSelected, onDetailClick, showDetailOnHoverOnly, ...props }: ListItemProps): react_jsx_runtime.JSX.Element;
195
201
 
196
202
  interface MenuItemProps {
197
203
  label: string;
@@ -240,6 +246,10 @@ interface DropdownMenuProps {
240
246
  }
241
247
  declare function DropdownMenu({ dropdownRef, items, className, }: DropdownMenuProps): react_jsx_runtime.JSX.Element;
242
248
 
249
+ declare function ErrorMessage({ message }: {
250
+ message: string;
251
+ }): react_jsx_runtime.JSX.Element;
252
+
243
253
  type Rounded = 'sm' | 'lg';
244
254
  interface MenuProps extends React$1.ComponentProps<'div'> {
245
255
  containerClassName?: string;
@@ -252,8 +262,10 @@ declare function Menu({ children, containerClassName, contentClassName, title, d
252
262
 
253
263
  interface ModalProps {
254
264
  children: React.ReactNode;
265
+ className?: string;
266
+ onBackdropClick?: () => void;
255
267
  }
256
- declare function Modal({ children }: ModalProps): react_jsx_runtime.JSX.Element;
268
+ declare function Modal({ children, className, onBackdropClick }: ModalProps): react_jsx_runtime.JSX.Element;
257
269
 
258
270
  interface NavigationBarProps {
259
271
  title?: string;
@@ -268,10 +280,7 @@ interface NavigationBarProps {
268
280
  }
269
281
  declare function NavigationBar({ title, displayBackButton, logoUrl, transparent, displayButtonShadows, onBackButtonClick, label, onAddressButtonClick, isLoading, }: NavigationBarProps): react_jsx_runtime.JSX.Element;
270
282
 
271
- interface ProductCardProps {
272
- children?: React.ReactNode;
273
- }
274
- declare function ProductCard({ children }: ProductCardProps): react_jsx_runtime.JSX.Element;
283
+ declare function ProductCard({ children }: React.PropsWithChildren): react_jsx_runtime.JSX.Element;
275
284
 
276
285
  interface SwapConfigurationProps {
277
286
  direction: SwapDirection;
@@ -294,8 +303,11 @@ interface SwapConfigurationProps {
294
303
  onAmountChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
295
304
  onWalletButtonClick?: () => void;
296
305
  onAssetsButtonClick?: () => void;
306
+ error?: {
307
+ message: string;
308
+ };
297
309
  }
298
- declare function SwapConfiguration({ priceImpactPercentage, amount, swapAmountUsd, balance, isFetching, chain, token, direction, onAmountChange, onWalletButtonClick, onAssetsButtonClick, address, }: SwapConfigurationProps): react_jsx_runtime.JSX.Element;
310
+ declare function SwapConfiguration({ priceImpactPercentage, amount, swapAmountUsd, balance, isFetching, chain, token, direction, onAmountChange, onWalletButtonClick, onAssetsButtonClick, address, error, }: SwapConfigurationProps): react_jsx_runtime.JSX.Element;
299
311
 
300
312
  interface SwapProgressViewHeaderProps {
301
313
  title: string;
@@ -303,9 +315,9 @@ interface SwapProgressViewHeaderProps {
303
315
  }
304
316
  declare function SwapProgressViewHeader({ title, description, }: SwapProgressViewHeaderProps): react_jsx_runtime.JSX.Element;
305
317
 
306
- declare function SwapStepsCollapsed({ steps, currentStepCount: _currentStepCount, }: {
318
+ declare function SwapStepsCollapsed({ steps, currentStepIndex: _currentStepIndex, }: {
307
319
  steps: SwapStep[];
308
- currentStepCount: number;
320
+ currentStepIndex: number;
309
321
  }): react_jsx_runtime.JSX.Element;
310
322
 
311
323
  interface TokenPairProps {
@@ -320,12 +332,6 @@ interface TokenPairProps {
320
332
  }
321
333
  declare function TokenPair({ firstToken, secondToken }: TokenPairProps): react_jsx_runtime.JSX.Element;
322
334
 
323
- interface WalletAddressProps {
324
- ens?: string;
325
- address?: string;
326
- }
327
- declare function WalletAddress({ address, ens }: WalletAddressProps): react_jsx_runtime.JSX.Element;
328
-
329
335
  interface BodyTextProps extends React.HTMLAttributes<HTMLSpanElement> {
330
336
  children: string | undefined;
331
337
  size: TextSize;
@@ -397,4 +403,4 @@ declare function useModal(props?: {
397
403
  openModalButtonRef: React.RefObject<HTMLButtonElement>;
398
404
  };
399
405
 
400
- export { AddressButton, ArrowButton, AssetsButton, BadgeImage, BodyText, Boost, BoostButton, Button, CaptionText, Chip, DetailsToolbar, DropdownMenu, DropdownMenuItem, type DropdownMenuItemProps, FeeButton, HeadingText, HistoryItem, Input, ListItem, Menu, MenuItem, Modal, NavigationBar, ProductCard, SectionTitle, SettingsButton, type SettingsButtonProps, SettingsItem, type SettingsItemProps, SettingsSlider, type SettingsSliderProps, SquidConfigProvider, SwapConfiguration, SwapDetailListItem, SwapProgressViewHeader, SwapStepItem, SwapStepsCollapsed, Switch, TokenPair, Tooltip, type TooltipThreshold, type TooltipWidth, UsdAmount, WalletAddress, useModal };
406
+ export { AddressButton, ArrowButton, AssetsButton, BadgeImage, BodyText, Boost, BoostButton, Button, CaptionText, Chip, DetailsToolbar, DropdownMenu, DropdownMenuItem, type DropdownMenuItemProps, ErrorMessage, FeeButton, HeadingText, HistoryItem, Input, ListItem, Menu, MenuItem, Modal, NavigationBar, ProductCard, SectionTitle, SettingsButton, type SettingsButtonProps, SettingsItem, type SettingsItemProps, SettingsSlider, type SettingsSliderProps, SquidConfigProvider, SwapConfiguration, SwapDetailListItem, SwapProgressViewHeader, SwapStepItem, SwapStepsCollapsed, Switch, TokenPair, Tooltip, type TooltipThreshold, type TooltipWidth, UsdAmount, useModal };
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "url": "git+https://github.com/0xsquid/squid-ui.git"
6
6
  },
7
7
  "description": "Squid's UI components",
8
- "version": "0.6.2",
8
+ "version": "0.7.0",
9
9
  "author": "",
10
10
  "license": "MIT",
11
11
  "scripts": {
@@ -1,6 +0,0 @@
1
- interface WalletAddressProps {
2
- ens?: string;
3
- address?: string;
4
- }
5
- export declare function WalletAddress({ address, ens }: WalletAddressProps): import("react/jsx-runtime").JSX.Element;
6
- export {};
@@ -1 +0,0 @@
1
- export declare const formatWalletAddress: (walletAddress: string | undefined, trimLength?: number) => string;
@@ -1,6 +0,0 @@
1
- interface WalletAddressProps {
2
- ens?: string;
3
- address?: string;
4
- }
5
- export declare function WalletAddress({ address, ens }: WalletAddressProps): import("react/jsx-runtime").JSX.Element;
6
- export {};
@@ -1 +0,0 @@
1
- export declare const formatWalletAddress: (walletAddress: string | undefined, trimLength?: number) => string;