@rango-dev/ui 0.1.10-next.70 → 0.1.10-next.71

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 (38) hide show
  1. package/dist/components/BlockchainSelector/BlockchainSelector.d.ts +3 -1
  2. package/dist/components/BlockchainsList/BlockchainsList.d.ts +3 -1
  3. package/dist/components/Checkbox/Checkbox.d.ts +1 -1
  4. package/dist/components/ColorPicker/ColorPicker.d.ts +9 -0
  5. package/dist/components/ColorPicker/ColorPicker.stories.d.ts +4 -0
  6. package/dist/components/ColorPicker/index.d.ts +1 -0
  7. package/dist/components/SecondaryPage/SecondaryPage.d.ts +1 -1
  8. package/dist/components/TextField/TextField.stories.d.ts +1 -1
  9. package/dist/components/TokenList/TokenList.d.ts +3 -1
  10. package/dist/components/TokenSelector/TokenSelector.d.ts +4 -2
  11. package/dist/components/index.d.ts +4 -0
  12. package/dist/ui.cjs.development.js +131 -26
  13. package/dist/ui.cjs.development.js.map +1 -1
  14. package/dist/ui.cjs.production.min.js +1 -1
  15. package/dist/ui.cjs.production.min.js.map +1 -1
  16. package/dist/ui.esm.js +128 -27
  17. package/dist/ui.esm.js.map +1 -1
  18. package/package.json +5 -3
  19. package/src/components/BlockchainSelector/BlockchainSelector.tsx +9 -3
  20. package/src/components/BlockchainsList/BlockchainsList.tsx +16 -6
  21. package/src/components/Checkbox/Checkbox.tsx +1 -1
  22. package/src/components/ColorPicker/ColorPicker.stories.tsx +36 -0
  23. package/src/components/ColorPicker/ColorPicker.tsx +81 -0
  24. package/src/components/ColorPicker/index.ts +1 -0
  25. package/src/components/LiquiditySourcesSelector/LiquiditySourcesSelector.tsx +1 -1
  26. package/src/components/Modal/Modal.tsx +1 -3
  27. package/src/components/Radio/Radio.tsx +8 -6
  28. package/src/components/SecondaryPage/SecondaryPage.tsx +1 -2
  29. package/src/components/Spacer/Spacer.stories.tsx +14 -1
  30. package/src/components/Spacer/Spacer.tsx +1 -1
  31. package/src/components/SwapContainer/SwapContainer.tsx +1 -0
  32. package/src/components/TextField/TextField.tsx +1 -1
  33. package/src/components/TokenList/TokenList.tsx +21 -9
  34. package/src/components/TokenSelector/TokenSelector.tsx +16 -3
  35. package/src/components/index.ts +4 -0
  36. package/src/helper/index.ts +1 -1
  37. package/dist/helpers.d.ts +0 -1
  38. package/src/helpers.ts +0 -2
package/dist/ui.esm.js CHANGED
@@ -8,6 +8,7 @@ import { VariableSizeList } from 'react-window';
8
8
  import InfiniteLoader from 'react-window-infinite-loader';
9
9
  import AutoSizer from 'react-virtualized-auto-sizer';
10
10
  import { Provider, Root as Root$3, Portal, Trigger, Content as Content$1, Arrow as Arrow$1 } from '@radix-ui/react-tooltip';
11
+ import { ChromePicker } from 'react-color';
11
12
 
12
13
  function _extends() {
13
14
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -1568,7 +1569,7 @@ var decimalNumber = function decimalNumber(number, toFixed) {
1568
1569
  return parseFloat(number).toFixed(toFixed);
1569
1570
  };
1570
1571
  var containsText = function containsText(text, searchText) {
1571
- return text.toLowerCase().indexOf(searchText.toLowerCase()) > -1;
1572
+ return text.toLowerCase().includes(searchText.toLowerCase());
1572
1573
  };
1573
1574
 
1574
1575
  var waveSquares = /*#__PURE__*/keyframes({
@@ -1843,10 +1844,6 @@ function BestRoute(_ref) {
1843
1844
  }, "No routes found")));
1844
1845
  }
1845
1846
 
1846
- var containsText$1 = function containsText(text, searchText) {
1847
- return text.toLowerCase().indexOf(searchText.toLowerCase()) > -1;
1848
- };
1849
-
1850
1847
  var _excluded$A = ["children", "loading", "disabled", "prefix", "suffix", "align", "flexContent"];
1851
1848
  var _ghost, _css, _css2, _css3, _css4;
1852
1849
  var ButtonContainer = /*#__PURE__*/styled('button', {
@@ -2216,7 +2213,9 @@ var Image = /*#__PURE__*/styled('img', {
2216
2213
  });
2217
2214
  function BlockchainsList(props) {
2218
2215
  var list = props.list,
2219
- onChange = props.onChange;
2216
+ onChange = props.onChange,
2217
+ multiSelect = props.multiSelect,
2218
+ selectedList = props.selectedList;
2220
2219
  var _useState = useState(props.selected),
2221
2220
  selected = _useState[0],
2222
2221
  setSelected = _useState[1];
@@ -2224,15 +2223,23 @@ function BlockchainsList(props) {
2224
2223
  setSelected(blockchain);
2225
2224
  onChange(blockchain);
2226
2225
  };
2226
+ var isSelect = function isSelect(name) {
2227
+ if (multiSelect && selectedList) {
2228
+ return selectedList === 'all' || selectedList.findIndex(function (item) {
2229
+ return name === item.name;
2230
+ }) > -1;
2231
+ }
2232
+ return name === (selected == null ? void 0 : selected.name);
2233
+ };
2227
2234
  return React__default.createElement(ListContainer, null, list.map(function (blockchain, index) {
2228
2235
  return React__default.createElement(Button, {
2229
- type: blockchain.name === (selected == null ? void 0 : selected.name) ? 'primary' : undefined,
2236
+ type: isSelect(blockchain.name) ? 'primary' : undefined,
2230
2237
  variant: "outlined",
2231
2238
  size: "large",
2232
2239
  prefix: React__default.createElement(Image, {
2233
2240
  src: blockchain.logo
2234
2241
  }),
2235
- suffix: blockchain.name === (selected == null ? void 0 : selected.name) ? React__default.createElement(FilledCircle, null) : undefined,
2242
+ suffix: isSelect(blockchain.name) ? React__default.createElement(FilledCircle, null) : undefined,
2236
2243
  align: "start",
2237
2244
  onClick: changeSelectedBlockchain.bind(null, blockchain),
2238
2245
  key: index
@@ -2317,7 +2324,7 @@ var Input = /*#__PURE__*/styled('input', {
2317
2324
  });
2318
2325
  var Label = /*#__PURE__*/styled('label', {
2319
2326
  display: 'inline-block',
2320
- fontSize: '$16',
2327
+ fontSize: '$14',
2321
2328
  marginBottom: '$4'
2322
2329
  });
2323
2330
  var TextField = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
@@ -2468,7 +2475,7 @@ var ListContainer$1 = /*#__PURE__*/styled('div', {
2468
2475
  });
2469
2476
  var filterBlockchains = function filterBlockchains(list, searchedFor) {
2470
2477
  return list.filter(function (blockchain) {
2471
- return containsText$1(blockchain.name, searchedFor) || containsText$1(blockchain.displayName, searchedFor);
2478
+ return containsText(blockchain.name, searchedFor) || containsText(blockchain.displayName, searchedFor);
2472
2479
  });
2473
2480
  };
2474
2481
  function BlockchainSelector(props) {
@@ -2479,12 +2486,14 @@ function BlockchainSelector(props) {
2479
2486
  onBack = props.onBack,
2480
2487
  loadingStatus = props.loadingStatus,
2481
2488
  hasHeader = props.hasHeader,
2482
- listContainerStyle = props.listContainerStyle;
2489
+ listContainerStyle = props.listContainerStyle,
2490
+ multiSelect = props.multiSelect,
2491
+ selectedList = props.selectedList;
2483
2492
  return React__default.createElement(SecondaryPage, {
2484
2493
  textField: true,
2494
+ hasHeader: hasHeader,
2485
2495
  textFieldPlaceholder: "Search Blockchain By Name",
2486
2496
  title: "Select " + type + " Network",
2487
- hasHeader: hasHeader,
2488
2497
  onBack: onBack,
2489
2498
  Content: function Content(_ref) {
2490
2499
  var searchedFor = _ref.searchedFor;
@@ -2499,6 +2508,8 @@ function BlockchainSelector(props) {
2499
2508
  }), loadingStatus === 'success' && React__default.createElement(React__default.Fragment, null, filteredBlockchains.length > 0 ? React__default.createElement(BlockchainsList, {
2500
2509
  list: filteredBlockchains,
2501
2510
  selected: selected,
2511
+ multiSelect: multiSelect,
2512
+ selectedList: selectedList,
2502
2513
  onChange: onChange
2503
2514
  }) : React__default.createElement(Alert, {
2504
2515
  type: "secondary",
@@ -2613,9 +2624,7 @@ var ModalHeader = /*#__PURE__*/styled('div', {
2613
2624
  position: 'relative',
2614
2625
  marginBottom: '$16'
2615
2626
  });
2616
- var ContentContainer$2 = /*#__PURE__*/styled('div', {
2617
- overflowY: 'scroll'
2618
- });
2627
+ var ContentContainer$2 = /*#__PURE__*/styled('div', {});
2619
2628
  function Modal(props) {
2620
2629
  var title = props.title,
2621
2630
  content = props.content,
@@ -2962,7 +2971,7 @@ function LiquiditySourceList(props) {
2962
2971
 
2963
2972
  var filterLiquiditySources = function filterLiquiditySources(liquiditySources, searchedFor) {
2964
2973
  return liquiditySources.filter(function (liquiditySource) {
2965
- return containsText$1(liquiditySource.title, searchedFor || '');
2974
+ return containsText(liquiditySource.title, searchedFor || '');
2966
2975
  });
2967
2976
  };
2968
2977
  var ActionButton = /*#__PURE__*/styled(Button, {
@@ -3123,7 +3132,7 @@ var StyledRoot = /*#__PURE__*/styled(Root$2, {
3123
3132
  var ItemContainer = /*#__PURE__*/styled('div', {
3124
3133
  display: 'flex',
3125
3134
  alignItems: 'center',
3126
- marginRight: '$24'
3135
+ marginRight: '$8'
3127
3136
  });
3128
3137
  var StyledItem = /*#__PURE__*/styled(Item, {
3129
3138
  backgroundColor: '$neutrals300',
@@ -3136,6 +3145,9 @@ var StyledItem = /*#__PURE__*/styled(Item, {
3136
3145
  backgroundColor: '$neutrals400'
3137
3146
  }
3138
3147
  });
3148
+ var Container$3 = /*#__PURE__*/styled('div', {
3149
+ display: 'flex'
3150
+ });
3139
3151
  var StyledIndicator = /*#__PURE__*/styled(Indicator$1, {
3140
3152
  display: 'flex',
3141
3153
  alignItems: 'center',
@@ -3153,7 +3165,7 @@ var StyledIndicator = /*#__PURE__*/styled(Indicator$1, {
3153
3165
  }
3154
3166
  });
3155
3167
  var Label$2 = /*#__PURE__*/styled('label', {
3156
- paddingLeft: '$16',
3168
+ paddingLeft: '$8',
3157
3169
  cursor: 'pointer'
3158
3170
  });
3159
3171
  function Radio(props) {
@@ -3162,7 +3174,7 @@ function Radio(props) {
3162
3174
  _props$direction = props.direction,
3163
3175
  direction = _props$direction === void 0 ? 'vertical' : _props$direction,
3164
3176
  style = props.style;
3165
- return React__default.createElement("form", null, React__default.createElement(StyledRoot, {
3177
+ return React__default.createElement(Container$3, null, React__default.createElement(StyledRoot, {
3166
3178
  onValueChange: onChange,
3167
3179
  defaultValue: defaultValue,
3168
3180
  direction: direction,
@@ -3303,6 +3315,7 @@ var MainContainer$1 = /*#__PURE__*/styled('div', {
3303
3315
  minWidth: '375px',
3304
3316
  width: '100%',
3305
3317
  backgroundColor: '$background',
3318
+ height: 'fit-content',
3306
3319
  display: 'flex',
3307
3320
  flexDirection: 'column',
3308
3321
  alignItems: 'end',
@@ -3319,7 +3332,7 @@ function SwapContainer(props) {
3319
3332
  }, React__default.createElement(ContentContainer$3, null, children));
3320
3333
  }
3321
3334
 
3322
- var Container$3 = /*#__PURE__*/styled('div', {
3335
+ var Container$4 = /*#__PURE__*/styled('div', {
3323
3336
  position: 'relative'
3324
3337
  });
3325
3338
  var ButtonContainer$1 = /*#__PURE__*/styled('div', {
@@ -3401,7 +3414,7 @@ function SwapDetail(_ref) {
3401
3414
  onClick = _ref.onClick;
3402
3415
  var firstStep = swap.steps[0];
3403
3416
  var lastStep = swap.steps[swap.steps.length - 1];
3404
- return React__default.createElement(Container$3, {
3417
+ return React__default.createElement(Container$4, {
3405
3418
  onClick: onClick.bind(null, swap.requestId)
3406
3419
  }, React__default.createElement(ButtonContainer$1, null, React__default.createElement(Button, {
3407
3420
  variant: "outlined",
@@ -3495,13 +3508,15 @@ var TokenAmountContainer = /*#__PURE__*/styled('div', {
3495
3508
  });
3496
3509
  var filterTokens = function filterTokens(list, searchedText, outputCount) {
3497
3510
  if (searchedText) return list.filter(function (token) {
3498
- return containsText$1(token.symbol, searchedText) || containsText$1(token.address || '', searchedText) || containsText$1(token.name || '', searchedText);
3511
+ return containsText(token.symbol, searchedText) || containsText(token.address || '', searchedText) || containsText(token.name || '', searchedText);
3499
3512
  }).slice(0, outputCount);else return list.slice(0, outputCount);
3500
3513
  };
3501
3514
  function TokenList(props) {
3502
3515
  var list = props.list,
3503
3516
  searchedText = props.searchedText,
3504
- onChange = props.onChange;
3517
+ onChange = props.onChange,
3518
+ multiSelect = props.multiSelect,
3519
+ selectedList = props.selectedList;
3505
3520
  var _useState = useState(props.selected),
3506
3521
  selected = _useState[0],
3507
3522
  setSelected = _useState[1];
@@ -3509,6 +3524,14 @@ function TokenList(props) {
3509
3524
  setSelected(token);
3510
3525
  onChange(token);
3511
3526
  };
3527
+ var isSelect = function isSelect(token) {
3528
+ if (multiSelect && selectedList) {
3529
+ return selectedList === 'all' || selectedList.map(function (item) {
3530
+ return item.symbol + item.address;
3531
+ }).indexOf(token.symbol + token.address) > -1;
3532
+ }
3533
+ return (selected == null ? void 0 : selected.symbol) === token.symbol && (selected == null ? void 0 : selected.address) === token.address;
3534
+ };
3512
3535
  var Token = function Token(_ref) {
3513
3536
  var _currentToken$balance;
3514
3537
  var filteredTokens = _ref.filteredTokens,
@@ -3529,7 +3552,7 @@ function TokenList(props) {
3529
3552
  size: "large",
3530
3553
  align: "start",
3531
3554
  onClick: changeSelected.bind(null, currentToken),
3532
- type: (selected == null ? void 0 : selected.symbol) === currentToken.symbol && (selected == null ? void 0 : selected.address) === currentToken.address ? 'primary' : undefined,
3555
+ type: isSelect(currentToken) ? 'primary' : undefined,
3533
3556
  prefix: React__default.createElement(TokenImage, {
3534
3557
  src: currentToken.image
3535
3558
  }),
@@ -3606,8 +3629,10 @@ function TokenSelector(props) {
3606
3629
  type = props.type,
3607
3630
  selected = props.selected,
3608
3631
  onChange = props.onChange,
3609
- onBack = props.onBack,
3610
- hasHeader = props.hasHeader;
3632
+ hasHeader = props.hasHeader,
3633
+ multiSelect = props.multiSelect,
3634
+ selectedList = props.selectedList,
3635
+ onBack = props.onBack;
3611
3636
  return React__default.createElement(SecondaryPage, {
3612
3637
  textField: true,
3613
3638
  textFieldPlaceholder: "Search Blockchain By Name",
@@ -3620,6 +3645,8 @@ function TokenSelector(props) {
3620
3645
  searchedText: searchedFor,
3621
3646
  list: list,
3622
3647
  selected: selected,
3648
+ selectedList: selectedList,
3649
+ multiSelect: multiSelect,
3623
3650
  onChange: onChange
3624
3651
  });
3625
3652
  }
@@ -3714,6 +3741,80 @@ function Tooltip(_ref) {
3714
3741
  })))));
3715
3742
  }
3716
3743
 
3744
+ var Container$5 = /*#__PURE__*/styled('div', {
3745
+ position: 'relative'
3746
+ });
3747
+ var Color = /*#__PURE__*/styled('div', {
3748
+ border: '1px solid $neutrals300',
3749
+ borderRadius: '$5',
3750
+ width: '$32',
3751
+ height: '$32'
3752
+ });
3753
+ var Cover = /*#__PURE__*/styled('div', {
3754
+ position: 'fixed',
3755
+ top: '0px',
3756
+ right: '0px',
3757
+ bottom: '0px',
3758
+ left: '0px'
3759
+ });
3760
+ var Popover = /*#__PURE__*/styled('div', {
3761
+ position: 'absolute',
3762
+ zIndex: '2',
3763
+ variants: {
3764
+ place: {
3765
+ top: {
3766
+ top: '-241px'
3767
+ },
3768
+ bottom: {},
3769
+ left: {
3770
+ top: '-50%',
3771
+ left: '-225px'
3772
+ },
3773
+ right: {
3774
+ top: '-50%',
3775
+ right: '-225px'
3776
+ }
3777
+ }
3778
+ }
3779
+ });
3780
+ function ColorPicker(_ref) {
3781
+ var color = _ref.color,
3782
+ onChangeColor = _ref.onChangeColor,
3783
+ label = _ref.label,
3784
+ place = _ref.place;
3785
+ var _useState = useState(false),
3786
+ displayColorPicker = _useState[0],
3787
+ setDisplayColorPicker = _useState[1];
3788
+ return React__default.createElement(Container$5, null, React__default.createElement(Typography, {
3789
+ mb: 4,
3790
+ variant: "body2"
3791
+ }, label), React__default.createElement(Button, {
3792
+ variant: "outlined",
3793
+ prefix: React__default.createElement(Color, {
3794
+ style: {
3795
+ backgroundColor: color
3796
+ }
3797
+ }),
3798
+ fullWidth: true,
3799
+ align: "start",
3800
+ size: "large",
3801
+ onClick: function onClick() {
3802
+ return setDisplayColorPicker(function (prev) {
3803
+ return !prev;
3804
+ });
3805
+ }
3806
+ }, color), displayColorPicker && React__default.createElement(Popover, {
3807
+ place: place
3808
+ }, React__default.createElement(Cover, {
3809
+ onClick: function onClick() {
3810
+ return setDisplayColorPicker(false);
3811
+ }
3812
+ }), React__default.createElement(ChromePicker, {
3813
+ color: color,
3814
+ onChange: onChangeColor
3815
+ })));
3816
+ }
3817
+
3717
3818
  var Line$2 = /*#__PURE__*/styled('div', {
3718
3819
  width: '0',
3719
3820
  marginLeft: '$12',
@@ -4030,5 +4131,5 @@ function SwapHistory(props) {
4030
4131
  });
4031
4132
  }
4032
4133
 
4033
- export { AddCircleIcon, AddIcon, AddWalletIcon, Alert, AngleDownIcon, AngleLeftIcon, AngleRightIcon, AngleUpIcon, BagIcon, BanIcon, BestRoute, BlockchainSelector, Button, CheckCircleIcon, CheckIcon, CheckSquareIcon, CheckWalletIcon, Checkbox, Chip, CloseIcon, ConfirmSwap, ConfirmWallets, ConnectWalletsModal, DeleteCircleIcon, DeleteWalletIcon, DownloadIcon, GasIcon, History, HistoryIcon, HorizontalSwapIcon, InfoCircleIcon, LiquiditySourcesSelector, MinusCircleIcon, Modal, RetryIcon, RetryLeftIcon, RetryRightIcon, SearchIcon, SearchMinusIcon, SecondaryPage, SelectableWalletList, Settings, SettingsIcon, SignatureIcon, Spacer, Spinner, StepDetail, SwapContainer, SwapDetail, SwapHistory, SwapWalletIcon, Switch, TextField, TimeIcon, TokenSelector, Tooltip, TrashIcon, TryAgainIcon, Typography, VerticalSwapIcon, Wallet, WalletIcon, WalletState, WarningIcon, createTheme, css, darkTheme, globalCss, keyframes, lightTheme, styled };
4134
+ export { AddCircleIcon, AddIcon, AddWalletIcon, Alert, AngleDownIcon, AngleLeftIcon, AngleRightIcon, AngleUpIcon, BagIcon, BanIcon, BestRoute, BlockchainSelector, Button, CheckCircleIcon, CheckIcon, CheckSquareIcon, CheckWalletIcon, Checkbox, Chip, CloseIcon, ColorPicker, ConfirmSwap, ConfirmWallets, ConnectWalletsModal, DeleteCircleIcon, DeleteWalletIcon, DownloadIcon, FilledCircle, GasIcon, History, HistoryIcon, HorizontalSwapIcon, InfoCircleIcon, LiquiditySourcesSelector, MinusCircleIcon, Modal, Radio, RetryIcon, RetryLeftIcon, RetryRightIcon, SearchIcon, SearchMinusIcon, SecondaryPage, SelectableWalletList, Settings, SettingsIcon, SignatureIcon, Spacer, Spinner, StepDetail, SwapContainer, SwapDetail, SwapHistory, SwapWalletIcon, Switch, TextField, TimeIcon, TokenList, TokenSelector, Tooltip, TrashIcon, TryAgainIcon, Typography, VerticalSwapIcon, Wallet, WalletIcon, WalletState, WarningIcon, createTheme, css, darkTheme, globalCss, keyframes, lightTheme, styled };
4034
4135
  //# sourceMappingURL=ui.esm.js.map