@xyo-network/react-shared 2.67.6 → 2.67.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/browser/components/ListItemButtonEx.d.cts.map +1 -1
  2. package/dist/browser/components/ListItemButtonEx.d.mts.map +1 -1
  3. package/dist/browser/components/ListItemButtonEx.d.ts.map +1 -1
  4. package/dist/browser/components/LoadResult.d.cts.map +1 -1
  5. package/dist/browser/components/LoadResult.d.mts.map +1 -1
  6. package/dist/browser/components/LoadResult.d.ts.map +1 -1
  7. package/dist/browser/components/TableCell/getRemainingRowWidth.d.cts.map +1 -1
  8. package/dist/browser/components/TableCell/getRemainingRowWidth.d.mts.map +1 -1
  9. package/dist/browser/components/TableCell/getRemainingRowWidth.d.ts.map +1 -1
  10. package/dist/browser/components/TokenData/img/index.d.cts +15 -16
  11. package/dist/browser/components/TokenData/img/index.d.cts.map +1 -1
  12. package/dist/browser/components/TokenData/img/index.d.mts +15 -16
  13. package/dist/browser/components/TokenData/img/index.d.mts.map +1 -1
  14. package/dist/browser/components/TokenData/img/index.d.ts +15 -16
  15. package/dist/browser/components/TokenData/img/index.d.ts.map +1 -1
  16. package/dist/browser/hooks/useMediaQuery.d.cts +1 -2
  17. package/dist/browser/hooks/useMediaQuery.d.cts.map +1 -1
  18. package/dist/browser/hooks/useMediaQuery.d.mts +1 -2
  19. package/dist/browser/hooks/useMediaQuery.d.mts.map +1 -1
  20. package/dist/browser/hooks/useMediaQuery.d.ts +1 -2
  21. package/dist/browser/hooks/useMediaQuery.d.ts.map +1 -1
  22. package/dist/browser/hooks/usePromise.d.cts +1 -2
  23. package/dist/browser/hooks/usePromise.d.cts.map +1 -1
  24. package/dist/browser/hooks/usePromise.d.mts +1 -2
  25. package/dist/browser/hooks/usePromise.d.mts.map +1 -1
  26. package/dist/browser/hooks/usePromise.d.ts +1 -2
  27. package/dist/browser/hooks/usePromise.d.ts.map +1 -1
  28. package/dist/browser/index.cjs +20 -29
  29. package/dist/browser/index.cjs.map +1 -1
  30. package/dist/browser/index.js +50 -59
  31. package/dist/browser/index.js.map +1 -1
  32. package/dist/node/components/ListItemButtonEx.d.cts.map +1 -1
  33. package/dist/node/components/ListItemButtonEx.d.mts.map +1 -1
  34. package/dist/node/components/ListItemButtonEx.d.ts.map +1 -1
  35. package/dist/node/components/LoadResult.d.cts.map +1 -1
  36. package/dist/node/components/LoadResult.d.mts.map +1 -1
  37. package/dist/node/components/LoadResult.d.ts.map +1 -1
  38. package/dist/node/components/TableCell/getRemainingRowWidth.d.cts.map +1 -1
  39. package/dist/node/components/TableCell/getRemainingRowWidth.d.mts.map +1 -1
  40. package/dist/node/components/TableCell/getRemainingRowWidth.d.ts.map +1 -1
  41. package/dist/node/components/TokenData/img/index.d.cts +15 -16
  42. package/dist/node/components/TokenData/img/index.d.cts.map +1 -1
  43. package/dist/node/components/TokenData/img/index.d.mts +15 -16
  44. package/dist/node/components/TokenData/img/index.d.mts.map +1 -1
  45. package/dist/node/components/TokenData/img/index.d.ts +15 -16
  46. package/dist/node/components/TokenData/img/index.d.ts.map +1 -1
  47. package/dist/node/hooks/useMediaQuery.d.cts +1 -2
  48. package/dist/node/hooks/useMediaQuery.d.cts.map +1 -1
  49. package/dist/node/hooks/useMediaQuery.d.mts +1 -2
  50. package/dist/node/hooks/useMediaQuery.d.mts.map +1 -1
  51. package/dist/node/hooks/useMediaQuery.d.ts +1 -2
  52. package/dist/node/hooks/useMediaQuery.d.ts.map +1 -1
  53. package/dist/node/hooks/usePromise.d.cts +1 -2
  54. package/dist/node/hooks/usePromise.d.cts.map +1 -1
  55. package/dist/node/hooks/usePromise.d.mts +1 -2
  56. package/dist/node/hooks/usePromise.d.mts.map +1 -1
  57. package/dist/node/hooks/usePromise.d.ts +1 -2
  58. package/dist/node/hooks/usePromise.d.ts.map +1 -1
  59. package/dist/node/index.cjs +20 -29
  60. package/dist/node/index.cjs.map +1 -1
  61. package/dist/node/index.js +50 -59
  62. package/dist/node/index.js.map +1 -1
  63. package/package.json +5 -5
  64. package/src/components/BasicHero/BasicHero.tsx +1 -1
  65. package/src/components/ListItemButtonEx.tsx +1 -5
  66. package/src/components/LoadResult.tsx +1 -5
  67. package/src/components/StyleGuide/Papers.example.tsx +1 -1
  68. package/src/components/TableCell/getRemainingRowWidth.ts +2 -4
  69. package/src/components/TokenData/img/index.ts +15 -17
  70. package/src/components/TokenData/useGetTokenData.tsx +1 -1
  71. package/src/contexts/contextEx/use.ts +1 -1
  72. package/src/hooks/useDataState.ts +1 -1
  73. package/src/hooks/useMediaQuery.ts +2 -2
  74. package/src/hooks/usePromise.ts +2 -3
  75. package/src/lib/assertDefinedEx.ts +1 -1
  76. package/src/lib/getActualPaddingX.ts +6 -6
@@ -72,7 +72,7 @@ var useDataState = (defaultValue) => {
72
72
  if (JSON.stringify(value) !== JSON.stringify(state)) {
73
73
  setState(value);
74
74
  }
75
- } catch (ex) {
75
+ } catch {
76
76
  console.error("setDataState failed! Make sure data type is stringifiable!");
77
77
  }
78
78
  };
@@ -105,8 +105,7 @@ var usePayloadHashes = (payloads) => {
105
105
  };
106
106
 
107
107
  // src/hooks/usePromise.ts
108
- import { usePromise as importedUsePromise } from "@xylabs/react-promise";
109
- var usePromise2 = importedUsePromise;
108
+ import { usePromise as usePromise2 } from "@xylabs/react-promise";
110
109
 
111
110
  // src/hooks/useShareForwardRef.ts
112
111
  import { useEffect, useRef } from "react";
@@ -204,7 +203,7 @@ var BasicHero = ({
204
203
  sm: "400px",
205
204
  xs: "200px"
206
205
  },
207
- ...sx ?? {}
206
+ ...sx
208
207
  },
209
208
  style: {
210
209
  backgroundColor: backgroundColor ?? "",
@@ -374,11 +373,7 @@ var ListItemButtonExTo = ({ to, toOptions, onClick, ...props }) => {
374
373
  return /* @__PURE__ */ jsx5(ListItemButton, { onClick: localOnClick, ...props });
375
374
  };
376
375
  var ListItemButtonEx = ({ to, ...props }) => {
377
- if (to) {
378
- return /* @__PURE__ */ jsx5(ListItemButtonExTo, { to, ...props });
379
- } else {
380
- return /* @__PURE__ */ jsx5(ListItemButton, { ...props });
381
- }
376
+ return to ? /* @__PURE__ */ jsx5(ListItemButtonExTo, { to, ...props }) : /* @__PURE__ */ jsx5(ListItemButton, { ...props });
382
377
  };
383
378
 
384
379
  // src/components/LoadResult.tsx
@@ -405,11 +400,7 @@ function LoadResult(props) {
405
400
  if (error) {
406
401
  return /* @__PURE__ */ jsx7(Fragment, { children });
407
402
  }
408
- if (searchResult === void 0) {
409
- return /* @__PURE__ */ jsx7(FlexGrowRow2, { busy: true, minHeight: "50px" });
410
- } else {
411
- return /* @__PURE__ */ jsx7(Fragment, { children });
412
- }
403
+ return searchResult === void 0 ? /* @__PURE__ */ jsx7(FlexGrowRow2, { busy: true, minHeight: "50px" }) : /* @__PURE__ */ jsx7(Fragment, { children });
413
404
  }
414
405
 
415
406
  // src/components/Pipe.tsx
@@ -481,17 +472,17 @@ var EllipsisTableCellRoot = styled3(TableCell, {
481
472
  width
482
473
  }));
483
474
  var EllipsisTableCellWithRef = forwardRef3(
484
- ({ children, href, link: link2 = false, to, value, ...props }, ref) => {
475
+ ({ children, href, link = false, to, value, ...props }, ref) => {
485
476
  const data = useMemo(() => {
486
477
  if (children) {
487
478
  return children;
488
479
  }
489
- if (href || link2 || to) {
480
+ if (href || link || to) {
490
481
  return /* @__PURE__ */ jsx12(LinkEx2, { title: value, to, href, target: href ? "_blank" : void 0, children: value });
491
482
  }
492
483
  return value;
493
- }, [children, href, link2, to, value]);
494
- return /* @__PURE__ */ jsx12(EllipsisTableCellRoot, { ref, ...props, children: /* @__PURE__ */ jsx12(EllipsizeBox, { sx: { cursor: link2 || to || href ? "pointer" : "inherit" }, children: data }) });
484
+ }, [children, href, link, to, value]);
485
+ return /* @__PURE__ */ jsx12(EllipsisTableCellRoot, { ref, ...props, children: /* @__PURE__ */ jsx12(EllipsizeBox, { sx: { cursor: link || to || href ? "pointer" : "inherit" }, children: data }) });
495
486
  }
496
487
  );
497
488
  EllipsisTableCellWithRef.displayName = "EllipsisTableCell";
@@ -499,10 +490,10 @@ var EllipsisTableCell = EllipsisTableCellWithRef;
499
490
 
500
491
  // src/components/TableCell/AddressTableCell.tsx
501
492
  import { jsx as jsx13 } from "react/jsx-runtime";
502
- var AddressTableCell = forwardRef4(({ value, archive, exploreDomain, link: link2, ...props }, ref) => {
493
+ var AddressTableCell = forwardRef4(({ value, archive, exploreDomain, link, ...props }, ref) => {
503
494
  const href = exploreDomain && archive ? `${exploreDomain}/archive/${archive}/address/${value}` : void 0;
504
495
  const to = exploreDomain === void 0 && archive ? `/archive/${archive}/address/${value}` : void 0;
505
- return /* @__PURE__ */ jsx13(EllipsisTableCell, { value, href, to, ref, link: link2, ...props });
496
+ return /* @__PURE__ */ jsx13(EllipsisTableCell, { value, href, to, ref, link, ...props });
506
497
  });
507
498
  AddressTableCell.displayName = "AddressTableCell";
508
499
 
@@ -564,28 +555,28 @@ var TokenBar = ({ text1, text1Props, text1Suffix, text2, text2Props, text2Suffix
564
555
  };
565
556
 
566
557
  // src/components/TokenData/img/index.ts
567
- import ada from "./ada-JCPSRXND.png";
568
- import btc from "./btc-SRW7TEQV.png";
569
- import busd from "./busd-RAN4SWCI.png";
570
- import dai from "./dai-FZSM2RYY.png";
571
- import dogecoin from "./dogecoin-QOIF7Q5M.png";
572
- import dot from "./dot-P5Z7IW2O.png";
573
- import ethereum from "./ethereum-3SLTXYTT.png";
574
- import frax from "./frax-TQDXCCOP.png";
575
- import link from "./link-THYNVLXG.png";
576
- import sol from "./sol-A4J5S4EN.png";
577
- import tether from "./tether-3X63FB23.png";
578
- import usdCoin from "./usd-coin-UCS44T5B.png";
579
- import weth from "./weth-HDGYDSJB.png";
580
- import wrappedBtc from "./wrapped-bitcoin-TS5QFJLK.png";
581
- import xyo from "./xyo-RLMLL56X.png";
558
+ import { default as default2 } from "./ada-JCPSRXND.png";
559
+ import { default as default3 } from "./btc-SRW7TEQV.png";
560
+ import { default as default4 } from "./busd-RAN4SWCI.png";
561
+ import { default as default5 } from "./dai-FZSM2RYY.png";
562
+ import { default as default6 } from "./dogecoin-QOIF7Q5M.png";
563
+ import { default as default7 } from "./dot-P5Z7IW2O.png";
564
+ import { default as default8 } from "./ethereum-3SLTXYTT.png";
565
+ import { default as default9 } from "./frax-TQDXCCOP.png";
566
+ import { default as default10 } from "./link-THYNVLXG.png";
567
+ import { default as default11 } from "./sol-A4J5S4EN.png";
568
+ import { default as default12 } from "./tether-3X63FB23.png";
569
+ import { default as default13 } from "./usd-coin-UCS44T5B.png";
570
+ import { default as default14 } from "./weth-HDGYDSJB.png";
571
+ import { default as default15 } from "./wrapped-bitcoin-TS5QFJLK.png";
572
+ import { default as default16 } from "./xyo-RLMLL56X.png";
582
573
 
583
574
  // src/components/TokenData/TokenData.ts
584
575
  var TokenData = [
585
576
  {
586
577
  coinmarketcapLink: "https://coinmarketcap.com/currencies/multi-collateral-dai/",
587
578
  etherscanLink: "https://etherscan.io/token/0x6b175474e89094c44da98b954eedeac495271d0f",
588
- icon: dai,
579
+ icon: default5,
589
580
  readableName: "Dai",
590
581
  tokenSymbol: "dai",
591
582
  uniqueTokenId: "dai"
@@ -593,7 +584,7 @@ var TokenData = [
593
584
  {
594
585
  coinmarketcapLink: "https://coinmarketcap.com/currencies/weth/",
595
586
  etherscanLink: "https://etherscan.io/token/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
596
- icon: weth,
587
+ icon: default14,
597
588
  readableName: "Weth",
598
589
  tokenSymbol: "weth",
599
590
  uniqueTokenId: "weth"
@@ -601,7 +592,7 @@ var TokenData = [
601
592
  {
602
593
  coinmarketcapLink: "https://coinmarketcap.com/currencies/ethereum/",
603
594
  etherscanLink: "n/a",
604
- icon: ethereum,
595
+ icon: default8,
605
596
  readableName: "Ethereum",
606
597
  tokenSymbol: "eth",
607
598
  uniqueTokenId: "ethereum"
@@ -609,7 +600,7 @@ var TokenData = [
609
600
  {
610
601
  coinmarketcapLink: "https://coinmarketcap.com/currencies/bitcoin/",
611
602
  etherscanLink: "n/a",
612
- icon: btc,
603
+ icon: default3,
613
604
  readableName: "Bitcoin",
614
605
  tokenSymbol: "btc",
615
606
  uniqueTokenId: "btc"
@@ -617,7 +608,7 @@ var TokenData = [
617
608
  {
618
609
  coinmarketcapLink: "https://coinmarketcap.com/currencies/xyo/",
619
610
  etherscanLink: "https://etherscan.io/token/0x55296f69f40ea6d20e478533c15a6b08b654e758",
620
- icon: xyo,
611
+ icon: default16,
621
612
  readableName: "XYO",
622
613
  tokenSymbol: "xyo",
623
614
  uniqueTokenId: "xyo"
@@ -625,7 +616,7 @@ var TokenData = [
625
616
  {
626
617
  coinmarketcapLink: "https://coinmarketcap.com/currencies/frax/",
627
618
  etherscanLink: "https://etherscan.io/token/0x853d955acef822db058eb8505911ed77f175b99e",
628
- icon: frax,
619
+ icon: default9,
629
620
  readableName: "Frax",
630
621
  tokenSymbol: "frax",
631
622
  uniqueTokenId: "frax"
@@ -633,7 +624,7 @@ var TokenData = [
633
624
  {
634
625
  coinmarketcapLink: "https://coinmarketcap.com/currencies/wrapped-bitcoin/",
635
626
  etherscanLink: "https://etherscan.io/token/0x2260fac5e5542a773aa44fbcfedf7c193bc2c599",
636
- icon: wrappedBtc,
627
+ icon: default15,
637
628
  readableName: "Wrapped BTC",
638
629
  tokenSymbol: "wbtc",
639
630
  uniqueTokenId: "wbtc"
@@ -641,7 +632,7 @@ var TokenData = [
641
632
  {
642
633
  coinmarketcapLink: "https://coinmarketcap.com/currencies/usd-coin/",
643
634
  etherscanLink: "https://etherscan.io/token/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
644
- icon: usdCoin,
635
+ icon: default13,
645
636
  readableName: "USDC",
646
637
  tokenSymbol: "usdc",
647
638
  uniqueTokenId: "usdc"
@@ -649,7 +640,7 @@ var TokenData = [
649
640
  {
650
641
  coinmarketcapLink: "https://coinmarketcap.com/currencies/tether/",
651
642
  etherscanLink: "https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7",
652
- icon: tether,
643
+ icon: default12,
653
644
  readableName: "Tether",
654
645
  tokenSymbol: "usdt",
655
646
  uniqueTokenId: "usdt"
@@ -657,7 +648,7 @@ var TokenData = [
657
648
  {
658
649
  coinmarketcapLink: "https://coinmarketcap.com/currencies/cardano/",
659
650
  etherscanLink: "https://etherscan.io/token/0xc14777c94229582e5758c5a79b83dde876b9be98",
660
- icon: ada,
651
+ icon: default2,
661
652
  readableName: "Cardano",
662
653
  tokenSymbol: "ada",
663
654
  uniqueTokenId: "ada"
@@ -665,7 +656,7 @@ var TokenData = [
665
656
  {
666
657
  coinmarketcapLink: "https://coinmarketcap.com/currencies/binance-usd/",
667
658
  etherscanLink: "https://etherscan.io/token/0x4Fabb145d64652a948d72533023f6E7A623C7C53",
668
- icon: busd,
659
+ icon: default4,
669
660
  readableName: "Binance USD",
670
661
  tokenSymbol: "busd",
671
662
  uniqueTokenId: "busd"
@@ -673,7 +664,7 @@ var TokenData = [
673
664
  {
674
665
  coinmarketcapLink: "https://coinmarketcap.com/currencies/dogecoin/",
675
666
  etherscanLink: "https://etherscan.io/token/0x7618b5024a6349f9aef10ddfd33e3428c734551e",
676
- icon: dogecoin,
667
+ icon: default6,
677
668
  readableName: "Dogecoin",
678
669
  tokenSymbol: "doge",
679
670
  uniqueTokenId: "doge"
@@ -681,7 +672,7 @@ var TokenData = [
681
672
  {
682
673
  coinmarketcapLink: "https://coinmarketcap.com/currencies/polkadot-new/",
683
674
  etherscanLink: "https://etherscan.io/token/0x2d4fb6dd969992c881d8e534c747cc925d5ba221",
684
- icon: dot,
675
+ icon: default7,
685
676
  readableName: "Polkadot",
686
677
  tokenSymbol: "dot",
687
678
  uniqueTokenId: "dot"
@@ -689,7 +680,7 @@ var TokenData = [
689
680
  {
690
681
  coinmarketcapLink: "https://coinmarketcap.com/currencies/chainlink/",
691
682
  etherscanLink: "https://etherscan.io/token/0x514910771af9ca656af840dff83e8264ecf986ca",
692
- icon: link,
683
+ icon: default10,
693
684
  readableName: "ChainLink",
694
685
  tokenSymbol: "link",
695
686
  uniqueTokenId: "link"
@@ -697,7 +688,7 @@ var TokenData = [
697
688
  {
698
689
  coinmarketcapLink: "https://coinmarketcap.com/currencies/solana/",
699
690
  etherscanLink: "https://etherscan.io/token/0x1f54638b7737193ffd86c19ec51907a7c41755d8",
700
- icon: sol,
691
+ icon: default11,
701
692
  readableName: "Solana",
702
693
  tokenSymbol: "sol",
703
694
  uniqueTokenId: "sol"
@@ -708,7 +699,7 @@ var TokenData = [
708
699
  var useGetTokenData = (symbols) => {
709
700
  return symbols == null ? void 0 : symbols.map((symbol) => {
710
701
  const additionalTokenData = TokenData.find((x) => x.tokenSymbol === symbol);
711
- const checkedTokenData = additionalTokenData ? additionalTokenData : TokenData[0];
702
+ const checkedTokenData = additionalTokenData ?? TokenData[0];
712
703
  return checkedTokenData;
713
704
  });
714
705
  };
@@ -747,7 +738,7 @@ import { useContext } from "react";
747
738
  var useContextEx = (context, contextName, required = true) => {
748
739
  const { provided, ...props } = useContext(context);
749
740
  if (!provided && required) {
750
- throw Error(`use${contextName} can not be used outside of a ${contextName}Context when required=true`);
741
+ throw new Error(`use${contextName} can not be used outside of a ${contextName}Context when required=true`);
751
742
  }
752
743
  return props;
753
744
  };
@@ -819,25 +810,25 @@ var useListMode = (required = false) => {
819
810
  var assertDefinedEx = (expr, message) => {
820
811
  if (expr !== null && expr !== void 0)
821
812
  return expr;
822
- throw Error(message);
813
+ throw new Error(message);
823
814
  };
824
815
 
825
816
  // src/lib/getActualPaddingX.ts
826
817
  var parseMeausureString = (measure, absolute) => {
827
818
  if (measure !== void 0 && measure !== null && measure.length > 0) {
828
819
  if (measure.endsWith("px")) {
829
- return parseFloat(measure.substring(0, measure.length - 2));
820
+ return Number.parseFloat(measure.slice(0, Math.max(0, measure.length - 2)));
830
821
  } else if (measure.endsWith("%")) {
831
822
  if (absolute !== void 0) {
832
- return parseFloat(measure.substring(0, measure.length - 1)) / 100 * absolute;
823
+ return Number.parseFloat(measure.slice(0, Math.max(0, measure.length - 1))) / 100 * absolute;
833
824
  }
834
- throw Error("Error Parsing Measure [missing absolute]");
825
+ throw new Error("Error Parsing Measure [missing absolute]");
835
826
  } else if (measure.endsWith("vw")) {
836
- return parseFloat(measure.substring(0, measure.length - 2)) / 100 * window.innerWidth;
827
+ return Number.parseFloat(measure.slice(0, Math.max(0, measure.length - 2))) / 100 * window.innerWidth;
837
828
  } else if (measure.endsWith("vh")) {
838
- return parseFloat(measure.substring(0, measure.length - 2)) / 100 * window.innerHeight;
829
+ return Number.parseFloat(measure.slice(0, Math.max(0, measure.length - 2))) / 100 * window.innerHeight;
839
830
  }
840
- throw Error(`Error Parsing Measure [${measure}]`);
831
+ throw new Error(`Error Parsing Measure [${measure}]`);
841
832
  }
842
833
  };
843
834
  var parsePadding = (padding) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/Ampersand.tsx","../../src/components/BasicHero/BasicHero.tsx","../../src/hooks/GradientStyles/GradientStyles.tsx","../../src/hooks/useDataState.ts","../../src/hooks/useIsMobile.ts","../../src/hooks/useMediaQuery.ts","../../src/hooks/usePayloadHash.ts","../../src/hooks/usePromise.ts","../../src/hooks/useShareForwardRef.ts","../../src/components/Ellipsize.tsx","../../src/components/ErrorBoundary.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.tsx","../../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 { Typography, TypographyProps } from '@mui/material'\n\nexport const Ampersand: React.FC<TypographyProps> = (props) => {\n return (\n <Typography marginX={1} component=\"span\" {...props}>\n &amp;\n </Typography>\n )\n}\n","import { Container, Grid, Typography } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexGrowCol, FlexGrowRow } from '@xylabs/react-flexbox'\nimport { LinkEx } from '@xylabs/react-link'\nimport { ReactElement } from 'react'\n\nimport { useGradientStyles, useIsMobile } from '../../hooks'\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 ButtonSectionProps {\n buttonText?: string\n href?: string\n to?: string\n}\nconst SubLinkSection: React.FC<SubLinkSectionProps> = ({ backgroundImageAlignment, subLinkIcon, subLinkPath, subLinkText1, subLinkText2 }) => {\n return (\n <FlexGrowRow\n width=\"100%\"\n sx={{ flexDirection: { md: 'row', xs: 'column' }, justifyContent: { md: backgroundImageAlignment ? 'flex-start' : 'center', xs: 'center' } }}\n >\n {subLinkIcon ? <span>{subLinkIcon}&nbsp;</span> : null}\n <Typography>{subLinkText1}&nbsp;</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> = ({ href, to, buttonText }) => {\n const isMobile = useIsMobile()\n return (\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 to={to}\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}\n\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 = useIsMobile()\n const { classes } = useGradientStyles()\n return (\n <FlexGrowCol\n sx={{\n backgroundImage: `url(${backgroundImage})`,\n backgroundPosition: { lg: 'bottom', md: 'center left', xs: 'top left' },\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 ? <span>{`${title} `}</span> : null}\n {gradientTitle ? <span className={classes().heading}> {` ${gradientTitle}`}</span> : null}\n {title2 ? <span>{` ${title2}`}</span> : null}\n </Typography>\n <Typography variant=\"body1\" component=\"h2\" gutterBottom textAlign={backgroundImage && !isMobile ? 'left' : 'center'}>\n {desc}\n </Typography>\n <FlexGrowRow sx={{ flexDirection: { lg: 'row', xs: 'column' } }} width=\"100%\" marginTop={1}>\n <ButtonSection href={button1Href} to={button1To} buttonText={button1Text} />\n <ButtonSection href={button2Href} to={button2To} buttonText={button2Text} />\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 ? <img src={heroImage} width=\"100%\" /> : null}\n </Grid>\n </Grid>\n </Container>\n </FlexGrowCol>\n )\n}\n","import { useTheme } from '@mui/material'\nimport { makeStyles } from '@mui/styles'\nimport { 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: {\n backgroundImage: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n },\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: {\n backgroundImage: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n },\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 { Dispatch, SetStateAction, 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 (ex) {\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'\n\nexport const useIsMobile = () => {\n const theme = useTheme()\n return useMediaQuery(theme.breakpoints.down('md'))\n}\n","// eslint-disable-next-line import/no-deprecated\nimport { useMediaQuery } from '@mui/material'\n\n// eslint-disable-next-line import/no-deprecated\nexport { useMediaQuery }\n\n/* This file only exists to deal with the false positve lint error */\n","import { usePromise } from '@xylabs/react-promise'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const usePayloadHash = <TPayload extends Payload>(payload: TPayload | undefined | null) => {\n return usePromise(async () => (payload ? await PayloadHasher.hashAsync(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, string]>>(async (payload) => [payload, await PayloadHasher.hashAsync(payload)]))\n : undefined,\n [payloads],\n )[0]\n}\n","import { usePromise as importedUsePromise } from '@xylabs/react-promise'\n\n/** @deprecated use @xylabs/react-promise version instead */\nexport const usePromise = importedUsePromise\n","import { ForwardedRef, useEffect, useRef } from 'react'\n\nexport const useShareForwardedRef = <T>(forwardedRef: ForwardedRef<T>, 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 { Box, BoxProps, styled, Typography, TypographyProps, TypographyTypeMap } from '@mui/material'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { forwardRef, useCallback, useState } from 'react'\n\nimport { useShareForwardedRef } from '../hooks'\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})(() => ({\n position: 'relative',\n}))\n\nconst EllipsizeContentWrap = styled(Typography, {\n name: ComponentName,\n shouldForwardProp: (prop) => prop !== 'ellipsisPosition',\n slot: 'contentWrap',\n})<TypographyWithComponentProps>(({ theme, ellipsisPosition, fontFamily }) => {\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\n// See - https://mui.com/material-ui/guides/composition/#with-typescript\n// eslint-disable-next-line @typescript-eslint/ban-types\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 = forwardRef<HTMLDivElement, WithChildren<EllipsizeBoxProps>>(\n ({ children, ellipsisPosition = 'start', disableSharedRef, typographyProps, ...props }, ref) => {\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={ref}>\n <EllipsizeInnerWrap>\n <EllipsizeContentWrap ref={contentWrapRef} component={'span'} ellipsisPosition={ellipsisPosition} variant=\"body2\" {...typographyProps}>\n {children}\n </EllipsizeContentWrap>\n </EllipsizeInnerWrap>\n </EllipsizeRoot>\n )\n },\n)\nEllipsizeBox.displayName = 'EllipsizeBox'\n","import { Typography } from '@mui/material'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport { Component, ErrorInfo, ReactNode } from 'react'\n\nexport interface ErrorBoundaryProps {\n children: ReactNode\n // fallback as a static ReactNode value\n fallback?: ReactNode\n // fallback element that can receive the error as a prop\n fallbackWithError?: (error: Error) => ReactNode\n}\n\nexport interface ErrorBoundaryState {\n error?: Error\n}\n\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor(props: ErrorBoundaryProps) {\n super(props)\n this.state = { error: undefined }\n }\n\n static getDerivedStateFromError(error: Error) {\n return { error }\n }\n\n override componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n console.error(`${error}: ${errorInfo}`)\n }\n\n override render() {\n if (this.state.error) {\n if (this.props.fallbackWithError) {\n return this.props.fallbackWithError(this.state.error)\n }\n return (\n this.props.fallback ?? (\n <FlexCol>\n <Typography variant=\"h1\">Something went wrong.</Typography>\n <Typography variant=\"body1\">[{this.state.error?.message}]</Typography>\n </FlexCol>\n )\n )\n }\n\n return this.props.children\n }\n}\n","import { ListItemButton, ListItemButtonProps } from '@mui/material'\nimport { MouseEvent } from 'react'\nimport { NavigateOptions, To, 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> = ({ to, toOptions, onClick, ...props }) => {\n const navigate = useNavigate()\n const localOnClick = (event: MouseEvent<HTMLDivElement>) => {\n onClick?.(event)\n if (to) {\n navigate(to, toOptions)\n }\n }\n\n return <ListItemButton onClick={localOnClick} {...props} />\n}\n\nexport const ListItemButtonEx: React.FC<ListItemButtonExProps> = ({ to, ...props }) => {\n if (to) {\n return <ListItemButtonExTo to={to} {...props} />\n } else {\n return <ListItemButton {...props} />\n }\n}\n","import { FlexGrowRow } from '@xylabs/react-flexbox'\nimport { PropsWithChildren } from 'react'\n\nimport { NotFound } from './NotFound'\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 { notFound, error, searchResult, children } = props\n if (notFound) {\n return <NotFound />\n }\n if (error) {\n return <>{children}</>\n }\n if (searchResult === undefined) {\n return <FlexGrowRow busy minHeight=\"50px\" />\n } else {\n return <>{children}</>\n }\n}\n","import { Typography } from '@mui/material'\nimport { FlexBoxProps, FlexGrowCol } from '@xylabs/react-flexbox'\n\nconst 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\nexport { NotFound }\n","import { Typography, TypographyProps } from '@mui/material'\n\nexport const Pipe: React.FC<TypographyProps> = (props) => {\n return (\n <Typography marginX={1} component=\"span\" {...props}>\n |\n </Typography>\n )\n}\n","import { Alert, AlertProps, AlertTitle } from '@mui/material'\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 { WithChildren } from '@xylabs/react-shared'\n\nconst StyledScrollTableOnSm = styled('div')(({ theme }) => ({\n [theme.breakpoints.down('md')]: {\n overflowX: 'scroll',\n },\n display: 'flex',\n flexGrow: 1,\n}))\n\nconst ScrollTableOnSm: React.FC<WithChildren> = ({ children }) => <StyledScrollTableOnSm>{children}</StyledScrollTableOnSm>\n\nexport { ScrollTableOnSm }\n","import { useTheme } from '@mui/material'\nimport { FlexBoxProps, FlexGrowRow } from '@xylabs/react-flexbox'\nimport { forwardRef } from 'react'\n\nexport const SectionSpacingRow = forwardRef<HTMLDivElement, FlexBoxProps>(({ children, sx, ...props }, ref) => {\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 { forwardRef } from 'react'\n\nimport { EllipsisTableCell, EllipsisTableCellProps } from './EllipsisTableCell'\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 = forwardRef<HTMLTableCellElement, AddressTableCellProps>(({ value, archive, exploreDomain, link, ...props }, ref) => {\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 { styled, TableCell, TableCellProps } from '@mui/material'\nimport { LinkEx } from '@xylabs/react-link'\nimport type { WithChildren } from '@xylabs/react-shared'\nimport { forwardRef, useMemo } from 'react'\nimport { To } from 'react-router-dom'\n\nimport { EllipsizeBox } from '../Ellipsize'\n\nconst EllipsisTableCellRoot = styled(TableCell, {\n name: 'EllipsisTableCell',\n shouldForwardProp: (prop) => prop !== 'width',\n slot: 'Root',\n})(({ width = '100%' }) => ({\n width,\n}))\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: React.FC<WithChildren<EllipsisTableCellProps>> = forwardRef(\n ({ children, href, link = false, to, value, ...props }, ref) => {\n const data = useMemo(() => {\n if (children) {\n return children\n }\n if (href || link || to) {\n return (\n <LinkEx title={value} to={to} href={href} target={href ? '_blank' : undefined}>\n {value}\n </LinkEx>\n )\n }\n return value\n }, [children, href, link, to, value])\n return (\n <EllipsisTableCellRoot ref={ref} {...props}>\n <EllipsizeBox sx={{ cursor: link || to || href ? 'pointer' : 'inherit' }}>{data}</EllipsizeBox>\n </EllipsisTableCellRoot>\n )\n },\n)\n\nEllipsisTableCellWithRef.displayName = 'EllipsisTableCell'\nexport const EllipsisTableCell = EllipsisTableCellWithRef\n","import { useEvent } from '@xyo-network/react-event'\nimport { useRef } from 'react'\n\nimport { EllipsisTableCell, EllipsisTableCellProps } from './EllipsisTableCell'\n\nexport interface HashTableCellProps extends EllipsisTableCellProps {\n archive?: string\n dataType?: 'block' | 'payload'\n exploreDomain?: string\n network?: string\n}\n\nexport const HashTableCell: React.FC<HashTableCellProps> = ({ value, archive, dataType, network, exploreDomain, ...props }) => {\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 dispatch?.('hash', 'click', value)\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 { Avatar, AvatarProps, useTheme } from '@mui/material'\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 { AvatarGroup, AvatarGroupProps } from '@mui/material'\n\nimport { ThemeTokenAvatar } from '../ThemeTokenAvatar'\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 { Paper, PaperProps, Typography, TypographyProps } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { ReactNode } 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> = ({ text1, text1Props, text1Suffix, text2, text2Props, text2Suffix, ...props }) => {\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","import ada from './ada.png'\nimport btc from './btc.png'\nimport busd from './busd.png'\nimport dai from './dai.png'\nimport dogecoin from './dogecoin.png'\nimport dot from './dot.png'\nimport ethereum from './ethereum.png'\nimport frax from './frax.png'\nimport link from './link.png'\nimport sol from './sol.png'\nimport tether from './tether.png'\nimport usdCoin from './usd-coin.png'\nimport weth from './weth.png'\nimport wrappedBtc from './wrapped-bitcoin.png'\nimport xyo from './xyo.png'\n\nexport { ada, btc, busd, dai, dogecoin, dot, ethereum, frax, link, sol, tether, usdCoin, weth, wrappedBtc, xyo }\n","import * as tokenImages from './img'\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'\n\nexport const useGetTokenData = (symbols: (string | undefined)[]) => {\n return symbols?.map((symbol) => {\n const additionalTokenData = TokenData.find((x) => x.tokenSymbol === symbol)\n const checkedTokenData = additionalTokenData ? additionalTokenData : TokenData[0]\n return checkedTokenData\n })\n}\n","import { AvatarProps, CardHeader, CardHeaderProps, Typography } from '@mui/material'\nimport { ReactNode } from 'react'\n\nimport { ThemeTokenAvatar } from '../ThemeTokenAvatar'\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> = ({ icon, symbol, symbolElement, children, ...props }) => {\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 { Typography, TypographyProps } from '@mui/material'\n\nimport { useGradientStyles } from '../hooks'\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 { ContextExState } from './State'\n\nexport const createContextEx = <T>() => createContext<T & ContextExState>({ provided: false } as T & ContextExState)\n","import { Context, useContext } from 'react'\n\nimport { ContextExState } from './State'\n\nexport const useContextEx = <T extends ContextExState>(context: Context<T>, contextName: string, required = true) => {\n const { provided, ...props } = useContext(context)\n if (!provided && required) {\n throw 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 } = useContext(context)\n return provided\n}\n","import { createContextEx } from '../contextEx'\n\nexport const ResolvedDivinerContext = <T,>() => createContextEx<T>()\n","import { WithChildren } from '@xylabs/react-shared'\nimport { Context, useEffect, useState } from 'react'\n\nimport { ContextExProviderProps } from '../contextEx'\nimport { ResolvedDivinerState } from './State'\n\nexport interface DivinerProviderProps<D> extends ContextExProviderProps, WithChildren {\n context: Context<ResolvedDivinerState<D>>\n diviner?: D\n}\n\n/** Exposes a resolved diviner */\nexport const ResolvedDivinerProvider = <D,>({ diviner: divinerProp, required = false, children, context }: DivinerProviderProps<D>) => {\n const [diviner, setDiviner] = useState<D | undefined>(divinerProp)\n\n useEffect(() => {\n if (divinerProp) {\n setDiviner(divinerProp)\n }\n }, [divinerProp, setDiviner])\n\n const resolveDiviner = () => {\n if (divinerProp) {\n return diviner === divinerProp ? diviner : undefined\n } else {\n return diviner\n }\n }\n\n return (\n <context.Provider\n value={{\n diviner: resolveDiviner(),\n provided: true,\n setDiviner,\n }}\n >\n {diviner ? children : required ? null : children}\n </context.Provider>\n )\n}\n","import { createContextEx } from '../contextEx'\nimport { ListModeContextState } from './State'\n\nexport const ListModeContext = createContextEx<ListModeContextState>()\n","import { WithChildren } from '@xylabs/react-shared'\nimport { useState } from 'react'\n\nimport { ListMode } from '../../models'\nimport { ListModeContext } from './Context'\n\nexport interface ListModeProviderProps {\n defaultListMode?: ListMode\n}\n\nexport const ListModeProvider: React.FC<WithChildren<ListModeProviderProps>> = ({ children, defaultListMode }) => {\n const [listMode, setListMode] = useState(defaultListMode ?? 'default')\n\n return (\n <ListModeContext.Provider\n value={{\n listMode,\n provided: true,\n setListMode,\n }}\n >\n {children}\n </ListModeContext.Provider>\n )\n}\n","import { useContextEx } from '../contextEx'\nimport { ListModeContext } from './Context'\n\nexport const useListMode = (required = false) => {\n return useContextEx(ListModeContext, 'ListMode', required)\n}\n","export const assertDefinedEx = <T>(expr?: T | null, message?: string): T => {\n if (expr !== null && expr !== undefined) return expr\n throw 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 parseFloat(measure.substring(0, measure.length - 2))\n } else if (measure.endsWith('%')) {\n if (absolute !== undefined) {\n return (parseFloat(measure.substring(0, measure.length - 1)) / 100) * absolute\n }\n throw Error('Error Parsing Measure [missing absolute]')\n } else if (measure.endsWith('vw')) {\n return (parseFloat(measure.substring(0, measure.length - 2)) / 100) * window.innerWidth\n } else if (measure.endsWith('vh')) {\n return (parseFloat(measure.substring(0, measure.length - 2)) / 100) * window.innerHeight\n }\n throw 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(window.getComputedStyle(element, null).getPropertyValue('padding'))\n const paddingLeft =\n parseMeausureString(window.getComputedStyle(element, null).getPropertyValue('padding-left') ?? padding?.left, element.clientWidth) ?? 0\n const paddingRight =\n parseMeausureString(window.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 { SvgIconProps } from '@mui/material'\nimport { ReactElement } 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 { icon: (props) => <HubRoundedIcon {...props} />, name: 'Node', slug: 'node' },\n { icon: (props) => <TimerRoundedIcon {...props} />, name: 'Sentinel', slug: 'sentinel' },\n { icon: (props) => <InsertLinkRoundedIcon {...props} />, name: 'Bridge', slug: 'bridge' },\n { icon: (props) => <Inventory2RoundedIcon {...props} />, name: 'Archivist', slug: 'archivist' },\n { icon: (props) => <BubbleChartRoundedIcon {...props} />, name: 'Diviner', slug: 'diviner' },\n { icon: (props) => <VisibilityRoundedIcon {...props} />, name: 'Witness', slug: 'witness' },\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","useTheme","useTheme","usePromise","jsx","Typography","Typography","useState","jsx","Typography","useState","Typography","jsx","jsxs","jsx","FlexGrowRow","Typography","FlexGrowCol","jsx","jsxs","jsx","FlexGrowRow","Typography","jsx","jsx","jsxs","styled","jsx","useTheme","FlexGrowRow","forwardRef","jsx","forwardRef","styled","LinkEx","forwardRef","jsx","styled","forwardRef","link","LinkEx","jsx","forwardRef","link","useRef","jsx","useRef","useTheme","jsx","jsx","Typography","jsx","jsxs","Typography","Fragment","jsx","jsxs","Typography","Typography","jsx","Typography","useEffect","useState","jsx","useState","jsx","useState","jsx"]}
1
+ {"version":3,"sources":["../../src/components/Ampersand.tsx","../../src/components/BasicHero/BasicHero.tsx","../../src/hooks/GradientStyles/GradientStyles.tsx","../../src/hooks/useDataState.ts","../../src/hooks/useIsMobile.ts","../../src/hooks/useMediaQuery.ts","../../src/hooks/usePayloadHash.ts","../../src/hooks/usePromise.ts","../../src/hooks/useShareForwardRef.ts","../../src/components/Ellipsize.tsx","../../src/components/ErrorBoundary.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.tsx","../../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 { Typography, TypographyProps } from '@mui/material'\n\nexport const Ampersand: React.FC<TypographyProps> = (props) => {\n return (\n <Typography marginX={1} component=\"span\" {...props}>\n &amp;\n </Typography>\n )\n}\n","import { Container, Grid, Typography } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexGrowCol, FlexGrowRow } from '@xylabs/react-flexbox'\nimport { LinkEx } from '@xylabs/react-link'\nimport { ReactElement } from 'react'\n\nimport { useGradientStyles, useIsMobile } from '../../hooks'\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 ButtonSectionProps {\n buttonText?: string\n href?: string\n to?: string\n}\nconst SubLinkSection: React.FC<SubLinkSectionProps> = ({ backgroundImageAlignment, subLinkIcon, subLinkPath, subLinkText1, subLinkText2 }) => {\n return (\n <FlexGrowRow\n width=\"100%\"\n sx={{ flexDirection: { md: 'row', xs: 'column' }, justifyContent: { md: backgroundImageAlignment ? 'flex-start' : 'center', xs: 'center' } }}\n >\n {subLinkIcon ? <span>{subLinkIcon}&nbsp;</span> : null}\n <Typography>{subLinkText1}&nbsp;</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> = ({ href, to, buttonText }) => {\n const isMobile = useIsMobile()\n return (\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 to={to}\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}\n\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 = useIsMobile()\n const { classes } = useGradientStyles()\n return (\n <FlexGrowCol\n sx={{\n backgroundImage: `url(${backgroundImage})`,\n backgroundPosition: { lg: 'bottom', md: 'center left', xs: 'top left' },\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 ? <span>{`${title} `}</span> : null}\n {gradientTitle ? <span className={classes().heading}> {` ${gradientTitle}`}</span> : null}\n {title2 ? <span>{` ${title2}`}</span> : null}\n </Typography>\n <Typography variant=\"body1\" component=\"h2\" gutterBottom textAlign={backgroundImage && !isMobile ? 'left' : 'center'}>\n {desc}\n </Typography>\n <FlexGrowRow sx={{ flexDirection: { lg: 'row', xs: 'column' } }} width=\"100%\" marginTop={1}>\n <ButtonSection href={button1Href} to={button1To} buttonText={button1Text} />\n <ButtonSection href={button2Href} to={button2To} buttonText={button2Text} />\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 ? <img src={heroImage} width=\"100%\" /> : null}\n </Grid>\n </Grid>\n </Container>\n </FlexGrowCol>\n )\n}\n","import { useTheme } from '@mui/material'\nimport { makeStyles } from '@mui/styles'\nimport { 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: {\n backgroundImage: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n },\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: {\n backgroundImage: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n },\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 { Dispatch, SetStateAction, 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'\n\nexport const useIsMobile = () => {\n const theme = useTheme()\n return useMediaQuery(theme.breakpoints.down('md'))\n}\n","// eslint-disable-next-line import/no-deprecated\n\n// eslint-disable-next-line import/no-deprecated\n\n/* This file only exists to deal with the false positve lint error */\n\nexport { useMediaQuery } from '@mui/material'\n","import { usePromise } from '@xylabs/react-promise'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport const usePayloadHash = <TPayload extends Payload>(payload: TPayload | undefined | null) => {\n return usePromise(async () => (payload ? await PayloadHasher.hashAsync(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, string]>>(async (payload) => [payload, await PayloadHasher.hashAsync(payload)]))\n : undefined,\n [payloads],\n )[0]\n}\n","/** @deprecated use @xylabs/react-promise version instead */\n\nexport { usePromise } from '@xylabs/react-promise'\n","import { ForwardedRef, useEffect, useRef } from 'react'\n\nexport const useShareForwardedRef = <T>(forwardedRef: ForwardedRef<T>, 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 { Box, BoxProps, styled, Typography, TypographyProps, TypographyTypeMap } from '@mui/material'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { forwardRef, useCallback, useState } from 'react'\n\nimport { useShareForwardedRef } from '../hooks'\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})(() => ({\n position: 'relative',\n}))\n\nconst EllipsizeContentWrap = styled(Typography, {\n name: ComponentName,\n shouldForwardProp: (prop) => prop !== 'ellipsisPosition',\n slot: 'contentWrap',\n})<TypographyWithComponentProps>(({ theme, ellipsisPosition, fontFamily }) => {\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\n// See - https://mui.com/material-ui/guides/composition/#with-typescript\n// eslint-disable-next-line @typescript-eslint/ban-types\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 = forwardRef<HTMLDivElement, WithChildren<EllipsizeBoxProps>>(\n ({ children, ellipsisPosition = 'start', disableSharedRef, typographyProps, ...props }, ref) => {\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={ref}>\n <EllipsizeInnerWrap>\n <EllipsizeContentWrap ref={contentWrapRef} component={'span'} ellipsisPosition={ellipsisPosition} variant=\"body2\" {...typographyProps}>\n {children}\n </EllipsizeContentWrap>\n </EllipsizeInnerWrap>\n </EllipsizeRoot>\n )\n },\n)\nEllipsizeBox.displayName = 'EllipsizeBox'\n","import { Typography } from '@mui/material'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport { Component, ErrorInfo, ReactNode } from 'react'\n\nexport interface ErrorBoundaryProps {\n children: ReactNode\n // fallback as a static ReactNode value\n fallback?: ReactNode\n // fallback element that can receive the error as a prop\n fallbackWithError?: (error: Error) => ReactNode\n}\n\nexport interface ErrorBoundaryState {\n error?: Error\n}\n\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor(props: ErrorBoundaryProps) {\n super(props)\n this.state = { error: undefined }\n }\n\n static getDerivedStateFromError(error: Error) {\n return { error }\n }\n\n override componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n console.error(`${error}: ${errorInfo}`)\n }\n\n override render() {\n if (this.state.error) {\n if (this.props.fallbackWithError) {\n return this.props.fallbackWithError(this.state.error)\n }\n return (\n this.props.fallback ?? (\n <FlexCol>\n <Typography variant=\"h1\">Something went wrong.</Typography>\n <Typography variant=\"body1\">[{this.state.error?.message}]</Typography>\n </FlexCol>\n )\n )\n }\n\n return this.props.children\n }\n}\n","import { ListItemButton, ListItemButtonProps } from '@mui/material'\nimport { MouseEvent } from 'react'\nimport { NavigateOptions, To, 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> = ({ to, toOptions, onClick, ...props }) => {\n const navigate = useNavigate()\n const localOnClick = (event: MouseEvent<HTMLDivElement>) => {\n onClick?.(event)\n if (to) {\n 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 { PropsWithChildren } from 'react'\n\nimport { NotFound } from './NotFound'\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 { notFound, error, searchResult, children } = 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 { FlexBoxProps, FlexGrowCol } from '@xylabs/react-flexbox'\n\nconst 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\nexport { NotFound }\n","import { Typography, TypographyProps } from '@mui/material'\n\nexport const Pipe: React.FC<TypographyProps> = (props) => {\n return (\n <Typography marginX={1} component=\"span\" {...props}>\n |\n </Typography>\n )\n}\n","import { Alert, AlertProps, AlertTitle } from '@mui/material'\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 { WithChildren } from '@xylabs/react-shared'\n\nconst StyledScrollTableOnSm = styled('div')(({ theme }) => ({\n [theme.breakpoints.down('md')]: {\n overflowX: 'scroll',\n },\n display: 'flex',\n flexGrow: 1,\n}))\n\nconst ScrollTableOnSm: React.FC<WithChildren> = ({ children }) => <StyledScrollTableOnSm>{children}</StyledScrollTableOnSm>\n\nexport { ScrollTableOnSm }\n","import { useTheme } from '@mui/material'\nimport { FlexBoxProps, FlexGrowRow } from '@xylabs/react-flexbox'\nimport { forwardRef } from 'react'\n\nexport const SectionSpacingRow = forwardRef<HTMLDivElement, FlexBoxProps>(({ children, sx, ...props }, ref) => {\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 { forwardRef } from 'react'\n\nimport { EllipsisTableCell, EllipsisTableCellProps } from './EllipsisTableCell'\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 = forwardRef<HTMLTableCellElement, AddressTableCellProps>(({ value, archive, exploreDomain, link, ...props }, ref) => {\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 { styled, TableCell, TableCellProps } from '@mui/material'\nimport { LinkEx } from '@xylabs/react-link'\nimport type { WithChildren } from '@xylabs/react-shared'\nimport { forwardRef, useMemo } from 'react'\nimport { To } from 'react-router-dom'\n\nimport { EllipsizeBox } from '../Ellipsize'\n\nconst EllipsisTableCellRoot = styled(TableCell, {\n name: 'EllipsisTableCell',\n shouldForwardProp: (prop) => prop !== 'width',\n slot: 'Root',\n})(({ width = '100%' }) => ({\n width,\n}))\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: React.FC<WithChildren<EllipsisTableCellProps>> = forwardRef(\n ({ children, href, link = false, to, value, ...props }, ref) => {\n const data = useMemo(() => {\n if (children) {\n return children\n }\n if (href || link || to) {\n return (\n <LinkEx title={value} to={to} href={href} target={href ? '_blank' : undefined}>\n {value}\n </LinkEx>\n )\n }\n return value\n }, [children, href, link, to, value])\n return (\n <EllipsisTableCellRoot ref={ref} {...props}>\n <EllipsizeBox sx={{ cursor: link || to || href ? 'pointer' : 'inherit' }}>{data}</EllipsizeBox>\n </EllipsisTableCellRoot>\n )\n },\n)\n\nEllipsisTableCellWithRef.displayName = 'EllipsisTableCell'\nexport const EllipsisTableCell = EllipsisTableCellWithRef\n","import { useEvent } from '@xyo-network/react-event'\nimport { useRef } from 'react'\n\nimport { EllipsisTableCell, EllipsisTableCellProps } from './EllipsisTableCell'\n\nexport interface HashTableCellProps extends EllipsisTableCellProps {\n archive?: string\n dataType?: 'block' | 'payload'\n exploreDomain?: string\n network?: string\n}\n\nexport const HashTableCell: React.FC<HashTableCellProps> = ({ value, archive, dataType, network, exploreDomain, ...props }) => {\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 dispatch?.('hash', 'click', value)\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 { Avatar, AvatarProps, useTheme } from '@mui/material'\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 { AvatarGroup, AvatarGroupProps } from '@mui/material'\n\nimport { ThemeTokenAvatar } from '../ThemeTokenAvatar'\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 { Paper, PaperProps, Typography, TypographyProps } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport { ReactNode } 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> = ({ text1, text1Props, text1Suffix, text2, text2Props, text2Suffix, ...props }) => {\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'\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'\n\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 { AvatarProps, CardHeader, CardHeaderProps, Typography } from '@mui/material'\nimport { ReactNode } from 'react'\n\nimport { ThemeTokenAvatar } from '../ThemeTokenAvatar'\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> = ({ icon, symbol, symbolElement, children, ...props }) => {\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 { Typography, TypographyProps } from '@mui/material'\n\nimport { useGradientStyles } from '../hooks'\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 { ContextExState } from './State'\n\nexport const createContextEx = <T>() => createContext<T & ContextExState>({ provided: false } as T & ContextExState)\n","import { Context, useContext } from 'react'\n\nimport { ContextExState } from './State'\n\nexport const useContextEx = <T extends ContextExState>(context: Context<T>, contextName: string, required = true) => {\n const { provided, ...props } = useContext(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 } = useContext(context)\n return provided\n}\n","import { createContextEx } from '../contextEx'\n\nexport const ResolvedDivinerContext = <T,>() => createContextEx<T>()\n","import { WithChildren } from '@xylabs/react-shared'\nimport { Context, useEffect, useState } from 'react'\n\nimport { ContextExProviderProps } from '../contextEx'\nimport { ResolvedDivinerState } from './State'\n\nexport interface DivinerProviderProps<D> extends ContextExProviderProps, WithChildren {\n context: Context<ResolvedDivinerState<D>>\n diviner?: D\n}\n\n/** Exposes a resolved diviner */\nexport const ResolvedDivinerProvider = <D,>({ diviner: divinerProp, required = false, children, context }: DivinerProviderProps<D>) => {\n const [diviner, setDiviner] = useState<D | undefined>(divinerProp)\n\n useEffect(() => {\n if (divinerProp) {\n setDiviner(divinerProp)\n }\n }, [divinerProp, setDiviner])\n\n const resolveDiviner = () => {\n if (divinerProp) {\n return diviner === divinerProp ? diviner : undefined\n } else {\n return diviner\n }\n }\n\n return (\n <context.Provider\n value={{\n diviner: resolveDiviner(),\n provided: true,\n setDiviner,\n }}\n >\n {diviner ? children : required ? null : children}\n </context.Provider>\n )\n}\n","import { createContextEx } from '../contextEx'\nimport { ListModeContextState } from './State'\n\nexport const ListModeContext = createContextEx<ListModeContextState>()\n","import { WithChildren } from '@xylabs/react-shared'\nimport { useState } from 'react'\n\nimport { ListMode } from '../../models'\nimport { ListModeContext } from './Context'\n\nexport interface ListModeProviderProps {\n defaultListMode?: ListMode\n}\n\nexport const ListModeProvider: React.FC<WithChildren<ListModeProviderProps>> = ({ children, defaultListMode }) => {\n const [listMode, setListMode] = useState(defaultListMode ?? 'default')\n\n return (\n <ListModeContext.Provider\n value={{\n listMode,\n provided: true,\n setListMode,\n }}\n >\n {children}\n </ListModeContext.Provider>\n )\n}\n","import { useContextEx } from '../contextEx'\nimport { ListModeContext } from './Context'\n\nexport const useListMode = (required = false) => {\n return useContextEx(ListModeContext, 'ListMode', required)\n}\n","export 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(window.getComputedStyle(element, null).getPropertyValue('padding'))\n const paddingLeft =\n parseMeausureString(window.getComputedStyle(element, null).getPropertyValue('padding-left') ?? padding?.left, element.clientWidth) ?? 0\n const paddingRight =\n parseMeausureString(window.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 { SvgIconProps } from '@mui/material'\nimport { ReactElement } 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 { icon: (props) => <HubRoundedIcon {...props} />, name: 'Node', slug: 'node' },\n { icon: (props) => <TimerRoundedIcon {...props} />, name: 'Sentinel', slug: 'sentinel' },\n { icon: (props) => <InsertLinkRoundedIcon {...props} />, name: 'Bridge', slug: 'bridge' },\n { icon: (props) => <Inventory2RoundedIcon {...props} />, name: 'Archivist', slug: 'archivist' },\n { icon: (props) => <BubbleChartRoundedIcon {...props} />, name: 'Diviner', slug: 'diviner' },\n { icon: (props) => <VisibilityRoundedIcon {...props} />, name: 'Witness', slug: 'witness' },\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","useTheme","useTheme","usePromise","jsx","Typography","Typography","useState","jsx","Typography","useState","Typography","jsx","jsxs","jsx","FlexGrowRow","Typography","FlexGrowCol","jsx","jsxs","jsx","FlexGrowRow","Typography","jsx","jsx","jsxs","styled","jsx","useTheme","FlexGrowRow","forwardRef","jsx","forwardRef","styled","LinkEx","forwardRef","jsx","styled","forwardRef","LinkEx","jsx","forwardRef","useRef","jsx","useRef","useTheme","jsx","jsx","Typography","jsx","jsxs","default","default","Typography","Fragment","jsx","jsxs","Typography","Typography","jsx","Typography","useEffect","useState","jsx","useState","jsx","useState","jsx"]}