@xylabs/sdk-react 2.7.7 → 2.7.11

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 (40) hide show
  1. package/dist/components/EthAccount/EthAccount.d.ts.map +1 -1
  2. package/dist/components/EthAccount/EthAccount.js +30 -10
  3. package/dist/components/EthAccount/EthAccount.js.map +1 -1
  4. package/dist/components/EthAccount/EthAccount.stories.d.ts +7 -2
  5. package/dist/components/EthAccount/EthAccount.stories.d.ts.map +1 -1
  6. package/dist/components/EthAccount/EthAccount.stories.js +43 -5
  7. package/dist/components/EthAccount/EthAccount.stories.js.map +1 -1
  8. package/dist/components/EthAccount/EthAccountProps.d.ts +5 -7
  9. package/dist/components/EthAccount/EthAccountProps.d.ts.map +1 -1
  10. package/dist/components/Identicon.d.ts +3 -2
  11. package/dist/components/Identicon.d.ts.map +1 -1
  12. package/dist/components/Identicon.js +21 -10
  13. package/dist/components/Identicon.js.map +1 -1
  14. package/dist/components/TokenAmount/TokenAmount.d.ts.map +1 -1
  15. package/dist/components/TokenAmount/TokenAmount.js +2 -3
  16. package/dist/components/TokenAmount/TokenAmount.js.map +1 -1
  17. package/dist/components/TokenAmount/TokenAmount.stories.d.ts +2 -1
  18. package/dist/components/TokenAmount/TokenAmount.stories.d.ts.map +1 -1
  19. package/dist/components/TokenAmount/TokenAmount.stories.js +7 -1
  20. package/dist/components/TokenAmount/TokenAmount.stories.js.map +1 -1
  21. package/dist/components/TokenAmount/TokenAmountProps.d.ts +5 -2
  22. package/dist/components/TokenAmount/TokenAmountProps.d.ts.map +1 -1
  23. package/package.json +12 -12
  24. package/src/components/EthAccount/EthAccount.stories.tsx +52 -5
  25. package/src/components/EthAccount/EthAccount.tsx +71 -7
  26. package/src/components/EthAccount/EthAccountProps.tsx +6 -7
  27. package/src/components/Identicon.tsx +26 -13
  28. package/src/components/TokenAmount/TokenAmount.stories.tsx +8 -1
  29. package/src/components/TokenAmount/TokenAmount.tsx +38 -25
  30. package/src/components/TokenAmount/TokenAmountProps.tsx +5 -2
  31. package/dist/components/EthAccount/EthAccountBase.d.ts +0 -5
  32. package/dist/components/EthAccount/EthAccountBase.d.ts.map +0 -1
  33. package/dist/components/EthAccount/EthAccountBase.js +0 -42
  34. package/dist/components/EthAccount/EthAccountBase.js.map +0 -1
  35. package/dist/components/EthAccount/EthAccountTo.d.ts +0 -5
  36. package/dist/components/EthAccount/EthAccountTo.d.ts.map +0 -1
  37. package/dist/components/EthAccount/EthAccountTo.js +0 -30
  38. package/dist/components/EthAccount/EthAccountTo.js.map +0 -1
  39. package/src/components/EthAccount/EthAccountBase.tsx +0 -60
  40. package/src/components/EthAccount/EthAccountTo.tsx +0 -30
@@ -1 +1 @@
1
- {"version":3,"file":"EthAccount.d.ts","sourceRoot":"","sources":["../../../src/components/EthAccount/EthAccount.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAMzC,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"EthAccount.d.ts","sourceRoot":"","sources":["../../../src/components/EthAccount/EthAccount.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA+DzC,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -9,17 +9,37 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { EthAccountBase } from './EthAccountBase';
14
- import { EthAccountTo } from './EthAccountTo';
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { Typography, useTheme } from '@mui/material';
14
+ import { assertEx, EthAddress } from '@xylabs/sdk-js';
15
+ import { useContext } from 'react';
16
+ import { EthersContext } from '../../contexts';
17
+ import { useMediaQuery } from '../../hooks';
18
+ import { ButtonEx } from '../ButtonEx';
19
+ import { FlexGrowRow, FlexRow } from '../FlexBox';
20
+ import { Identicon } from '../Identicon';
15
21
  const EthAccount = (_a) => {
16
- var { to, toOptions } = _a, props = __rest(_a, ["to", "toOptions"]);
17
- if (to || toOptions) {
18
- return _jsx(EthAccountTo, Object.assign({ to: to, toOptions: toOptions }, props), void 0);
19
- }
20
- else {
21
- return _jsx(EthAccountBase, Object.assign({}, props), void 0);
22
- }
22
+ var { address, icon = false, iconSize = 16, iconOnly = false, addressLength = 'auto', fontFamily = '"Source Code Pro",monospace', toEtherScan, onButtonClick } = _a, props = __rest(_a, ["address", "icon", "iconSize", "iconOnly", "addressLength", "fontFamily", "toEtherScan", "onButtonClick"]);
23
+ const { localAddress } = useContext(EthersContext);
24
+ const theme = useTheme();
25
+ const large = useMediaQuery(theme.breakpoints.up('md'));
26
+ const isLocalAddress = address ? (localAddress === null || localAddress === void 0 ? void 0 : localAddress.toString()) === address.toString() : false;
27
+ const onClickLocal = (event) => {
28
+ onButtonClick === null || onButtonClick === void 0 ? void 0 : onButtonClick(event);
29
+ if (toEtherScan && address) {
30
+ window.open(`https://etherscan.io/address/${address.toString()}`, '_blank');
31
+ }
32
+ };
33
+ const addressToDisplay = assertEx(address !== null && address !== void 0 ? address : EthAddress.fromString('0x00'), 'Bad Eth Address');
34
+ const testToDisplay = addressLength === 'long'
35
+ ? addressToDisplay.toString()
36
+ : addressLength === 'short'
37
+ ? addressToDisplay.toShortString()
38
+ : large
39
+ ? addressToDisplay.toString()
40
+ : addressToDisplay.toShortString();
41
+ // Note: We use the all zero address for spacing in case it is
42
+ return (_jsx(ButtonEx, Object.assign({ onClick: onClickLocal, title: `0x${address === null || address === void 0 ? void 0 : address.toHex()}` }, props, { children: _jsxs(FlexGrowRow, Object.assign({ justifyContent: "space-between", alignItems: "center" }, { children: [icon && address ? _jsx(Identicon, { size: iconSize, value: address === null || address === void 0 ? void 0 : address.toHex() }, void 0) : null, iconOnly ? null : (_jsxs(FlexRow, { children: [_jsx(Typography, Object.assign({ marginLeft: icon ? 1 : 0, variant: "body1", fontFamily: fontFamily, visibility: address ? 'inherit' : 'hidden' }, { children: testToDisplay }), void 0), address ? null : (_jsx(Typography, Object.assign({ position: "absolute", marginLeft: icon ? 1 : 0, variant: "body1", fontFamily: fontFamily }, { children: "-- --" }), void 0))] }, void 0)), isLocalAddress ? _jsx(FlexRow, Object.assign({ marginLeft: 0.5 }, { children: "(You)" }), void 0) : null] }), void 0) }), void 0));
23
43
  };
24
44
  export { EthAccount };
25
45
  //# sourceMappingURL=EthAccount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EthAccount.js","sourceRoot":"","sources":["../../../src/components/EthAccount/EthAccount.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,UAAU,GAA8B,CAAC,EAA2B,EAAE,EAAE;QAA/B,EAAE,EAAE,EAAE,SAAS,OAAY,EAAP,KAAK,cAAzB,mBAA2B,CAAF;IACtE,IAAI,EAAE,IAAI,SAAS,EAAE;QACnB,OAAO,KAAC,YAAY,kBAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,IAAM,KAAK,UAAI,CAAA;KACjE;SAAM;QACL,OAAO,KAAC,cAAc,oBAAK,KAAK,UAAI,CAAA;KACrC;AACH,CAAC,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"EthAccount.js","sourceRoot":"","sources":["../../../src/components/EthAccount/EthAccount.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAc,UAAU,EAAE,MAAM,OAAO,CAAA;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC,MAAM,UAAU,GAA8B,CAAC,EAU9C,EAAE,EAAE;QAV0C,EAC7C,OAAO,EACP,IAAI,GAAG,KAAK,EACZ,QAAQ,GAAG,EAAE,EACb,QAAQ,GAAG,KAAK,EAChB,aAAa,GAAG,MAAM,EACtB,UAAU,GAAG,6BAA6B,EAC1C,WAAW,EACX,aAAa,OAEd,EADI,KAAK,cATqC,0GAU9C,CADS;IAER,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IAClD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IAExB,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEvD,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,EAAE,MAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;IAExF,MAAM,YAAY,GAAG,CAAC,KAAoC,EAAE,EAAE;QAC5D,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,KAAK,CAAC,CAAA;QACtB,IAAI,WAAW,IAAI,OAAO,EAAE;YAC1B,MAAM,CAAC,IAAI,CAAC,gCAAgC,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;SAC5E;IACH,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,CAAA;IAE9F,MAAM,aAAa,GACjB,aAAa,KAAK,MAAM;QACtB,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE;QAC7B,CAAC,CAAC,aAAa,KAAK,OAAO;YAC3B,CAAC,CAAC,gBAAgB,CAAC,aAAa,EAAE;YAClC,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE;gBAC7B,CAAC,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAA;IAEtC,8DAA8D;IAE9D,OAAO,CACL,KAAC,QAAQ,kBAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAE,EAAE,IAAM,KAAK,cACxE,MAAC,WAAW,kBAAC,cAAc,EAAC,eAAe,EAAC,UAAU,EAAC,QAAQ,iBAC5D,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,KAAC,SAAS,IAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAE,WAAI,CAAC,CAAC,CAAC,IAAI,EAC/E,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACjB,MAAC,OAAO,eACN,KAAC,UAAU,kBACT,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACxB,OAAO,EAAC,OAAO,EACf,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,gBAEzC,aAAa,YACH,EACZ,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAChB,KAAC,UAAU,kBAAC,QAAQ,EAAC,UAAU,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAC,OAAO,EAAC,UAAU,EAAE,UAAU,mCAEnF,CACd,YACO,CACX,EACA,cAAc,CAAC,CAAC,CAAC,KAAC,OAAO,kBAAC,UAAU,EAAE,GAAG,mCAAiB,CAAC,CAAC,CAAC,IAAI,aACtD,YACL,CACZ,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -1,7 +1,12 @@
1
1
  /// <reference types="react" />
2
2
  import { ComponentMeta, ComponentStory } from '@storybook/react';
3
3
  declare const StorybookEntry: ComponentMeta<import("react").FC<import("./EthAccountProps").EthAccountProps>>;
4
- declare const Default: ComponentStory<import("react").FC<import("./EthAccountProps").EthAccountProps>>;
5
- export { Default };
4
+ declare const Long: ComponentStory<import("react").FC<import("./EthAccountProps").EthAccountProps>>;
5
+ declare const LongEmpty: ComponentStory<import("react").FC<import("./EthAccountProps").EthAccountProps>>;
6
+ declare const Short: ComponentStory<import("react").FC<import("./EthAccountProps").EthAccountProps>>;
7
+ declare const ShortEmpty: ComponentStory<import("react").FC<import("./EthAccountProps").EthAccountProps>>;
8
+ declare const Auto: ComponentStory<import("react").FC<import("./EthAccountProps").EthAccountProps>>;
9
+ declare const AutoEmpty: ComponentStory<import("react").FC<import("./EthAccountProps").EthAccountProps>>;
10
+ export { Auto, AutoEmpty, Long, LongEmpty, Short, ShortEmpty };
6
11
  export default StorybookEntry;
7
12
  //# sourceMappingURL=EthAccount.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EthAccount.stories.d.ts","sourceRoot":"","sources":["../../../src/components/EthAccount/EthAccount.stories.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAKhE,QAAA,MAAM,cAAc,gFASiB,CAAA;AAIrC,QAAA,MAAM,OAAO,iFAAoB,CAAA;AASjC,OAAO,EAAE,OAAO,EAAE,CAAA;AAGlB,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"EthAccount.stories.d.ts","sourceRoot":"","sources":["../../../src/components/EthAccount/EthAccount.stories.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAMhE,QAAA,MAAM,cAAc,gFASiB,CAAA;AAQrC,QAAA,MAAM,IAAI,iFAAoB,CAAA;AAS9B,QAAA,MAAM,SAAS,iFAAoB,CAAA;AAQnC,QAAA,MAAM,KAAK,iFAAoB,CAAA;AAS/B,QAAA,MAAM,UAAU,iFAAoB,CAAA;AAQpC,QAAA,MAAM,IAAI,iFAAoB,CAAA;AAS9B,QAAA,MAAM,SAAS,iFAAoB,CAAA;AAQnC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;AAG9D,eAAe,cAAc,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { EthAddress } from '@xylabs/sdk-js';
3
+ import { FlexRow } from '../FlexBox';
3
4
  import { EthAccount } from './EthAccount';
4
5
  const StorybookEntry = {
5
6
  argTypes: {},
@@ -11,16 +12,53 @@ const StorybookEntry = {
11
12
  },
12
13
  title: 'Components/EthAccount',
13
14
  };
14
- const Template = (args) => _jsx(EthAccount, Object.assign({}, args), void 0);
15
- const Default = Template.bind({});
16
- Default.args = {
15
+ const Template = (args) => (_jsx(FlexRow, { children: _jsx(EthAccount, Object.assign({ variant: "outlined" }, args), void 0) }, void 0));
16
+ const Long = Template.bind({});
17
+ Long.args = {
17
18
  address: EthAddress.fromString('0x6792b02f88b32c4fe8e31cfa41ae5af44865f930'),
18
- auto: true,
19
+ addressLength: 'long',
19
20
  icon: true,
20
21
  title: 'Sample EthAccount',
21
22
  toEtherScan: true,
22
23
  };
23
- export { Default };
24
+ const LongEmpty = Template.bind({});
25
+ LongEmpty.args = {
26
+ addressLength: 'long',
27
+ icon: true,
28
+ title: 'Sample EthAccount',
29
+ toEtherScan: true,
30
+ };
31
+ const Short = Template.bind({});
32
+ Short.args = {
33
+ address: EthAddress.fromString('0x6792b02f88b32c4fe8e31cfa41ae5af44865f930'),
34
+ addressLength: 'short',
35
+ icon: true,
36
+ title: 'Sample EthAccount',
37
+ toEtherScan: true,
38
+ };
39
+ const ShortEmpty = Template.bind({});
40
+ ShortEmpty.args = {
41
+ addressLength: 'short',
42
+ icon: true,
43
+ title: 'Sample EthAccount',
44
+ toEtherScan: true,
45
+ };
46
+ const Auto = Template.bind({});
47
+ Auto.args = {
48
+ address: EthAddress.fromString('0x6792b02f88b32c4fe8e31cfa41ae5af44865f930'),
49
+ addressLength: 'auto',
50
+ icon: true,
51
+ title: 'Sample EthAccount',
52
+ toEtherScan: true,
53
+ };
54
+ const AutoEmpty = Template.bind({});
55
+ AutoEmpty.args = {
56
+ addressLength: 'auto',
57
+ icon: true,
58
+ title: 'Sample EthAccount',
59
+ toEtherScan: true,
60
+ };
61
+ export { Auto, AutoEmpty, Long, LongEmpty, Short, ShortEmpty };
24
62
  // eslint-disable-next-line import/no-default-export
25
63
  export default StorybookEntry;
26
64
  //# sourceMappingURL=EthAccount.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EthAccount.stories.js","sourceRoot":"","sources":["../../../src/components/EthAccount/EthAccount.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,cAAc,GAAG;IACrB,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,UAAU;IACrB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI;SACX;KACF;IACD,KAAK,EAAE,uBAAuB;CACK,CAAA;AAErC,MAAM,QAAQ,GAAsC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,UAAU,oBAAK,IAAI,UAAe,CAAA;AAEjG,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACjC,OAAO,CAAC,IAAI,GAAG;IACb,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,4CAA4C,CAAC;IAC5E,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,IAAI;CAClB,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,CAAA;AAElB,oDAAoD;AACpD,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"EthAccount.stories.js","sourceRoot":"","sources":["../../../src/components/EthAccount/EthAccount.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,cAAc,GAAG;IACrB,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,UAAU;IACrB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI;SACX;KACF;IACD,KAAK,EAAE,uBAAuB;CACK,CAAA;AAErC,MAAM,QAAQ,GAAsC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC5D,KAAC,OAAO,cACN,KAAC,UAAU,kBAAC,OAAO,EAAC,UAAU,IAAK,IAAI,UAAe,WAC9C,CACX,CAAA;AAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC9B,IAAI,CAAC,IAAI,GAAG;IACV,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,4CAA4C,CAAC;IAC5E,aAAa,EAAE,MAAM;IACrB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,IAAI;CAClB,CAAA;AAED,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACnC,SAAS,CAAC,IAAI,GAAG;IACf,aAAa,EAAE,MAAM;IACrB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,IAAI;CAClB,CAAA;AAED,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC/B,KAAK,CAAC,IAAI,GAAG;IACX,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,4CAA4C,CAAC;IAC5E,aAAa,EAAE,OAAO;IACtB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,IAAI;CAClB,CAAA;AAED,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACpC,UAAU,CAAC,IAAI,GAAG;IAChB,aAAa,EAAE,OAAO;IACtB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,IAAI;CAClB,CAAA;AAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC9B,IAAI,CAAC,IAAI,GAAG;IACV,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,4CAA4C,CAAC;IAC5E,aAAa,EAAE,MAAM;IACrB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,IAAI;CAClB,CAAA;AAED,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACnC,SAAS,CAAC,IAAI,GAAG;IACf,aAAa,EAAE,MAAM;IACrB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,IAAI;CAClB,CAAA;AAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;AAE9D,oDAAoD;AACpD,eAAe,cAAc,CAAA"}
@@ -1,19 +1,17 @@
1
- import { BoxProps } from '@mui/material';
2
1
  import { EthAddress } from '@xylabs/sdk-js';
3
2
  import { MouseEventHandler } from 'react';
4
- import { NavigateOptions, To } from 'react-router-dom';
5
- interface EthAccountProps extends BoxProps {
3
+ import { ButtonExProps } from '../ButtonEx';
4
+ interface EthAccountProps extends ButtonExProps {
6
5
  address?: EthAddress | null;
7
- auto?: boolean;
6
+ addressLength?: 'auto' | 'short' | 'long';
8
7
  full?: boolean;
9
8
  icon?: boolean;
9
+ iconSize?: number;
10
10
  iconOnly?: boolean;
11
- size?: number;
12
11
  text?: boolean;
13
- to?: To;
14
- toOptions?: NavigateOptions;
15
12
  page?: string;
16
13
  toEtherScan?: boolean;
14
+ fontFamily?: string;
17
15
  onButtonClick?: MouseEventHandler<HTMLButtonElement>;
18
16
  }
19
17
  export type { EthAccountProps };
@@ -1 +1 @@
1
- {"version":3,"file":"EthAccountProps.d.ts","sourceRoot":"","sources":["../../../src/components/EthAccount/EthAccountProps.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAEtD,UAAU,eAAgB,SAAQ,QAAQ;IACxC,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,EAAE,CAAC,EAAE,EAAE,CAAA;IACP,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;CACrD;AAED,YAAY,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"EthAccountProps.d.ts","sourceRoot":"","sources":["../../../src/components/EthAccount/EthAccountProps.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,UAAU,eAAgB,SAAQ,aAAa;IAC7C,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IACzC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;CACrD;AAED,YAAY,EAAE,eAAe,EAAE,CAAA"}
@@ -1,10 +1,11 @@
1
1
  import React from 'react';
2
- interface IdenticonProps {
2
+ import { FlexBoxProps } from './FlexBox';
3
+ interface IdenticonProps extends FlexBoxProps {
3
4
  bg?: string;
4
5
  className?: string;
5
6
  count?: number;
6
7
  fg?: string;
7
- padding?: number;
8
+ iconPadding?: number;
8
9
  palette?: string[];
9
10
  size?: number;
10
11
  value?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Identicon.d.ts","sourceRoot":"","sources":["../../src/components/Identicon.tsx"],"names":[],"mappings":"AACA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAMhD,UAAU,cAAc;IACtB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAyDD,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAUvC,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"Identicon.d.ts","sourceRoot":"","sources":["../../src/components/Identicon.tsx"],"names":[],"mappings":"AACA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAEhD,OAAO,EAAE,YAAY,EAAW,MAAM,WAAW,CAAA;AAMjD,UAAU,cAAe,SAAQ,YAAY;IAC3C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAwDD,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAsBvC,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -1,11 +1,23 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
1
12
  import { jsx as _jsx } from "react/jsx-runtime";
2
13
  import md5 from 'md5';
3
14
  import { useEffect, useRef } from 'react';
15
+ import { FlexRow } from './FlexBox';
4
16
  const range = (n, in_min, in_max, out_min, out_max) => {
5
17
  return ((n - in_min) * (out_max - out_min)) / (in_max - in_min) + out_min;
6
18
  };
7
19
  const updateCanvas = (canvas, props) => {
8
- const { value = '', size = 400, bg = 'transparent', count = 5, palette, padding = 0 } = props;
20
+ const { value = '', size = 400, bg = 'transparent', count = 5, palette, iconPadding = 0 } = props;
9
21
  let { fg } = props;
10
22
  const hash = md5(value);
11
23
  const block = Math.floor(size / count);
@@ -18,9 +30,8 @@ const updateCanvas = (canvas, props) => {
18
30
  const index = Math.floor(range(parseInt(hash.slice(-3), 16), 0, 4095, 0, palette.length));
19
31
  fg = palette[index];
20
32
  }
21
- const pad = padding;
22
- current.width = block * count + pad;
23
- current.height = block * count + pad;
33
+ current.width = block * count + iconPadding;
34
+ current.height = block * count + iconPadding;
24
35
  const arr = hash.split('').map((el) => {
25
36
  const parsedEl = parseInt(el, 16);
26
37
  if (parsedEl < 8) {
@@ -42,23 +53,23 @@ const updateCanvas = (canvas, props) => {
42
53
  row.forEach((el, j) => {
43
54
  if (el) {
44
55
  ctx.fillStyle = fg ? fg : '#' + hashcolor;
45
- ctx.fillRect(block * i + pad, block * j + pad, block - pad, block - pad);
56
+ ctx.fillRect(block * i + iconPadding, block * j + iconPadding, block - iconPadding, block - iconPadding);
46
57
  }
47
58
  else {
48
59
  ctx.fillStyle = bg;
49
- ctx.fillRect(block * i + pad, block * j + pad, block - pad, block - pad);
60
+ ctx.fillRect(block * i + iconPadding, block * j + iconPadding, block - iconPadding, block - iconPadding);
50
61
  }
51
62
  });
52
63
  });
53
64
  }
54
65
  };
55
- const Identicon = (props) => {
56
- const { size = 400, className = 'identicon' } = props;
66
+ const Identicon = (_a) => {
67
+ var { size = 400, className = 'identicon', bg, count, fg, iconPadding, palette, value } = _a, props = __rest(_a, ["size", "className", "bg", "count", "fg", "iconPadding", "palette", "value"]);
57
68
  const canvas = useRef(null);
58
69
  useEffect(() => {
59
- updateCanvas(canvas, props);
70
+ updateCanvas(canvas, { bg, className, count, fg, iconPadding, palette, size, value });
60
71
  });
61
- return _jsx("canvas", { className: className, ref: canvas, style: { height: size, width: size } }, void 0);
72
+ return (_jsx(FlexRow, Object.assign({}, props, { children: _jsx("canvas", { className: className, ref: canvas, style: { height: size, width: size } }, void 0) }), void 0));
62
73
  };
63
74
  export { Identicon };
64
75
  //# sourceMappingURL=Identicon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Identicon.js","sourceRoot":"","sources":["../../src/components/Identicon.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Identicon.js","sourceRoot":"","sources":["../../src/components/Identicon.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TokenAmount.d.ts","sourceRoot":"","sources":["../../../src/components/TokenAmount/TokenAmount.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAWrD,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgC3C,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"TokenAmount.d.ts","sourceRoot":"","sources":["../../../src/components/TokenAmount/TokenAmount.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAWrD,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA6C3C,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -25,11 +25,10 @@ const base10Shift = (bn, places) => {
25
25
  }
26
26
  };
27
27
  const TokenAmount = (_a) => {
28
- var { amount, places = -18, logo, label, onButtonClick } = _a, props = __rest(_a, ["amount", "places", "logo", "label", "onButtonClick"]);
28
+ var { fontFamily = '"Source Code Pro",monospace', textColor, bgcolor, style, amount, places = -18, logo, label, onButtonClick } = _a, props = __rest(_a, ["fontFamily", "textColor", "bgcolor", "style", "amount", "places", "logo", "label", "onButtonClick"]);
29
29
  const adjustedAmount = amount ? base10Shift(amount, places).toNumber() : undefined;
30
30
  const amountString = adjustedAmount ? Math.trunc(adjustedAmount).toLocaleString() : '-';
31
- const fontFamily = '"Source Code Pro",monospace';
32
- return (_jsx(FlexRow, Object.assign({ margin: 0.5, padding: 0.5 }, props, { children: _jsx(ButtonEx, Object.assign({ fullWidth: true, variant: "outlined", onClick: onButtonClick }, { children: _jsxs(FlexRow, Object.assign({ justifyContent: "space-between", width: "100%", busy: !amount, busySize: 16 }, { children: [_jsxs(FlexRow, { children: [logo ? _jsx("img", { src: xyoLogo, height: 24 }, void 0) : null, label ? (_jsx(Typography, Object.assign({ marginRight: 1, marginLeft: logo ? 1 : 0, noWrap: true, fontFamily: fontFamily, variant: "caption" }, { children: label }), void 0)) : null] }, void 0), _jsx(Typography, Object.assign({ noWrap: true, fontFamily: fontFamily, variant: "body1", style: { textTransform: 'none' } }, { children: amountString }), void 0)] }), void 0) }), void 0) }), void 0));
31
+ return (_jsx(ButtonEx, Object.assign({ style: Object.assign({ backgroundColor: bgcolor }, style), variant: "outlined", onClick: onButtonClick }, props, { children: _jsxs(FlexRow, Object.assign({ justifyContent: "space-between", width: "100%", busy: !amount, busySize: 16 }, { children: [_jsxs(FlexRow, { children: [logo ? _jsx("img", { src: xyoLogo, height: 24 }, void 0) : null, label ? (_jsx(Typography, Object.assign({ marginRight: 1, marginLeft: logo ? 1 : 0, noWrap: true, fontFamily: fontFamily, variant: "caption" }, { children: label }), void 0)) : null] }, void 0), _jsx(Typography, Object.assign({ color: textColor, noWrap: true, fontFamily: fontFamily, variant: "body1", style: { textTransform: 'none' } }, { children: amountString }), void 0)] }), void 0) }), void 0));
33
32
  };
34
33
  export { TokenAmount };
35
34
  //# sourceMappingURL=TokenAmount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenAmount.js","sourceRoot":"","sources":["../../../src/components/TokenAmount/TokenAmount.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,OAAO,MAAM,eAAe,CAAA;AAGnC,MAAM,WAAW,GAAG,CAAC,EAAa,EAAE,MAAc,EAAE,EAAE;IACpD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACrE,IAAI,MAAM,GAAG,CAAC,EAAE;QACd,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;KACtB;SAAM;QACL,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;KACtB;AACH,CAAC,CAAA;AAED,MAAM,WAAW,GAA+B,CAAC,EAA8D,EAAE,EAAE;QAAlE,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,OAAY,EAAP,KAAK,cAA5D,sDAA8D,CAAF;IAC3G,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IAElF,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;IAEvF,MAAM,UAAU,GAAG,6BAA6B,CAAA;IAEhD,OAAO,CACL,KAAC,OAAO,kBAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAM,KAAK,cAC3C,KAAC,QAAQ,kBAAC,SAAS,QAAC,OAAO,EAAC,UAAU,EAAC,OAAO,EAAE,aAAa,gBAC3D,MAAC,OAAO,kBAAC,cAAc,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,iBAC9E,MAAC,OAAO,eACL,IAAI,CAAC,CAAC,CAAC,cAAK,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,WAAI,CAAC,CAAC,CAAC,IAAI,EAC/C,KAAK,CAAC,CAAC,CAAC,CACP,KAAC,UAAU,kBACT,WAAW,EAAE,CAAC,EACd,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACxB,MAAM,EAAE,IAAI,EACZ,UAAU,EAAE,UAAU,EACtB,OAAO,EAAC,SAAS,gBAEhB,KAAK,YACK,CACd,CAAC,CAAC,CAAC,IAAI,YACA,EACV,KAAC,UAAU,kBAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,gBAC/F,YAAY,YACF,aACL,YACD,YACH,CACX,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"TokenAmount.js","sourceRoot":"","sources":["../../../src/components/TokenAmount/TokenAmount.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,OAAO,MAAM,eAAe,CAAA;AAGnC,MAAM,WAAW,GAAG,CAAC,EAAa,EAAE,MAAc,EAAE,EAAE;IACpD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACrE,IAAI,MAAM,GAAG,CAAC,EAAE;QACd,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;KACtB;SAAM;QACL,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;KACtB;AACH,CAAC,CAAA;AAED,MAAM,WAAW,GAA+B,CAAC,EAWhD,EAAE,EAAE;QAX4C,EAC/C,UAAU,GAAG,6BAA6B,EAC1C,SAAS,EACT,OAAO,EACP,KAAK,EACL,MAAM,EACN,MAAM,GAAG,CAAC,EAAE,EACZ,IAAI,EACJ,KAAK,EACL,aAAa,OAEd,EADI,KAAK,cAVuC,qGAWhD,CADS;IAER,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IAElF,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;IAEvF,OAAO,CACL,KAAC,QAAQ,kBAAC,KAAK,kBAAI,eAAe,EAAE,OAAO,IAAK,KAAK,GAAI,OAAO,EAAC,UAAU,EAAC,OAAO,EAAE,aAAa,IAAM,KAAK,cAC3G,MAAC,OAAO,kBAAC,cAAc,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,iBAC9E,MAAC,OAAO,eACL,IAAI,CAAC,CAAC,CAAC,cAAK,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,WAAI,CAAC,CAAC,CAAC,IAAI,EAC/C,KAAK,CAAC,CAAC,CAAC,CACP,KAAC,UAAU,kBACT,WAAW,EAAE,CAAC,EACd,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACxB,MAAM,EAAE,IAAI,EACZ,UAAU,EAAE,UAAU,EACtB,OAAO,EAAC,SAAS,gBAEhB,KAAK,YACK,CACd,CAAC,CAAC,CAAC,IAAI,YACA,EACV,KAAC,UAAU,kBACT,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,IAAI,EACZ,UAAU,EAAE,UAAU,EACtB,OAAO,EAAC,OAAO,EACf,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,gBAE/B,YAAY,YACF,aACL,YACD,CACZ,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -3,8 +3,9 @@ import { ComponentMeta, ComponentStory } from '@storybook/react';
3
3
  declare const StorybookEntry: ComponentMeta<import("react").FC<import("./TokenAmountProps").TokenAmountProps>>;
4
4
  declare const Default: ComponentStory<import("react").FC<import("./TokenAmountProps").TokenAmountProps>>;
5
5
  declare const WithLogo: ComponentStory<import("react").FC<import("./TokenAmountProps").TokenAmountProps>>;
6
+ declare const WithLogoAndColor: ComponentStory<import("react").FC<import("./TokenAmountProps").TokenAmountProps>>;
6
7
  declare const WithLabel: ComponentStory<import("react").FC<import("./TokenAmountProps").TokenAmountProps>>;
7
8
  declare const WithLogoAndLabel: ComponentStory<import("react").FC<import("./TokenAmountProps").TokenAmountProps>>;
8
- export { Default, WithLabel, WithLogo, WithLogoAndLabel };
9
+ export { Default, WithLabel, WithLogo, WithLogoAndColor, WithLogoAndLabel };
9
10
  export default StorybookEntry;
10
11
  //# sourceMappingURL=TokenAmount.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenAmount.stories.d.ts","sourceRoot":"","sources":["../../../src/components/TokenAmount/TokenAmount.stories.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAKhE,QAAA,MAAM,cAAc,kFASkB,CAAA;AAItC,QAAA,MAAM,OAAO,mFAAoB,CAAA;AAKjC,QAAA,MAAM,QAAQ,mFAAoB,CAAA;AAMlC,QAAA,MAAM,SAAS,mFAAoB,CAAA;AAMnC,QAAA,MAAM,gBAAgB,mFAAoB,CAAA;AAO1C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;AAGzD,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"TokenAmount.stories.d.ts","sourceRoot":"","sources":["../../../src/components/TokenAmount/TokenAmount.stories.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAKhE,QAAA,MAAM,cAAc,kFASkB,CAAA;AAItC,QAAA,MAAM,OAAO,mFAAoB,CAAA;AAKjC,QAAA,MAAM,QAAQ,mFAAoB,CAAA;AAMlC,QAAA,MAAM,gBAAgB,mFAAoB,CAAA;AAO1C,QAAA,MAAM,SAAS,mFAAoB,CAAA;AAMnC,QAAA,MAAM,gBAAgB,mFAAoB,CAAA;AAO1C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA;AAG3E,eAAe,cAAc,CAAA"}
@@ -21,6 +21,12 @@ WithLogo.args = {
21
21
  amount: new BigNumber('1195c751dbcc90ab4200000', 16),
22
22
  logo: true,
23
23
  };
24
+ const WithLogoAndColor = Template.bind({});
25
+ WithLogoAndColor.args = {
26
+ amount: new BigNumber('1195c751dbcc90ab4200000', 16),
27
+ bgcolor: '#ff0',
28
+ logo: true,
29
+ };
24
30
  const WithLabel = Template.bind({});
25
31
  WithLabel.args = {
26
32
  amount: new BigNumber('1195c751dbcc90ab4200000', 16),
@@ -32,7 +38,7 @@ WithLogoAndLabel.args = {
32
38
  label: 'Balance',
33
39
  logo: true,
34
40
  };
35
- export { Default, WithLabel, WithLogo, WithLogoAndLabel };
41
+ export { Default, WithLabel, WithLogo, WithLogoAndColor, WithLogoAndLabel };
36
42
  // eslint-disable-next-line import/no-default-export
37
43
  export default StorybookEntry;
38
44
  //# sourceMappingURL=TokenAmount.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenAmount.stories.js","sourceRoot":"","sources":["../../../src/components/TokenAmount/TokenAmount.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,cAAc,GAAG;IACrB,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI;SACX;KACF;IACD,KAAK,EAAE,wBAAwB;CACK,CAAA;AAEtC,MAAM,QAAQ,GAAuC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,WAAW,oBAAK,IAAI,UAAgB,CAAA;AAEpG,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACjC,OAAO,CAAC,IAAI,GAAG;IACb,MAAM,EAAE,IAAI,SAAS,CAAC,yBAAyB,EAAE,EAAE,CAAC;CACrD,CAAA;AAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAClC,QAAQ,CAAC,IAAI,GAAG;IACd,MAAM,EAAE,IAAI,SAAS,CAAC,yBAAyB,EAAE,EAAE,CAAC;IACpD,IAAI,EAAE,IAAI;CACX,CAAA;AAED,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACnC,SAAS,CAAC,IAAI,GAAG;IACf,MAAM,EAAE,IAAI,SAAS,CAAC,yBAAyB,EAAE,EAAE,CAAC;IACpD,KAAK,EAAE,SAAS;CACjB,CAAA;AAED,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC1C,gBAAgB,CAAC,IAAI,GAAG;IACtB,MAAM,EAAE,IAAI,SAAS,CAAC,yBAAyB,EAAE,EAAE,CAAC;IACpD,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,IAAI;CACX,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;AAEzD,oDAAoD;AACpD,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"TokenAmount.stories.js","sourceRoot":"","sources":["../../../src/components/TokenAmount/TokenAmount.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,cAAc,GAAG;IACrB,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI;SACX;KACF;IACD,KAAK,EAAE,wBAAwB;CACK,CAAA;AAEtC,MAAM,QAAQ,GAAuC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,WAAW,oBAAK,IAAI,UAAgB,CAAA;AAEpG,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACjC,OAAO,CAAC,IAAI,GAAG;IACb,MAAM,EAAE,IAAI,SAAS,CAAC,yBAAyB,EAAE,EAAE,CAAC;CACrD,CAAA;AAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAClC,QAAQ,CAAC,IAAI,GAAG;IACd,MAAM,EAAE,IAAI,SAAS,CAAC,yBAAyB,EAAE,EAAE,CAAC;IACpD,IAAI,EAAE,IAAI;CACX,CAAA;AAED,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC1C,gBAAgB,CAAC,IAAI,GAAG;IACtB,MAAM,EAAE,IAAI,SAAS,CAAC,yBAAyB,EAAE,EAAE,CAAC;IACpD,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,IAAI;CACX,CAAA;AAED,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACnC,SAAS,CAAC,IAAI,GAAG;IACf,MAAM,EAAE,IAAI,SAAS,CAAC,yBAAyB,EAAE,EAAE,CAAC;IACpD,KAAK,EAAE,SAAS;CACjB,CAAA;AAED,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC1C,gBAAgB,CAAC,IAAI,GAAG;IACtB,MAAM,EAAE,IAAI,SAAS,CAAC,yBAAyB,EAAE,EAAE,CAAC;IACpD,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,IAAI;CACX,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA;AAE3E,oDAAoD;AACpD,eAAe,cAAc,CAAA"}
@@ -1,12 +1,15 @@
1
1
  /// <reference types="bn.js" />
2
2
  import { BigNumber } from '@xylabs/sdk-js';
3
3
  import { MouseEventHandler } from 'react';
4
- import { FlexBoxProps } from '../FlexBox';
5
- interface TokenAmountProps extends FlexBoxProps {
4
+ import { ButtonExProps } from '../ButtonEx';
5
+ interface TokenAmountProps extends ButtonExProps {
6
6
  amount?: BigNumber | null;
7
7
  label?: string;
8
8
  logo?: boolean;
9
9
  places?: number;
10
+ fontFamily?: string;
11
+ textColor?: string;
12
+ bgcolor?: string;
10
13
  onButtonClick?: MouseEventHandler<HTMLButtonElement>;
11
14
  }
12
15
  export type { TokenAmountProps };
@@ -1 +1 @@
1
- {"version":3,"file":"TokenAmountProps.d.ts","sourceRoot":"","sources":["../../../src/components/TokenAmount/TokenAmountProps.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,UAAU,gBAAiB,SAAQ,YAAY;IAC7C,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;CACrD;AAED,YAAY,EAAE,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"TokenAmountProps.d.ts","sourceRoot":"","sources":["../../../src/components/TokenAmount/TokenAmountProps.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,UAAU,gBAAiB,SAAQ,aAAa;IAC9C,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;CACrD;AAED,YAAY,EAAE,gBAAgB,EAAE,CAAA"}
package/package.json CHANGED
@@ -26,16 +26,16 @@
26
26
  "@emotion/styled": "^11.6.0",
27
27
  "@ethersproject/abstract-signer": "^5.5.0",
28
28
  "@ethersproject/providers": "^5.5.1",
29
- "@mui/icons-material": "^5.2.0",
30
- "@mui/material": "^5.2.2",
31
- "@mui/styles": "^5.2.2",
32
- "@storybook/addon-actions": "^6.4.7",
33
- "@storybook/addon-docs": "^6.4.7",
34
- "@storybook/addon-essentials": "^6.4.7",
35
- "@storybook/addon-links": "^6.4.7",
36
- "@storybook/components": "^6.4.7",
37
- "@storybook/core-events": "^6.4.7",
38
- "@storybook/react": "^6.4.7",
29
+ "@mui/icons-material": "^5.2.1",
30
+ "@mui/material": "^5.2.3",
31
+ "@mui/styles": "^5.2.3",
32
+ "@storybook/addon-actions": "^6.4.8",
33
+ "@storybook/addon-docs": "^6.4.8",
34
+ "@storybook/addon-essentials": "^6.4.8",
35
+ "@storybook/addon-links": "^6.4.8",
36
+ "@storybook/components": "^6.4.8",
37
+ "@storybook/core-events": "^6.4.8",
38
+ "@storybook/react": "^6.4.8",
39
39
  "@types/bn.js": "^5.1.0",
40
40
  "@types/lodash": "^4.14.177",
41
41
  "@types/md5": "^2.3.1",
@@ -43,7 +43,7 @@
43
43
  "@types/react": "^17",
44
44
  "@xylabs/eslint-config-react": "^2",
45
45
  "@xylabs/pixel": "^1.1.6",
46
- "@xylabs/sdk-js": "^2.3.12",
46
+ "@xylabs/sdk-js": "^2.3.13",
47
47
  "@xylabs/ts-scripts": "^1.0.23",
48
48
  "babel-loader": "^8.2.3",
49
49
  "bn.js": "^5.2.0",
@@ -108,5 +108,5 @@
108
108
  "sideEffects": false,
109
109
  "type": "module",
110
110
  "types": "dist/index.d.ts",
111
- "version": "2.7.7"
111
+ "version": "2.7.11"
112
112
  }
@@ -1,6 +1,7 @@
1
1
  import { ComponentMeta, ComponentStory } from '@storybook/react'
2
2
  import { EthAddress } from '@xylabs/sdk-js'
3
3
 
4
+ import { FlexRow } from '../FlexBox'
4
5
  import { EthAccount } from './EthAccount'
5
6
 
6
7
  const StorybookEntry = {
@@ -14,18 +15,64 @@ const StorybookEntry = {
14
15
  title: 'Components/EthAccount',
15
16
  } as ComponentMeta<typeof EthAccount>
16
17
 
17
- const Template: ComponentStory<typeof EthAccount> = (args) => <EthAccount {...args}></EthAccount>
18
+ const Template: ComponentStory<typeof EthAccount> = (args) => (
19
+ <FlexRow>
20
+ <EthAccount variant="outlined" {...args}></EthAccount>
21
+ </FlexRow>
22
+ )
18
23
 
19
- const Default = Template.bind({})
20
- Default.args = {
24
+ const Long = Template.bind({})
25
+ Long.args = {
21
26
  address: EthAddress.fromString('0x6792b02f88b32c4fe8e31cfa41ae5af44865f930'),
22
- auto: true,
27
+ addressLength: 'long',
23
28
  icon: true,
24
29
  title: 'Sample EthAccount',
25
30
  toEtherScan: true,
26
31
  }
27
32
 
28
- export { Default }
33
+ const LongEmpty = Template.bind({})
34
+ LongEmpty.args = {
35
+ addressLength: 'long',
36
+ icon: true,
37
+ title: 'Sample EthAccount',
38
+ toEtherScan: true,
39
+ }
40
+
41
+ const Short = Template.bind({})
42
+ Short.args = {
43
+ address: EthAddress.fromString('0x6792b02f88b32c4fe8e31cfa41ae5af44865f930'),
44
+ addressLength: 'short',
45
+ icon: true,
46
+ title: 'Sample EthAccount',
47
+ toEtherScan: true,
48
+ }
49
+
50
+ const ShortEmpty = Template.bind({})
51
+ ShortEmpty.args = {
52
+ addressLength: 'short',
53
+ icon: true,
54
+ title: 'Sample EthAccount',
55
+ toEtherScan: true,
56
+ }
57
+
58
+ const Auto = Template.bind({})
59
+ Auto.args = {
60
+ address: EthAddress.fromString('0x6792b02f88b32c4fe8e31cfa41ae5af44865f930'),
61
+ addressLength: 'auto',
62
+ icon: true,
63
+ title: 'Sample EthAccount',
64
+ toEtherScan: true,
65
+ }
66
+
67
+ const AutoEmpty = Template.bind({})
68
+ AutoEmpty.args = {
69
+ addressLength: 'auto',
70
+ icon: true,
71
+ title: 'Sample EthAccount',
72
+ toEtherScan: true,
73
+ }
74
+
75
+ export { Auto, AutoEmpty, Long, LongEmpty, Short, ShortEmpty }
29
76
 
30
77
  // eslint-disable-next-line import/no-default-export
31
78
  export default StorybookEntry
@@ -1,13 +1,77 @@
1
- import { EthAccountBase } from './EthAccountBase'
1
+ import { Typography, useTheme } from '@mui/material'
2
+ import { assertEx, EthAddress } from '@xylabs/sdk-js'
3
+ import { MouseEvent, useContext } from 'react'
4
+
5
+ import { EthersContext } from '../../contexts'
6
+ import { useMediaQuery } from '../../hooks'
7
+ import { ButtonEx } from '../ButtonEx'
8
+ import { FlexGrowRow, FlexRow } from '../FlexBox'
9
+ import { Identicon } from '../Identicon'
2
10
  import { EthAccountProps } from './EthAccountProps'
3
- import { EthAccountTo } from './EthAccountTo'
4
11
 
5
- const EthAccount: React.FC<EthAccountProps> = ({ to, toOptions, ...props }) => {
6
- if (to || toOptions) {
7
- return <EthAccountTo to={to} toOptions={toOptions} {...props} />
8
- } else {
9
- return <EthAccountBase {...props} />
12
+ const EthAccount: React.FC<EthAccountProps> = ({
13
+ address,
14
+ icon = false,
15
+ iconSize = 16,
16
+ iconOnly = false,
17
+ addressLength = 'auto',
18
+ fontFamily = '"Source Code Pro",monospace',
19
+ toEtherScan,
20
+ onButtonClick,
21
+ ...props
22
+ }) => {
23
+ const { localAddress } = useContext(EthersContext)
24
+ const theme = useTheme()
25
+
26
+ const large = useMediaQuery(theme.breakpoints.up('md'))
27
+
28
+ const isLocalAddress = address ? localAddress?.toString() === address.toString() : false
29
+
30
+ const onClickLocal = (event: MouseEvent<HTMLButtonElement>) => {
31
+ onButtonClick?.(event)
32
+ if (toEtherScan && address) {
33
+ window.open(`https://etherscan.io/address/${address.toString()}`, '_blank')
34
+ }
10
35
  }
36
+
37
+ const addressToDisplay = assertEx(address ?? EthAddress.fromString('0x00'), 'Bad Eth Address')
38
+
39
+ const testToDisplay =
40
+ addressLength === 'long'
41
+ ? addressToDisplay.toString()
42
+ : addressLength === 'short'
43
+ ? addressToDisplay.toShortString()
44
+ : large
45
+ ? addressToDisplay.toString()
46
+ : addressToDisplay.toShortString()
47
+
48
+ // Note: We use the all zero address for spacing in case it is
49
+
50
+ return (
51
+ <ButtonEx onClick={onClickLocal} title={`0x${address?.toHex()}`} {...props}>
52
+ <FlexGrowRow justifyContent="space-between" alignItems="center">
53
+ {icon && address ? <Identicon size={iconSize} value={address?.toHex()} /> : null}
54
+ {iconOnly ? null : (
55
+ <FlexRow>
56
+ <Typography
57
+ marginLeft={icon ? 1 : 0}
58
+ variant="body1"
59
+ fontFamily={fontFamily}
60
+ visibility={address ? 'inherit' : 'hidden'}
61
+ >
62
+ {testToDisplay}
63
+ </Typography>
64
+ {address ? null : (
65
+ <Typography position="absolute" marginLeft={icon ? 1 : 0} variant="body1" fontFamily={fontFamily}>
66
+ -- --
67
+ </Typography>
68
+ )}
69
+ </FlexRow>
70
+ )}
71
+ {isLocalAddress ? <FlexRow marginLeft={0.5}>(You)</FlexRow> : null}
72
+ </FlexGrowRow>
73
+ </ButtonEx>
74
+ )
11
75
  }
12
76
 
13
77
  export { EthAccount }
@@ -1,20 +1,19 @@
1
- import { BoxProps } from '@mui/material'
2
1
  import { EthAddress } from '@xylabs/sdk-js'
3
2
  import { MouseEventHandler } from 'react'
4
- import { NavigateOptions, To } from 'react-router-dom'
5
3
 
6
- interface EthAccountProps extends BoxProps {
4
+ import { ButtonExProps } from '../ButtonEx'
5
+
6
+ interface EthAccountProps extends ButtonExProps {
7
7
  address?: EthAddress | null
8
- auto?: boolean
8
+ addressLength?: 'auto' | 'short' | 'long'
9
9
  full?: boolean
10
10
  icon?: boolean
11
+ iconSize?: number
11
12
  iconOnly?: boolean
12
- size?: number
13
13
  text?: boolean
14
- to?: To
15
- toOptions?: NavigateOptions
16
14
  page?: string
17
15
  toEtherScan?: boolean
16
+ fontFamily?: string
18
17
  onButtonClick?: MouseEventHandler<HTMLButtonElement>
19
18
  }
20
19
 
@@ -1,23 +1,25 @@
1
1
  import md5 from 'md5'
2
2
  import React, { useEffect, useRef } from 'react'
3
3
 
4
+ import { FlexBoxProps, FlexRow } from './FlexBox'
5
+
4
6
  const range = (n: number, in_min: number, in_max: number, out_min: number, out_max: number) => {
5
7
  return ((n - in_min) * (out_max - out_min)) / (in_max - in_min) + out_min
6
8
  }
7
9
 
8
- interface IdenticonProps {
10
+ interface IdenticonProps extends FlexBoxProps {
9
11
  bg?: string
10
12
  className?: string
11
13
  count?: number
12
14
  fg?: string
13
- padding?: number
15
+ iconPadding?: number
14
16
  palette?: string[]
15
17
  size?: number
16
18
  value?: string
17
19
  }
18
20
 
19
21
  const updateCanvas = (canvas: React.RefObject<HTMLCanvasElement>, props: IdenticonProps) => {
20
- const { value = '', size = 400, bg = 'transparent', count = 5, palette, padding = 0 } = props
22
+ const { value = '', size = 400, bg = 'transparent', count = 5, palette, iconPadding = 0 } = props
21
23
  let { fg } = props
22
24
  const hash = md5(value)
23
25
  const block = Math.floor(size / count)
@@ -34,9 +36,8 @@ const updateCanvas = (canvas: React.RefObject<HTMLCanvasElement>, props: Identic
34
36
  fg = palette[index]
35
37
  }
36
38
 
37
- const pad = padding
38
- current.width = block * count + pad
39
- current.height = block * count + pad
39
+ current.width = block * count + iconPadding
40
+ current.height = block * count + iconPadding
40
41
  const arr = hash.split('').map((el) => {
41
42
  const parsedEl = parseInt(el, 16)
42
43
  if (parsedEl < 8) {
@@ -61,26 +62,38 @@ const updateCanvas = (canvas: React.RefObject<HTMLCanvasElement>, props: Identic
61
62
  row.forEach((el, j) => {
62
63
  if (el) {
63
64
  ctx.fillStyle = fg ? fg : '#' + hashcolor
64
- ctx.fillRect(block * i + pad, block * j + pad, block - pad, block - pad)
65
+ ctx.fillRect(block * i + iconPadding, block * j + iconPadding, block - iconPadding, block - iconPadding)
65
66
  } else {
66
67
  ctx.fillStyle = bg
67
- ctx.fillRect(block * i + pad, block * j + pad, block - pad, block - pad)
68
+ ctx.fillRect(block * i + iconPadding, block * j + iconPadding, block - iconPadding, block - iconPadding)
68
69
  }
69
70
  })
70
71
  })
71
72
  }
72
73
  }
73
74
 
74
- const Identicon: React.FC<IdenticonProps> = (props) => {
75
- const { size = 400, className = 'identicon' } = props
76
-
75
+ const Identicon: React.FC<IdenticonProps> = ({
76
+ size = 400,
77
+ className = 'identicon',
78
+ bg,
79
+ count,
80
+ fg,
81
+ iconPadding,
82
+ palette,
83
+ value,
84
+ ...props
85
+ }) => {
77
86
  const canvas = useRef<HTMLCanvasElement>(null)
78
87
 
79
88
  useEffect(() => {
80
- updateCanvas(canvas, props)
89
+ updateCanvas(canvas, { bg, className, count, fg, iconPadding, palette, size, value })
81
90
  })
82
91
 
83
- return <canvas className={className} ref={canvas} style={{ height: size, width: size }} />
92
+ return (
93
+ <FlexRow {...props}>
94
+ <canvas className={className} ref={canvas} style={{ height: size, width: size }} />
95
+ </FlexRow>
96
+ )
84
97
  }
85
98
 
86
99
  export { Identicon }
@@ -27,6 +27,13 @@ WithLogo.args = {
27
27
  logo: true,
28
28
  }
29
29
 
30
+ const WithLogoAndColor = Template.bind({})
31
+ WithLogoAndColor.args = {
32
+ amount: new BigNumber('1195c751dbcc90ab4200000', 16),
33
+ bgcolor: '#ff0',
34
+ logo: true,
35
+ }
36
+
30
37
  const WithLabel = Template.bind({})
31
38
  WithLabel.args = {
32
39
  amount: new BigNumber('1195c751dbcc90ab4200000', 16),
@@ -40,7 +47,7 @@ WithLogoAndLabel.args = {
40
47
  logo: true,
41
48
  }
42
49
 
43
- export { Default, WithLabel, WithLogo, WithLogoAndLabel }
50
+ export { Default, WithLabel, WithLogo, WithLogoAndColor, WithLogoAndLabel }
44
51
 
45
52
  // eslint-disable-next-line import/no-default-export
46
53
  export default StorybookEntry
@@ -15,37 +15,50 @@ const base10Shift = (bn: BigNumber, places: number) => {
15
15
  }
16
16
  }
17
17
 
18
- const TokenAmount: React.FC<TokenAmountProps> = ({ amount, places = -18, logo, label, onButtonClick, ...props }) => {
18
+ const TokenAmount: React.FC<TokenAmountProps> = ({
19
+ fontFamily = '"Source Code Pro",monospace',
20
+ textColor,
21
+ bgcolor,
22
+ style,
23
+ amount,
24
+ places = -18,
25
+ logo,
26
+ label,
27
+ onButtonClick,
28
+ ...props
29
+ }) => {
19
30
  const adjustedAmount = amount ? base10Shift(amount, places).toNumber() : undefined
20
31
 
21
32
  const amountString = adjustedAmount ? Math.trunc(adjustedAmount).toLocaleString() : '-'
22
33
 
23
- const fontFamily = '"Source Code Pro",monospace'
24
-
25
34
  return (
26
- <FlexRow margin={0.5} padding={0.5} {...props}>
27
- <ButtonEx fullWidth variant="outlined" onClick={onButtonClick}>
28
- <FlexRow justifyContent="space-between" width="100%" busy={!amount} busySize={16}>
29
- <FlexRow>
30
- {logo ? <img src={xyoLogo} height={24} /> : null}
31
- {label ? (
32
- <Typography
33
- marginRight={1}
34
- marginLeft={logo ? 1 : 0}
35
- noWrap={true}
36
- fontFamily={fontFamily}
37
- variant="caption"
38
- >
39
- {label}
40
- </Typography>
41
- ) : null}
42
- </FlexRow>
43
- <Typography noWrap={true} fontFamily={fontFamily} variant="body1" style={{ textTransform: 'none' }}>
44
- {amountString}
45
- </Typography>
35
+ <ButtonEx style={{ backgroundColor: bgcolor, ...style }} variant="outlined" onClick={onButtonClick} {...props}>
36
+ <FlexRow justifyContent="space-between" width="100%" busy={!amount} busySize={16}>
37
+ <FlexRow>
38
+ {logo ? <img src={xyoLogo} height={24} /> : null}
39
+ {label ? (
40
+ <Typography
41
+ marginRight={1}
42
+ marginLeft={logo ? 1 : 0}
43
+ noWrap={true}
44
+ fontFamily={fontFamily}
45
+ variant="caption"
46
+ >
47
+ {label}
48
+ </Typography>
49
+ ) : null}
46
50
  </FlexRow>
47
- </ButtonEx>
48
- </FlexRow>
51
+ <Typography
52
+ color={textColor}
53
+ noWrap={true}
54
+ fontFamily={fontFamily}
55
+ variant="body1"
56
+ style={{ textTransform: 'none' }}
57
+ >
58
+ {amountString}
59
+ </Typography>
60
+ </FlexRow>
61
+ </ButtonEx>
49
62
  )
50
63
  }
51
64
 
@@ -1,13 +1,16 @@
1
1
  import { BigNumber } from '@xylabs/sdk-js'
2
2
  import { MouseEventHandler } from 'react'
3
3
 
4
- import { FlexBoxProps } from '../FlexBox'
4
+ import { ButtonExProps } from '../ButtonEx'
5
5
 
6
- interface TokenAmountProps extends FlexBoxProps {
6
+ interface TokenAmountProps extends ButtonExProps {
7
7
  amount?: BigNumber | null
8
8
  label?: string
9
9
  logo?: boolean
10
10
  places?: number
11
+ fontFamily?: string
12
+ textColor?: string
13
+ bgcolor?: string
11
14
  onButtonClick?: MouseEventHandler<HTMLButtonElement>
12
15
  }
13
16
 
@@ -1,5 +0,0 @@
1
- /// <reference types="react" />
2
- import { EthAccountProps } from './EthAccountProps';
3
- declare const EthAccountBase: React.FC<EthAccountProps>;
4
- export { EthAccountBase };
5
- //# sourceMappingURL=EthAccountBase.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EthAccountBase.d.ts","sourceRoot":"","sources":["../../../src/components/EthAccount/EthAccountBase.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA+C7C,CAAA;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -1,42 +0,0 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
- import { Typography, useTheme } from '@mui/material';
14
- import { useContext } from 'react';
15
- import { EthersContext } from '../../contexts';
16
- import { useMediaQuery } from '../../hooks';
17
- import { ButtonEx } from '../ButtonEx';
18
- import { FlexGrowRow, FlexRow } from '../FlexBox';
19
- import { Identicon } from '../Identicon';
20
- const EthAccountBase = (_a) => {
21
- var { address, icon = false, iconOnly = false, full = false, auto, size = 16, toEtherScan, onButtonClick } = _a, props = __rest(_a, ["address", "icon", "iconOnly", "full", "auto", "size", "toEtherScan", "onButtonClick"]);
22
- const { localAddress } = useContext(EthersContext);
23
- const theme = useTheme();
24
- const large = useMediaQuery(theme.breakpoints.up('md'));
25
- const fontFamily = '"Source Code Pro",monospace';
26
- if (address) {
27
- const isLocalAddress = (localAddress === null || localAddress === void 0 ? void 0 : localAddress.toString()) === address.toString();
28
- const onClickLocal = (event) => {
29
- onButtonClick === null || onButtonClick === void 0 ? void 0 : onButtonClick(event);
30
- if (toEtherScan) {
31
- window.open(`https://etherscan.io/address/${address.toString()}`, '_blank');
32
- }
33
- };
34
- const testToDisplay = full || !auto ? address.toString() : large ? address.toString() : address.toShortString();
35
- return (_jsx(FlexRow, Object.assign({ margin: 0.5, padding: 0.5, title: `0x${address === null || address === void 0 ? void 0 : address.toHex()}` }, props, { children: _jsx(ButtonEx, Object.assign({ fullWidth: true, onClick: onClickLocal, variant: "outlined" }, { children: _jsxs(FlexGrowRow, Object.assign({ justifyContent: "space-between", alignItems: "center" }, { children: [icon ? _jsx(Identicon, { size: size, value: address === null || address === void 0 ? void 0 : address.toHex() }, void 0) : null, iconOnly ? null : (_jsx(Typography, Object.assign({ variant: "body1", fontFamily: fontFamily, style: { textTransform: 'none' } }, { children: testToDisplay }), void 0)), isLocalAddress ? _jsx(FlexRow, Object.assign({ marginLeft: 0.5 }, { children: "(You)" }), void 0) : null] }), void 0) }), void 0) }), void 0));
36
- }
37
- else {
38
- return _jsx(FlexRow, Object.assign({}, props, { children: ' - - ' }), void 0);
39
- }
40
- };
41
- export { EthAccountBase };
42
- //# sourceMappingURL=EthAccountBase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EthAccountBase.js","sourceRoot":"","sources":["../../../src/components/EthAccount/EthAccountBase.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /// <reference types="react" />
2
- import { EthAccountProps } from './EthAccountProps';
3
- declare const EthAccountTo: React.FC<EthAccountProps>;
4
- export { EthAccountTo };
5
- //# sourceMappingURL=EthAccountTo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EthAccountTo.d.ts","sourceRoot":"","sources":["../../../src/components/EthAccount/EthAccountTo.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAqB3C,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -1,30 +0,0 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { useNavigateToEthAddress } from '../../hooks';
14
- import { EthAccountBase } from './EthAccountBase';
15
- const EthAccountTo = (_a) => {
16
- var { address, to, page, toOptions, toEtherScan, onButtonClick } = _a, props = __rest(_a, ["address", "to", "page", "toOptions", "toEtherScan", "onButtonClick"]);
17
- const { navigateToEthAddress } = useNavigateToEthAddress();
18
- if (address) {
19
- const localOnClick = (event) => {
20
- onButtonClick === null || onButtonClick === void 0 ? void 0 : onButtonClick(event);
21
- if (to) {
22
- navigateToEthAddress(address, event, page, to, toOptions, toEtherScan);
23
- }
24
- };
25
- return _jsx(EthAccountBase, Object.assign({ onButtonClick: localOnClick }, props), void 0);
26
- }
27
- return null;
28
- };
29
- export { EthAccountTo };
30
- //# sourceMappingURL=EthAccountTo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EthAccountTo.js","sourceRoot":"","sources":["../../../src/components/EthAccount/EthAccountTo.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGjD,MAAM,YAAY,GAA8B,CAAC,EAQhD,EAAE,EAAE;QAR4C,EAC/C,OAAO,EACP,EAAE,EACF,IAAI,EACJ,SAAS,EACT,WAAW,EACX,aAAa,OAEd,EADI,KAAK,cAPuC,sEAQhD,CADS;IAER,MAAM,EAAE,oBAAoB,EAAE,GAAG,uBAAuB,EAAE,CAAA;IAC1D,IAAI,OAAO,EAAE;QACX,MAAM,YAAY,GAAG,CAAC,KAAoC,EAAE,EAAE;YAC5D,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,KAAK,CAAC,CAAA;YACtB,IAAI,EAAE,EAAE;gBACN,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;aACvE;QACH,CAAC,CAAA;QAED,OAAO,KAAC,cAAc,kBAAC,aAAa,EAAE,YAAY,IAAM,KAAK,UAAI,CAAA;KAClE;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -1,60 +0,0 @@
1
- import { Typography, useTheme } from '@mui/material'
2
- import { MouseEvent, useContext } from 'react'
3
-
4
- import { EthersContext } from '../../contexts'
5
- import { useMediaQuery } from '../../hooks'
6
- import { ButtonEx } from '../ButtonEx'
7
- import { FlexGrowRow, FlexRow } from '../FlexBox'
8
- import { Identicon } from '../Identicon'
9
- import { EthAccountProps } from './EthAccountProps'
10
-
11
- const EthAccountBase: React.FC<EthAccountProps> = ({
12
- address,
13
- icon = false,
14
- iconOnly = false,
15
- full = false,
16
- auto,
17
- size = 16,
18
- toEtherScan,
19
- onButtonClick,
20
- ...props
21
- }) => {
22
- const { localAddress } = useContext(EthersContext)
23
- const theme = useTheme()
24
-
25
- const large = useMediaQuery(theme.breakpoints.up('md'))
26
- const fontFamily = '"Source Code Pro",monospace'
27
-
28
- if (address) {
29
- const isLocalAddress = localAddress?.toString() === address.toString()
30
-
31
- const onClickLocal = (event: MouseEvent<HTMLButtonElement>) => {
32
- onButtonClick?.(event)
33
- if (toEtherScan) {
34
- window.open(`https://etherscan.io/address/${address.toString()}`, '_blank')
35
- }
36
- }
37
-
38
- const testToDisplay = full || !auto ? address.toString() : large ? address.toString() : address.toShortString()
39
-
40
- return (
41
- <FlexRow margin={0.5} padding={0.5} title={`0x${address?.toHex()}`} {...props}>
42
- <ButtonEx fullWidth onClick={onClickLocal} variant="outlined">
43
- <FlexGrowRow justifyContent="space-between" alignItems="center">
44
- {icon ? <Identicon size={size} value={address?.toHex()} /> : null}
45
- {iconOnly ? null : (
46
- <Typography variant="body1" fontFamily={fontFamily} style={{ textTransform: 'none' }}>
47
- {testToDisplay}
48
- </Typography>
49
- )}
50
- {isLocalAddress ? <FlexRow marginLeft={0.5}>(You)</FlexRow> : null}
51
- </FlexGrowRow>
52
- </ButtonEx>
53
- </FlexRow>
54
- )
55
- } else {
56
- return <FlexRow {...props}>{' - - '}</FlexRow>
57
- }
58
- }
59
-
60
- export { EthAccountBase }
@@ -1,30 +0,0 @@
1
- import { MouseEvent } from 'react'
2
-
3
- import { useNavigateToEthAddress } from '../../hooks'
4
- import { EthAccountBase } from './EthAccountBase'
5
- import { EthAccountProps } from './EthAccountProps'
6
-
7
- const EthAccountTo: React.FC<EthAccountProps> = ({
8
- address,
9
- to,
10
- page,
11
- toOptions,
12
- toEtherScan,
13
- onButtonClick,
14
- ...props
15
- }) => {
16
- const { navigateToEthAddress } = useNavigateToEthAddress()
17
- if (address) {
18
- const localOnClick = (event: MouseEvent<HTMLButtonElement>) => {
19
- onButtonClick?.(event)
20
- if (to) {
21
- navigateToEthAddress(address, event, page, to, toOptions, toEtherScan)
22
- }
23
- }
24
-
25
- return <EthAccountBase onButtonClick={localOnClick} {...props} />
26
- }
27
- return null
28
- }
29
-
30
- export { EthAccountTo }