@xyo-network/react-shared 5.0.7 → 5.1.1
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.
- package/dist/browser/index.mjs +32 -48
- package/dist/browser/index.mjs.map +1 -1
- package/dist/types/components/BasicHero/BasicHero.d.ts.map +1 -1
- package/dist/types/contexts/contextEx/create.d.ts.map +1 -1
- package/dist/types/hooks/GradientStyles/GradientStyles.d.ts +16 -19
- package/dist/types/hooks/GradientStyles/GradientStyles.d.ts.map +1 -1
- package/dist/types/hooks/index.d.ts +0 -1
- package/dist/types/hooks/index.d.ts.map +1 -1
- package/package.json +28 -29
- package/src/components/BasicHero/BasicHero.tsx +14 -7
- package/src/components/TypographyEx.tsx +2 -2
- package/src/contexts/contextEx/create.ts +1 -0
- package/src/hooks/GradientStyles/GradientStyle.stories.tsx +4 -5
- package/src/hooks/GradientStyles/GradientStyles.tsx +2 -4
- package/src/hooks/index.ts +0 -1
- package/dist/types/hooks/useIsMobile.d.ts +0 -4
- package/dist/types/hooks/useIsMobile.d.ts.map +0 -1
- package/src/hooks/useIsMobile.ts +0 -14
package/dist/browser/index.mjs
CHANGED
|
@@ -13,15 +13,15 @@ var Ampersand = /* @__PURE__ */ __name((props) => {
|
|
|
13
13
|
}, "Ampersand");
|
|
14
14
|
|
|
15
15
|
// src/components/BasicHero/BasicHero.tsx
|
|
16
|
-
import { Container, Grid, Typography as Typography2 } from "@mui/material";
|
|
16
|
+
import { Container, Grid, styled, Typography as Typography2 } from "@mui/material";
|
|
17
17
|
import { ButtonEx } from "@xylabs/react-button";
|
|
18
18
|
import { FlexGrowCol, FlexGrowRow } from "@xylabs/react-flexbox";
|
|
19
19
|
import { LinkEx } from "@xylabs/react-link";
|
|
20
|
+
import { useIsSmall } from "@xylabs/react-theme";
|
|
20
21
|
import React2 from "react";
|
|
21
22
|
|
|
22
23
|
// src/hooks/GradientStyles/GradientStyles.tsx
|
|
23
24
|
import { useTheme } from "@mui/material";
|
|
24
|
-
import { makeStyles } from "@mui/styles";
|
|
25
25
|
var colorfulGradientLightMode = /* @__PURE__ */ __name(() => {
|
|
26
26
|
return {
|
|
27
27
|
background: {
|
|
@@ -67,11 +67,7 @@ var colorfulGradientDarkMode = /* @__PURE__ */ __name(() => {
|
|
|
67
67
|
var useGradientStyles = /* @__PURE__ */ __name(() => {
|
|
68
68
|
const theme = useTheme();
|
|
69
69
|
const styles = theme.palette.mode === "dark" ? colorfulGradientDarkMode() : colorfulGradientLightMode();
|
|
70
|
-
|
|
71
|
-
return {
|
|
72
|
-
classes,
|
|
73
|
-
styles
|
|
74
|
-
};
|
|
70
|
+
return styles;
|
|
75
71
|
}, "useGradientStyles");
|
|
76
72
|
|
|
77
73
|
// src/hooks/payload/useBoundWitnessValidate.tsx
|
|
@@ -172,22 +168,9 @@ var useDataState = /* @__PURE__ */ __name((defaultValue) => {
|
|
|
172
168
|
];
|
|
173
169
|
}, "useDataState");
|
|
174
170
|
|
|
175
|
-
// src/hooks/useIsMobile.ts
|
|
176
|
-
import { useTheme as useTheme2 } from "@mui/material";
|
|
177
|
-
|
|
178
171
|
// src/hooks/useMediaQuery.ts
|
|
179
172
|
import { useMediaQuery } from "@mui/material";
|
|
180
173
|
|
|
181
|
-
// src/hooks/useIsMobile.ts
|
|
182
|
-
var useIsMobile = /* @__PURE__ */ __name(() => {
|
|
183
|
-
const theme = useTheme2();
|
|
184
|
-
return useMediaQuery(theme.breakpoints.down("md"));
|
|
185
|
-
}, "useIsMobile");
|
|
186
|
-
var useIsSmall = /* @__PURE__ */ __name(() => {
|
|
187
|
-
const theme = useTheme2();
|
|
188
|
-
return useMediaQuery(theme.breakpoints.down("md"));
|
|
189
|
-
}, "useIsSmall");
|
|
190
|
-
|
|
191
174
|
// src/hooks/useShareForwardRef.ts
|
|
192
175
|
import { useEffect, useRef } from "react";
|
|
193
176
|
var useShareForwardedRef = /* @__PURE__ */ __name((forwardedRef, refresh = 0) => {
|
|
@@ -275,7 +258,10 @@ var ButtonSection = /* @__PURE__ */ __name(({ href, to, buttonText }) => {
|
|
|
275
258
|
}, "ButtonSection");
|
|
276
259
|
var BasicHero = /* @__PURE__ */ __name(({ backgroundImage, title, gradientTitle, backgroundColor, textColor, desc, heroImage, title2, subLinkText1, subLinkText2, subLinkPath, button1Text, button2Text, button2To, button1To, button2Href, button1Href, subLinkIcon, sx, ...props }) => {
|
|
277
260
|
const isMobile = useIsSmall();
|
|
278
|
-
const
|
|
261
|
+
const styles = useGradientStyles();
|
|
262
|
+
const StyledSpan = styled("span")({
|
|
263
|
+
...styles.heading
|
|
264
|
+
});
|
|
279
265
|
return /* @__PURE__ */ React2.createElement(FlexGrowCol, {
|
|
280
266
|
sx: {
|
|
281
267
|
backgroundImage: `url(${backgroundImage})`,
|
|
@@ -311,11 +297,12 @@ var BasicHero = /* @__PURE__ */ __name(({ backgroundImage, title, gradientTitle,
|
|
|
311
297
|
}
|
|
312
298
|
}
|
|
313
299
|
}, /* @__PURE__ */ React2.createElement(Grid, {
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
300
|
+
size: {
|
|
301
|
+
xs: 12,
|
|
302
|
+
sm: 8,
|
|
303
|
+
md: backgroundImage ? 6 : 8,
|
|
304
|
+
lg: backgroundImage ? 6 : 8
|
|
305
|
+
}
|
|
319
306
|
}, /* @__PURE__ */ React2.createElement(FlexGrowCol, {
|
|
320
307
|
paddingY: 2,
|
|
321
308
|
sx: {
|
|
@@ -328,9 +315,7 @@ var BasicHero = /* @__PURE__ */ __name(({ backgroundImage, title, gradientTitle,
|
|
|
328
315
|
component: "h1",
|
|
329
316
|
gutterBottom: true,
|
|
330
317
|
textAlign: backgroundImage && !isMobile ? "left" : "center"
|
|
331
|
-
}, title ? /* @__PURE__ */ React2.createElement("span", null, `${title} `) : null, gradientTitle ? /* @__PURE__ */ React2.createElement("span", {
|
|
332
|
-
className: classes().heading
|
|
333
|
-
}, " ", ` ${gradientTitle}`) : null, title2 ? /* @__PURE__ */ React2.createElement("span", null, ` ${title2}`) : null), /* @__PURE__ */ React2.createElement(Typography2, {
|
|
318
|
+
}, title ? /* @__PURE__ */ React2.createElement("span", null, `${title} `) : null, gradientTitle ? /* @__PURE__ */ React2.createElement(StyledSpan, null, " ", ` ${gradientTitle}`) : null, title2 ? /* @__PURE__ */ React2.createElement("span", null, ` ${title2}`) : null), /* @__PURE__ */ React2.createElement(Typography2, {
|
|
334
319
|
variant: "body1",
|
|
335
320
|
component: "h2",
|
|
336
321
|
gutterBottom: true,
|
|
@@ -367,9 +352,10 @@ var BasicHero = /* @__PURE__ */ __name(({ backgroundImage, title, gradientTitle,
|
|
|
367
352
|
subLinkPath,
|
|
368
353
|
backgroundImageAlignment: backgroundImage ? true : false
|
|
369
354
|
}))), /* @__PURE__ */ React2.createElement(Grid, {
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
355
|
+
size: {
|
|
356
|
+
xs: 12,
|
|
357
|
+
md: 6
|
|
358
|
+
}
|
|
373
359
|
}, heroImage ? /* @__PURE__ */ React2.createElement("img", {
|
|
374
360
|
src: heroImage,
|
|
375
361
|
width: "100%"
|
|
@@ -529,10 +515,10 @@ var BigIntInput = {
|
|
|
529
515
|
};
|
|
530
516
|
|
|
531
517
|
// src/components/Ellipsize.tsx
|
|
532
|
-
import { Box, styled, Typography as Typography3 } from "@mui/material";
|
|
518
|
+
import { Box, styled as styled2, Typography as Typography3 } from "@mui/material";
|
|
533
519
|
import React6, { useCallback, useState as useState4 } from "react";
|
|
534
520
|
var ComponentName = "Ellipsize";
|
|
535
|
-
var EllipsizeRoot =
|
|
521
|
+
var EllipsizeRoot = styled2(Box, {
|
|
536
522
|
name: ComponentName,
|
|
537
523
|
shouldForwardProp: /* @__PURE__ */ __name((prop) => prop !== "beforeLineHeight", "shouldForwardProp"),
|
|
538
524
|
slot: "Root"
|
|
@@ -553,13 +539,13 @@ var EllipsizeRoot = styled(Box, {
|
|
|
553
539
|
}
|
|
554
540
|
}
|
|
555
541
|
}));
|
|
556
|
-
var EllipsizeInnerWrap =
|
|
542
|
+
var EllipsizeInnerWrap = styled2(Box, {
|
|
557
543
|
name: ComponentName,
|
|
558
544
|
slot: "innerWrap"
|
|
559
545
|
})(() => ({
|
|
560
546
|
position: "relative"
|
|
561
547
|
}));
|
|
562
|
-
var EllipsizeContentWrap =
|
|
548
|
+
var EllipsizeContentWrap = styled2(Typography3, {
|
|
563
549
|
name: ComponentName,
|
|
564
550
|
shouldForwardProp: /* @__PURE__ */ __name((prop) => prop !== "ellipsisPosition", "shouldForwardProp"),
|
|
565
551
|
slot: "contentWrap"
|
|
@@ -699,9 +685,9 @@ var PayloadDataMissing = /* @__PURE__ */ __name(({ alertBody, ...props }) => {
|
|
|
699
685
|
}, "PayloadDataMissing");
|
|
700
686
|
|
|
701
687
|
// src/components/ScrollTableOnSm.tsx
|
|
702
|
-
import { styled as
|
|
688
|
+
import { styled as styled3 } from "@mui/material";
|
|
703
689
|
import React13 from "react";
|
|
704
|
-
var StyledScrollTableOnSm =
|
|
690
|
+
var StyledScrollTableOnSm = styled3("div")(({ theme }) => ({
|
|
705
691
|
[theme.breakpoints.down("md")]: {
|
|
706
692
|
overflowX: "scroll"
|
|
707
693
|
},
|
|
@@ -711,11 +697,11 @@ var StyledScrollTableOnSm = styled2("div")(({ theme }) => ({
|
|
|
711
697
|
var ScrollTableOnSm = /* @__PURE__ */ __name(({ children }) => /* @__PURE__ */ React13.createElement(StyledScrollTableOnSm, null, children), "ScrollTableOnSm");
|
|
712
698
|
|
|
713
699
|
// src/components/SectionSpacingRow/SectionSpacingRow.tsx
|
|
714
|
-
import { useTheme as
|
|
700
|
+
import { useTheme as useTheme2 } from "@mui/material";
|
|
715
701
|
import { FlexGrowRow as FlexGrowRow3 } from "@xylabs/react-flexbox";
|
|
716
702
|
import React14 from "react";
|
|
717
703
|
var SectionSpacingRow = /* @__PURE__ */ __name(({ ref, children, sx, ...props }) => {
|
|
718
|
-
const theme =
|
|
704
|
+
const theme = useTheme2();
|
|
719
705
|
return /* @__PURE__ */ React14.createElement(FlexGrowRow3, {
|
|
720
706
|
sx: {
|
|
721
707
|
paddingBottom: {
|
|
@@ -739,10 +725,10 @@ SectionSpacingRow.displayName = "SectionSpacingRow";
|
|
|
739
725
|
import React16 from "react";
|
|
740
726
|
|
|
741
727
|
// src/components/TableCell/EllipsisTableCell.tsx
|
|
742
|
-
import { styled as
|
|
728
|
+
import { styled as styled4, TableCell } from "@mui/material";
|
|
743
729
|
import { asLinkHrefOrToProps, LinkEx as LinkEx2 } from "@xylabs/react-link";
|
|
744
730
|
import React15, { useMemo as useMemo3 } from "react";
|
|
745
|
-
var EllipsisTableCellRoot =
|
|
731
|
+
var EllipsisTableCellRoot = styled4(TableCell, {
|
|
746
732
|
name: "EllipsisTableCell",
|
|
747
733
|
shouldForwardProp: /* @__PURE__ */ __name((prop) => prop !== "width", "shouldForwardProp"),
|
|
748
734
|
slot: "Root"
|
|
@@ -823,10 +809,10 @@ var HashTableCell = /* @__PURE__ */ __name(({ value, archive, dataType, network,
|
|
|
823
809
|
}, "HashTableCell");
|
|
824
810
|
|
|
825
811
|
// src/components/ThemeTokenAvatar/ThemeTokenAvatar.tsx
|
|
826
|
-
import { Avatar as Avatar2, useTheme as
|
|
812
|
+
import { Avatar as Avatar2, useTheme as useTheme3 } from "@mui/material";
|
|
827
813
|
import React18 from "react";
|
|
828
814
|
var ThemeTokenAvatar = /* @__PURE__ */ __name(({ ...props }) => {
|
|
829
|
-
const theme =
|
|
815
|
+
const theme = useTheme3();
|
|
830
816
|
return /* @__PURE__ */ React18.createElement(Avatar2, {
|
|
831
817
|
sx: {
|
|
832
818
|
background: theme.palette.common.white
|
|
@@ -1043,9 +1029,9 @@ var TokenSummary = /* @__PURE__ */ __name(({ icon, symbol, symbolElement, childr
|
|
|
1043
1029
|
import { Typography as Typography9 } from "@mui/material";
|
|
1044
1030
|
import React22 from "react";
|
|
1045
1031
|
var TypographyEx = /* @__PURE__ */ __name(({ gradient, ...props }) => {
|
|
1046
|
-
const
|
|
1032
|
+
const styles = useGradientStyles();
|
|
1047
1033
|
return /* @__PURE__ */ React22.createElement(Typography9, {
|
|
1048
|
-
|
|
1034
|
+
style: gradient === "text" ? styles.heading : void 0,
|
|
1049
1035
|
...props
|
|
1050
1036
|
});
|
|
1051
1037
|
}, "TypographyEx");
|
|
@@ -1279,8 +1265,6 @@ export {
|
|
|
1279
1265
|
useDataState,
|
|
1280
1266
|
useGetTokenData,
|
|
1281
1267
|
useGradientStyles,
|
|
1282
|
-
useIsMobile,
|
|
1283
|
-
useIsSmall,
|
|
1284
1268
|
useListMode,
|
|
1285
1269
|
useMediaQuery,
|
|
1286
1270
|
usePayloadHash,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/Ampersand.tsx","../../src/components/BasicHero/BasicHero.tsx","../../src/hooks/GradientStyles/GradientStyles.tsx","../../src/hooks/payload/useBoundWitnessValidate.tsx","../../src/hooks/payload/usePayloadHash.tsx","../../src/hooks/payload/usePayloadValidate.tsx","../../src/hooks/useDataState.ts","../../src/hooks/useIsMobile.ts","../../src/hooks/useMediaQuery.ts","../../src/hooks/useShareForwardRef.ts","../../src/components/bigint/FixedPointPopover.tsx","../../src/components/bigint/TextField.tsx","../../src/components/bigint/InputAdornment.tsx","../../src/components/bigint/Input.ts","../../src/components/Ellipsize.tsx","../../src/components/LabeledTextFieldWrapper.tsx","../../src/components/ListItemButtonEx.tsx","../../src/components/LoadResult.tsx","../../src/components/NotFound.tsx","../../src/components/Pipe.tsx","../../src/components/pluginValidation/DataMissing.tsx","../../src/components/ScrollTableOnSm.tsx","../../src/components/SectionSpacingRow/SectionSpacingRow.tsx","../../src/components/TableCell/AddressTableCell.tsx","../../src/components/TableCell/EllipsisTableCell.tsx","../../src/components/TableCell/HashTableCell.tsx","../../src/components/ThemeTokenAvatar/ThemeTokenAvatar.tsx","../../src/components/ThemeTokenAvatarGroup/ThemeTokenAvatarGroup.tsx","../../src/components/TokenBar/TokenBar.tsx","../../src/components/TokenData/img/index.ts","../../src/components/TokenData/TokenData.ts","../../src/components/TokenData/useGetTokenData.tsx","../../src/components/TokenSummary/TokenSummary.tsx","../../src/components/TypographyEx.tsx","../../src/contexts/contextEx/create.ts","../../src/contexts/contextEx/use.ts","../../src/contexts/diviner/Context.ts","../../src/contexts/diviner/Provider.tsx","../../src/contexts/ListMode/Context.ts","../../src/contexts/ListMode/Provider.tsx","../../src/contexts/ListMode/use.ts","../../src/lib/assertDefinedEx.ts","../../src/lib/getActualPaddingX.ts","../../src/lib/networkComponents.tsx"],"sourcesContent":["import type { TypographyProps } from '@mui/material'\nimport { Typography } from '@mui/material'\nimport React from 'react'\n\nexport const Ampersand: React.FC<TypographyProps> = (props) => {\n return (\n <Typography marginX={1} component=\"span\" {...props}>\n &\n </Typography>\n )\n}\n","import {\n Container, Grid, Typography,\n} from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexGrowCol, FlexGrowRow } from '@xylabs/react-flexbox'\nimport { LinkEx } from '@xylabs/react-link'\nimport type { ReactElement } from 'react'\nimport React from 'react'\nimport type { To } from 'react-router-dom'\n\nimport { useGradientStyles, useIsSmall } from '../../hooks/index.ts'\n\nexport interface BasicHeroProps extends FlexBoxProps {\n backgroundColor?: string\n backgroundImage?: string\n button1Href?: string\n button1Text?: string\n button1To?: string\n button2Href?: string\n button2Text?: string\n button2To?: string\n desc: string\n gradientTitle?: string\n heroImage?: string\n subLinkIcon?: ReactElement\n subLinkPath?: string\n subLinkText1?: string\n subLinkText2?: string\n sx?: Record<string, string>\n textColor?: string\n title: string\n title2?: string\n}\n\ninterface SubLinkSectionProps {\n backgroundImageAlignment?: boolean\n subLinkIcon?: ReactElement\n subLinkPath?: string\n subLinkText1?: string\n subLinkText2?: string\n}\n\ninterface ButtonSectionBaseProps {\n buttonText?: string\n}\n\ninterface ButtonSectionHrefProps extends ButtonSectionBaseProps {\n href?: string\n to?: never\n}\n\ninterface ButtonSectionToProps extends ButtonSectionBaseProps {\n href?: never\n to?: To\n}\n\ninterface ButtonSectionClickProps extends ButtonSectionBaseProps {\n href?: never\n to?: never\n}\n\ntype ButtonSectionProps = ButtonSectionHrefProps | ButtonSectionToProps | ButtonSectionClickProps\n\nconst SubLinkSection: React.FC<SubLinkSectionProps> = ({\n backgroundImageAlignment, subLinkIcon, subLinkPath, subLinkText1, subLinkText2,\n}) => {\n return (\n <FlexGrowRow\n width=\"100%\"\n sx={{\n flexDirection: { md: 'row', xs: 'column' },\n justifyContent: { md: backgroundImageAlignment ? 'flex-start' : 'center', xs: 'center' },\n }}\n >\n {subLinkIcon\n ? (\n <span>\n {subLinkIcon}\n \n </span>\n )\n : null}\n <Typography>\n {subLinkText1}\n \n </Typography>\n <LinkEx href={subLinkPath} underline=\"always\" target=\"_blank\" color=\"inherit\">\n <Typography>{subLinkText2}</Typography>\n </LinkEx>\n </FlexGrowRow>\n )\n}\n\nconst ButtonSection: React.FC<ButtonSectionProps> = ({\n href, to, buttonText,\n}) => {\n const isMobile = useIsSmall()\n return href\n ? (\n <ButtonEx\n fullWidth={true}\n marginTop={1}\n marginBottom={1}\n marginRight={isMobile ? 2 : 1}\n marginLeft={isMobile ? 2 : 0}\n target={href ?? '_blank'}\n href={href}\n color=\"primary\"\n variant=\"contained\"\n paddingX={3}\n sx={{ display: href || to ? 'flex' : 'none' }}\n >\n {buttonText}\n </ButtonEx>\n )\n : to\n ? (\n <ButtonEx\n fullWidth={true}\n marginTop={1}\n marginBottom={1}\n marginRight={isMobile ? 2 : 1}\n marginLeft={isMobile ? 2 : 0}\n to={to}\n color=\"primary\"\n variant=\"contained\"\n paddingX={3}\n sx={{ display: href || to ? 'flex' : 'none' }}\n >\n {buttonText}\n </ButtonEx>\n )\n : (\n <ButtonEx\n fullWidth={true}\n marginTop={1}\n marginBottom={1}\n marginRight={isMobile ? 2 : 1}\n marginLeft={isMobile ? 2 : 0}\n color=\"primary\"\n variant=\"contained\"\n paddingX={3}\n sx={{ display: href || to ? 'flex' : 'none' }}\n >\n {buttonText}\n </ButtonEx>\n )\n}\n\n// eslint-disable-next-line complexity\nexport const BasicHero: React.FC<BasicHeroProps> = ({\n backgroundImage,\n title,\n gradientTitle,\n backgroundColor,\n textColor,\n desc,\n heroImage,\n title2,\n subLinkText1,\n subLinkText2,\n subLinkPath,\n button1Text,\n button2Text,\n button2To,\n button1To,\n button2Href,\n button1Href,\n subLinkIcon,\n sx,\n ...props\n}) => {\n const isMobile = useIsSmall()\n const { classes } = useGradientStyles()\n return (\n <FlexGrowCol\n sx={{\n backgroundImage: `url(${backgroundImage})`,\n backgroundPosition: {\n lg: 'bottom', md: 'center left', xs: 'top left',\n },\n minHeight: {\n md: '500px',\n sm: '400px',\n xs: '200px',\n },\n ...sx,\n }}\n style={{\n backgroundColor: backgroundColor ?? '',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n color: textColor ?? '',\n }}\n {...props}\n >\n <Container>\n <Grid\n container\n justifyContent=\"center\"\n alignItems=\"center\"\n sx={{\n alignItems: { xs: 'center' },\n justifyContent: { xs: 'center' },\n }}\n >\n <Grid item xs={12} sm={8} md={backgroundImage ? 6 : 8} lg={backgroundImage ? 6 : 8}>\n <FlexGrowCol paddingY={2} sx={{ alignItems: { xs: backgroundImage && !isMobile ? 'flex-start' : 'center' } }}>\n <Typography variant=\"h1\" component=\"h1\" gutterBottom textAlign={backgroundImage && !isMobile ? 'left' : 'center'}>\n {title\n ? <span>{`${title} `}</span>\n : null}\n {gradientTitle\n ? (\n <span className={classes().heading}>\n {' '}\n {` ${gradientTitle}`}\n </span>\n )\n : null}\n {title2\n ? <span>{` ${title2}`}</span>\n : null}\n </Typography>\n <Typography variant=\"body1\" component=\"h2\" gutterBottom textAlign={backgroundImage && !isMobile ? 'left' : 'center'}>\n {desc}\n </Typography>\n <FlexGrowRow\n sx={{ flexDirection: { lg: 'row', xs: 'column' } }}\n width=\"100%\"\n marginTop={1}\n >\n {\n button1Href\n ? <ButtonSection href={button1Href} buttonText={button1Text} />\n : button1To ? <ButtonSection to={button1To} buttonText={button1Text} /> : <ButtonSection buttonText={button1Text} />\n }\n {\n button2Href\n ? <ButtonSection href={button2Href} buttonText={button2Text} />\n : button2To ? <ButtonSection to={button2To} buttonText={button2Text} /> : <ButtonSection buttonText={button2Text} />\n }\n </FlexGrowRow>\n <SubLinkSection\n subLinkIcon={subLinkIcon}\n subLinkText1={subLinkText1}\n subLinkText2={subLinkText2}\n subLinkPath={subLinkPath}\n backgroundImageAlignment={backgroundImage ? true : false}\n />\n </FlexGrowCol>\n </Grid>\n <Grid item xs={12} md={6}>\n {heroImage\n ? <img src={heroImage} width=\"100%\" />\n : null}\n </Grid>\n </Grid>\n </Container>\n </FlexGrowCol>\n )\n}\n","import { useTheme } from '@mui/material'\nimport { makeStyles } from '@mui/styles'\nimport type { CSSProperties } from 'react'\n\nexport interface GradientStyles {\n background: CSSProperties\n border: CSSProperties\n heading: CSSProperties\n}\n\nexport const colorfulGradientLightMode = () => {\n return {\n background: { backgroundImage: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)' },\n border: {\n borderImage: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n borderImageSlice: 1,\n borderImageSource: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n borderRadius: 0,\n borderStyle: 'solid',\n borderWidth: '2px',\n },\n heading: {\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n background: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n display: 'inline-block',\n },\n }\n}\n\nexport const colorfulGradientDarkMode = () => {\n return {\n background: { backgroundImage: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)' },\n border: {\n borderImage: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n borderImageSlice: 1,\n borderImageSource: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n borderRadius: 0,\n borderStyle: 'solid',\n borderWidth: '2px',\n },\n heading: {\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n background: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n display: 'inline-block',\n },\n }\n}\n\nexport const useGradientStyles = () => {\n const theme = useTheme()\n const styles = theme.palette.mode === 'dark' ? colorfulGradientDarkMode() : colorfulGradientLightMode()\n const classes = makeStyles(styles)\n return { classes, styles }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { isAnyPayload } from '@xyo-network/payload-model'\n\nimport type { ValidatedResponse } from './types/index.ts'\n\nexport const useValidateBoundWitness = (input?: string): ValidatedResponse<BoundWitness> => {\n const [output, validationError] = usePromise(async () => {\n if (!input) return\n\n const object = JSON.parse(input)\n const validPayload = assertEx(isAnyPayload(object) ? object : null, () => 'Invalid payload')\n\n const errors = await new BoundWitnessValidator(validPayload as BoundWitness).validate()\n return {\n payload: validPayload as BoundWitness,\n errors,\n }\n }, [input])\n\n const { payload, errors } = output ?? {}\n\n return {\n payload,\n errors: [validationError, ...errors ?? []].filter<Error>(error => !!error),\n }\n}\n","import type { Hash } from '@xylabs/hex'\nimport { usePromise } from '@xylabs/react-promise'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { type Payload } from '@xyo-network/payload-model'\n\nexport const usePayloadHash = <TPayload extends Payload>(payload: TPayload | undefined | null) => {\n return usePromise(async () => (payload ? await PayloadBuilder.dataHash(payload) : undefined), [payload])[0]\n}\n\nexport const usePayloadRootHash = <TPayload extends Payload>(payload: TPayload | undefined | null) => {\n return usePromise(async () => (payload ? await PayloadBuilder.hash(payload) : undefined), [payload])[0]\n}\n\nexport const usePayloadHashes = <TPayload extends Payload>(payloads: TPayload[] | undefined | null) => {\n return usePromise(\n async () =>\n payloads\n ? await Promise.all(payloads.map<Promise<[TPayload, Hash]>>(async payload => [payload, await PayloadBuilder.dataHash(payload)]))\n : undefined,\n [payloads],\n )[0]\n}\n","import { assertEx } from '@xylabs/assert'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isAnyPayload } from '@xyo-network/payload-model'\nimport { useMemo } from 'react'\n\nimport type { ValidatedResponse } from './types/index.ts'\n\nexport const usePayloadValidate = <TPayload extends Payload>(input?: string): ValidatedResponse => {\n return useMemo(() => {\n if (!input) return {}\n try {\n const object = JSON.parse(input)\n const validPayload = assertEx(isAnyPayload(object) ? object : null, () => 'Invalid payload')\n const { schema, ...fields } = validPayload\n return { payload: new PayloadBuilder({ schema }).fields(fields).build() as TPayload }\n } catch (error) {\n return { errors: [error as Error] }\n }\n }, [input])\n}\n","import type { Dispatch, SetStateAction } from 'react'\nimport { useState } from 'react'\n\nexport const useDataState = <T>(defaultValue: T | undefined): [T | undefined, Dispatch<SetStateAction<T | undefined>>] => {\n const [state, setState] = useState(defaultValue)\n\n const setDataState: Dispatch<SetStateAction<T | undefined>> = (value: SetStateAction<T | undefined>) => {\n try {\n if (JSON.stringify(value) !== JSON.stringify(state)) {\n setState(value)\n }\n } catch {\n console.error('setDataState failed! Make sure data type is stringifiable!')\n }\n }\n\n return [state, setDataState]\n}\n","import { useTheme } from '@mui/material'\n\nimport { useMediaQuery } from './useMediaQuery.ts'\n\n/** @deprecated use useIsSmall instead */\nexport const useIsMobile = () => {\n const theme = useTheme()\n return useMediaQuery(theme.breakpoints.down('md'))\n}\n\nexport const useIsSmall = () => {\n const theme = useTheme()\n return useMediaQuery(theme.breakpoints.down('md'))\n}\n","/* This file only exists to deal with the false positive lint error */\n\nexport { useMediaQuery } from '@mui/material'\n","import type { ForwardedRef } from 'react'\nimport { useEffect, useRef } from 'react'\n\nexport const useShareForwardedRef = <T>(forwardedRef: ForwardedRef<T> | null | undefined, refresh = 0) => {\n // final ref that will share value with forward ref. this is the one to be attached to components\n const innerRef = useRef<T>(null)\n\n useEffect(() => {\n if (!forwardedRef) {\n return\n }\n if (typeof forwardedRef === 'function') {\n forwardedRef(innerRef.current)\n return\n } else {\n forwardedRef.current = innerRef.current\n }\n }, [forwardedRef, refresh])\n\n return innerRef\n}\n","import {\n FormHelperText, Popover, type PopoverProps, TextField,\n} from '@mui/material'\nimport React from 'react'\n\nexport interface FixedPointPopoverProps extends PopoverProps {\n fixedPoint?: number\n minFixedPoint?: number\n onFixedPointChange?: (value: number) => void\n}\n\nexport const FixedPointPopover: React.FC<FixedPointPopoverProps> = ({\n fixedPoint, minFixedPoint: minimumPoint, onFixedPointChange, ...props\n}) => {\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const fixedPointInteger = Number.parseInt(event.target.value, 10)\n if (Number.isNaN(fixedPointInteger)) return\n onFixedPointChange?.(fixedPointInteger)\n }\n\n return (\n <Popover slotProps={{ paper: { sx: { p: 2 } } }} {...props}>\n <TextField slotProps={{ htmlInput: { min: minimumPoint } }} value={fixedPoint} onChange={handleChange} type=\"number\" />\n <FormHelperText>Set the Fixed Point</FormHelperText>\n </Popover>\n )\n}\n","import type { FormControlProps, StandardTextFieldProps } from '@mui/material'\nimport {\n FormControl, FormHelperText, TextField,\n} from '@mui/material'\nimport { toFixedPoint } from '@xylabs/decimal-precision'\nimport type { FocusEventHandler } from 'react'\nimport React, {\n useEffect, useMemo, useState,\n} from 'react'\n\nimport { FixedPointInputAdornment } from './InputAdornment.tsx'\n\nexport interface BigIntTextFieldProps extends StandardTextFieldProps {\n defaultFixedPoint?: number\n defaultRawValue?: string\n hideAdornment?: boolean\n onChangeFixedPoint?: (value?: bigint) => void\n resetValue?: number\n}\n\nexport const BigIntTextField: React.FC<BigIntTextFieldProps> = ({\n defaultFixedPoint = 18, defaultRawValue, helperText, hideAdornment, onChangeFixedPoint, onChange, resetValue, ...props\n}) => {\n const [rawValue, setRawValue] = useState<string>('')\n const [fixedPoint, setFixedPoint] = useState(defaultFixedPoint)\n const [error, setError] = useState<Error>()\n\n useMemo(() => {\n setRawValue('')\n }, [resetValue])\n\n const handleRawValueChange = (rawValue: string) => {\n // remove all alpha characters but allow decimals\n const filteredValue = rawValue.replaceAll(/[^\\d.]/g, '')\n // only allow one decimal point\n if (filteredValue.split('.').length > 2) return\n setRawValue(filteredValue)\n }\n\n useMemo(() => {\n if (defaultRawValue) {\n handleRawValueChange(defaultRawValue)\n }\n }, [defaultRawValue])\n\n const handleChange: FocusEventHandler<HTMLTextAreaElement> = (event) => {\n // run standard callback\n onChange?.(event)\n handleRawValueChange(event.target.value)\n }\n\n const onFixedPointChange = (fixedPoint: number) => setFixedPoint(fixedPoint)\n\n // on value or point changes, run the bigInt callback\n const bigIntValue = useMemo(() => {\n if (rawValue) {\n const fixedValue = toFixedPoint(rawValue, fixedPoint)\n setError(undefined)\n try {\n return fixedValue\n } catch (e) {\n console.error(e)\n setError(e as Error)\n return\n }\n } else {\n return\n }\n // run bigInt callback\n }, [rawValue, fixedPoint])\n\n useEffect(() => {\n onChangeFixedPoint?.(bigIntValue)\n }, [bigIntValue])\n\n // prevent the fixed point from being less than the number of decimal places\n const minFixedPoint = rawValue.split('.')[1]?.length\n\n const resolvedHelperText = useMemo(() => {\n if (error) return 'Cannot convert to BigInt'\n return helperText ?? 'Enter a number'\n }, [helperText, error])\n\n return (\n <>\n <TextField\n onChange={handleChange}\n type=\"string\"\n error={Boolean(error)}\n slotProps={{\n htmlInput: { pattern: '[0-9]*[.]?[0-9]*' },\n input: {\n startAdornment: (hideAdornment\n ? null\n : (\n <FixedPointInputAdornment\n position=\"start\"\n fixedPoint={fixedPoint}\n minFixedPoint={minFixedPoint}\n onFixedPointChange={onFixedPointChange}\n />\n )\n ),\n },\n }}\n value={rawValue}\n {...props}\n />\n <FormHelperText>{resolvedHelperText}</FormHelperText>\n </>\n )\n}\n\nexport interface InputWithFormControlProps extends FormControlProps {\n textFieldProps?: BigIntTextFieldProps\n}\n\nexport const WithFormControl: React.FC<InputWithFormControlProps> = ({ textFieldProps, ...props }) => (\n <FormControl {...props}>\n <BigIntTextField {...textFieldProps} />\n </FormControl>\n)\n","import type { InputAdornmentProps } from '@mui/material'\nimport {\n Avatar, IconButton, InputAdornment,\n} from '@mui/material'\nimport React, { useRef, useState } from 'react'\n\nimport { FixedPointPopover } from './FixedPointPopover.tsx'\n\nexport interface FixedPointInputAdornmentProps extends InputAdornmentProps {\n fixedPoint?: number\n minFixedPoint?: number\n onFixedPointChange?: (value: number) => void\n}\n\nexport const FixedPointInputAdornment: React.FC<FixedPointInputAdornmentProps> = ({\n fixedPoint, minFixedPoint, onFixedPointChange, ...props\n}) => {\n const ref = useRef<HTMLButtonElement>(null)\n const [open, setOpen] = useState(false)\n\n return (\n <InputAdornment {...props}>\n <FixedPointPopover\n anchorEl={ref.current}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n fixedPoint={fixedPoint}\n minFixedPoint={minFixedPoint}\n onClose={() => setOpen(false)}\n onFixedPointChange={onFixedPointChange}\n open={open}\n />\n <IconButton size=\"small\" ref={ref} onClick={() => setOpen(!open)}>\n <Avatar sx={{\n fontSize: '.75rem',\n height: '20px',\n width: '20px',\n }}\n >\n {fixedPoint}\n </Avatar>\n </IconButton>\n </InputAdornment>\n )\n}\n","import { BigIntTextField, WithFormControl } from './TextField.tsx'\n\nexport const BigIntInput = {\n TextField: BigIntTextField,\n WithFormControl,\n}\n","import type {\n BoxProps, TypographyProps, TypographyTypeMap,\n} from '@mui/material'\nimport {\n Box, styled, Typography,\n} from '@mui/material'\nimport type { PropsWithChildren } from 'react'\nimport React, { useCallback, useState } from 'react'\n\nimport { useShareForwardedRef } from '../hooks/index.ts'\n\n/**\n * Heavily inspired by - https://stackoverflow.com/a/30362531/2803259\n */\n\nconst ComponentName = 'Ellipsize'\n\nexport interface EllipsizeRootProps extends BoxProps {\n beforeLineHeight?: string | number\n}\n\nconst EllipsizeRoot = styled(Box, {\n name: ComponentName,\n shouldForwardProp: prop => prop !== 'beforeLineHeight',\n slot: 'Root',\n})<EllipsizeRootProps>(({ beforeLineHeight }) => ({\n '&': {\n // because the cell content ends up absolutely positioned, the cell doesn't know the content height.\n // the pseudo element with a hidden character establishes the proper height of the content and hides it\n ':before': {\n content: \"'nbsp;'\",\n display: 'block',\n // take the pseudo element out of the `display: block` flow so it won't push against our actual content\n float: 'left',\n visibility: 'hidden',\n // since we are `display: block`, lineHeight is the height\n ...(beforeLineHeight && { lineHeight: beforeLineHeight }),\n },\n },\n}))\n\nconst EllipsizeInnerWrap = styled(Box, {\n name: ComponentName,\n slot: 'innerWrap',\n})(() => ({ position: 'relative' }))\n\nconst EllipsizeContentWrap = styled(Typography, {\n name: ComponentName,\n shouldForwardProp: prop => prop !== 'ellipsisPosition',\n slot: 'contentWrap',\n})<TypographyWithComponentProps>(({\n theme, ellipsisPosition, fontFamily,\n}) => {\n return theme.unstable_sx({\n fontFamily: fontFamily ?? 'monospace',\n left: 0,\n overflow: 'hidden',\n position: 'absolute',\n right: 0,\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n ...(ellipsisPosition === 'start'\n ? {\n direction: 'rtl',\n textAlign: 'left',\n }\n : {}),\n })\n})\n\nconst useClientHeight = () => {\n const [contentWrapHeight, setContentWrapHeight] = useState<string>()\n\n const contentWrapRef = useCallback((node: HTMLElement) => {\n if (node !== null) {\n setContentWrapHeight(node.clientHeight + 'px')\n }\n }, [])\n\n return { contentWrapHeight, contentWrapRef }\n}\n\nexport type TypographyWithComponentProps<D extends React.ElementType = TypographyTypeMap['defaultComponent'], P = {}> = TypographyProps<D, P> & {\n ellipsisPosition?: 'start' | 'end'\n}\n\nexport interface EllipsizeBoxProps extends BoxProps {\n disableSharedRef?: boolean\n ellipsisPosition?: 'start' | 'end'\n typographyProps?: TypographyWithComponentProps\n}\n\nexport const EllipsizeBox = ({\n ref, children, ellipsisPosition = 'start', disableSharedRef, typographyProps, ...props\n}: PropsWithChildren<EllipsizeBoxProps>) => {\n // Allow syncing of :before pseudo element height with contentWrapHeight\n const { contentWrapRef, contentWrapHeight } = useClientHeight()\n const sharedRef = useShareForwardedRef(ref)\n\n return (\n <EllipsizeRoot beforeLineHeight={!!sharedRef && !disableSharedRef ? contentWrapHeight : undefined} {...props} ref={sharedRef}>\n <EllipsizeInnerWrap>\n <EllipsizeContentWrap ref={contentWrapRef} component=\"span\" ellipsisPosition={ellipsisPosition} variant=\"body2\" {...typographyProps}>\n {children}\n </EllipsizeContentWrap>\n </EllipsizeInnerWrap>\n </EllipsizeRoot>\n )\n}\nEllipsizeBox.displayName = 'EllipsizeBox'\n","import type { StackProps } from '@mui/material'\nimport { Stack, Typography } from '@mui/material'\nimport React from 'react'\n\nexport interface LabeledTextFieldWrapperProps extends StackProps {\n label: string\n}\n\nexport const LabeledTextFieldWrapper: React.FC<LabeledTextFieldWrapperProps> = ({\n children, label, ...props\n}) => {\n return (\n <Stack flexDirection=\"column\" {...props}>\n <Typography gutterBottom variant=\"caption\">\n {label}\n </Typography>\n {children}\n </Stack>\n )\n}\n","import type { ListItemButtonProps } from '@mui/material'\nimport { ListItemButton } from '@mui/material'\nimport type { MouseEvent } from 'react'\nimport React from 'react'\nimport type { NavigateOptions, To } from 'react-router-dom'\nimport { useNavigate } from 'react-router-dom'\n\nexport interface ListItemButtonExProps extends ListItemButtonProps {\n target?: string\n to?: To\n toOptions?: NavigateOptions\n}\n\nexport const ListItemButtonExTo: React.FC<ListItemButtonExProps> = ({\n to, toOptions, onClick, ...props\n}) => {\n const navigate = useNavigate()\n const localOnClick = (event: MouseEvent<HTMLDivElement>) => {\n onClick?.(event)\n if (to) {\n void navigate(to, toOptions)\n }\n }\n\n return <ListItemButton onClick={localOnClick} {...props} />\n}\n\nexport const ListItemButtonEx: React.FC<ListItemButtonExProps> = ({ to, ...props }) => {\n return to ? <ListItemButtonExTo to={to} {...props} /> : <ListItemButton {...props} />\n}\n","import { FlexGrowRow } from '@xylabs/react-flexbox'\nimport type { PropsWithChildren } from 'react'\nimport React from 'react'\n\nimport { NotFound } from './NotFound.tsx'\n\nexport interface LoadResultProps<T> {\n /** @deprecated - use error prop */\n apiError?: Error\n /** Defer error handling to the children and load them */\n error?: boolean\n notFound: boolean\n searchResult: T | undefined\n}\n\nexport function LoadResult<T>(props: PropsWithChildren<LoadResultProps<T>>) {\n const {\n notFound, error, searchResult, children,\n } = props\n if (notFound) {\n return <NotFound />\n }\n if (error) {\n return <>{children}</>\n }\n return searchResult === undefined ? <FlexGrowRow busy minHeight=\"50px\" /> : <>{children}</>\n}\n","import { Typography } from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexGrowCol } from '@xylabs/react-flexbox'\nimport React from 'react'\n\n/** @deprecated use from @@xylabs/react-shared instead */\nexport const NotFound: React.FC<FlexBoxProps> = (props) => {\n return (\n <FlexGrowCol {...props}>\n <Typography variant=\"h2\">Sorry!</Typography>\n <Typography marginY={3} variant=\"body2\">\n {'Can\\'t find anything here'}\n </Typography>\n </FlexGrowCol>\n )\n}\n","import type { TypographyProps } from '@mui/material'\nimport { Typography } from '@mui/material'\nimport React from 'react'\n\nexport const Pipe: React.FC<TypographyProps> = (props) => {\n return (\n <Typography marginX={1} component=\"span\" {...props}>\n |\n </Typography>\n )\n}\n","import type { AlertProps } from '@mui/material'\nimport { Alert, AlertTitle } from '@mui/material'\nimport React from 'react'\n\nexport interface PayloadDataMissingProps extends AlertProps {\n alertBody?: string\n}\n\nexport const PayloadDataMissing: React.FC<PayloadDataMissingProps> = ({ alertBody, ...props }) => {\n return (\n <Alert severity=\"warning\" {...props}>\n <AlertTitle>Missing Data</AlertTitle>\n {alertBody ?? 'Payload is missing required data to render correctly'}\n </Alert>\n )\n}\n","import { styled } from '@mui/material'\nimport type { PropsWithChildren } from 'react'\nimport React from 'react'\n\nconst StyledScrollTableOnSm = styled('div')(({ theme }) => ({\n [theme.breakpoints.down('md')]: { overflowX: 'scroll' },\n display: 'flex',\n flexGrow: 1,\n}))\n\nconst ScrollTableOnSm: React.FC<PropsWithChildren> = ({ children }) => <StyledScrollTableOnSm>{children}</StyledScrollTableOnSm>\n\nexport { ScrollTableOnSm }\n","import { useTheme } from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexGrowRow } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nexport const SectionSpacingRow = ({\n ref, children, sx, ...props\n}: FlexBoxProps) => {\n const theme = useTheme()\n return (\n <FlexGrowRow\n sx={{\n paddingBottom: { md: theme.spacing(5), xs: theme.spacing(5) },\n paddingTop: { md: theme.spacing(5), xs: theme.spacing(5) },\n ...sx,\n }}\n width=\"100%\"\n ref={ref}\n {...props}\n >\n {children}\n </FlexGrowRow>\n )\n}\n\nSectionSpacingRow.displayName = 'SectionSpacingRow'\n","import React from 'react'\n\nimport type { EllipsisTableCellProps } from './EllipsisTableCell.tsx'\nimport { EllipsisTableCell } from './EllipsisTableCell.tsx'\n\nexport interface AddressTableCellProps extends EllipsisTableCellProps {\n /** @deprecated - archives are no longer supported */\n archive?: string\n /** @deprecated - use events instead */\n exploreDomain?: string\n link?: boolean\n}\n\nconst AddressTableCell = ({\n ref, value, archive, exploreDomain, link, ...props\n}: AddressTableCellProps) => {\n const href = exploreDomain && archive ? `${exploreDomain}/archive/${archive}/address/${value}` : undefined\n const to = exploreDomain === undefined && archive ? `/archive/${archive}/address/${value}` : undefined\n\n return <EllipsisTableCell value={value} href={href} to={to} ref={ref} link={link} {...props} />\n}\n\nAddressTableCell.displayName = 'AddressTableCell'\nexport { AddressTableCell }\n","import type { TableCellProps } from '@mui/material'\nimport { styled, TableCell } from '@mui/material'\nimport { asLinkHrefOrToProps, LinkEx } from '@xylabs/react-link'\nimport React, { useMemo } from 'react'\nimport type { To } from 'react-router-dom'\n\nimport { EllipsizeBox } from '../Ellipsize.tsx'\n\nconst EllipsisTableCellRoot = styled(TableCell, {\n name: 'EllipsisTableCell',\n shouldForwardProp: prop => prop !== 'width',\n slot: 'Root',\n})(({ width = '100%' }) => ({ width }))\n\nexport interface EllipsisTableCellProps extends TableCellProps {\n href?: string\n link?: boolean\n to?: To\n value?: string\n /**\n * Width of the table cell.\n *\n * Note: When using percentages, this value can be different than what you expect\n * if used on a cell that is not the first cell in the first row.\n */\n width?: string | number\n}\n\nexport const EllipsisTableCellWithRef = ({\n ref, children, href, link = false, to, value, ...props\n}: EllipsisTableCellProps) => {\n const data = useMemo(() => {\n if (children) {\n return children\n }\n if (href || link || to) {\n return (\n <LinkEx title={value} {...asLinkHrefOrToProps({ to, href })} target={href ? '_blank' : undefined}>\n {value}\n </LinkEx>\n )\n }\n return value\n }, [children, href, link, to, value])\n return (\n <EllipsisTableCellRoot {...props}>\n <EllipsizeBox ref={ref} sx={{ cursor: link || to || href ? 'pointer' : 'inherit' }}>{data}</EllipsizeBox>\n </EllipsisTableCellRoot>\n )\n}\n\nEllipsisTableCellWithRef.displayName = 'EllipsisTableCell'\nexport const EllipsisTableCell = EllipsisTableCellWithRef\n","import type { Hash } from '@xylabs/hex'\nimport { useEvent } from '@xyo-network/react-event'\nimport React, { useRef } from 'react'\n\nimport type { EllipsisTableCellProps } from './EllipsisTableCell.tsx'\nimport { EllipsisTableCell } from './EllipsisTableCell.tsx'\n\nexport interface HashTableCellProps extends EllipsisTableCellProps {\n archive?: string\n dataType?: 'block' | 'payload'\n exploreDomain?: string\n network?: string\n onHashClick?: (value: Hash) => void\n}\n\nexport const HashTableCell: React.FC<HashTableCellProps> = ({\n value, archive, dataType, network, exploreDomain, onHashClick, ...props\n}) => {\n const ref = useRef<HTMLTableCellElement | null>(null)\n const [tableCellRef, dispatch] = useEvent<HTMLTableCellElement>(undefined, ref)\n const hashPath = `/${dataType}/hash/${value}?network=${network ?? 'main'}`\n const explorePath = archive ? `/archive/${archive}${hashPath}` : hashPath\n\n const handleCellClick = () => {\n if (onHashClick) {\n onHashClick(value as Hash)\n } else {\n dispatch?.('hash', 'click', value as Hash)\n }\n }\n\n return (\n <EllipsisTableCell\n onClick={handleCellClick}\n ref={tableCellRef}\n value={value}\n href={exploreDomain ? `${exploreDomain}${explorePath}}` : undefined}\n to={exploreDomain ? undefined : explorePath}\n {...props}\n />\n )\n}\n","import type { AvatarProps } from '@mui/material'\nimport { Avatar, useTheme } from '@mui/material'\nimport React from 'react'\n\nexport const ThemeTokenAvatar: React.FC<AvatarProps> = ({ ...props }) => {\n const theme = useTheme()\n return <Avatar sx={{ background: theme.palette.common.white }} {...props} />\n}\n","import type { AvatarGroupProps } from '@mui/material'\nimport { AvatarGroup } from '@mui/material'\nimport React from 'react'\n\nimport { ThemeTokenAvatar } from '../ThemeTokenAvatar/index.ts'\n\nexport interface ThemeTokenAvatarGroupProps extends AvatarGroupProps {\n images?: string[]\n}\n\nexport const ThemeTokenAvatarGroup: React.FC<ThemeTokenAvatarGroupProps> = ({ images, ...props }) => {\n return <AvatarGroup {...props}>{images?.map((image, index) => <ThemeTokenAvatar key={index} src={image} />)}</AvatarGroup>\n}\n","import type { PaperProps, TypographyProps } from '@mui/material'\nimport { Paper, Typography } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport type { ReactNode } from 'react'\nimport React from 'react'\nexport interface TokenBarProps extends PaperProps {\n text1?: ReactNode\n text1Props?: TypographyProps\n text1Suffix?: ReactNode\n text2?: ReactNode\n text2Props?: TypographyProps\n text2Suffix?: ReactNode\n}\n\nexport const TokenBar: React.FC<TokenBarProps> = ({\n text1, text1Props, text1Suffix, text2, text2Props, text2Suffix, ...props\n}) => {\n return (\n <Paper elevation={0} className=\"TokenBar-root\" {...props}>\n <FlexRow justifyContent=\"space-between\">\n <Typography variant=\"body1\" fontWeight={300} margin={1} {...text1Props}>\n {text1}\n {text1Suffix}\n </Typography>\n <Typography variant=\"body1\" fontWeight={300} textTransform=\"uppercase\" color=\"gray\" margin={1} {...text2Props}>\n {text2}\n {text2Suffix}\n </Typography>\n </FlexRow>\n </Paper>\n )\n}\n","export { default as ada } from './ada.png'\nexport { default as btc } from './btc.png'\nexport { default as busd } from './busd.png'\nexport { default as dai } from './dai.png'\nexport { default as dogecoin } from './dogecoin.png'\nexport { default as dot } from './dot.png'\nexport { default as ethereum } from './ethereum.png'\nexport { default as frax } from './frax.png'\nexport { default as link } from './link.png'\nexport { default as sol } from './sol.png'\nexport { default as tether } from './tether.png'\nexport { default as usdCoin } from './usd-coin.png'\nexport { default as weth } from './weth.png'\nexport { default as wrappedBtc } from './wrapped-bitcoin.png'\nexport { default as xyo } from './xyo.png'\n","import * as tokenImages from './img/index.ts'\n\nexport interface TokenData {\n coinmarketcapLink: string\n etherscanLink: string\n icon: string\n readableName: string\n tokenSymbol: string\n uniqueTokenId: string\n}\n\nexport const TokenData: TokenData[] = [\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/multi-collateral-dai/',\n etherscanLink: 'https://etherscan.io/token/0x6b175474e89094c44da98b954eedeac495271d0f',\n icon: tokenImages.dai,\n readableName: 'Dai',\n tokenSymbol: 'dai',\n uniqueTokenId: 'dai',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/weth/',\n etherscanLink: 'https://etherscan.io/token/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n icon: tokenImages.weth,\n readableName: 'Weth',\n tokenSymbol: 'weth',\n uniqueTokenId: 'weth',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/ethereum/',\n etherscanLink: 'n/a',\n icon: tokenImages.ethereum,\n readableName: 'Ethereum',\n tokenSymbol: 'eth',\n uniqueTokenId: 'ethereum',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/bitcoin/',\n etherscanLink: 'n/a',\n icon: tokenImages.btc,\n readableName: 'Bitcoin',\n tokenSymbol: 'btc',\n uniqueTokenId: 'btc',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/xyo/',\n etherscanLink: 'https://etherscan.io/token/0x55296f69f40ea6d20e478533c15a6b08b654e758',\n icon: tokenImages.xyo,\n readableName: 'XYO',\n tokenSymbol: 'xyo',\n uniqueTokenId: 'xyo',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/frax/',\n etherscanLink: 'https://etherscan.io/token/0x853d955acef822db058eb8505911ed77f175b99e',\n icon: tokenImages.frax,\n readableName: 'Frax',\n tokenSymbol: 'frax',\n uniqueTokenId: 'frax',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/wrapped-bitcoin/',\n etherscanLink: 'https://etherscan.io/token/0x2260fac5e5542a773aa44fbcfedf7c193bc2c599',\n icon: tokenImages.wrappedBtc,\n readableName: 'Wrapped BTC',\n tokenSymbol: 'wbtc',\n uniqueTokenId: 'wbtc',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/usd-coin/',\n etherscanLink: 'https://etherscan.io/token/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n icon: tokenImages.usdCoin,\n readableName: 'USDC',\n tokenSymbol: 'usdc',\n uniqueTokenId: 'usdc',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/tether/',\n etherscanLink: 'https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7',\n icon: tokenImages.tether,\n readableName: 'Tether',\n tokenSymbol: 'usdt',\n uniqueTokenId: 'usdt',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/cardano/',\n etherscanLink: 'https://etherscan.io/token/0xc14777c94229582e5758c5a79b83dde876b9be98',\n icon: tokenImages.ada,\n readableName: 'Cardano',\n tokenSymbol: 'ada',\n uniqueTokenId: 'ada',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/binance-usd/',\n etherscanLink: 'https://etherscan.io/token/0x4Fabb145d64652a948d72533023f6E7A623C7C53',\n icon: tokenImages.busd,\n readableName: 'Binance USD',\n tokenSymbol: 'busd',\n uniqueTokenId: 'busd',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/dogecoin/',\n etherscanLink: 'https://etherscan.io/token/0x7618b5024a6349f9aef10ddfd33e3428c734551e',\n icon: tokenImages.dogecoin,\n readableName: 'Dogecoin',\n tokenSymbol: 'doge',\n uniqueTokenId: 'doge',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/polkadot-new/',\n etherscanLink: 'https://etherscan.io/token/0x2d4fb6dd969992c881d8e534c747cc925d5ba221',\n icon: tokenImages.dot,\n readableName: 'Polkadot',\n tokenSymbol: 'dot',\n uniqueTokenId: 'dot',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/chainlink/',\n etherscanLink: 'https://etherscan.io/token/0x514910771af9ca656af840dff83e8264ecf986ca',\n icon: tokenImages.link,\n readableName: 'ChainLink',\n tokenSymbol: 'link',\n uniqueTokenId: 'link',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/solana/',\n etherscanLink: 'https://etherscan.io/token/0x1f54638b7737193ffd86c19ec51907a7c41755d8',\n icon: tokenImages.sol,\n readableName: 'Solana',\n tokenSymbol: 'sol',\n uniqueTokenId: 'sol',\n },\n]\n","import { TokenData } from './TokenData.ts'\n\n// eslint-disable-next-line @eslint-react/hooks-extra/no-useless-custom-hooks\nexport const useGetTokenData = (symbols: (string | undefined)[]) => {\n return symbols?.map((symbol) => {\n const additionalTokenData = TokenData.find(x => x.tokenSymbol === symbol)\n const checkedTokenData = additionalTokenData ?? TokenData[0]\n return checkedTokenData\n })\n}\n","import type { AvatarProps, CardHeaderProps } from '@mui/material'\nimport { CardHeader, Typography } from '@mui/material'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nimport { ThemeTokenAvatar } from '../ThemeTokenAvatar/index.ts'\n\nexport interface TokenSummaryProps extends CardHeaderProps {\n icon?: string\n imgBgProps?: AvatarProps\n symbol?: string\n symbolElement?: ReactNode\n}\n\nexport const TokenSummary: React.FC<TokenSummaryProps> = ({\n icon, symbol, symbolElement, children, ...props\n}) => {\n return (\n <>\n <CardHeader\n avatar={<ThemeTokenAvatar src={icon} alt={symbol} />}\n title={(\n <Typography variant=\"h6\" fontWeight={300} textTransform=\"uppercase\">\n {symbolElement ?? symbol}\n </Typography>\n )}\n {...props}\n />\n {children}\n </>\n )\n}\n","import type { TypographyProps } from '@mui/material'\nimport { Typography } from '@mui/material'\nimport React from 'react'\n\nimport { useGradientStyles } from '../hooks/index.ts'\n\nexport interface TypographyExProps extends TypographyProps {\n gradient?: 'text'\n}\n\nexport const TypographyEx: React.FC<TypographyExProps> = ({ gradient, ...props }) => {\n const { classes } = useGradientStyles()\n return <Typography className={gradient === 'text' ? classes().heading : undefined} {...props} />\n}\n","import { createContext } from 'react'\n\nimport type { ContextExState } from './State.ts'\n\nexport const createContextEx = <T>() => createContext<T & ContextExState>({ provided: false } as T & ContextExState)\n","import type { Context } from 'react'\nimport { use } from 'react'\n\nimport type { ContextExState } from './State.ts'\n\nexport const useContextEx = <T extends ContextExState>(context: Context<T>, contextName: string, required = true) => {\n const { provided, ...props } = use(context)\n if (!provided && required) {\n throw new Error(`use${contextName} can not be used outside of a ${contextName}Context when required=true`)\n }\n return props\n}\n\nexport const useProvided = <T extends ContextExState>(context: Context<T>) => {\n const { provided } = use(context)\n return provided\n}\n","import { createContextEx } from '../contextEx/index.ts'\n\nexport const ResolvedDivinerContext = <T>() => createContextEx<T>()\n","import { useResetState } from '@xylabs/react-hooks'\nimport type { Context, PropsWithChildren } from 'react'\nimport React, { useMemo } from 'react'\n\nimport type { ContextExProviderProps } from '../contextEx/index.ts'\nimport type { ResolvedDivinerState } from './State.ts'\n\nexport interface DivinerProviderProps<D> extends ContextExProviderProps, PropsWithChildren {\n context: Context<ResolvedDivinerState<D>>\n diviner?: D\n}\n\n/** Exposes a resolved diviner */\nexport const ResolvedDivinerProvider = <D,>({\n diviner: divinerProp, required = false, children, context: Context,\n}: DivinerProviderProps<D>) => {\n const [diviner, setDiviner] = useResetState<D | undefined>(divinerProp)\n\n const value = useMemo(() => {\n const resolveDiviner = () => {\n if (divinerProp) {\n return diviner === divinerProp ? diviner : undefined\n } else {\n return diviner\n }\n }\n return {\n diviner: resolveDiviner(),\n provided: true,\n setDiviner,\n }\n }, [\n setDiviner, divinerProp])\n\n return (\n <Context\n value={value}\n >\n {diviner\n ? children\n : required\n ? null\n : children}\n </Context>\n )\n}\n","import { createContextEx } from '../contextEx/index.ts'\nimport type { ListModeContextState } from './State.ts'\n\nexport const ListModeContext = createContextEx<ListModeContextState>()\n","import type { PropsWithChildren } from 'react'\nimport React, { useMemo, useState } from 'react'\n\nimport type { ListMode } from '../../models/index.ts'\nimport { ListModeContext } from './Context.ts'\n\nexport interface ListModeProviderProps {\n defaultListMode?: ListMode\n}\n\nexport const ListModeProvider: React.FC<PropsWithChildren<ListModeProviderProps>> = ({ children, defaultListMode }) => {\n const [listMode, setListMode] = useState(defaultListMode ?? 'default')\n\n const value = useMemo(() => ({\n listMode,\n provided: true,\n setListMode,\n }), [listMode,\n setListMode])\n\n return (\n <ListModeContext\n value={value}\n >\n {children}\n </ListModeContext>\n )\n}\n","import { useContextEx } from '../contextEx/index.ts'\nimport { ListModeContext } from './Context.ts'\n\nexport const useListMode = (required = false) => {\n return useContextEx(ListModeContext, 'ListMode', required)\n}\n","/**\n * @deprecated use from @xylabs/with instead\n * */\nexport const assertDefinedEx = <T>(expr?: T | null, message?: string): T => {\n if (expr !== null && expr !== undefined) return expr\n throw new Error(message)\n}\n","export const parseMeausureString = (measure?: string, absolute?: number) => {\n if (measure !== undefined && measure !== null && measure.length > 0) {\n if (measure.endsWith('px')) {\n return Number.parseFloat(measure.slice(0, Math.max(0, measure.length - 2)))\n } else if (measure.endsWith('%')) {\n if (absolute !== undefined) {\n return (Number.parseFloat(measure.slice(0, Math.max(0, measure.length - 1))) / 100) * absolute\n }\n throw new Error('Error Parsing Measure [missing absolute]')\n } else if (measure.endsWith('vw')) {\n return (Number.parseFloat(measure.slice(0, Math.max(0, measure.length - 2))) / 100) * window.innerWidth\n } else if (measure.endsWith('vh')) {\n return (Number.parseFloat(measure.slice(0, Math.max(0, measure.length - 2))) / 100) * window.innerHeight\n }\n throw new Error(`Error Parsing Measure [${measure}]`)\n }\n}\n\nexport const parsePadding = (padding: string) => {\n const parts = padding.split(' ')\n switch (parts.length) {\n case 4: {\n return {\n bottom: parts[2],\n left: parts[3],\n right: parts[1],\n top: parts[0],\n }\n }\n case 3: {\n return {\n bottom: parts[2],\n right: parts[1],\n top: parts[0],\n }\n }\n case 2: {\n return {\n bottom: parts[0],\n left: parts[1],\n right: parts[1],\n top: parts[0],\n }\n }\n case 1: {\n return {\n bottom: parts[0],\n left: parts[0],\n right: parts[0],\n top: parts[0],\n }\n }\n }\n}\n\nexport const getActualPaddingX = (element: HTMLElement) => {\n const padding = parsePadding(globalThis.getComputedStyle(element, null).getPropertyValue('padding'))\n const paddingLeft\n = parseMeausureString(globalThis.getComputedStyle(element, null).getPropertyValue('padding-left') ?? padding?.left, element.clientWidth) ?? 0\n const paddingRight\n = parseMeausureString(globalThis.getComputedStyle(element, null).getPropertyValue('padding-right') ?? padding?.right, element.clientWidth) ?? 0\n return paddingLeft + paddingRight\n}\n","import {\n BubbleChartRounded as BubbleChartRoundedIcon,\n HubRounded as HubRoundedIcon,\n InsertLinkRounded as InsertLinkRoundedIcon,\n Inventory2Rounded as Inventory2RoundedIcon,\n TimerRounded as TimerRoundedIcon,\n VisibilityRounded as VisibilityRoundedIcon,\n} from '@mui/icons-material'\nimport type { SvgIconProps } from '@mui/material'\nimport type { ReactElement } from 'react'\nimport React from 'react'\n\nexport type NetworkComponentSlug = 'sentinel' | 'bridge' | 'archivist' | 'diviner' | 'node' | 'witness'\n\nexport interface NetworkComponentDetails {\n icon: (props?: SvgIconProps) => ReactElement\n name: string\n slug: NetworkComponentSlug\n}\n\nexport const networkComponents: NetworkComponentDetails[] = [\n {\n icon: props => <HubRoundedIcon {...props} />, name: 'Node', slug: 'node',\n },\n {\n icon: props => <TimerRoundedIcon {...props} />, name: 'Sentinel', slug: 'sentinel',\n },\n {\n icon: props => <InsertLinkRoundedIcon {...props} />, name: 'Bridge', slug: 'bridge',\n },\n {\n icon: props => <Inventory2RoundedIcon {...props} />, name: 'Archivist', slug: 'archivist',\n },\n {\n icon: props => <BubbleChartRoundedIcon {...props} />, name: 'Diviner', slug: 'diviner',\n },\n {\n icon: props => <VisibilityRoundedIcon {...props} />, name: 'Witness', slug: 'witness',\n },\n]\n\nexport const findNetworkComponentIndex = (slug: string) => {\n return networkComponents.findIndex(info => info.slug === slug)\n}\n\nexport const findNetworkComponent = (slug: string) => {\n return networkComponents.find(info => info.slug === slug)\n}\n"],"mappings":"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C,cAAc;IACdC,aAAa;IACbC,eAAe;EACjB;EACA;IACEN,mBAAmB;IACnBC,eAAe;IACfC,MAAkBK;IAClBH,cAAc;IACdC,aAAa;IACbC,eAAe;EACjB;EACA;IACEN,mBAAmB;IACnBC,eAAe;IACfC,MAAkBM;IAClBJ,cAAc;IACdC,aAAa;IACbC,eAAe;EACjB;EACA;IACEN,mBAAmB;IACnBC,eAAe;IACfC,MAAkBO;IAClBL,cAAc;IACdC,aAAa;IACbC,eAAe;EACjB;EACA;IACEN,mBAAmB;IACnBC,eAAe;IACfC,MAAkBQ;IAClBN,cAAc;IACdC,aAAa;IACbC,eAAe;EACjB;EACA;IACEN,mBAAmB;IACnBC,eAAe;IACfC,MAAkBS;IAClBP,cAAc;IACdC,aAAa;IACbC,eAAe;EACjB;EACA;IACEN,mBAAmB;IACnBC,eAAe;IACfC,MAAkBU;IAClBR,cAAc;IACdC,aAAa;IACbC,eAAe;EACjB;EACA;IACEN,mBAAmB;IACnBC,eAAe;IACfC,MAAkBW;IAClBT,cAAc;IACdC,aAAa;IACbC,eAAe;EACjB;EACA;IACEN,mBAAmB;IACnBC,eAAe;IACfC,MAAkBY;IAClBV,cAAc;IACdC,aAAa;IACbC,eAAe;EACjB;EACA;IACEN,mBAAmB;IACnBC,eAAe;IACfC,MAAkBa;IAClBX,cAAc;IACdC,aAAa;IACbC,eAAe;EACjB;EACA;IACEN,mBAAmB;IACnBC,eAAe;IACfC,MAAkBc;IAClBZ,cAAc;IACdC,aAAa;IACbC,eAAe;EACjB;EACA;IACEN,mBAAmB;IACnBC,eAAe;IACfC,MAAkBe;IAClBb,cAAc;IACdC,aAAa;IACbC,eAAe;EACjB;EACA;IACEN,mBAAmB;IACnBC,eAAe;IACfC,MAAkBgB;IAClBd,cAAc;IACdC,aAAa;IACbC,eAAe;EACjB;EACA;IACEN,mBAAmB;IACnBC,eAAe;IACfC,MAAkBiB;IAClBf,cAAc;IACdC,aAAa;IACbC,eAAe;EACjB;EACA;IACEN,mBAAmB;IACnBC,eAAe;IACfC,MAAkBkB;IAClBhB,cAAc;IACdC,aAAa;IACbC,eAAe;EACjB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","names":["Typography","React","Ampersand","props","Typography","marginX","component","Container","Grid","Typography","ButtonEx","FlexGrowCol","FlexGrowRow","LinkEx","React","useTheme","makeStyles","colorfulGradientLightMode","background","backgroundImage","border","borderImage","borderImageSlice","borderImageSource","borderRadius","borderStyle","borderWidth","heading","WebkitBackgroundClip","WebkitTextFillColor","display","colorfulGradientDarkMode","useGradientStyles","theme","useTheme","styles","palette","mode","classes","makeStyles","assertEx","usePromise","BoundWitnessValidator","isAnyPayload","useValidateBoundWitness","input","output","validationError","usePromise","object","JSON","parse","validPayload","assertEx","isAnyPayload","errors","BoundWitnessValidator","validate","payload","filter","error","usePromise","PayloadBuilder","usePayloadHash","payload","usePromise","PayloadBuilder","dataHash","undefined","usePayloadRootHash","hash","usePayloadHashes","payloads","Promise","all","map","assertEx","PayloadBuilder","isAnyPayload","useMemo","usePayloadValidate","input","useMemo","object","JSON","parse","validPayload","assertEx","isAnyPayload","schema","fields","payload","PayloadBuilder","build","error","errors","useState","useDataState","defaultValue","state","setState","useState","setDataState","value","JSON","stringify","console","error","useTheme","useMediaQuery","useIsMobile","theme","useTheme","useMediaQuery","breakpoints","down","useIsSmall","useEffect","useRef","useShareForwardedRef","forwardedRef","refresh","innerRef","useRef","useEffect","current","SubLinkSection","backgroundImageAlignment","subLinkIcon","subLinkPath","subLinkText1","subLinkText2","React","FlexGrowRow","width","sx","flexDirection","md","xs","justifyContent","span","Typography","LinkEx","href","underline","target","color","ButtonSection","to","buttonText","isMobile","useIsSmall","ButtonEx","fullWidth","marginTop","marginBottom","marginRight","marginLeft","variant","paddingX","display","BasicHero","backgroundImage","title","gradientTitle","backgroundColor","textColor","desc","heroImage","title2","button1Text","button2Text","button2To","button1To","button2Href","button1Href","props","classes","useGradientStyles","FlexGrowCol","backgroundPosition","lg","minHeight","sm","style","backgroundRepeat","backgroundSize","Container","Grid","container","alignItems","item","paddingY","component","gutterBottom","textAlign","className","heading","img","src","FormHelperText","Popover","TextField","React","FixedPointPopover","fixedPoint","minFixedPoint","minimumPoint","onFixedPointChange","props","handleChange","event","fixedPointInteger","Number","parseInt","target","value","isNaN","React","Popover","slotProps","paper","sx","p","TextField","htmlInput","min","onChange","type","FormHelperText","FormControl","FormHelperText","TextField","toFixedPoint","React","useEffect","useMemo","useState","Avatar","IconButton","InputAdornment","React","useRef","useState","FixedPointInputAdornment","fixedPoint","minFixedPoint","onFixedPointChange","props","ref","useRef","open","setOpen","useState","React","InputAdornment","FixedPointPopover","anchorEl","current","anchorOrigin","vertical","horizontal","onClose","IconButton","size","onClick","Avatar","sx","fontSize","height","width","BigIntTextField","defaultFixedPoint","defaultRawValue","helperText","hideAdornment","onChangeFixedPoint","onChange","resetValue","props","rawValue","setRawValue","useState","fixedPoint","setFixedPoint","error","setError","useMemo","handleRawValueChange","filteredValue","replaceAll","split","length","handleChange","event","target","value","onFixedPointChange","bigIntValue","fixedValue","toFixedPoint","undefined","e","console","useEffect","minFixedPoint","resolvedHelperText","React","TextField","type","Boolean","slotProps","htmlInput","pattern","input","startAdornment","FixedPointInputAdornment","position","FormHelperText","WithFormControl","textFieldProps","FormControl","BigIntInput","TextField","BigIntTextField","WithFormControl","Box","styled","Typography","React","useCallback","useState","ComponentName","EllipsizeRoot","styled","Box","name","shouldForwardProp","prop","slot","beforeLineHeight","content","display","float","visibility","lineHeight","EllipsizeInnerWrap","position","EllipsizeContentWrap","Typography","theme","ellipsisPosition","fontFamily","unstable_sx","left","overflow","right","textOverflow","whiteSpace","direction","textAlign","useClientHeight","contentWrapHeight","setContentWrapHeight","useState","contentWrapRef","useCallback","node","clientHeight","EllipsizeBox","ref","children","disableSharedRef","typographyProps","props","sharedRef","useShareForwardedRef","React","undefined","component","variant","displayName","Stack","Typography","React","LabeledTextFieldWrapper","children","label","props","React","Stack","flexDirection","Typography","gutterBottom","variant","ListItemButton","React","useNavigate","ListItemButtonExTo","to","toOptions","onClick","props","navigate","useNavigate","localOnClick","event","React","ListItemButton","ListItemButtonEx","FlexGrowRow","React","Typography","FlexGrowCol","React","NotFound","props","React","FlexGrowCol","Typography","variant","marginY","LoadResult","props","notFound","error","searchResult","children","React","NotFound","undefined","FlexGrowRow","busy","minHeight","Typography","React","Pipe","props","React","Typography","marginX","component","Alert","AlertTitle","React","PayloadDataMissing","alertBody","props","React","Alert","severity","AlertTitle","styled","React","StyledScrollTableOnSm","styled","theme","breakpoints","down","overflowX","display","flexGrow","ScrollTableOnSm","children","React","useTheme","FlexGrowRow","React","SectionSpacingRow","ref","children","sx","props","theme","useTheme","React","FlexGrowRow","paddingBottom","md","spacing","xs","paddingTop","width","displayName","React","styled","TableCell","asLinkHrefOrToProps","LinkEx","React","useMemo","EllipsisTableCellRoot","styled","TableCell","name","shouldForwardProp","prop","slot","width","EllipsisTableCellWithRef","ref","children","href","link","to","value","props","data","useMemo","React","LinkEx","title","asLinkHrefOrToProps","target","undefined","EllipsizeBox","sx","cursor","displayName","EllipsisTableCell","AddressTableCell","ref","value","archive","exploreDomain","link","props","href","undefined","to","React","EllipsisTableCell","displayName","useEvent","React","useRef","HashTableCell","value","archive","dataType","network","exploreDomain","onHashClick","props","ref","useRef","tableCellRef","dispatch","useEvent","undefined","hashPath","explorePath","handleCellClick","React","EllipsisTableCell","onClick","href","to","Avatar","useTheme","React","ThemeTokenAvatar","props","theme","useTheme","React","Avatar","sx","background","palette","common","white","AvatarGroup","React","ThemeTokenAvatarGroup","images","props","React","AvatarGroup","map","image","index","ThemeTokenAvatar","key","src","Paper","Typography","FlexRow","React","TokenBar","text1","text1Props","text1Suffix","text2","text2Props","text2Suffix","props","React","Paper","elevation","className","FlexRow","justifyContent","Typography","variant","fontWeight","margin","textTransform","color","ada","default","btc","busd","dai","dogecoin","dot","ethereum","frax","link","sol","tether","usdCoin","weth","wrappedBtc","xyo","TokenData","coinmarketcapLink","etherscanLink","icon","dai","readableName","tokenSymbol","uniqueTokenId","weth","ethereum","btc","xyo","frax","wrappedBtc","usdCoin","tether","ada","busd","dogecoin","dot","link","sol","useGetTokenData","symbols","map","symbol","additionalTokenData","TokenData","find","x","tokenSymbol","checkedTokenData","CardHeader","Typography","React","TokenSummary","icon","symbol","symbolElement","children","props","React","CardHeader","avatar","ThemeTokenAvatar","src","alt","title","Typography","variant","fontWeight","textTransform","Typography","React","TypographyEx","gradient","props","classes","useGradientStyles","React","Typography","className","heading","undefined","createContext","createContextEx","createContext","provided","use","useContextEx","context","contextName","required","provided","props","use","Error","useProvided","ResolvedDivinerContext","createContextEx","useResetState","React","useMemo","ResolvedDivinerProvider","diviner","divinerProp","required","children","context","Context","setDiviner","useResetState","value","useMemo","resolveDiviner","undefined","provided","React","ListModeContext","createContextEx","React","useMemo","useState","ListModeProvider","children","defaultListMode","listMode","setListMode","useState","value","useMemo","provided","React","ListModeContext","useListMode","required","useContextEx","ListModeContext","assertDefinedEx","expr","message","undefined","Error","parseMeausureString","measure","absolute","undefined","length","endsWith","Number","parseFloat","slice","Math","max","Error","window","innerWidth","innerHeight","parsePadding","padding","parts","split","bottom","left","right","top","getActualPaddingX","element","globalThis","getComputedStyle","getPropertyValue","paddingLeft","clientWidth","paddingRight","BubbleChartRounded","BubbleChartRoundedIcon","HubRounded","HubRoundedIcon","InsertLinkRounded","InsertLinkRoundedIcon","Inventory2Rounded","Inventory2RoundedIcon","TimerRounded","TimerRoundedIcon","VisibilityRounded","VisibilityRoundedIcon","React","networkComponents","icon","props","React","HubRoundedIcon","name","slug","TimerRoundedIcon","InsertLinkRoundedIcon","Inventory2RoundedIcon","BubbleChartRoundedIcon","VisibilityRoundedIcon","findNetworkComponentIndex","findIndex","info","findNetworkComponent","find"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/Ampersand.tsx","../../src/components/BasicHero/BasicHero.tsx","../../src/hooks/GradientStyles/GradientStyles.tsx","../../src/hooks/payload/useBoundWitnessValidate.tsx","../../src/hooks/payload/usePayloadHash.tsx","../../src/hooks/payload/usePayloadValidate.tsx","../../src/hooks/useDataState.ts","../../src/hooks/useMediaQuery.ts","../../src/hooks/useShareForwardRef.ts","../../src/components/bigint/FixedPointPopover.tsx","../../src/components/bigint/TextField.tsx","../../src/components/bigint/InputAdornment.tsx","../../src/components/bigint/Input.ts","../../src/components/Ellipsize.tsx","../../src/components/LabeledTextFieldWrapper.tsx","../../src/components/ListItemButtonEx.tsx","../../src/components/LoadResult.tsx","../../src/components/NotFound.tsx","../../src/components/Pipe.tsx","../../src/components/pluginValidation/DataMissing.tsx","../../src/components/ScrollTableOnSm.tsx","../../src/components/SectionSpacingRow/SectionSpacingRow.tsx","../../src/components/TableCell/AddressTableCell.tsx","../../src/components/TableCell/EllipsisTableCell.tsx","../../src/components/TableCell/HashTableCell.tsx","../../src/components/ThemeTokenAvatar/ThemeTokenAvatar.tsx","../../src/components/ThemeTokenAvatarGroup/ThemeTokenAvatarGroup.tsx","../../src/components/TokenBar/TokenBar.tsx","../../src/components/TokenData/img/index.ts","../../src/components/TokenData/TokenData.ts","../../src/components/TokenData/useGetTokenData.tsx","../../src/components/TokenSummary/TokenSummary.tsx","../../src/components/TypographyEx.tsx","../../src/contexts/contextEx/create.ts","../../src/contexts/contextEx/use.ts","../../src/contexts/diviner/Context.ts","../../src/contexts/diviner/Provider.tsx","../../src/contexts/ListMode/Context.ts","../../src/contexts/ListMode/Provider.tsx","../../src/contexts/ListMode/use.ts","../../src/lib/assertDefinedEx.ts","../../src/lib/getActualPaddingX.ts","../../src/lib/networkComponents.tsx"],"sourcesContent":["import type { TypographyProps } from '@mui/material'\nimport { Typography } from '@mui/material'\nimport React from 'react'\n\nexport const Ampersand: React.FC<TypographyProps> = (props) => {\n return (\n <Typography marginX={1} component=\"span\" {...props}>\n &\n </Typography>\n )\n}\n","import {\n Container, Grid, styled, Typography,\n} from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexGrowCol, FlexGrowRow } from '@xylabs/react-flexbox'\nimport { LinkEx } from '@xylabs/react-link'\nimport { useIsSmall } from '@xylabs/react-theme'\nimport type { ReactElement } from 'react'\nimport React from 'react'\nimport type { To } from 'react-router-dom'\n\nimport { useGradientStyles } from '../../hooks/index.ts'\n\nexport interface BasicHeroProps extends FlexBoxProps {\n backgroundColor?: string\n backgroundImage?: string\n button1Href?: string\n button1Text?: string\n button1To?: string\n button2Href?: string\n button2Text?: string\n button2To?: string\n desc: string\n gradientTitle?: string\n heroImage?: string\n subLinkIcon?: ReactElement\n subLinkPath?: string\n subLinkText1?: string\n subLinkText2?: string\n sx?: Record<string, string>\n textColor?: string\n title: string\n title2?: string\n}\n\ninterface SubLinkSectionProps {\n backgroundImageAlignment?: boolean\n subLinkIcon?: ReactElement\n subLinkPath?: string\n subLinkText1?: string\n subLinkText2?: string\n}\n\ninterface ButtonSectionBaseProps {\n buttonText?: string\n}\n\ninterface ButtonSectionHrefProps extends ButtonSectionBaseProps {\n href?: string\n to?: never\n}\n\ninterface ButtonSectionToProps extends ButtonSectionBaseProps {\n href?: never\n to?: To\n}\n\ninterface ButtonSectionClickProps extends ButtonSectionBaseProps {\n href?: never\n to?: never\n}\n\ntype ButtonSectionProps = ButtonSectionHrefProps | ButtonSectionToProps | ButtonSectionClickProps\n\nconst SubLinkSection: React.FC<SubLinkSectionProps> = ({\n backgroundImageAlignment, subLinkIcon, subLinkPath, subLinkText1, subLinkText2,\n}) => {\n return (\n <FlexGrowRow\n width=\"100%\"\n sx={{\n flexDirection: { md: 'row', xs: 'column' },\n justifyContent: { md: backgroundImageAlignment ? 'flex-start' : 'center', xs: 'center' },\n }}\n >\n {subLinkIcon\n ? (\n <span>\n {subLinkIcon}\n \n </span>\n )\n : null}\n <Typography>\n {subLinkText1}\n \n </Typography>\n <LinkEx href={subLinkPath} underline=\"always\" target=\"_blank\" color=\"inherit\">\n <Typography>{subLinkText2}</Typography>\n </LinkEx>\n </FlexGrowRow>\n )\n}\n\nconst ButtonSection: React.FC<ButtonSectionProps> = ({\n href, to, buttonText,\n}) => {\n const isMobile = useIsSmall()\n return href\n ? (\n <ButtonEx\n fullWidth={true}\n marginTop={1}\n marginBottom={1}\n marginRight={isMobile ? 2 : 1}\n marginLeft={isMobile ? 2 : 0}\n target={href ?? '_blank'}\n href={href}\n color=\"primary\"\n variant=\"contained\"\n paddingX={3}\n sx={{ display: href || to ? 'flex' : 'none' }}\n >\n {buttonText}\n </ButtonEx>\n )\n : to\n ? (\n <ButtonEx\n fullWidth={true}\n marginTop={1}\n marginBottom={1}\n marginRight={isMobile ? 2 : 1}\n marginLeft={isMobile ? 2 : 0}\n to={to}\n color=\"primary\"\n variant=\"contained\"\n paddingX={3}\n sx={{ display: href || to ? 'flex' : 'none' }}\n >\n {buttonText}\n </ButtonEx>\n )\n : (\n <ButtonEx\n fullWidth={true}\n marginTop={1}\n marginBottom={1}\n marginRight={isMobile ? 2 : 1}\n marginLeft={isMobile ? 2 : 0}\n color=\"primary\"\n variant=\"contained\"\n paddingX={3}\n sx={{ display: href || to ? 'flex' : 'none' }}\n >\n {buttonText}\n </ButtonEx>\n )\n}\n\n// eslint-disable-next-line complexity\nexport const BasicHero: React.FC<BasicHeroProps> = ({\n backgroundImage,\n title,\n gradientTitle,\n backgroundColor,\n textColor,\n desc,\n heroImage,\n title2,\n subLinkText1,\n subLinkText2,\n subLinkPath,\n button1Text,\n button2Text,\n button2To,\n button1To,\n button2Href,\n button1Href,\n subLinkIcon,\n sx,\n ...props\n}) => {\n const isMobile = useIsSmall()\n const styles = useGradientStyles()\n\n const StyledSpan = styled('span')({ ...styles.heading })\n\n return (\n <FlexGrowCol\n sx={{\n backgroundImage: `url(${backgroundImage})`,\n backgroundPosition: {\n lg: 'bottom', md: 'center left', xs: 'top left',\n },\n minHeight: {\n md: '500px',\n sm: '400px',\n xs: '200px',\n },\n ...sx,\n }}\n style={{\n backgroundColor: backgroundColor ?? '',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n color: textColor ?? '',\n }}\n {...props}\n >\n <Container>\n <Grid\n container\n justifyContent=\"center\"\n alignItems=\"center\"\n sx={{\n alignItems: { xs: 'center' },\n justifyContent: { xs: 'center' },\n }}\n >\n <Grid size={{\n xs: 12, sm: 8, md: backgroundImage ? 6 : 8, lg: backgroundImage ? 6 : 8,\n }}\n >\n <FlexGrowCol paddingY={2} sx={{ alignItems: { xs: backgroundImage && !isMobile ? 'flex-start' : 'center' } }}>\n <Typography variant=\"h1\" component=\"h1\" gutterBottom textAlign={backgroundImage && !isMobile ? 'left' : 'center'}>\n {title\n ? <span>{`${title} `}</span>\n : null}\n {gradientTitle\n ? (\n <StyledSpan>\n {' '}\n {` ${gradientTitle}`}\n </StyledSpan>\n )\n : null}\n {title2\n ? <span>{` ${title2}`}</span>\n : null}\n </Typography>\n <Typography variant=\"body1\" component=\"h2\" gutterBottom textAlign={backgroundImage && !isMobile ? 'left' : 'center'}>\n {desc}\n </Typography>\n <FlexGrowRow\n sx={{ flexDirection: { lg: 'row', xs: 'column' } }}\n width=\"100%\"\n marginTop={1}\n >\n {\n button1Href\n ? <ButtonSection href={button1Href} buttonText={button1Text} />\n : button1To ? <ButtonSection to={button1To} buttonText={button1Text} /> : <ButtonSection buttonText={button1Text} />\n }\n {\n button2Href\n ? <ButtonSection href={button2Href} buttonText={button2Text} />\n : button2To ? <ButtonSection to={button2To} buttonText={button2Text} /> : <ButtonSection buttonText={button2Text} />\n }\n </FlexGrowRow>\n <SubLinkSection\n subLinkIcon={subLinkIcon}\n subLinkText1={subLinkText1}\n subLinkText2={subLinkText2}\n subLinkPath={subLinkPath}\n backgroundImageAlignment={backgroundImage ? true : false}\n />\n </FlexGrowCol>\n </Grid>\n <Grid size={{ xs: 12, md: 6 }}>\n {heroImage\n ? <img src={heroImage} width=\"100%\" />\n : null}\n </Grid>\n </Grid>\n </Container>\n </FlexGrowCol>\n )\n}\n","import { makeStyles, useTheme } from '@mui/material'\nimport type { CSSProperties } from 'react'\n\nexport interface GradientStyles {\n background: CSSProperties\n border: CSSProperties\n heading: CSSProperties\n}\n\nexport const colorfulGradientLightMode = () => {\n return {\n background: { backgroundImage: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)' },\n border: {\n borderImage: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n borderImageSlice: 1,\n borderImageSource: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n borderRadius: 0,\n borderStyle: 'solid',\n borderWidth: '2px',\n },\n heading: {\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n background: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n display: 'inline-block',\n },\n }\n}\n\nexport const colorfulGradientDarkMode = () => {\n return {\n background: { backgroundImage: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)' },\n border: {\n borderImage: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n borderImageSlice: 1,\n borderImageSource: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n borderRadius: 0,\n borderStyle: 'solid',\n borderWidth: '2px',\n },\n heading: {\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n background: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n display: 'inline-block',\n },\n }\n}\n\nexport const useGradientStyles = () => {\n const theme = useTheme()\n const styles = theme.palette.mode === 'dark' ? colorfulGradientDarkMode() : colorfulGradientLightMode()\n return styles\n}\n","import { assertEx } from '@xylabs/assert'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { isAnyPayload } from '@xyo-network/payload-model'\n\nimport type { ValidatedResponse } from './types/index.ts'\n\nexport const useValidateBoundWitness = (input?: string): ValidatedResponse<BoundWitness> => {\n const [output, validationError] = usePromise(async () => {\n if (!input) return\n\n const object = JSON.parse(input)\n const validPayload = assertEx(isAnyPayload(object) ? object : null, () => 'Invalid payload')\n\n const errors = await new BoundWitnessValidator(validPayload as BoundWitness).validate()\n return {\n payload: validPayload as BoundWitness,\n errors,\n }\n }, [input])\n\n const { payload, errors } = output ?? {}\n\n return {\n payload,\n errors: [validationError, ...errors ?? []].filter<Error>(error => !!error),\n }\n}\n","import type { Hash } from '@xylabs/hex'\nimport { usePromise } from '@xylabs/react-promise'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { type Payload } from '@xyo-network/payload-model'\n\nexport const usePayloadHash = <TPayload extends Payload>(payload: TPayload | undefined | null) => {\n return usePromise(async () => (payload ? await PayloadBuilder.dataHash(payload) : undefined), [payload])[0]\n}\n\nexport const usePayloadRootHash = <TPayload extends Payload>(payload: TPayload | undefined | null) => {\n return usePromise(async () => (payload ? await PayloadBuilder.hash(payload) : undefined), [payload])[0]\n}\n\nexport const usePayloadHashes = <TPayload extends Payload>(payloads: TPayload[] | undefined | null) => {\n return usePromise(\n async () =>\n payloads\n ? await Promise.all(payloads.map<Promise<[TPayload, Hash]>>(async payload => [payload, await PayloadBuilder.dataHash(payload)]))\n : undefined,\n [payloads],\n )[0]\n}\n","import { assertEx } from '@xylabs/assert'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isAnyPayload } from '@xyo-network/payload-model'\nimport { useMemo } from 'react'\n\nimport type { ValidatedResponse } from './types/index.ts'\n\nexport const usePayloadValidate = <TPayload extends Payload>(input?: string): ValidatedResponse => {\n return useMemo(() => {\n if (!input) return {}\n try {\n const object = JSON.parse(input)\n const validPayload = assertEx(isAnyPayload(object) ? object : null, () => 'Invalid payload')\n const { schema, ...fields } = validPayload\n return { payload: new PayloadBuilder({ schema }).fields(fields).build() as TPayload }\n } catch (error) {\n return { errors: [error as Error] }\n }\n }, [input])\n}\n","import type { Dispatch, SetStateAction } from 'react'\nimport { useState } from 'react'\n\nexport const useDataState = <T>(defaultValue: T | undefined): [T | undefined, Dispatch<SetStateAction<T | undefined>>] => {\n const [state, setState] = useState(defaultValue)\n\n const setDataState: Dispatch<SetStateAction<T | undefined>> = (value: SetStateAction<T | undefined>) => {\n try {\n if (JSON.stringify(value) !== JSON.stringify(state)) {\n setState(value)\n }\n } catch {\n console.error('setDataState failed! Make sure data type is stringifiable!')\n }\n }\n\n return [state, setDataState]\n}\n","/* This file only exists to deal with the false positive lint error */\n\nexport { useMediaQuery } from '@mui/material'\n","import type { ForwardedRef } from 'react'\nimport { useEffect, useRef } from 'react'\n\nexport const useShareForwardedRef = <T>(forwardedRef: ForwardedRef<T> | null | undefined, refresh = 0) => {\n // final ref that will share value with forward ref. this is the one to be attached to components\n const innerRef = useRef<T>(null)\n\n useEffect(() => {\n if (!forwardedRef) {\n return\n }\n if (typeof forwardedRef === 'function') {\n forwardedRef(innerRef.current)\n return\n } else {\n forwardedRef.current = innerRef.current\n }\n }, [forwardedRef, refresh])\n\n return innerRef\n}\n","import {\n FormHelperText, Popover, type PopoverProps, TextField,\n} from '@mui/material'\nimport React from 'react'\n\nexport interface FixedPointPopoverProps extends PopoverProps {\n fixedPoint?: number\n minFixedPoint?: number\n onFixedPointChange?: (value: number) => void\n}\n\nexport const FixedPointPopover: React.FC<FixedPointPopoverProps> = ({\n fixedPoint, minFixedPoint: minimumPoint, onFixedPointChange, ...props\n}) => {\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const fixedPointInteger = Number.parseInt(event.target.value, 10)\n if (Number.isNaN(fixedPointInteger)) return\n onFixedPointChange?.(fixedPointInteger)\n }\n\n return (\n <Popover slotProps={{ paper: { sx: { p: 2 } } }} {...props}>\n <TextField slotProps={{ htmlInput: { min: minimumPoint } }} value={fixedPoint} onChange={handleChange} type=\"number\" />\n <FormHelperText>Set the Fixed Point</FormHelperText>\n </Popover>\n )\n}\n","import type { FormControlProps, StandardTextFieldProps } from '@mui/material'\nimport {\n FormControl, FormHelperText, TextField,\n} from '@mui/material'\nimport { toFixedPoint } from '@xylabs/decimal-precision'\nimport type { FocusEventHandler } from 'react'\nimport React, {\n useEffect, useMemo, useState,\n} from 'react'\n\nimport { FixedPointInputAdornment } from './InputAdornment.tsx'\n\nexport interface BigIntTextFieldProps extends StandardTextFieldProps {\n defaultFixedPoint?: number\n defaultRawValue?: string\n hideAdornment?: boolean\n onChangeFixedPoint?: (value?: bigint) => void\n resetValue?: number\n}\n\nexport const BigIntTextField: React.FC<BigIntTextFieldProps> = ({\n defaultFixedPoint = 18, defaultRawValue, helperText, hideAdornment, onChangeFixedPoint, onChange, resetValue, ...props\n}) => {\n const [rawValue, setRawValue] = useState<string>('')\n const [fixedPoint, setFixedPoint] = useState(defaultFixedPoint)\n const [error, setError] = useState<Error>()\n\n useMemo(() => {\n setRawValue('')\n }, [resetValue])\n\n const handleRawValueChange = (rawValue: string) => {\n // remove all alpha characters but allow decimals\n const filteredValue = rawValue.replaceAll(/[^\\d.]/g, '')\n // only allow one decimal point\n if (filteredValue.split('.').length > 2) return\n setRawValue(filteredValue)\n }\n\n useMemo(() => {\n if (defaultRawValue) {\n handleRawValueChange(defaultRawValue)\n }\n }, [defaultRawValue])\n\n const handleChange: FocusEventHandler<HTMLTextAreaElement> = (event) => {\n // run standard callback\n onChange?.(event)\n handleRawValueChange(event.target.value)\n }\n\n const onFixedPointChange = (fixedPoint: number) => setFixedPoint(fixedPoint)\n\n // on value or point changes, run the bigInt callback\n const bigIntValue = useMemo(() => {\n if (rawValue) {\n const fixedValue = toFixedPoint(rawValue, fixedPoint)\n setError(undefined)\n try {\n return fixedValue\n } catch (e) {\n console.error(e)\n setError(e as Error)\n return\n }\n } else {\n return\n }\n // run bigInt callback\n }, [rawValue, fixedPoint])\n\n useEffect(() => {\n onChangeFixedPoint?.(bigIntValue)\n }, [bigIntValue])\n\n // prevent the fixed point from being less than the number of decimal places\n const minFixedPoint = rawValue.split('.')[1]?.length\n\n const resolvedHelperText = useMemo(() => {\n if (error) return 'Cannot convert to BigInt'\n return helperText ?? 'Enter a number'\n }, [helperText, error])\n\n return (\n <>\n <TextField\n onChange={handleChange}\n type=\"string\"\n error={Boolean(error)}\n slotProps={{\n htmlInput: { pattern: '[0-9]*[.]?[0-9]*' },\n input: {\n startAdornment: (hideAdornment\n ? null\n : (\n <FixedPointInputAdornment\n position=\"start\"\n fixedPoint={fixedPoint}\n minFixedPoint={minFixedPoint}\n onFixedPointChange={onFixedPointChange}\n />\n )\n ),\n },\n }}\n value={rawValue}\n {...props}\n />\n <FormHelperText>{resolvedHelperText}</FormHelperText>\n </>\n )\n}\n\nexport interface InputWithFormControlProps extends FormControlProps {\n textFieldProps?: BigIntTextFieldProps\n}\n\nexport const WithFormControl: React.FC<InputWithFormControlProps> = ({ textFieldProps, ...props }) => (\n <FormControl {...props}>\n <BigIntTextField {...textFieldProps} />\n </FormControl>\n)\n","import type { InputAdornmentProps } from '@mui/material'\nimport {\n Avatar, IconButton, InputAdornment,\n} from '@mui/material'\nimport React, { useRef, useState } from 'react'\n\nimport { FixedPointPopover } from './FixedPointPopover.tsx'\n\nexport interface FixedPointInputAdornmentProps extends InputAdornmentProps {\n fixedPoint?: number\n minFixedPoint?: number\n onFixedPointChange?: (value: number) => void\n}\n\nexport const FixedPointInputAdornment: React.FC<FixedPointInputAdornmentProps> = ({\n fixedPoint, minFixedPoint, onFixedPointChange, ...props\n}) => {\n const ref = useRef<HTMLButtonElement>(null)\n const [open, setOpen] = useState(false)\n\n return (\n <InputAdornment {...props}>\n <FixedPointPopover\n anchorEl={ref.current}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n fixedPoint={fixedPoint}\n minFixedPoint={minFixedPoint}\n onClose={() => setOpen(false)}\n onFixedPointChange={onFixedPointChange}\n open={open}\n />\n <IconButton size=\"small\" ref={ref} onClick={() => setOpen(!open)}>\n <Avatar sx={{\n fontSize: '.75rem',\n height: '20px',\n width: '20px',\n }}\n >\n {fixedPoint}\n </Avatar>\n </IconButton>\n </InputAdornment>\n )\n}\n","import { BigIntTextField, WithFormControl } from './TextField.tsx'\n\nexport const BigIntInput = {\n TextField: BigIntTextField,\n WithFormControl,\n}\n","import type {\n BoxProps, TypographyProps, TypographyTypeMap,\n} from '@mui/material'\nimport {\n Box, styled, Typography,\n} from '@mui/material'\nimport type { PropsWithChildren } from 'react'\nimport React, { useCallback, useState } from 'react'\n\nimport { useShareForwardedRef } from '../hooks/index.ts'\n\n/**\n * Heavily inspired by - https://stackoverflow.com/a/30362531/2803259\n */\n\nconst ComponentName = 'Ellipsize'\n\nexport interface EllipsizeRootProps extends BoxProps {\n beforeLineHeight?: string | number\n}\n\nconst EllipsizeRoot = styled(Box, {\n name: ComponentName,\n shouldForwardProp: prop => prop !== 'beforeLineHeight',\n slot: 'Root',\n})<EllipsizeRootProps>(({ beforeLineHeight }) => ({\n '&': {\n // because the cell content ends up absolutely positioned, the cell doesn't know the content height.\n // the pseudo element with a hidden character establishes the proper height of the content and hides it\n ':before': {\n content: \"'nbsp;'\",\n display: 'block',\n // take the pseudo element out of the `display: block` flow so it won't push against our actual content\n float: 'left',\n visibility: 'hidden',\n // since we are `display: block`, lineHeight is the height\n ...(beforeLineHeight && { lineHeight: beforeLineHeight }),\n },\n },\n}))\n\nconst EllipsizeInnerWrap = styled(Box, {\n name: ComponentName,\n slot: 'innerWrap',\n})(() => ({ position: 'relative' }))\n\nconst EllipsizeContentWrap = styled(Typography, {\n name: ComponentName,\n shouldForwardProp: prop => prop !== 'ellipsisPosition',\n slot: 'contentWrap',\n})<TypographyWithComponentProps>(({\n theme, ellipsisPosition, fontFamily,\n}) => {\n return theme.unstable_sx({\n fontFamily: fontFamily ?? 'monospace',\n left: 0,\n overflow: 'hidden',\n position: 'absolute',\n right: 0,\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n ...(ellipsisPosition === 'start'\n ? {\n direction: 'rtl',\n textAlign: 'left',\n }\n : {}),\n })\n})\n\nconst useClientHeight = () => {\n const [contentWrapHeight, setContentWrapHeight] = useState<string>()\n\n const contentWrapRef = useCallback((node: HTMLElement) => {\n if (node !== null) {\n setContentWrapHeight(node.clientHeight + 'px')\n }\n }, [])\n\n return { contentWrapHeight, contentWrapRef }\n}\n\nexport type TypographyWithComponentProps<D extends React.ElementType = TypographyTypeMap['defaultComponent'], P = {}> = TypographyProps<D, P> & {\n ellipsisPosition?: 'start' | 'end'\n}\n\nexport interface EllipsizeBoxProps extends BoxProps {\n disableSharedRef?: boolean\n ellipsisPosition?: 'start' | 'end'\n typographyProps?: TypographyWithComponentProps\n}\n\nexport const EllipsizeBox = ({\n ref, children, ellipsisPosition = 'start', disableSharedRef, typographyProps, ...props\n}: PropsWithChildren<EllipsizeBoxProps>) => {\n // Allow syncing of :before pseudo element height with contentWrapHeight\n const { contentWrapRef, contentWrapHeight } = useClientHeight()\n const sharedRef = useShareForwardedRef(ref)\n\n return (\n <EllipsizeRoot beforeLineHeight={!!sharedRef && !disableSharedRef ? contentWrapHeight : undefined} {...props} ref={sharedRef}>\n <EllipsizeInnerWrap>\n <EllipsizeContentWrap ref={contentWrapRef} component=\"span\" ellipsisPosition={ellipsisPosition} variant=\"body2\" {...typographyProps}>\n {children}\n </EllipsizeContentWrap>\n </EllipsizeInnerWrap>\n </EllipsizeRoot>\n )\n}\nEllipsizeBox.displayName = 'EllipsizeBox'\n","import type { StackProps } from '@mui/material'\nimport { Stack, Typography } from '@mui/material'\nimport React from 'react'\n\nexport interface LabeledTextFieldWrapperProps extends StackProps {\n label: string\n}\n\nexport const LabeledTextFieldWrapper: React.FC<LabeledTextFieldWrapperProps> = ({\n children, label, ...props\n}) => {\n return (\n <Stack flexDirection=\"column\" {...props}>\n <Typography gutterBottom variant=\"caption\">\n {label}\n </Typography>\n {children}\n </Stack>\n )\n}\n","import type { ListItemButtonProps } from '@mui/material'\nimport { ListItemButton } from '@mui/material'\nimport type { MouseEvent } from 'react'\nimport React from 'react'\nimport type { NavigateOptions, To } from 'react-router-dom'\nimport { useNavigate } from 'react-router-dom'\n\nexport interface ListItemButtonExProps extends ListItemButtonProps {\n target?: string\n to?: To\n toOptions?: NavigateOptions\n}\n\nexport const ListItemButtonExTo: React.FC<ListItemButtonExProps> = ({\n to, toOptions, onClick, ...props\n}) => {\n const navigate = useNavigate()\n const localOnClick = (event: MouseEvent<HTMLDivElement>) => {\n onClick?.(event)\n if (to) {\n void navigate(to, toOptions)\n }\n }\n\n return <ListItemButton onClick={localOnClick} {...props} />\n}\n\nexport const ListItemButtonEx: React.FC<ListItemButtonExProps> = ({ to, ...props }) => {\n return to ? <ListItemButtonExTo to={to} {...props} /> : <ListItemButton {...props} />\n}\n","import { FlexGrowRow } from '@xylabs/react-flexbox'\nimport type { PropsWithChildren } from 'react'\nimport React from 'react'\n\nimport { NotFound } from './NotFound.tsx'\n\nexport interface LoadResultProps<T> {\n /** @deprecated - use error prop */\n apiError?: Error\n /** Defer error handling to the children and load them */\n error?: boolean\n notFound: boolean\n searchResult: T | undefined\n}\n\nexport function LoadResult<T>(props: PropsWithChildren<LoadResultProps<T>>) {\n const {\n notFound, error, searchResult, children,\n } = props\n if (notFound) {\n return <NotFound />\n }\n if (error) {\n return <>{children}</>\n }\n return searchResult === undefined ? <FlexGrowRow busy minHeight=\"50px\" /> : <>{children}</>\n}\n","import { Typography } from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexGrowCol } from '@xylabs/react-flexbox'\nimport React from 'react'\n\n/** @deprecated use from @@xylabs/react-shared instead */\nexport const NotFound: React.FC<FlexBoxProps> = (props) => {\n return (\n <FlexGrowCol {...props}>\n <Typography variant=\"h2\">Sorry!</Typography>\n <Typography marginY={3} variant=\"body2\">\n {'Can\\'t find anything here'}\n </Typography>\n </FlexGrowCol>\n )\n}\n","import type { TypographyProps } from '@mui/material'\nimport { Typography } from '@mui/material'\nimport React from 'react'\n\nexport const Pipe: React.FC<TypographyProps> = (props) => {\n return (\n <Typography marginX={1} component=\"span\" {...props}>\n |\n </Typography>\n )\n}\n","import type { AlertProps } from '@mui/material'\nimport { Alert, AlertTitle } from '@mui/material'\nimport React from 'react'\n\nexport interface PayloadDataMissingProps extends AlertProps {\n alertBody?: string\n}\n\nexport const PayloadDataMissing: React.FC<PayloadDataMissingProps> = ({ alertBody, ...props }) => {\n return (\n <Alert severity=\"warning\" {...props}>\n <AlertTitle>Missing Data</AlertTitle>\n {alertBody ?? 'Payload is missing required data to render correctly'}\n </Alert>\n )\n}\n","import { styled } from '@mui/material'\nimport type { PropsWithChildren } from 'react'\nimport React from 'react'\n\nconst StyledScrollTableOnSm = styled('div')(({ theme }) => ({\n [theme.breakpoints.down('md')]: { overflowX: 'scroll' },\n display: 'flex',\n flexGrow: 1,\n}))\n\nconst ScrollTableOnSm: React.FC<PropsWithChildren> = ({ children }) => <StyledScrollTableOnSm>{children}</StyledScrollTableOnSm>\n\nexport { ScrollTableOnSm }\n","import { useTheme } from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexGrowRow } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nexport const SectionSpacingRow = ({\n ref, children, sx, ...props\n}: FlexBoxProps) => {\n const theme = useTheme()\n return (\n <FlexGrowRow\n sx={{\n paddingBottom: { md: theme.spacing(5), xs: theme.spacing(5) },\n paddingTop: { md: theme.spacing(5), xs: theme.spacing(5) },\n ...sx,\n }}\n width=\"100%\"\n ref={ref}\n {...props}\n >\n {children}\n </FlexGrowRow>\n )\n}\n\nSectionSpacingRow.displayName = 'SectionSpacingRow'\n","import React from 'react'\n\nimport type { EllipsisTableCellProps } from './EllipsisTableCell.tsx'\nimport { EllipsisTableCell } from './EllipsisTableCell.tsx'\n\nexport interface AddressTableCellProps extends EllipsisTableCellProps {\n /** @deprecated - archives are no longer supported */\n archive?: string\n /** @deprecated - use events instead */\n exploreDomain?: string\n link?: boolean\n}\n\nconst AddressTableCell = ({\n ref, value, archive, exploreDomain, link, ...props\n}: AddressTableCellProps) => {\n const href = exploreDomain && archive ? `${exploreDomain}/archive/${archive}/address/${value}` : undefined\n const to = exploreDomain === undefined && archive ? `/archive/${archive}/address/${value}` : undefined\n\n return <EllipsisTableCell value={value} href={href} to={to} ref={ref} link={link} {...props} />\n}\n\nAddressTableCell.displayName = 'AddressTableCell'\nexport { AddressTableCell }\n","import type { TableCellProps } from '@mui/material'\nimport { styled, TableCell } from '@mui/material'\nimport { asLinkHrefOrToProps, LinkEx } from '@xylabs/react-link'\nimport React, { useMemo } from 'react'\nimport type { To } from 'react-router-dom'\n\nimport { EllipsizeBox } from '../Ellipsize.tsx'\n\nconst EllipsisTableCellRoot = styled(TableCell, {\n name: 'EllipsisTableCell',\n shouldForwardProp: prop => prop !== 'width',\n slot: 'Root',\n})(({ width = '100%' }) => ({ width }))\n\nexport interface EllipsisTableCellProps extends TableCellProps {\n href?: string\n link?: boolean\n to?: To\n value?: string\n /**\n * Width of the table cell.\n *\n * Note: When using percentages, this value can be different than what you expect\n * if used on a cell that is not the first cell in the first row.\n */\n width?: string | number\n}\n\nexport const EllipsisTableCellWithRef = ({\n ref, children, href, link = false, to, value, ...props\n}: EllipsisTableCellProps) => {\n const data = useMemo(() => {\n if (children) {\n return children\n }\n if (href || link || to) {\n return (\n <LinkEx title={value} {...asLinkHrefOrToProps({ to, href })} target={href ? '_blank' : undefined}>\n {value}\n </LinkEx>\n )\n }\n return value\n }, [children, href, link, to, value])\n return (\n <EllipsisTableCellRoot {...props}>\n <EllipsizeBox ref={ref} sx={{ cursor: link || to || href ? 'pointer' : 'inherit' }}>{data}</EllipsizeBox>\n </EllipsisTableCellRoot>\n )\n}\n\nEllipsisTableCellWithRef.displayName = 'EllipsisTableCell'\nexport const EllipsisTableCell = EllipsisTableCellWithRef\n","import type { Hash } from '@xylabs/hex'\nimport { useEvent } from '@xyo-network/react-event'\nimport React, { useRef } from 'react'\n\nimport type { EllipsisTableCellProps } from './EllipsisTableCell.tsx'\nimport { EllipsisTableCell } from './EllipsisTableCell.tsx'\n\nexport interface HashTableCellProps extends EllipsisTableCellProps {\n archive?: string\n dataType?: 'block' | 'payload'\n exploreDomain?: string\n network?: string\n onHashClick?: (value: Hash) => void\n}\n\nexport const HashTableCell: React.FC<HashTableCellProps> = ({\n value, archive, dataType, network, exploreDomain, onHashClick, ...props\n}) => {\n const ref = useRef<HTMLTableCellElement | null>(null)\n const [tableCellRef, dispatch] = useEvent<HTMLTableCellElement>(undefined, ref)\n const hashPath = `/${dataType}/hash/${value}?network=${network ?? 'main'}`\n const explorePath = archive ? `/archive/${archive}${hashPath}` : hashPath\n\n const handleCellClick = () => {\n if (onHashClick) {\n onHashClick(value as Hash)\n } else {\n dispatch?.('hash', 'click', value as Hash)\n }\n }\n\n return (\n <EllipsisTableCell\n onClick={handleCellClick}\n ref={tableCellRef}\n value={value}\n href={exploreDomain ? `${exploreDomain}${explorePath}}` : undefined}\n to={exploreDomain ? undefined : explorePath}\n {...props}\n />\n )\n}\n","import type { AvatarProps } from '@mui/material'\nimport { Avatar, useTheme } from '@mui/material'\nimport React from 'react'\n\nexport const ThemeTokenAvatar: React.FC<AvatarProps> = ({ ...props }) => {\n const theme = useTheme()\n return <Avatar sx={{ background: theme.palette.common.white }} {...props} />\n}\n","import type { AvatarGroupProps } from '@mui/material'\nimport { AvatarGroup } from '@mui/material'\nimport React from 'react'\n\nimport { ThemeTokenAvatar } from '../ThemeTokenAvatar/index.ts'\n\nexport interface ThemeTokenAvatarGroupProps extends AvatarGroupProps {\n images?: string[]\n}\n\nexport const ThemeTokenAvatarGroup: React.FC<ThemeTokenAvatarGroupProps> = ({ images, ...props }) => {\n return <AvatarGroup {...props}>{images?.map((image, index) => <ThemeTokenAvatar key={index} src={image} />)}</AvatarGroup>\n}\n","import type { PaperProps, TypographyProps } from '@mui/material'\nimport { Paper, Typography } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport type { ReactNode } from 'react'\nimport React from 'react'\nexport interface TokenBarProps extends PaperProps {\n text1?: ReactNode\n text1Props?: TypographyProps\n text1Suffix?: ReactNode\n text2?: ReactNode\n text2Props?: TypographyProps\n text2Suffix?: ReactNode\n}\n\nexport const TokenBar: React.FC<TokenBarProps> = ({\n text1, text1Props, text1Suffix, text2, text2Props, text2Suffix, ...props\n}) => {\n return (\n <Paper elevation={0} className=\"TokenBar-root\" {...props}>\n <FlexRow justifyContent=\"space-between\">\n <Typography variant=\"body1\" fontWeight={300} margin={1} {...text1Props}>\n {text1}\n {text1Suffix}\n </Typography>\n <Typography variant=\"body1\" fontWeight={300} textTransform=\"uppercase\" color=\"gray\" margin={1} {...text2Props}>\n {text2}\n {text2Suffix}\n </Typography>\n </FlexRow>\n </Paper>\n )\n}\n","export { default as ada } from './ada.png'\nexport { default as btc } from './btc.png'\nexport { default as busd } from './busd.png'\nexport { default as dai } from './dai.png'\nexport { default as dogecoin } from './dogecoin.png'\nexport { default as dot } from './dot.png'\nexport { default as ethereum } from './ethereum.png'\nexport { default as frax } from './frax.png'\nexport { default as link } from './link.png'\nexport { default as sol } from './sol.png'\nexport { default as tether } from './tether.png'\nexport { default as usdCoin } from './usd-coin.png'\nexport { default as weth } from './weth.png'\nexport { default as wrappedBtc } from './wrapped-bitcoin.png'\nexport { default as xyo } from './xyo.png'\n","import * as tokenImages from './img/index.ts'\n\nexport interface TokenData {\n coinmarketcapLink: string\n etherscanLink: string\n icon: string\n readableName: string\n tokenSymbol: string\n uniqueTokenId: string\n}\n\nexport const TokenData: TokenData[] = [\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/multi-collateral-dai/',\n etherscanLink: 'https://etherscan.io/token/0x6b175474e89094c44da98b954eedeac495271d0f',\n icon: tokenImages.dai,\n readableName: 'Dai',\n tokenSymbol: 'dai',\n uniqueTokenId: 'dai',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/weth/',\n etherscanLink: 'https://etherscan.io/token/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n icon: tokenImages.weth,\n readableName: 'Weth',\n tokenSymbol: 'weth',\n uniqueTokenId: 'weth',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/ethereum/',\n etherscanLink: 'n/a',\n icon: tokenImages.ethereum,\n readableName: 'Ethereum',\n tokenSymbol: 'eth',\n uniqueTokenId: 'ethereum',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/bitcoin/',\n etherscanLink: 'n/a',\n icon: tokenImages.btc,\n readableName: 'Bitcoin',\n tokenSymbol: 'btc',\n uniqueTokenId: 'btc',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/xyo/',\n etherscanLink: 'https://etherscan.io/token/0x55296f69f40ea6d20e478533c15a6b08b654e758',\n icon: tokenImages.xyo,\n readableName: 'XYO',\n tokenSymbol: 'xyo',\n uniqueTokenId: 'xyo',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/frax/',\n etherscanLink: 'https://etherscan.io/token/0x853d955acef822db058eb8505911ed77f175b99e',\n icon: tokenImages.frax,\n readableName: 'Frax',\n tokenSymbol: 'frax',\n uniqueTokenId: 'frax',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/wrapped-bitcoin/',\n etherscanLink: 'https://etherscan.io/token/0x2260fac5e5542a773aa44fbcfedf7c193bc2c599',\n icon: tokenImages.wrappedBtc,\n readableName: 'Wrapped BTC',\n tokenSymbol: 'wbtc',\n uniqueTokenId: 'wbtc',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/usd-coin/',\n etherscanLink: 'https://etherscan.io/token/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n icon: tokenImages.usdCoin,\n readableName: 'USDC',\n tokenSymbol: 'usdc',\n uniqueTokenId: 'usdc',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/tether/',\n etherscanLink: 'https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7',\n icon: tokenImages.tether,\n readableName: 'Tether',\n tokenSymbol: 'usdt',\n uniqueTokenId: 'usdt',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/cardano/',\n etherscanLink: 'https://etherscan.io/token/0xc14777c94229582e5758c5a79b83dde876b9be98',\n icon: tokenImages.ada,\n readableName: 'Cardano',\n tokenSymbol: 'ada',\n uniqueTokenId: 'ada',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/binance-usd/',\n etherscanLink: 'https://etherscan.io/token/0x4Fabb145d64652a948d72533023f6E7A623C7C53',\n icon: tokenImages.busd,\n readableName: 'Binance USD',\n tokenSymbol: 'busd',\n uniqueTokenId: 'busd',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/dogecoin/',\n etherscanLink: 'https://etherscan.io/token/0x7618b5024a6349f9aef10ddfd33e3428c734551e',\n icon: tokenImages.dogecoin,\n readableName: 'Dogecoin',\n tokenSymbol: 'doge',\n uniqueTokenId: 'doge',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/polkadot-new/',\n etherscanLink: 'https://etherscan.io/token/0x2d4fb6dd969992c881d8e534c747cc925d5ba221',\n icon: tokenImages.dot,\n readableName: 'Polkadot',\n tokenSymbol: 'dot',\n uniqueTokenId: 'dot',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/chainlink/',\n etherscanLink: 'https://etherscan.io/token/0x514910771af9ca656af840dff83e8264ecf986ca',\n icon: tokenImages.link,\n readableName: 'ChainLink',\n tokenSymbol: 'link',\n uniqueTokenId: 'link',\n },\n {\n coinmarketcapLink: 'https://coinmarketcap.com/currencies/solana/',\n etherscanLink: 'https://etherscan.io/token/0x1f54638b7737193ffd86c19ec51907a7c41755d8',\n icon: tokenImages.sol,\n readableName: 'Solana',\n tokenSymbol: 'sol',\n uniqueTokenId: 'sol',\n },\n]\n","import { TokenData } from './TokenData.ts'\n\n// eslint-disable-next-line @eslint-react/hooks-extra/no-useless-custom-hooks\nexport const useGetTokenData = (symbols: (string | undefined)[]) => {\n return symbols?.map((symbol) => {\n const additionalTokenData = TokenData.find(x => x.tokenSymbol === symbol)\n const checkedTokenData = additionalTokenData ?? TokenData[0]\n return checkedTokenData\n })\n}\n","import type { AvatarProps, CardHeaderProps } from '@mui/material'\nimport { CardHeader, Typography } from '@mui/material'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nimport { ThemeTokenAvatar } from '../ThemeTokenAvatar/index.ts'\n\nexport interface TokenSummaryProps extends CardHeaderProps {\n icon?: string\n imgBgProps?: AvatarProps\n symbol?: string\n symbolElement?: ReactNode\n}\n\nexport const TokenSummary: React.FC<TokenSummaryProps> = ({\n icon, symbol, symbolElement, children, ...props\n}) => {\n return (\n <>\n <CardHeader\n avatar={<ThemeTokenAvatar src={icon} alt={symbol} />}\n title={(\n <Typography variant=\"h6\" fontWeight={300} textTransform=\"uppercase\">\n {symbolElement ?? symbol}\n </Typography>\n )}\n {...props}\n />\n {children}\n </>\n )\n}\n","import type { TypographyProps } from '@mui/material'\nimport { Typography } from '@mui/material'\nimport React from 'react'\n\nimport { useGradientStyles } from '../hooks/index.ts'\n\nexport interface TypographyExProps extends TypographyProps {\n gradient?: 'text'\n}\n\nexport const TypographyEx: React.FC<TypographyExProps> = ({ gradient, ...props }) => {\n const styles = useGradientStyles()\n return <Typography style={gradient === 'text' ? styles.heading : undefined} {...props} />\n}\n","import { createContext } from 'react'\n\nimport type { ContextExState } from './State.ts'\n\n// eslint-disable-next-line @eslint-react/naming-convention/context-name\nexport const createContextEx = <T>() => createContext<T & ContextExState>({ provided: false } as T & ContextExState)\n","import type { Context } from 'react'\nimport { use } from 'react'\n\nimport type { ContextExState } from './State.ts'\n\nexport const useContextEx = <T extends ContextExState>(context: Context<T>, contextName: string, required = true) => {\n const { provided, ...props } = use(context)\n if (!provided && required) {\n throw new Error(`use${contextName} can not be used outside of a ${contextName}Context when required=true`)\n }\n return props\n}\n\nexport const useProvided = <T extends ContextExState>(context: Context<T>) => {\n const { provided } = use(context)\n return provided\n}\n","import { createContextEx } from '../contextEx/index.ts'\n\nexport const ResolvedDivinerContext = <T>() => createContextEx<T>()\n","import { useResetState } from '@xylabs/react-hooks'\nimport type { Context, PropsWithChildren } from 'react'\nimport React, { useMemo } from 'react'\n\nimport type { ContextExProviderProps } from '../contextEx/index.ts'\nimport type { ResolvedDivinerState } from './State.ts'\n\nexport interface DivinerProviderProps<D> extends ContextExProviderProps, PropsWithChildren {\n context: Context<ResolvedDivinerState<D>>\n diviner?: D\n}\n\n/** Exposes a resolved diviner */\nexport const ResolvedDivinerProvider = <D,>({\n diviner: divinerProp, required = false, children, context: Context,\n}: DivinerProviderProps<D>) => {\n const [diviner, setDiviner] = useResetState<D | undefined>(divinerProp)\n\n const value = useMemo(() => {\n const resolveDiviner = () => {\n if (divinerProp) {\n return diviner === divinerProp ? diviner : undefined\n } else {\n return diviner\n }\n }\n return {\n diviner: resolveDiviner(),\n provided: true,\n setDiviner,\n }\n }, [\n setDiviner, divinerProp])\n\n return (\n <Context\n value={value}\n >\n {diviner\n ? children\n : required\n ? null\n : children}\n </Context>\n )\n}\n","import { createContextEx } from '../contextEx/index.ts'\nimport type { ListModeContextState } from './State.ts'\n\nexport const ListModeContext = createContextEx<ListModeContextState>()\n","import type { PropsWithChildren } from 'react'\nimport React, { useMemo, useState } from 'react'\n\nimport type { ListMode } from '../../models/index.ts'\nimport { ListModeContext } from './Context.ts'\n\nexport interface ListModeProviderProps {\n defaultListMode?: ListMode\n}\n\nexport const ListModeProvider: React.FC<PropsWithChildren<ListModeProviderProps>> = ({ children, defaultListMode }) => {\n const [listMode, setListMode] = useState(defaultListMode ?? 'default')\n\n const value = useMemo(() => ({\n listMode,\n provided: true,\n setListMode,\n }), [listMode,\n setListMode])\n\n return (\n <ListModeContext\n value={value}\n >\n {children}\n </ListModeContext>\n )\n}\n","import { useContextEx } from '../contextEx/index.ts'\nimport { ListModeContext } from './Context.ts'\n\nexport const useListMode = (required = false) => {\n return useContextEx(ListModeContext, 'ListMode', required)\n}\n","/**\n * @deprecated use from @xylabs/with instead\n * */\nexport const assertDefinedEx = <T>(expr?: T | null, message?: string): T => {\n if (expr !== null && expr !== undefined) return expr\n throw new Error(message)\n}\n","export const parseMeausureString = (measure?: string, absolute?: number) => {\n if (measure !== undefined && measure !== null && measure.length > 0) {\n if (measure.endsWith('px')) {\n return Number.parseFloat(measure.slice(0, Math.max(0, measure.length - 2)))\n } else if (measure.endsWith('%')) {\n if (absolute !== undefined) {\n return (Number.parseFloat(measure.slice(0, Math.max(0, measure.length - 1))) / 100) * absolute\n }\n throw new Error('Error Parsing Measure [missing absolute]')\n } else if (measure.endsWith('vw')) {\n return (Number.parseFloat(measure.slice(0, Math.max(0, measure.length - 2))) / 100) * window.innerWidth\n } else if (measure.endsWith('vh')) {\n return (Number.parseFloat(measure.slice(0, Math.max(0, measure.length - 2))) / 100) * window.innerHeight\n }\n throw new Error(`Error Parsing Measure [${measure}]`)\n }\n}\n\nexport const parsePadding = (padding: string) => {\n const parts = padding.split(' ')\n switch (parts.length) {\n case 4: {\n return {\n bottom: parts[2],\n left: parts[3],\n right: parts[1],\n top: parts[0],\n }\n }\n case 3: {\n return {\n bottom: parts[2],\n right: parts[1],\n top: parts[0],\n }\n }\n case 2: {\n return {\n bottom: parts[0],\n left: parts[1],\n right: parts[1],\n top: parts[0],\n }\n }\n case 1: {\n return {\n bottom: parts[0],\n left: parts[0],\n right: parts[0],\n top: parts[0],\n }\n }\n }\n}\n\nexport const getActualPaddingX = (element: HTMLElement) => {\n const padding = parsePadding(globalThis.getComputedStyle(element, null).getPropertyValue('padding'))\n const paddingLeft\n = parseMeausureString(globalThis.getComputedStyle(element, null).getPropertyValue('padding-left') ?? padding?.left, element.clientWidth) ?? 0\n const paddingRight\n = parseMeausureString(globalThis.getComputedStyle(element, null).getPropertyValue('padding-right') ?? padding?.right, element.clientWidth) ?? 0\n return paddingLeft + paddingRight\n}\n","import {\n BubbleChartRounded as BubbleChartRoundedIcon,\n HubRounded as HubRoundedIcon,\n InsertLinkRounded as InsertLinkRoundedIcon,\n Inventory2Rounded as Inventory2RoundedIcon,\n TimerRounded as TimerRoundedIcon,\n VisibilityRounded as VisibilityRoundedIcon,\n} from '@mui/icons-material'\nimport type { SvgIconProps } from '@mui/material'\nimport type { ReactElement } from 'react'\nimport React from 'react'\n\nexport type NetworkComponentSlug = 'sentinel' | 'bridge' | 'archivist' | 'diviner' | 'node' | 'witness'\n\nexport interface NetworkComponentDetails {\n icon: (props?: SvgIconProps) => ReactElement\n name: string\n slug: NetworkComponentSlug\n}\n\nexport const networkComponents: NetworkComponentDetails[] = [\n {\n icon: props => <HubRoundedIcon {...props} />, name: 'Node', slug: 'node',\n },\n {\n icon: props => <TimerRoundedIcon {...props} />, name: 'Sentinel', slug: 'sentinel',\n },\n {\n icon: props => <InsertLinkRoundedIcon {...props} />, name: 'Bridge', slug: 'bridge',\n },\n {\n icon: props => <Inventory2RoundedIcon {...props} />, name: 'Archivist', slug: 'archivist',\n },\n {\n icon: props => <BubbleChartRoundedIcon {...props} />, name: 'Diviner', slug: 'diviner',\n },\n {\n icon: props => <VisibilityRoundedIcon {...props} />, name: 'Witness', slug: 'witness',\n },\n]\n\nexport const findNetworkComponentIndex = (slug: string) => {\n return networkComponents.findIndex(info => info.slug === slug)\n}\n\nexport const findNetworkComponent = (slug: string) => {\n return networkComponents.find(info => info.slug === slug)\n}\n"],"mappings":"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","names":["Typography","React","Ampersand","props","Typography","marginX","component","Container","Grid","styled","Typography","ButtonEx","FlexGrowCol","FlexGrowRow","LinkEx","useIsSmall","React","useTheme","colorfulGradientLightMode","background","backgroundImage","border","borderImage","borderImageSlice","borderImageSource","borderRadius","borderStyle","borderWidth","heading","WebkitBackgroundClip","WebkitTextFillColor","display","colorfulGradientDarkMode","useGradientStyles","theme","useTheme","styles","palette","mode","assertEx","usePromise","BoundWitnessValidator","isAnyPayload","useValidateBoundWitness","input","output","validationError","usePromise","object","JSON","parse","validPayload","assertEx","isAnyPayload","errors","BoundWitnessValidator","validate","payload","filter","error","usePromise","PayloadBuilder","usePayloadHash","payload","usePromise","PayloadBuilder","dataHash","undefined","usePayloadRootHash","hash","usePayloadHashes","payloads","Promise","all","map","assertEx","PayloadBuilder","isAnyPayload","useMemo","usePayloadValidate","input","useMemo","object","JSON","parse","validPayload","assertEx","isAnyPayload","schema","fields","payload","PayloadBuilder","build","error","errors","useState","useDataState","defaultValue","state","setState","useState","setDataState","value","JSON","stringify","console","error","useMediaQuery","useEffect","useRef","useShareForwardedRef","forwardedRef","refresh","innerRef","useRef","useEffect","current","SubLinkSection","backgroundImageAlignment","subLinkIcon","subLinkPath","subLinkText1","subLinkText2","React","FlexGrowRow","width","sx","flexDirection","md","xs","justifyContent","span","Typography","LinkEx","href","underline","target","color","ButtonSection","to","buttonText","isMobile","useIsSmall","ButtonEx","fullWidth","marginTop","marginBottom","marginRight","marginLeft","variant","paddingX","display","BasicHero","backgroundImage","title","gradientTitle","backgroundColor","textColor","desc","heroImage","title2","button1Text","button2Text","button2To","button1To","button2Href","button1Href","props","styles","useGradientStyles","StyledSpan","styled","heading","FlexGrowCol","backgroundPosition","lg","minHeight","sm","style","backgroundRepeat","backgroundSize","Container","Grid","container","alignItems","size","paddingY","component","gutterBottom","textAlign","img","src","FormHelperText","Popover","TextField","React","FixedPointPopover","fixedPoint","minFixedPoint","minimumPoint","onFixedPointChange","props","handleChange","event","fixedPointInteger","Number","parseInt","target","value","isNaN","React","Popover","slotProps","paper","sx","p","TextField","htmlInput","min","onChange","type","FormHelperText","FormControl","FormHelperText","TextField","toFixedPoint","React","useEffect","useMemo","useState","Avatar","IconButton","InputAdornment","React","useRef","useState","FixedPointInputAdornment","fixedPoint","minFixedPoint","onFixedPointChange","props","ref","useRef","open","setOpen","useState","React","InputAdornment","FixedPointPopover","anchorEl","current","anchorOrigin","vertical","horizontal","onClose","IconButton","size","onClick","Avatar","sx","fontSize","height","width","BigIntTextField","defaultFixedPoint","defaultRawValue","helperText","hideAdornment","onChangeFixedPoint","onChange","resetValue","props","rawValue","setRawValue","useState","fixedPoint","setFixedPoint","error","setError","useMemo","handleRawValueChange","filteredValue","replaceAll","split","length","handleChange","event","target","value","onFixedPointChange","bigIntValue","fixedValue","toFixedPoint","undefined","e","console","useEffect","minFixedPoint","resolvedHelperText","React","TextField","type","Boolean","slotProps","htmlInput","pattern","input","startAdornment","FixedPointInputAdornment","position","FormHelperText","WithFormControl","textFieldProps","FormControl","BigIntInput","TextField","BigIntTextField","WithFormControl","Box","styled","Typography","React","useCallback","useState","ComponentName","EllipsizeRoot","styled","Box","name","shouldForwardProp","prop","slot","beforeLineHeight","content","display","float","visibility","lineHeight","EllipsizeInnerWrap","position","EllipsizeContentWrap","Typography","theme","ellipsisPosition","fontFamily","unstable_sx","left","overflow","right","textOverflow","whiteSpace","direction","textAlign","useClientHeight","contentWrapHeight","setContentWrapHeight","useState","contentWrapRef","useCallback","node","clientHeight","EllipsizeBox","ref","children","disableSharedRef","typographyProps","props","sharedRef","useShareForwardedRef","React","undefined","component","variant","displayName","Stack","Typography","React","LabeledTextFieldWrapper","children","label","props","React","Stack","flexDirection","Typography","gutterBottom","variant","ListItemButton","React","useNavigate","ListItemButtonExTo","to","toOptions","onClick","props","navigate","useNavigate","localOnClick","event","React","ListItemButton","ListItemButtonEx","FlexGrowRow","React","Typography","FlexGrowCol","React","NotFound","props","React","FlexGrowCol","Typography","variant","marginY","LoadResult","props","notFound","error","searchResult","children","React","NotFound","undefined","FlexGrowRow","busy","minHeight","Typography","React","Pipe","props","React","Typography","marginX","component","Alert","AlertTitle","React","PayloadDataMissing","alertBody","props","React","Alert","severity","AlertTitle","styled","React","StyledScrollTableOnSm","styled","theme","breakpoints","down","overflowX","display","flexGrow","ScrollTableOnSm","children","React","useTheme","FlexGrowRow","React","SectionSpacingRow","ref","children","sx","props","theme","useTheme","React","FlexGrowRow","paddingBottom","md","spacing","xs","paddingTop","width","displayName","React","styled","TableCell","asLinkHrefOrToProps","LinkEx","React","useMemo","EllipsisTableCellRoot","styled","TableCell","name","shouldForwardProp","prop","slot","width","EllipsisTableCellWithRef","ref","children","href","link","to","value","props","data","useMemo","React","LinkEx","title","asLinkHrefOrToProps","target","undefined","EllipsizeBox","sx","cursor","displayName","EllipsisTableCell","AddressTableCell","ref","value","archive","exploreDomain","link","props","href","undefined","to","React","EllipsisTableCell","displayName","useEvent","React","useRef","HashTableCell","value","archive","dataType","network","exploreDomain","onHashClick","props","ref","useRef","tableCellRef","dispatch","useEvent","undefined","hashPath","explorePath","handleCellClick","React","EllipsisTableCell","onClick","href","to","Avatar","useTheme","React","ThemeTokenAvatar","props","theme","useTheme","React","Avatar","sx","background","palette","common","white","AvatarGroup","React","ThemeTokenAvatarGroup","images","props","React","AvatarGroup","map","image","index","ThemeTokenAvatar","key","src","Paper","Typography","FlexRow","React","TokenBar","text1","text1Props","text1Suffix","text2","text2Props","text2Suffix","props","React","Paper","elevation","className","FlexRow","justifyContent","Typography","variant","fontWeight","margin","textTransform","color","ada","default","btc","busd","dai","dogecoin","dot","ethereum","frax","link","sol","tether","usdCoin","weth","wrappedBtc","xyo","TokenData","coinmarketcapLink","etherscanLink","icon","dai","readableName","tokenSymbol","uniqueTokenId","weth","ethereum","btc","xyo","frax","wrappedBtc","usdCoin","tether","ada","busd","dogecoin","dot","link","sol","useGetTokenData","symbols","map","symbol","additionalTokenData","TokenData","find","x","tokenSymbol","checkedTokenData","CardHeader","Typography","React","TokenSummary","icon","symbol","symbolElement","children","props","React","CardHeader","avatar","ThemeTokenAvatar","src","alt","title","Typography","variant","fontWeight","textTransform","Typography","React","TypographyEx","gradient","props","styles","useGradientStyles","React","Typography","style","heading","undefined","createContext","createContextEx","createContext","provided","use","useContextEx","context","contextName","required","provided","props","use","Error","useProvided","ResolvedDivinerContext","createContextEx","useResetState","React","useMemo","ResolvedDivinerProvider","diviner","divinerProp","required","children","context","Context","setDiviner","useResetState","value","useMemo","resolveDiviner","undefined","provided","React","ListModeContext","createContextEx","React","useMemo","useState","ListModeProvider","children","defaultListMode","listMode","setListMode","useState","value","useMemo","provided","React","ListModeContext","useListMode","required","useContextEx","ListModeContext","assertDefinedEx","expr","message","undefined","Error","parseMeausureString","measure","absolute","undefined","length","endsWith","Number","parseFloat","slice","Math","max","Error","window","innerWidth","innerHeight","parsePadding","padding","parts","split","bottom","left","right","top","getActualPaddingX","element","globalThis","getComputedStyle","getPropertyValue","paddingLeft","clientWidth","paddingRight","BubbleChartRounded","BubbleChartRoundedIcon","HubRounded","HubRoundedIcon","InsertLinkRounded","InsertLinkRoundedIcon","Inventory2Rounded","Inventory2RoundedIcon","TimerRounded","TimerRoundedIcon","VisibilityRounded","VisibilityRoundedIcon","React","networkComponents","icon","props","React","HubRoundedIcon","name","slug","TimerRoundedIcon","InsertLinkRoundedIcon","Inventory2RoundedIcon","BubbleChartRoundedIcon","VisibilityRoundedIcon","findNetworkComponentIndex","findIndex","info","findNetworkComponent","find"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasicHero.d.ts","sourceRoot":"","sources":["../../../../src/components/BasicHero/BasicHero.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"BasicHero.d.ts","sourceRoot":"","sources":["../../../../src/components/BasicHero/BasicHero.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAIzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,YAAY,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAsHD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAqH9C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/contexts/contextEx/create.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/contexts/contextEx/create.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAGhD,eAAO,MAAM,eAAe,GAAI,CAAC,kDAAmF,CAAA"}
|
|
@@ -43,25 +43,22 @@ export declare const colorfulGradientDarkMode: () => {
|
|
|
43
43
|
};
|
|
44
44
|
};
|
|
45
45
|
export declare const useGradientStyles: () => {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
background: string;
|
|
63
|
-
display: string;
|
|
64
|
-
};
|
|
46
|
+
background: {
|
|
47
|
+
backgroundImage: string;
|
|
48
|
+
};
|
|
49
|
+
border: {
|
|
50
|
+
borderImage: string;
|
|
51
|
+
borderImageSlice: number;
|
|
52
|
+
borderImageSource: string;
|
|
53
|
+
borderRadius: number;
|
|
54
|
+
borderStyle: string;
|
|
55
|
+
borderWidth: string;
|
|
56
|
+
};
|
|
57
|
+
heading: {
|
|
58
|
+
WebkitBackgroundClip: string;
|
|
59
|
+
WebkitTextFillColor: string;
|
|
60
|
+
background: string;
|
|
61
|
+
display: string;
|
|
65
62
|
};
|
|
66
63
|
};
|
|
67
64
|
//# sourceMappingURL=GradientStyles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GradientStyles.d.ts","sourceRoot":"","sources":["../../../../src/hooks/GradientStyles/GradientStyles.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GradientStyles.d.ts","sourceRoot":"","sources":["../../../../src/hooks/GradientStyles/GradientStyles.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,aAAa,CAAA;IACzB,MAAM,EAAE,aAAa,CAAA;IACrB,OAAO,EAAE,aAAa,CAAA;CACvB;AAED,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;CAkBrC,CAAA;AAED,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;CAkBpC,CAAA;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;CAI7B,CAAA"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export * from './GradientStyles/index.ts';
|
|
2
2
|
export * from './payload/index.ts';
|
|
3
3
|
export * from './useDataState.ts';
|
|
4
|
-
export * from './useIsMobile.ts';
|
|
5
4
|
export * from './useMediaQuery.ts';
|
|
6
5
|
export * from './useShareForwardRef.ts';
|
|
7
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/react-shared",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.1.1",
|
|
4
4
|
"description": "Common React library for all XYO projects that use React",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"xyo",
|
|
@@ -39,40 +39,39 @@
|
|
|
39
39
|
"module": "dist/browser/index.mjs",
|
|
40
40
|
"types": "dist/types/index.d.ts",
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@xylabs/assert": "^4.7.
|
|
43
|
-
"@xylabs/decimal-precision": "^4.7.
|
|
44
|
-
"@xylabs/hex": "^4.7.
|
|
45
|
-
"@xylabs/react-appbar": "^6.
|
|
46
|
-
"@xylabs/react-button": "^6.
|
|
47
|
-
"@xylabs/react-flexbox": "^6.
|
|
48
|
-
"@xylabs/react-hooks": "^6.
|
|
49
|
-
"@xylabs/react-link": "^6.
|
|
50
|
-
"@xylabs/react-promise": "^6.
|
|
51
|
-
"@
|
|
52
|
-
"@xyo-network/boundwitness-
|
|
53
|
-
"@xyo-network/
|
|
54
|
-
"@xyo-network/payload-
|
|
55
|
-
"@xyo-network/
|
|
56
|
-
"react-
|
|
42
|
+
"@xylabs/assert": "^4.7.15",
|
|
43
|
+
"@xylabs/decimal-precision": "^4.7.15",
|
|
44
|
+
"@xylabs/hex": "^4.7.15",
|
|
45
|
+
"@xylabs/react-appbar": "^6.1.2",
|
|
46
|
+
"@xylabs/react-button": "^6.1.2",
|
|
47
|
+
"@xylabs/react-flexbox": "^6.1.2",
|
|
48
|
+
"@xylabs/react-hooks": "^6.1.2",
|
|
49
|
+
"@xylabs/react-link": "^6.1.2",
|
|
50
|
+
"@xylabs/react-promise": "^6.1.2",
|
|
51
|
+
"@xylabs/react-theme": "^6.1.2",
|
|
52
|
+
"@xyo-network/boundwitness-model": "^3.10.6",
|
|
53
|
+
"@xyo-network/boundwitness-validator": "^3.10.6",
|
|
54
|
+
"@xyo-network/payload-builder": "^3.10.6",
|
|
55
|
+
"@xyo-network/payload-model": "^3.10.6",
|
|
56
|
+
"@xyo-network/react-event": "^5.1.1",
|
|
57
|
+
"react-router-dom": "^7.4.1"
|
|
57
58
|
},
|
|
58
59
|
"devDependencies": {
|
|
59
|
-
"@mui/icons-material": "^
|
|
60
|
-
"@mui/material": "^
|
|
61
|
-
"@
|
|
62
|
-
"@storybook/react": "^8.6.7",
|
|
60
|
+
"@mui/icons-material": "^7.0.1",
|
|
61
|
+
"@mui/material": "^7.0.1",
|
|
62
|
+
"@storybook/react": "^8.6.11",
|
|
63
63
|
"@types/react": "^19.0.12",
|
|
64
|
-
"@xylabs/react-quick-tip-button": "^6.
|
|
65
|
-
"@xylabs/ts-scripts-yarn3": "^6.
|
|
66
|
-
"@xylabs/tsconfig-react": "^6.
|
|
67
|
-
"react": "^19.
|
|
68
|
-
"react-dom": "^19.
|
|
69
|
-
"storybook": "^8.6.
|
|
64
|
+
"@xylabs/react-quick-tip-button": "^6.1.2",
|
|
65
|
+
"@xylabs/ts-scripts-yarn3": "^6.2.0",
|
|
66
|
+
"@xylabs/tsconfig-react": "^6.2.0",
|
|
67
|
+
"react": "^19.1.0",
|
|
68
|
+
"react-dom": "^19.1.0",
|
|
69
|
+
"storybook": "^8.6.11",
|
|
70
70
|
"typescript": "^5.8.2"
|
|
71
71
|
},
|
|
72
72
|
"peerDependencies": {
|
|
73
|
-
"@mui/icons-material": "
|
|
74
|
-
"@mui/material": "
|
|
75
|
-
"@mui/styles": "^6",
|
|
73
|
+
"@mui/icons-material": ">=6 <=7",
|
|
74
|
+
"@mui/material": ">=6 <=7",
|
|
76
75
|
"react": "^19",
|
|
77
76
|
"react-dom": "^19"
|
|
78
77
|
},
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
|
-
Container, Grid, Typography,
|
|
2
|
+
Container, Grid, styled, Typography,
|
|
3
3
|
} from '@mui/material'
|
|
4
4
|
import { ButtonEx } from '@xylabs/react-button'
|
|
5
5
|
import type { FlexBoxProps } from '@xylabs/react-flexbox'
|
|
6
6
|
import { FlexGrowCol, FlexGrowRow } from '@xylabs/react-flexbox'
|
|
7
7
|
import { LinkEx } from '@xylabs/react-link'
|
|
8
|
+
import { useIsSmall } from '@xylabs/react-theme'
|
|
8
9
|
import type { ReactElement } from 'react'
|
|
9
10
|
import React from 'react'
|
|
10
11
|
import type { To } from 'react-router-dom'
|
|
11
12
|
|
|
12
|
-
import { useGradientStyles
|
|
13
|
+
import { useGradientStyles } from '../../hooks/index.ts'
|
|
13
14
|
|
|
14
15
|
export interface BasicHeroProps extends FlexBoxProps {
|
|
15
16
|
backgroundColor?: string
|
|
@@ -172,7 +173,10 @@ export const BasicHero: React.FC<BasicHeroProps> = ({
|
|
|
172
173
|
...props
|
|
173
174
|
}) => {
|
|
174
175
|
const isMobile = useIsSmall()
|
|
175
|
-
const
|
|
176
|
+
const styles = useGradientStyles()
|
|
177
|
+
|
|
178
|
+
const StyledSpan = styled('span')({ ...styles.heading })
|
|
179
|
+
|
|
176
180
|
return (
|
|
177
181
|
<FlexGrowCol
|
|
178
182
|
sx={{
|
|
@@ -205,7 +209,10 @@ export const BasicHero: React.FC<BasicHeroProps> = ({
|
|
|
205
209
|
justifyContent: { xs: 'center' },
|
|
206
210
|
}}
|
|
207
211
|
>
|
|
208
|
-
<Grid
|
|
212
|
+
<Grid size={{
|
|
213
|
+
xs: 12, sm: 8, md: backgroundImage ? 6 : 8, lg: backgroundImage ? 6 : 8,
|
|
214
|
+
}}
|
|
215
|
+
>
|
|
209
216
|
<FlexGrowCol paddingY={2} sx={{ alignItems: { xs: backgroundImage && !isMobile ? 'flex-start' : 'center' } }}>
|
|
210
217
|
<Typography variant="h1" component="h1" gutterBottom textAlign={backgroundImage && !isMobile ? 'left' : 'center'}>
|
|
211
218
|
{title
|
|
@@ -213,10 +220,10 @@ export const BasicHero: React.FC<BasicHeroProps> = ({
|
|
|
213
220
|
: null}
|
|
214
221
|
{gradientTitle
|
|
215
222
|
? (
|
|
216
|
-
<
|
|
223
|
+
<StyledSpan>
|
|
217
224
|
{' '}
|
|
218
225
|
{` ${gradientTitle}`}
|
|
219
|
-
</
|
|
226
|
+
</StyledSpan>
|
|
220
227
|
)
|
|
221
228
|
: null}
|
|
222
229
|
{title2
|
|
@@ -251,7 +258,7 @@ export const BasicHero: React.FC<BasicHeroProps> = ({
|
|
|
251
258
|
/>
|
|
252
259
|
</FlexGrowCol>
|
|
253
260
|
</Grid>
|
|
254
|
-
<Grid
|
|
261
|
+
<Grid size={{ xs: 12, md: 6 }}>
|
|
255
262
|
{heroImage
|
|
256
263
|
? <img src={heroImage} width="100%" />
|
|
257
264
|
: null}
|
|
@@ -9,6 +9,6 @@ export interface TypographyExProps extends TypographyProps {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export const TypographyEx: React.FC<TypographyExProps> = ({ gradient, ...props }) => {
|
|
12
|
-
const
|
|
13
|
-
return <Typography
|
|
12
|
+
const styles = useGradientStyles()
|
|
13
|
+
return <Typography style={gradient === 'text' ? styles.heading : undefined} {...props} />
|
|
14
14
|
}
|
|
@@ -2,4 +2,5 @@ import { createContext } from 'react'
|
|
|
2
2
|
|
|
3
3
|
import type { ContextExState } from './State.ts'
|
|
4
4
|
|
|
5
|
+
// eslint-disable-next-line @eslint-react/naming-convention/context-name
|
|
5
6
|
export const createContextEx = <T>() => createContext<T & ContextExState>({ provided: false } as T & ContextExState)
|
|
@@ -8,8 +8,7 @@ import { BrowserRouter } from 'react-router-dom'
|
|
|
8
8
|
import { useGradientStyles } from './GradientStyles.tsx'
|
|
9
9
|
|
|
10
10
|
const GradientTextExample: React.FC<FlexBoxProps> = (props) => {
|
|
11
|
-
const
|
|
12
|
-
const classNames = classes()
|
|
11
|
+
const styles = useGradientStyles()
|
|
13
12
|
return (
|
|
14
13
|
<FlexCol alignItems="stretch" {...props}>
|
|
15
14
|
<Typography variant="h4" gutterBottom>
|
|
@@ -22,13 +21,13 @@ const GradientTextExample: React.FC<FlexBoxProps> = (props) => {
|
|
|
22
21
|
<Typography variant="h5" gutterBottom>
|
|
23
22
|
Lorem ipsum dolor sit amet consectetur,
|
|
24
23
|
{' '}
|
|
25
|
-
<span
|
|
24
|
+
<span style={styles.heading}>adipisicing elit.</span>
|
|
26
25
|
</Typography>
|
|
27
26
|
<Typography variant="subtitle2" gutterBottom paddingTop={3}>
|
|
28
27
|
Body Text
|
|
29
28
|
</Typography>
|
|
30
29
|
<Divider sx={{ marginY: '8px' }} />
|
|
31
|
-
<Typography variant="h5" gutterBottom
|
|
30
|
+
<Typography variant="h5" gutterBottom style={styles.heading}>
|
|
32
31
|
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Sint perspiciatis aliquam consequuntur nisi alias impedit ducimus ipsa voluptas,
|
|
33
32
|
suscipit ea vel dicta quasi hic, deserunt tempore, natus optio veritatis dolor?
|
|
34
33
|
</Typography>
|
|
@@ -36,7 +35,7 @@ const GradientTextExample: React.FC<FlexBoxProps> = (props) => {
|
|
|
36
35
|
Caption
|
|
37
36
|
</Typography>
|
|
38
37
|
<Divider sx={{ marginY: '8px' }} />
|
|
39
|
-
<Typography variant="caption" gutterBottom
|
|
38
|
+
<Typography variant="caption" gutterBottom style={styles.heading}>
|
|
40
39
|
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Sint perspiciatis aliquam consequuntur nisi alias impedit ducimus ipsa voluptas,
|
|
41
40
|
suscipit ea vel dicta quasi hic, deserunt tempore, natus optio veritatis dolor?
|
|
42
41
|
</Typography>
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { useTheme } from '@mui/material'
|
|
2
|
-
import { makeStyles } from '@mui/styles'
|
|
1
|
+
import { makeStyles, useTheme } from '@mui/material'
|
|
3
2
|
import type { CSSProperties } from 'react'
|
|
4
3
|
|
|
5
4
|
export interface GradientStyles {
|
|
@@ -51,6 +50,5 @@ export const colorfulGradientDarkMode = () => {
|
|
|
51
50
|
export const useGradientStyles = () => {
|
|
52
51
|
const theme = useTheme()
|
|
53
52
|
const styles = theme.palette.mode === 'dark' ? colorfulGradientDarkMode() : colorfulGradientLightMode()
|
|
54
|
-
|
|
55
|
-
return { classes, styles }
|
|
53
|
+
return styles
|
|
56
54
|
}
|
package/src/hooks/index.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useIsMobile.d.ts","sourceRoot":"","sources":["../../../src/hooks/useIsMobile.ts"],"names":[],"mappings":"AAIA,yCAAyC;AACzC,eAAO,MAAM,WAAW,eAGvB,CAAA;AAED,eAAO,MAAM,UAAU,eAGtB,CAAA"}
|
package/src/hooks/useIsMobile.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { useTheme } from '@mui/material'
|
|
2
|
-
|
|
3
|
-
import { useMediaQuery } from './useMediaQuery.ts'
|
|
4
|
-
|
|
5
|
-
/** @deprecated use useIsSmall instead */
|
|
6
|
-
export const useIsMobile = () => {
|
|
7
|
-
const theme = useTheme()
|
|
8
|
-
return useMediaQuery(theme.breakpoints.down('md'))
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export const useIsSmall = () => {
|
|
12
|
-
const theme = useTheme()
|
|
13
|
-
return useMediaQuery(theme.breakpoints.down('md'))
|
|
14
|
-
}
|