@xyo-network/react-shared 2.28.10 → 2.29.0-rc.2

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 (74) hide show
  1. package/dist/cjs/components/ApiErrorAlert.d.ts +9 -0
  2. package/dist/cjs/components/ApiErrorAlert.d.ts.map +1 -0
  3. package/dist/cjs/components/ApiErrorAlert.js +13 -0
  4. package/dist/cjs/components/ApiErrorAlert.js.map +1 -0
  5. package/dist/cjs/components/ErrorBoundry.d.ts +1 -0
  6. package/dist/cjs/components/ErrorBoundry.d.ts.map +1 -1
  7. package/dist/cjs/components/ErrorBoundry.js +3 -0
  8. package/dist/cjs/components/ErrorBoundry.js.map +1 -1
  9. package/dist/cjs/components/TokenSummary/TokenSummary.d.ts.map +1 -1
  10. package/dist/cjs/components/TokenSummary/TokenSummary.js +3 -4
  11. package/dist/cjs/components/TokenSummary/TokenSummary.js.map +1 -1
  12. package/dist/cjs/components/XyoThemeTokenAvatar/XyoThemeTokenAvatar.d.ts +4 -0
  13. package/dist/cjs/components/XyoThemeTokenAvatar/XyoThemeTokenAvatar.d.ts.map +1 -0
  14. package/dist/cjs/components/XyoThemeTokenAvatar/XyoThemeTokenAvatar.js +13 -0
  15. package/dist/cjs/components/XyoThemeTokenAvatar/XyoThemeTokenAvatar.js.map +1 -0
  16. package/dist/cjs/components/XyoThemeTokenAvatar/index.d.ts +2 -0
  17. package/dist/cjs/components/XyoThemeTokenAvatar/index.d.ts.map +1 -0
  18. package/dist/cjs/components/XyoThemeTokenAvatar/index.js +5 -0
  19. package/dist/cjs/components/XyoThemeTokenAvatar/index.js.map +1 -0
  20. package/dist/cjs/components/XyoThemeTokenAvatarGroup/XyoThemeTokenAvatarGroup.d.ts +7 -0
  21. package/dist/cjs/components/XyoThemeTokenAvatarGroup/XyoThemeTokenAvatarGroup.d.ts.map +1 -0
  22. package/dist/cjs/components/XyoThemeTokenAvatarGroup/XyoThemeTokenAvatarGroup.js +13 -0
  23. package/dist/cjs/components/XyoThemeTokenAvatarGroup/XyoThemeTokenAvatarGroup.js.map +1 -0
  24. package/dist/cjs/components/XyoThemeTokenAvatarGroup/index.d.ts +2 -0
  25. package/dist/cjs/components/XyoThemeTokenAvatarGroup/index.d.ts.map +1 -0
  26. package/dist/cjs/components/XyoThemeTokenAvatarGroup/index.js +5 -0
  27. package/dist/cjs/components/XyoThemeTokenAvatarGroup/index.js.map +1 -0
  28. package/dist/cjs/components/index.d.ts +3 -0
  29. package/dist/cjs/components/index.d.ts.map +1 -1
  30. package/dist/cjs/components/index.js +3 -0
  31. package/dist/cjs/components/index.js.map +1 -1
  32. package/dist/docs.json +2645 -2206
  33. package/dist/esm/components/ApiErrorAlert.d.ts +9 -0
  34. package/dist/esm/components/ApiErrorAlert.d.ts.map +1 -0
  35. package/dist/esm/components/ApiErrorAlert.js +7 -0
  36. package/dist/esm/components/ApiErrorAlert.js.map +1 -0
  37. package/dist/esm/components/ErrorBoundry.d.ts +1 -0
  38. package/dist/esm/components/ErrorBoundry.d.ts.map +1 -1
  39. package/dist/esm/components/ErrorBoundry.js +3 -0
  40. package/dist/esm/components/ErrorBoundry.js.map +1 -1
  41. package/dist/esm/components/TokenSummary/TokenSummary.d.ts.map +1 -1
  42. package/dist/esm/components/TokenSummary/TokenSummary.js +4 -13
  43. package/dist/esm/components/TokenSummary/TokenSummary.js.map +1 -1
  44. package/dist/esm/components/XyoThemeTokenAvatar/XyoThemeTokenAvatar.d.ts +4 -0
  45. package/dist/esm/components/XyoThemeTokenAvatar/XyoThemeTokenAvatar.d.ts.map +1 -0
  46. package/dist/esm/components/XyoThemeTokenAvatar/XyoThemeTokenAvatar.js +7 -0
  47. package/dist/esm/components/XyoThemeTokenAvatar/XyoThemeTokenAvatar.js.map +1 -0
  48. package/dist/esm/components/XyoThemeTokenAvatar/index.d.ts +2 -0
  49. package/dist/esm/components/XyoThemeTokenAvatar/index.d.ts.map +1 -0
  50. package/dist/esm/components/XyoThemeTokenAvatar/index.js +2 -0
  51. package/dist/esm/components/XyoThemeTokenAvatar/index.js.map +1 -0
  52. package/dist/esm/components/XyoThemeTokenAvatarGroup/XyoThemeTokenAvatarGroup.d.ts +7 -0
  53. package/dist/esm/components/XyoThemeTokenAvatarGroup/XyoThemeTokenAvatarGroup.d.ts.map +1 -0
  54. package/dist/esm/components/XyoThemeTokenAvatarGroup/XyoThemeTokenAvatarGroup.js +7 -0
  55. package/dist/esm/components/XyoThemeTokenAvatarGroup/XyoThemeTokenAvatarGroup.js.map +1 -0
  56. package/dist/esm/components/XyoThemeTokenAvatarGroup/index.d.ts +2 -0
  57. package/dist/esm/components/XyoThemeTokenAvatarGroup/index.d.ts.map +1 -0
  58. package/dist/esm/components/XyoThemeTokenAvatarGroup/index.js +2 -0
  59. package/dist/esm/components/XyoThemeTokenAvatarGroup/index.js.map +1 -0
  60. package/dist/esm/components/index.d.ts +3 -0
  61. package/dist/esm/components/index.d.ts.map +1 -1
  62. package/dist/esm/components/index.js +3 -0
  63. package/dist/esm/components/index.js.map +1 -1
  64. package/package.json +9 -8
  65. package/src/components/ApiErrorAlert.tsx +21 -0
  66. package/src/components/ErrorBoundry.tsx +6 -0
  67. package/src/components/TokenSummary/TokenSummary.tsx +5 -13
  68. package/src/components/XyoThemeTokenAvatar/XyoThemeTokenAvatar.stories.tsx +29 -0
  69. package/src/components/XyoThemeTokenAvatar/XyoThemeTokenAvatar.tsx +6 -0
  70. package/src/components/XyoThemeTokenAvatar/index.ts +1 -0
  71. package/src/components/XyoThemeTokenAvatarGroup/XyoThemeTokenAvatarGroup.stories.tsx +42 -0
  72. package/src/components/XyoThemeTokenAvatarGroup/XyoThemeTokenAvatarGroup.tsx +17 -0
  73. package/src/components/XyoThemeTokenAvatarGroup/index.ts +1 -0
  74. package/src/components/index.ts +3 -0
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { AlertProps } from '@mui/material';
3
+ import { XyoApiError } from '@xyo-network/api';
4
+ export interface ApiErrorAlertProps extends AlertProps {
5
+ call?: XyoApiError;
6
+ }
7
+ declare const ApiErrorAlert: React.FC<ApiErrorAlertProps>;
8
+ export { ApiErrorAlert };
9
+ //# sourceMappingURL=ApiErrorAlert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiErrorAlert.d.ts","sourceRoot":"","sources":["../../../src/components/ApiErrorAlert.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAS,UAAU,EAA0B,MAAM,eAAe,CAAA;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,IAAI,CAAC,EAAE,WAAW,CAAA;CACnB;AAED,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAW/C,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Alert, AlertTitle, Typography } from '@mui/material';
3
+ const ApiErrorAlert = ({ call, ...props }) => {
4
+ return (_jsxs(Alert, { severity: "error", ...props, children: [_jsx(AlertTitle, { children: "Whoops! Something went wrong" }), _jsx(Typography, { sx: { wordBreak: 'break-all' }, children: call?.config?.url }), _jsx(Typography, { variant: "caption", mr: 0.5, fontWeight: "bold", children: "Error:" }), _jsx(Typography, { variant: "caption", children: call?.message })] }));
5
+ };
6
+ export { ApiErrorAlert };
7
+ //# sourceMappingURL=ApiErrorAlert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiErrorAlert.js","sourceRoot":"","sources":["../../../src/components/ApiErrorAlert.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAc,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAOzE,MAAM,aAAa,GAAiC,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACzE,OAAO,CACL,MAAC,KAAK,IAAC,QAAQ,EAAC,OAAO,KAAK,KAAK,aAC/B,KAAC,UAAU,+CAA0C,EACrD,KAAC,UAAU,IAAC,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,YAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAc,EAC5E,KAAC,UAAU,IAAC,OAAO,EAAC,SAAS,EAAC,EAAE,EAAE,GAAG,EAAE,UAAU,EAAC,MAAM,uBAE3C,EACb,KAAC,UAAU,IAAC,OAAO,EAAC,SAAS,YAAE,IAAI,EAAE,OAAO,GAAc,IACpD,CACT,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
@@ -2,6 +2,7 @@ import { Component, ErrorInfo, ReactNode } from 'react';
2
2
  export interface ErrorBoundaryProps {
3
3
  children: ReactNode;
4
4
  fallback?: ReactNode;
5
+ fallbackWithError?: (error: Error) => ReactNode;
5
6
  }
6
7
  export interface ErrorBoundaryState {
7
8
  error?: Error;
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorBoundry.d.ts","sourceRoot":"","sources":["../../../src/components/ErrorBoundry.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEvD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAA;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,qBAAa,aAAc,SAAQ,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;gBACtE,KAAK,EAAE,kBAAkB;IAKrC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK;;;IAI5C,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;IAIpD,MAAM;CAcP"}
1
+ {"version":3,"file":"ErrorBoundry.d.ts","sourceRoot":"","sources":["../../../src/components/ErrorBoundry.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEvD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAA;IAEnB,QAAQ,CAAC,EAAE,SAAS,CAAA;IAEpB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,CAAA;CAChD;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,qBAAa,aAAc,SAAQ,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;gBACtE,KAAK,EAAE,kBAAkB;IAKrC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK;;;IAI5C,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;IAIpD,MAAM;CAiBP"}
@@ -15,6 +15,9 @@ export class ErrorBoundary extends Component {
15
15
  }
16
16
  render() {
17
17
  if (this.state.error) {
18
+ if (this.props.fallbackWithError) {
19
+ return this.props.fallbackWithError(this.state.error);
20
+ }
18
21
  return (this.props.fallback ?? (_jsxs(FlexCol, { children: [_jsx(Typography, { variant: "h1", children: "Something went wrong." }), _jsxs(Typography, { variant: "body1", children: ["[", this.state.error?.message, "]"] })] })));
19
22
  }
20
23
  return this.props.children;
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorBoundry.js","sourceRoot":"","sources":["../../../src/components/ErrorBoundry.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAwB,MAAM,OAAO,CAAA;AAWvD,MAAM,OAAO,aAAc,SAAQ,SAAiD;IAClF,YAAY,KAAyB;QACnC,KAAK,CAAC,KAAK,CAAC,CAAA;QACZ,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;IACnC,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,KAAY;QAC1C,OAAO,EAAE,KAAK,EAAE,CAAA;IAClB,CAAC;IAED,iBAAiB,CAAC,KAAY,EAAE,SAAoB;QAClD,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,SAAS,EAAE,CAAC,CAAA;IACzC,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACpB,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CACrB,MAAC,OAAO,eACN,KAAC,UAAU,IAAC,OAAO,EAAC,IAAI,sCAAmC,EAC3D,MAAC,UAAU,IAAC,OAAO,EAAC,OAAO,kBAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,SAAe,IAC9D,CACX,CACF,CAAA;SACF;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;IAC5B,CAAC;CACF"}
1
+ {"version":3,"file":"ErrorBoundry.js","sourceRoot":"","sources":["../../../src/components/ErrorBoundry.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAwB,MAAM,OAAO,CAAA;AAcvD,MAAM,OAAO,aAAc,SAAQ,SAAiD;IAClF,YAAY,KAAyB;QACnC,KAAK,CAAC,KAAK,CAAC,CAAA;QACZ,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;IACnC,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,KAAY;QAC1C,OAAO,EAAE,KAAK,EAAE,CAAA;IAClB,CAAC;IAED,iBAAiB,CAAC,KAAY,EAAE,SAAoB;QAClD,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,SAAS,EAAE,CAAC,CAAA;IACzC,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACpB,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBAChC,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;aACtD;YACD,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CACrB,MAAC,OAAO,eACN,KAAC,UAAU,IAAC,OAAO,EAAC,IAAI,sCAAmC,EAC3D,MAAC,UAAU,IAAC,OAAO,EAAC,OAAO,kBAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,SAAe,IAC9D,CACX,CACF,CAAA;SACF;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;IAC5B,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"TokenSummary.d.ts","sourceRoot":"","sources":["../../../../src/components/TokenSummary/TokenSummary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,WAAW,EAAc,eAAe,EAAwB,MAAM,eAAe,CAAA;AACtG,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyBpD,CAAA"}
1
+ {"version":3,"file":"TokenSummary.d.ts","sourceRoot":"","sources":["../../../../src/components/TokenSummary/TokenSummary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAc,eAAe,EAAc,MAAM,eAAe,CAAA;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAIjC,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,UAAU,CAAC,EAAE,WAAW,CAAA;CACzB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAepD,CAAA"}
@@ -1,16 +1,7 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Avatar, CardHeader, Typography, useTheme } from '@mui/material';
3
- export const TokenSummary = ({ imgBgProps = {}, icon, symbol, symbolElement, children, ...props }) => {
4
- const theme = useTheme();
5
- const avatarProps = {
6
- ...imgBgProps,
7
- sx: {
8
- background: theme.palette.common.white,
9
- height: '40px',
10
- padding: theme.spacing(0.25),
11
- ...imgBgProps.sx,
12
- },
13
- };
14
- return (_jsxs(_Fragment, { children: [_jsx(CardHeader, { avatar: _jsx(Avatar, { src: icon, alt: symbol, ...avatarProps }), title: _jsx(Typography, { variant: "h6", fontWeight: 300, textTransform: "uppercase", children: symbolElement ?? symbol }), ...props }), children] }));
2
+ import { CardHeader, Typography } from '@mui/material';
3
+ import { XyoThemeTokenAvatar } from '../XyoThemeTokenAvatar';
4
+ export const TokenSummary = ({ icon, symbol, symbolElement, children, ...props }) => {
5
+ return (_jsxs(_Fragment, { children: [_jsx(CardHeader, { avatar: _jsx(XyoThemeTokenAvatar, { src: icon, alt: symbol }), title: _jsx(Typography, { variant: "h6", fontWeight: 300, textTransform: "uppercase", children: symbolElement ?? symbol }), ...props }), children] }));
15
6
  };
16
7
  //# sourceMappingURL=TokenSummary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenSummary.js","sourceRoot":"","sources":["../../../../src/components/TokenSummary/TokenSummary.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAe,UAAU,EAAmB,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAUtG,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EAAE,UAAU,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAChI,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,WAAW,GAAG;QAClB,GAAG,UAAU;QACb,EAAE,EAAE;YACF,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;YACtC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAC5B,GAAG,UAAU,CAAC,EAAE;SACjB;KACF,CAAA;IACD,OAAO,CACL,8BACE,KAAC,UAAU,IACT,MAAM,EAAE,KAAC,MAAM,IAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAM,WAAW,GAAI,EAC3D,KAAK,EACH,KAAC,UAAU,IAAC,OAAO,EAAC,IAAI,EAAC,UAAU,EAAE,GAAG,EAAE,aAAa,EAAC,WAAW,YAChE,aAAa,IAAI,MAAM,GACb,KAEX,KAAK,GACT,EACD,QAAQ,IACR,CACJ,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"TokenSummary.js","sourceRoot":"","sources":["../../../../src/components/TokenSummary/TokenSummary.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAe,UAAU,EAAmB,UAAU,EAAE,MAAM,eAAe,CAAA;AAGpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAS5D,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAC/G,OAAO,CACL,8BACE,KAAC,UAAU,IACT,MAAM,EAAE,KAAC,mBAAmB,IAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAI,EACvD,KAAK,EACH,KAAC,UAAU,IAAC,OAAO,EAAC,IAAI,EAAC,UAAU,EAAE,GAAG,EAAE,aAAa,EAAC,WAAW,YAChE,aAAa,IAAI,MAAM,GACb,KAEX,KAAK,GACT,EACD,QAAQ,IACR,CACJ,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { AvatarProps } from '@mui/material';
3
+ export declare const XyoThemeTokenAvatar: React.FC<AvatarProps>;
4
+ //# sourceMappingURL=XyoThemeTokenAvatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoThemeTokenAvatar.d.ts","sourceRoot":"","sources":["../../../../src/components/XyoThemeTokenAvatar/XyoThemeTokenAvatar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAU,WAAW,EAAY,MAAM,eAAe,CAAA;AAE7D,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAGrD,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Avatar, useTheme } from '@mui/material';
3
+ export const XyoThemeTokenAvatar = ({ ...props }) => {
4
+ const theme = useTheme();
5
+ return _jsx(Avatar, { sx: { background: theme.palette.common.white }, ...props });
6
+ };
7
+ //# sourceMappingURL=XyoThemeTokenAvatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoThemeTokenAvatar.js","sourceRoot":"","sources":["../../../../src/components/XyoThemeTokenAvatar/XyoThemeTokenAvatar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAe,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7D,MAAM,CAAC,MAAM,mBAAmB,GAA0B,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACzE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,OAAO,KAAC,MAAM,IAAC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,KAAM,KAAK,GAAI,CAAA;AAC9E,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './XyoThemeTokenAvatar';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/XyoThemeTokenAvatar/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './XyoThemeTokenAvatar';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/XyoThemeTokenAvatar/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { AvatarGroupProps } from '@mui/material';
3
+ export interface XyoThemeTokenAvatarGroupProps extends AvatarGroupProps {
4
+ images?: string[];
5
+ }
6
+ export declare const XyoThemeTokenAvatarGroup: React.FC<XyoThemeTokenAvatarGroupProps>;
7
+ //# sourceMappingURL=XyoThemeTokenAvatarGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoThemeTokenAvatarGroup.d.ts","sourceRoot":"","sources":["../../../../src/components/XyoThemeTokenAvatarGroup/XyoThemeTokenAvatarGroup.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAe,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAI7D,MAAM,WAAW,6BAA8B,SAAQ,gBAAgB;IACrE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAQ5E,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { AvatarGroup } from '@mui/material';
3
+ import { XyoThemeTokenAvatar } from '../XyoThemeTokenAvatar';
4
+ export const XyoThemeTokenAvatarGroup = ({ images, ...props }) => {
5
+ return (_jsx(AvatarGroup, { ...props, children: images?.map((image, index) => (_jsx(XyoThemeTokenAvatar, { src: image }, index))) }));
6
+ };
7
+ //# sourceMappingURL=XyoThemeTokenAvatarGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoThemeTokenAvatarGroup.js","sourceRoot":"","sources":["../../../../src/components/XyoThemeTokenAvatarGroup/XyoThemeTokenAvatarGroup.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAoB,MAAM,eAAe,CAAA;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAM5D,MAAM,CAAC,MAAM,wBAAwB,GAA4C,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACxG,OAAO,CACL,KAAC,WAAW,OAAK,KAAK,YACnB,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC7B,KAAC,mBAAmB,IAAa,GAAG,EAAE,KAAK,IAAjB,KAAK,CAAgB,CAChD,CAAC,GACU,CACf,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './XyoThemeTokenAvatarGroup';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/XyoThemeTokenAvatarGroup/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './XyoThemeTokenAvatarGroup';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/XyoThemeTokenAvatarGroup/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export * from './Ampersand';
2
+ export * from './ApiErrorAlert';
2
3
  export * from './BasicHero';
3
4
  export * from './ErrorBoundry';
4
5
  export * from './JsonRouteWrapper';
@@ -12,4 +13,6 @@ export * from './TokenBar';
12
13
  export * from './TokenData';
13
14
  export * from './TokenSummary';
14
15
  export * from './TypographyEx';
16
+ export * from './XyoThemeTokenAvatar';
17
+ export * from './XyoThemeTokenAvatarGroup';
15
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,QAAQ,CAAA;AACtB,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,QAAQ,CAAA;AACtB,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export * from './Ampersand';
2
+ export * from './ApiErrorAlert';
2
3
  export * from './BasicHero';
3
4
  export * from './ErrorBoundry';
4
5
  export * from './JsonRouteWrapper';
@@ -12,4 +13,6 @@ export * from './TokenBar';
12
13
  export * from './TokenData';
13
14
  export * from './TokenSummary';
14
15
  export * from './TypographyEx';
16
+ export * from './XyoThemeTokenAvatar';
17
+ export * from './XyoThemeTokenAvatarGroup';
15
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,QAAQ,CAAA;AACtB,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,QAAQ,CAAA;AACtB,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA"}
package/package.json CHANGED
@@ -12,9 +12,9 @@
12
12
  "dependencies": {
13
13
  "@emotion/react": "^11.10.0",
14
14
  "@emotion/styled": "^11.10.0",
15
- "@mui/icons-material": "^5.8.4",
16
- "@mui/material": "^5.10.1",
17
- "@mui/styles": "^5.9.3",
15
+ "@mui/icons-material": "^5.10.2",
16
+ "@mui/material": "^5.10.2",
17
+ "@mui/styles": "^5.10.2",
18
18
  "@xylabs/pixel": "^1.4.5",
19
19
  "@xylabs/react-appbar": "^2.14.13",
20
20
  "@xylabs/react-button": "^2.14.13",
@@ -23,7 +23,7 @@
23
23
  "@xylabs/react-link": "^2.14.13",
24
24
  "@xylabs/react-quick-tip-button": "^2.14.13",
25
25
  "@xylabs/react-shared": "^2.14.13",
26
- "@xyo-network/core": "^2.26.19",
26
+ "@xyo-network/core": "^2.27.0-rc.10",
27
27
  "axios": "^0.27.2",
28
28
  "react": "^18.2.0",
29
29
  "react-dom": "^18.2.0",
@@ -35,9 +35,9 @@
35
35
  "devDependencies": {
36
36
  "@storybook/react": "^6.5.10",
37
37
  "@xylabs/pixel": "^1.4.5",
38
- "@xylabs/tsconfig-dom": "^2.5.122",
39
- "@xyo-network/api": "^2.26.19",
40
- "@xyo-network/react-storybook": "^2.28.10"
38
+ "@xylabs/tsconfig-dom": "^2.5.123",
39
+ "@xyo-network/api": "^2.27.0-rc.10",
40
+ "@xyo-network/react-storybook": "^2.29.0-rc.2"
41
41
  },
42
42
  "browser": "dist/esm/index.js",
43
43
  "docs": "dist/docs.json",
@@ -81,5 +81,6 @@
81
81
  },
82
82
  "sideEffects": false,
83
83
  "types": "dist/esm/index.d.ts",
84
- "version": "2.28.10"
84
+ "version": "2.29.0-rc.2",
85
+ "stableVersion": "2.28.10"
85
86
  }
@@ -0,0 +1,21 @@
1
+ import { Alert, AlertProps, AlertTitle, Typography } from '@mui/material'
2
+ import { XyoApiError } from '@xyo-network/api'
3
+
4
+ export interface ApiErrorAlertProps extends AlertProps {
5
+ call?: XyoApiError
6
+ }
7
+
8
+ const ApiErrorAlert: React.FC<ApiErrorAlertProps> = ({ call, ...props }) => {
9
+ return (
10
+ <Alert severity="error" {...props}>
11
+ <AlertTitle>Whoops! Something went wrong</AlertTitle>
12
+ <Typography sx={{ wordBreak: 'break-all' }}>{call?.config?.url}</Typography>
13
+ <Typography variant="caption" mr={0.5} fontWeight="bold">
14
+ Error:
15
+ </Typography>
16
+ <Typography variant="caption">{call?.message}</Typography>
17
+ </Alert>
18
+ )
19
+ }
20
+
21
+ export { ApiErrorAlert }
@@ -4,7 +4,10 @@ import { Component, ErrorInfo, ReactNode } from 'react'
4
4
 
5
5
  export interface ErrorBoundaryProps {
6
6
  children: ReactNode
7
+ // fallback as a static ReactNode value
7
8
  fallback?: ReactNode
9
+ // fallback element that can receive the error as a prop
10
+ fallbackWithError?: (error: Error) => ReactNode
8
11
  }
9
12
 
10
13
  export interface ErrorBoundaryState {
@@ -27,6 +30,9 @@ export class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundarySt
27
30
 
28
31
  render() {
29
32
  if (this.state.error) {
33
+ if (this.props.fallbackWithError) {
34
+ return this.props.fallbackWithError(this.state.error)
35
+ }
30
36
  return (
31
37
  this.props.fallback ?? (
32
38
  <FlexCol>
@@ -1,6 +1,8 @@
1
- import { Avatar, AvatarProps, CardHeader, CardHeaderProps, Typography, useTheme } from '@mui/material'
1
+ import { AvatarProps, CardHeader, CardHeaderProps, Typography } from '@mui/material'
2
2
  import { ReactNode } from 'react'
3
3
 
4
+ import { XyoThemeTokenAvatar } from '../XyoThemeTokenAvatar'
5
+
4
6
  export interface TokenSummaryProps extends CardHeaderProps {
5
7
  icon?: string
6
8
  symbol?: string
@@ -8,21 +10,11 @@ export interface TokenSummaryProps extends CardHeaderProps {
8
10
  imgBgProps?: AvatarProps
9
11
  }
10
12
 
11
- export const TokenSummary: React.FC<TokenSummaryProps> = ({ imgBgProps = {}, icon, symbol, symbolElement, children, ...props }) => {
12
- const theme = useTheme()
13
- const avatarProps = {
14
- ...imgBgProps,
15
- sx: {
16
- background: theme.palette.common.white,
17
- height: '40px',
18
- padding: theme.spacing(0.25),
19
- ...imgBgProps.sx,
20
- },
21
- }
13
+ export const TokenSummary: React.FC<TokenSummaryProps> = ({ icon, symbol, symbolElement, children, ...props }) => {
22
14
  return (
23
15
  <>
24
16
  <CardHeader
25
- avatar={<Avatar src={icon} alt={symbol} {...avatarProps} />}
17
+ avatar={<XyoThemeTokenAvatar src={icon} alt={symbol} />}
26
18
  title={
27
19
  <Typography variant="h6" fontWeight={300} textTransform="uppercase">
28
20
  {symbolElement ?? symbol}
@@ -0,0 +1,29 @@
1
+ import { ComponentMeta, ComponentStory } from '@storybook/react'
2
+ import { BrowserRouter } from 'react-router-dom'
3
+
4
+ import * as tokenData from '../TokenData'
5
+ import { XyoThemeTokenAvatar } from './XyoThemeTokenAvatar'
6
+ const StorybookEntry = {
7
+ argTypes: {},
8
+ component: XyoThemeTokenAvatar,
9
+ parameters: {
10
+ docs: {
11
+ page: null,
12
+ },
13
+ },
14
+ title: 'shared/XyoThemeTokenAvatar',
15
+ } as ComponentMeta<typeof XyoThemeTokenAvatar>
16
+
17
+ const Template: ComponentStory<typeof XyoThemeTokenAvatar> = (args) => (
18
+ <BrowserRouter>
19
+ <XyoThemeTokenAvatar {...args}></XyoThemeTokenAvatar>
20
+ </BrowserRouter>
21
+ )
22
+
23
+ const WithData = Template.bind({})
24
+ WithData.args = { src: tokenData.TokenData[0].icon }
25
+
26
+ export { WithData }
27
+
28
+ // eslint-disable-next-line import/no-default-export
29
+ export default StorybookEntry
@@ -0,0 +1,6 @@
1
+ import { Avatar, AvatarProps, useTheme } from '@mui/material'
2
+
3
+ export const XyoThemeTokenAvatar: React.FC<AvatarProps> = ({ ...props }) => {
4
+ const theme = useTheme()
5
+ return <Avatar sx={{ background: theme.palette.common.white }} {...props} />
6
+ }
@@ -0,0 +1 @@
1
+ export * from './XyoThemeTokenAvatar'
@@ -0,0 +1,42 @@
1
+ import { ComponentMeta, ComponentStory } from '@storybook/react'
2
+ import { BrowserRouter } from 'react-router-dom'
3
+
4
+ import * as tokenData from '../TokenData'
5
+ import { XyoThemeTokenAvatarGroup } from './XyoThemeTokenAvatarGroup'
6
+ const StorybookEntry = {
7
+ argTypes: {},
8
+ component: XyoThemeTokenAvatarGroup,
9
+ parameters: {
10
+ docs: {
11
+ page: null,
12
+ },
13
+ },
14
+ title: 'shared/XyoThemeTokenAvatarGroup',
15
+ } as ComponentMeta<typeof XyoThemeTokenAvatarGroup>
16
+
17
+ const Template: ComponentStory<typeof XyoThemeTokenAvatarGroup> = (args) => (
18
+ <BrowserRouter>
19
+ <XyoThemeTokenAvatarGroup {...args}></XyoThemeTokenAvatarGroup>
20
+ </BrowserRouter>
21
+ )
22
+
23
+ const WithData = Template.bind({})
24
+ WithData.args = {
25
+ images: [
26
+ tokenData.TokenData[0].icon,
27
+ tokenData.TokenData[1].icon,
28
+ tokenData.TokenData[2].icon,
29
+ tokenData.TokenData[3].icon,
30
+ tokenData.TokenData[4].icon,
31
+ tokenData.TokenData[6].icon,
32
+ tokenData.TokenData[7].icon,
33
+ tokenData.TokenData[8].icon,
34
+ tokenData.TokenData[9].icon,
35
+ tokenData.TokenData[10].icon,
36
+ ],
37
+ }
38
+
39
+ export { WithData }
40
+
41
+ // eslint-disable-next-line import/no-default-export
42
+ export default StorybookEntry
@@ -0,0 +1,17 @@
1
+ import { AvatarGroup, AvatarGroupProps } from '@mui/material'
2
+
3
+ import { XyoThemeTokenAvatar } from '../XyoThemeTokenAvatar'
4
+
5
+ export interface XyoThemeTokenAvatarGroupProps extends AvatarGroupProps {
6
+ images?: string[]
7
+ }
8
+
9
+ export const XyoThemeTokenAvatarGroup: React.FC<XyoThemeTokenAvatarGroupProps> = ({ images, ...props }) => {
10
+ return (
11
+ <AvatarGroup {...props}>
12
+ {images?.map((image, index) => (
13
+ <XyoThemeTokenAvatar key={index} src={image} />
14
+ ))}
15
+ </AvatarGroup>
16
+ )
17
+ }
@@ -0,0 +1 @@
1
+ export * from './XyoThemeTokenAvatarGroup'
@@ -1,4 +1,5 @@
1
1
  export * from './Ampersand'
2
+ export * from './ApiErrorAlert'
2
3
  export * from './BasicHero'
3
4
  export * from './ErrorBoundry'
4
5
  export * from './JsonRouteWrapper'
@@ -12,3 +13,5 @@ export * from './TokenBar'
12
13
  export * from './TokenData'
13
14
  export * from './TokenSummary'
14
15
  export * from './TypographyEx'
16
+ export * from './XyoThemeTokenAvatar'
17
+ export * from './XyoThemeTokenAvatarGroup'