{"version":3,"sources":["../../src/components/Ampersand.tsx","../../src/components/BasicHero/BasicHero.tsx","../../src/hooks/GradientStyles/GradientStyles.tsx","../../src/hooks/payload/useBoundWitnessValidate.tsx","../../src/hooks/payload/usePayloadHash.tsx","../../src/hooks/payload/usePayloadValidate.tsx","../../src/hooks/useDataState.ts","../../src/hooks/useMediaQuery.ts","../../src/hooks/useShareForwardRef.ts","../../src/components/bigint/FixedPointPopover.tsx","../../src/components/bigint/TextField.tsx","../../src/components/bigint/InputAdornment.tsx","../../src/components/bigint/Input.ts","../../src/components/Ellipsize.tsx","../../src/components/LabeledTextFieldWrapper.tsx","../../src/components/ListItemButtonEx.tsx","../../src/components/LoadResult.tsx","../../src/components/NotFound.tsx","../../src/components/Pipe.tsx","../../src/components/pluginValidation/DataMissing.tsx","../../src/components/ScrollTableOnSm.tsx","../../src/components/SectionSpacingRow/SectionSpacingRow.tsx","../../src/components/TableCell/AddressTableCell.tsx","../../src/components/TableCell/EllipsisTableCell.tsx","../../src/components/TableCell/HashTableCell.tsx","../../src/components/ThemeTokenAvatar/ThemeTokenAvatar.tsx","../../src/components/ThemeTokenAvatarGroup/ThemeTokenAvatarGroup.tsx","../../src/components/TokenBar/TokenBar.tsx","../../src/components/TokenData/img/index.ts","../../src/components/TokenData/TokenData.ts","../../src/components/TokenData/useGetTokenData.tsx","../../src/components/TokenSummary/TokenSummary.tsx","../../src/components/TypographyEx.tsx","../../src/contexts/contextEx/create.ts","../../src/contexts/contextEx/use.ts","../../src/contexts/diviner/Context.ts","../../src/contexts/diviner/Provider.tsx","../../src/contexts/ListMode/Context.ts","../../src/contexts/ListMode/Provider.tsx","../../src/contexts/ListMode/use.ts","../../src/lib/assertDefinedEx.ts","../../src/lib/getActualPaddingX.ts","../../src/lib/networkComponents.tsx"],"sourcesContent":["import type { TypographyProps } from '@mui/material'\nimport { Typography } from '@mui/material'\nimport React from 'react'\n\nexport const Ampersand: React.FC<TypographyProps> = (props) => {\n  return (\n    <Typography marginX={1} component=\"span\" {...props}>\n      &amp;\n    </Typography>\n  )\n}\n","import {\n  Container, Grid, styled, Typography,\n} from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexGrowCol, FlexGrowRow } from '@xylabs/react-flexbox'\nimport { LinkEx } from '@xylabs/react-link'\nimport { useIsSmall } from '@xylabs/react-theme'\nimport type { ReactElement } from 'react'\nimport React from 'react'\nimport type { To } from 'react-router-dom'\n\nimport { useGradientStyles } from '../../hooks/index.ts'\n\nexport interface BasicHeroProps extends FlexBoxProps {\n  backgroundColor?: string\n  backgroundImage?: string\n  button1Href?: string\n  button1Text?: string\n  button1To?: string\n  button2Href?: string\n  button2Text?: string\n  button2To?: string\n  desc: string\n  gradientTitle?: string\n  heroImage?: string\n  subLinkIcon?: ReactElement\n  subLinkPath?: string\n  subLinkText1?: string\n  subLinkText2?: string\n  sx?: Record<string, string>\n  textColor?: string\n  title: string\n  title2?: string\n}\n\ninterface SubLinkSectionProps {\n  backgroundImageAlignment?: boolean\n  subLinkIcon?: ReactElement\n  subLinkPath?: string\n  subLinkText1?: string\n  subLinkText2?: string\n}\n\ninterface ButtonSectionBaseProps {\n  buttonText?: string\n}\n\ninterface ButtonSectionHrefProps extends ButtonSectionBaseProps {\n  href?: string\n  to?: never\n}\n\ninterface ButtonSectionToProps extends ButtonSectionBaseProps {\n  href?: never\n  to?: To\n}\n\ninterface ButtonSectionClickProps extends ButtonSectionBaseProps {\n  href?: never\n  to?: never\n}\n\ntype ButtonSectionProps = ButtonSectionHrefProps | ButtonSectionToProps | ButtonSectionClickProps\n\nconst SubLinkSection: React.FC<SubLinkSectionProps> = ({\n  backgroundImageAlignment, subLinkIcon, subLinkPath, subLinkText1, subLinkText2,\n}) => {\n  return (\n    <FlexGrowRow\n      width=\"100%\"\n      sx={{\n        flexDirection: { md: 'row', xs: 'column' },\n        justifyContent: { md: backgroundImageAlignment ? 'flex-start' : 'center', xs: 'center' },\n      }}\n    >\n      {subLinkIcon\n        ? (\n            <span>\n              {subLinkIcon}\n&nbsp;\n            </span>\n          )\n        : null}\n      <Typography>\n        {subLinkText1}\n&nbsp;\n      </Typography>\n      <LinkEx href={subLinkPath} underline=\"always\" target=\"_blank\" color=\"inherit\">\n        <Typography>{subLinkText2}</Typography>\n      </LinkEx>\n    </FlexGrowRow>\n  )\n}\n\nconst ButtonSection: React.FC<ButtonSectionProps> = ({\n  href, to, buttonText,\n}) => {\n  const isMobile = useIsSmall()\n  return href\n    ? (\n        <ButtonEx\n          fullWidth={true}\n          marginTop={1}\n          marginBottom={1}\n          marginRight={isMobile ? 2 : 1}\n          marginLeft={isMobile ? 2 : 0}\n          target={href ?? '_blank'}\n          href={href}\n          color=\"primary\"\n          variant=\"contained\"\n          paddingX={3}\n          sx={{ display: href || to ? 'flex' : 'none' }}\n        >\n          {buttonText}\n        </ButtonEx>\n      )\n    : to\n      ? (\n          <ButtonEx\n            fullWidth={true}\n            marginTop={1}\n            marginBottom={1}\n            marginRight={isMobile ? 2 : 1}\n            marginLeft={isMobile ? 2 : 0}\n            to={to}\n            color=\"primary\"\n            variant=\"contained\"\n            paddingX={3}\n            sx={{ display: href || to ? 'flex' : 'none' }}\n          >\n            {buttonText}\n          </ButtonEx>\n        )\n      : (\n          <ButtonEx\n            fullWidth={true}\n            marginTop={1}\n            marginBottom={1}\n            marginRight={isMobile ? 2 : 1}\n            marginLeft={isMobile ? 2 : 0}\n            color=\"primary\"\n            variant=\"contained\"\n            paddingX={3}\n            sx={{ display: href || to ? 'flex' : 'none' }}\n          >\n            {buttonText}\n          </ButtonEx>\n        )\n}\n\n// eslint-disable-next-line complexity\nexport const BasicHero: React.FC<BasicHeroProps> = ({\n  backgroundImage,\n  title,\n  gradientTitle,\n  backgroundColor,\n  textColor,\n  desc,\n  heroImage,\n  title2,\n  subLinkText1,\n  subLinkText2,\n  subLinkPath,\n  button1Text,\n  button2Text,\n  button2To,\n  button1To,\n  button2Href,\n  button1Href,\n  subLinkIcon,\n  sx,\n  ...props\n}) => {\n  const isMobile = useIsSmall()\n  const styles = useGradientStyles()\n\n  const StyledSpan = styled('span')({ ...styles.heading })\n\n  return (\n    <FlexGrowCol\n      sx={{\n        backgroundImage: `url(${backgroundImage})`,\n        backgroundPosition: {\n          lg: 'bottom', md: 'center left', xs: 'top left',\n        },\n        minHeight: {\n          md: '500px',\n          sm: '400px',\n          xs: '200px',\n        },\n        ...sx,\n      }}\n      style={{\n        backgroundColor: backgroundColor ?? '',\n        backgroundRepeat: 'no-repeat',\n        backgroundSize: 'cover',\n        color: textColor ?? '',\n      }}\n      {...props}\n    >\n      <Container>\n        <Grid\n          container\n          justifyContent=\"center\"\n          alignItems=\"center\"\n          sx={{\n            alignItems: { xs: 'center' },\n            justifyContent: { xs: 'center' },\n          }}\n        >\n          <Grid size={{\n            xs: 12, sm: 8, md: backgroundImage ? 6 : 8, lg: backgroundImage ? 6 : 8,\n          }}\n          >\n            <FlexGrowCol paddingY={2} sx={{ alignItems: { xs: backgroundImage && !isMobile ? 'flex-start' : 'center' } }}>\n              <Typography variant=\"h1\" component=\"h1\" gutterBottom textAlign={backgroundImage && !isMobile ? 'left' : 'center'}>\n                {title\n                  ? <span>{`${title} `}</span>\n                  : null}\n                {gradientTitle\n                  ? (\n                      <StyledSpan>\n                        {' '}\n                        {` ${gradientTitle}`}\n                      </StyledSpan>\n                    )\n                  : null}\n                {title2\n                  ? <span>{` ${title2}`}</span>\n                  : null}\n              </Typography>\n              <Typography variant=\"body1\" component=\"h2\" gutterBottom textAlign={backgroundImage && !isMobile ? 'left' : 'center'}>\n                {desc}\n              </Typography>\n              <FlexGrowRow\n                sx={{ flexDirection: { lg: 'row', xs: 'column' } }}\n                width=\"100%\"\n                marginTop={1}\n              >\n                {\n                  button1Href\n                    ? <ButtonSection href={button1Href} buttonText={button1Text} />\n                    : button1To ? <ButtonSection to={button1To} buttonText={button1Text} /> : <ButtonSection buttonText={button1Text} />\n                }\n                {\n                  button2Href\n                    ? <ButtonSection href={button2Href} buttonText={button2Text} />\n                    : button2To ? <ButtonSection to={button2To} buttonText={button2Text} /> : <ButtonSection buttonText={button2Text} />\n                }\n              </FlexGrowRow>\n              <SubLinkSection\n                subLinkIcon={subLinkIcon}\n                subLinkText1={subLinkText1}\n                subLinkText2={subLinkText2}\n                subLinkPath={subLinkPath}\n                backgroundImageAlignment={backgroundImage ? true : false}\n              />\n            </FlexGrowCol>\n          </Grid>\n          <Grid size={{ xs: 12, md: 6 }}>\n            {heroImage\n              ? <img src={heroImage} width=\"100%\" />\n              : null}\n          </Grid>\n        </Grid>\n      </Container>\n    </FlexGrowCol>\n  )\n}\n","import { makeStyles, useTheme } from '@mui/material'\nimport type { CSSProperties } from 'react'\n\nexport interface GradientStyles {\n  background: CSSProperties\n  border: CSSProperties\n  heading: CSSProperties\n}\n\nexport const colorfulGradientLightMode = () => {\n  return {\n    background: { backgroundImage: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)' },\n    border: {\n      borderImage: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n      borderImageSlice: 1,\n      borderImageSource: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n      borderRadius: 0,\n      borderStyle: 'solid',\n      borderWidth: '2px',\n    },\n    heading: {\n      WebkitBackgroundClip: 'text',\n      WebkitTextFillColor: 'transparent',\n      background: '-webkit-linear-gradient(232deg, #e17751, #d84e7a, #5898dd, #8c8ee5)',\n      display: 'inline-block',\n    },\n  }\n}\n\nexport const colorfulGradientDarkMode = () => {\n  return {\n    background: { backgroundImage: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)' },\n    border: {\n      borderImage: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n      borderImageSlice: 1,\n      borderImageSource: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n      borderRadius: 0,\n      borderStyle: 'solid',\n      borderWidth: '2px',\n    },\n    heading: {\n      WebkitBackgroundClip: 'text',\n      WebkitTextFillColor: 'transparent',\n      background: '-webkit-linear-gradient(232deg, #F17938, #FF5BDC, #5898dd, #B2FFFD)',\n      display: 'inline-block',\n    },\n  }\n}\n\nexport const useGradientStyles = () => {\n  const theme = useTheme()\n  const styles = theme.palette.mode === 'dark' ? colorfulGradientDarkMode() : colorfulGradientLightMode()\n  return styles\n}\n","import { assertEx } from '@xylabs/assert'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { isAnyPayload } from '@xyo-network/payload-model'\n\nimport type { ValidatedResponse } from './types/index.ts'\n\nexport const useValidateBoundWitness = (input?: string): ValidatedResponse<BoundWitness> => {\n  const [output, validationError] = usePromise(async () => {\n    if (!input) return\n\n    const object = JSON.parse(input)\n    const validPayload = assertEx(isAnyPayload(object) ? object : null, () => 'Invalid payload')\n\n    const errors = await new BoundWitnessValidator(validPayload as BoundWitness).validate()\n    return {\n      payload: validPayload as BoundWitness,\n      errors,\n    }\n  }, [input])\n\n  const { payload, errors } = output ?? {}\n\n  return {\n    payload,\n    errors: [validationError, ...errors ?? []].filter<Error>(error => !!error),\n  }\n}\n","import type { Hash } from '@xylabs/hex'\nimport { usePromise } from '@xylabs/react-promise'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { type Payload } from '@xyo-network/payload-model'\n\nexport const usePayloadHash = <TPayload extends Payload>(payload: TPayload | undefined | null) => {\n  return usePromise(async () => (payload ? await PayloadBuilder.dataHash(payload) : undefined), [payload])[0]\n}\n\nexport const usePayloadRootHash = <TPayload extends Payload>(payload: TPayload | undefined | null) => {\n  return usePromise(async () => (payload ? await PayloadBuilder.hash(payload) : undefined), [payload])[0]\n}\n\nexport const usePayloadHashes = <TPayload extends Payload>(payloads: TPayload[] | undefined | null) => {\n  return usePromise(\n    async () =>\n      payloads\n        ? await Promise.all(payloads.map<Promise<[TPayload, Hash]>>(async payload => [payload, await PayloadBuilder.dataHash(payload)]))\n        : undefined,\n    [payloads],\n  )[0]\n}\n","import { assertEx } from '@xylabs/assert'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isAnyPayload } from '@xyo-network/payload-model'\nimport { useMemo } from 'react'\n\nimport type { ValidatedResponse } from './types/index.ts'\n\nexport const usePayloadValidate = <TPayload extends Payload>(input?: string): ValidatedResponse => {\n  return useMemo(() => {\n    if (!input) return {}\n    try {\n      const object = JSON.parse(input)\n      const validPayload = assertEx(isAnyPayload(object) ? object : null, () => 'Invalid payload')\n      const { schema, ...fields } = validPayload\n      return { payload: new PayloadBuilder({ schema }).fields(fields).build() as TPayload }\n    } catch (error) {\n      return { errors: [error as Error] }\n    }\n  }, [input])\n}\n","import type { Dispatch, SetStateAction } from 'react'\nimport { useState } from 'react'\n\nexport const useDataState = <T>(defaultValue: T | undefined): [T | undefined, Dispatch<SetStateAction<T | undefined>>] => {\n  const [state, setState] = useState(defaultValue)\n\n  const setDataState: Dispatch<SetStateAction<T | undefined>> = (value: SetStateAction<T | undefined>) => {\n    try {\n      if (JSON.stringify(value) !== JSON.stringify(state)) {\n        setState(value)\n      }\n    } catch {\n      console.error('setDataState failed!  Make sure data type is stringifiable!')\n    }\n  }\n\n  return [state, setDataState]\n}\n","/* This file only exists to deal with the false positive lint error */\n\nexport { useMediaQuery } from '@mui/material'\n","import type { ForwardedRef } from 'react'\nimport { useEffect, useRef } from 'react'\n\nexport const useShareForwardedRef = <T>(forwardedRef: ForwardedRef<T> | null | undefined, refresh = 0) => {\n  // final ref that will share value with forward ref. this is the one to be attached to components\n  const innerRef = useRef<T>(null)\n\n  useEffect(() => {\n    if (!forwardedRef) {\n      return\n    }\n    if (typeof forwardedRef === 'function') {\n      forwardedRef(innerRef.current)\n      return\n    } else {\n      forwardedRef.current = innerRef.current\n    }\n  }, [forwardedRef, refresh])\n\n  return innerRef\n}\n","import {\n  FormHelperText, Popover, type PopoverProps, TextField,\n} from '@mui/material'\nimport React from 'react'\n\nexport interface FixedPointPopoverProps extends PopoverProps {\n  fixedPoint?: number\n  minFixedPoint?: number\n  onFixedPointChange?: (value: number) => void\n}\n\nexport const FixedPointPopover: React.FC<FixedPointPopoverProps> = ({\n  fixedPoint, minFixedPoint: minimumPoint, onFixedPointChange, ...props\n}) => {\n  const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n    const fixedPointInteger = Number.parseInt(event.target.value, 10)\n    if (Number.isNaN(fixedPointInteger)) return\n    onFixedPointChange?.(fixedPointInteger)\n  }\n\n  return (\n    <Popover slotProps={{ paper: { sx: { p: 2 } } }} {...props}>\n      <TextField slotProps={{ htmlInput: { min: minimumPoint } }} value={fixedPoint} onChange={handleChange} type=\"number\" />\n      <FormHelperText>Set the Fixed Point</FormHelperText>\n    </Popover>\n  )\n}\n","import type { FormControlProps, StandardTextFieldProps } from '@mui/material'\nimport {\n  FormControl, FormHelperText, TextField,\n} from '@mui/material'\nimport { toFixedPoint } from '@xylabs/decimal-precision'\nimport type { FocusEventHandler } from 'react'\nimport React, {\n  useEffect, useMemo, useState,\n} from 'react'\n\nimport { FixedPointInputAdornment } from './InputAdornment.tsx'\n\nexport interface BigIntTextFieldProps extends StandardTextFieldProps {\n  defaultFixedPoint?: number\n  defaultRawValue?: string\n  hideAdornment?: boolean\n  onChangeFixedPoint?: (value?: bigint) => void\n  resetValue?: number\n}\n\nexport const BigIntTextField: React.FC<BigIntTextFieldProps> = ({\n  defaultFixedPoint = 18, defaultRawValue, helperText, hideAdornment, onChangeFixedPoint, onChange, resetValue, ...props\n}) => {\n  const [rawValue, setRawValue] = useState<string>('')\n  const [fixedPoint, setFixedPoint] = useState(defaultFixedPoint)\n  const [error, setError] = useState<Error>()\n\n  useMemo(() => {\n    setRawValue('')\n  }, [resetValue])\n\n  const handleRawValueChange = (rawValue: string) => {\n    // remove all alpha characters but allow decimals\n    const filteredValue = rawValue.replaceAll(/[^\\d.]/g, '')\n    // only allow one decimal point\n    if (filteredValue.split('.').length > 2) return\n    setRawValue(filteredValue)\n  }\n\n  useMemo(() => {\n    if (defaultRawValue) {\n      handleRawValueChange(defaultRawValue)\n    }\n  }, [defaultRawValue])\n\n  const handleChange: FocusEventHandler<HTMLTextAreaElement> = (event) => {\n    // run standard callback\n    onChange?.(event)\n    handleRawValueChange(event.target.value)\n  }\n\n  const onFixedPointChange = (fixedPoint: number) => setFixedPoint(fixedPoint)\n\n  // on value or point changes, run the bigInt callback\n  const bigIntValue = useMemo(() => {\n    if (rawValue) {\n      const fixedValue = toFixedPoint(rawValue, fixedPoint)\n      setError(undefined)\n      try {\n        return fixedValue\n      } catch (e) {\n        console.error(e)\n        setError(e as Error)\n        return\n      }\n    } else {\n      return\n    }\n    // run bigInt callback\n  }, [rawValue, fixedPoint])\n\n  useEffect(() => {\n    onChangeFixedPoint?.(bigIntValue)\n  }, [bigIntValue])\n\n  // prevent the fixed point from being less than the number of decimal places\n  const minFixedPoint = rawValue.split('.')[1]?.length\n\n  const resolvedHelperText = useMemo(() => {\n    if (error) return 'Cannot convert to BigInt'\n    return helperText ?? 'Enter a number'\n  }, [helperText, error])\n\n  return (\n    <>\n      <TextField\n        onChange={handleChange}\n        type=\"string\"\n        error={Boolean(error)}\n        slotProps={{\n          htmlInput: { pattern: '[0-9]*[.]?[0-9]*' },\n          input: {\n            startAdornment: (hideAdornment\n              ? null\n              : (\n                  <FixedPointInputAdornment\n                    position=\"start\"\n                    fixedPoint={fixedPoint}\n                    minFixedPoint={minFixedPoint}\n                    onFixedPointChange={onFixedPointChange}\n                  />\n                )\n            ),\n          },\n        }}\n        value={rawValue}\n        {...props}\n      />\n      <FormHelperText>{resolvedHelperText}</FormHelperText>\n    </>\n  )\n}\n\nexport interface InputWithFormControlProps extends FormControlProps {\n  textFieldProps?: BigIntTextFieldProps\n}\n\nexport const WithFormControl: React.FC<InputWithFormControlProps> = ({ textFieldProps, ...props }) => (\n  <FormControl {...props}>\n    <BigIntTextField {...textFieldProps} />\n  </FormControl>\n)\n","import type { InputAdornmentProps } from '@mui/material'\nimport {\n  Avatar, IconButton, InputAdornment,\n} from '@mui/material'\nimport React, { useRef, useState } from 'react'\n\nimport { FixedPointPopover } from './FixedPointPopover.tsx'\n\nexport interface FixedPointInputAdornmentProps extends InputAdornmentProps {\n  fixedPoint?: number\n  minFixedPoint?: number\n  onFixedPointChange?: (value: number) => void\n}\n\nexport const FixedPointInputAdornment: React.FC<FixedPointInputAdornmentProps> = ({\n  fixedPoint, minFixedPoint, onFixedPointChange, ...props\n}) => {\n  const ref = useRef<HTMLButtonElement>(null)\n  const [open, setOpen] = useState(false)\n\n  return (\n    <InputAdornment {...props}>\n      <FixedPointPopover\n        anchorEl={ref.current}\n        anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n        fixedPoint={fixedPoint}\n        minFixedPoint={minFixedPoint}\n        onClose={() => setOpen(false)}\n        onFixedPointChange={onFixedPointChange}\n        open={open}\n      />\n      <IconButton size=\"small\" ref={ref} onClick={() => setOpen(!open)}>\n        <Avatar sx={{\n          fontSize: '.75rem',\n          height: '20px',\n          width: '20px',\n        }}\n        >\n          {fixedPoint}\n        </Avatar>\n      </IconButton>\n    </InputAdornment>\n  )\n}\n","import { BigIntTextField, WithFormControl } from './TextField.tsx'\n\nexport const BigIntInput = {\n  TextField: BigIntTextField,\n  WithFormControl,\n}\n","import type {\n  BoxProps, TypographyProps, TypographyTypeMap,\n} from '@mui/material'\nimport {\n  Box, styled, Typography,\n} from '@mui/material'\nimport type { PropsWithChildren } from 'react'\nimport React, { useCallback, useState } from 'react'\n\nimport { useShareForwardedRef } from '../hooks/index.ts'\n\n/**\n * Heavily inspired by - https://stackoverflow.com/a/30362531/2803259\n */\n\nconst ComponentName = 'Ellipsize'\n\nexport interface EllipsizeRootProps extends BoxProps {\n  beforeLineHeight?: string | number\n}\n\nconst EllipsizeRoot = styled(Box, {\n  name: ComponentName,\n  shouldForwardProp: prop => prop !== 'beforeLineHeight',\n  slot: 'Root',\n})<EllipsizeRootProps>(({ beforeLineHeight }) => ({\n  '&': {\n    // because the cell content ends up absolutely positioned, the cell doesn't know the content height.\n    // the pseudo element with a hidden character establishes the proper height of the content and hides it\n    ':before': {\n      content: \"'nbsp;'\",\n      display: 'block',\n      // take the pseudo element out of the `display: block` flow so it won't push against our actual content\n      float: 'left',\n      visibility: 'hidden',\n      // since we are `display: block`, lineHeight is the height\n      ...(beforeLineHeight && { lineHeight: beforeLineHeight }),\n    },\n  },\n}))\n\nconst EllipsizeInnerWrap = styled(Box, {\n  name: ComponentName,\n  slot: 'innerWrap',\n})(() => ({ position: 'relative' }))\n\nconst EllipsizeContentWrap = styled(Typography, {\n  name: ComponentName,\n  shouldForwardProp: prop => prop !== 'ellipsisPosition',\n  slot: 'contentWrap',\n})<TypographyWithComponentProps>(({\n  theme, ellipsisPosition, fontFamily,\n}) => {\n  return theme.unstable_sx({\n    fontFamily: fontFamily ?? 'monospace',\n    left: 0,\n    overflow: 'hidden',\n    position: 'absolute',\n    right: 0,\n    textOverflow: 'ellipsis',\n    whiteSpace: 'nowrap',\n    ...(ellipsisPosition === 'start'\n      ? {\n          direction: 'rtl',\n          textAlign: 'left',\n        }\n      : {}),\n  })\n})\n\nconst useClientHeight = () => {\n  const [contentWrapHeight, setContentWrapHeight] = useState<string>()\n\n  const contentWrapRef = useCallback((node: HTMLElement) => {\n    if (node !== null) {\n      setContentWrapHeight(node.clientHeight + 'px')\n    }\n  }, [])\n\n  return { contentWrapHeight, contentWrapRef }\n}\n\nexport type TypographyWithComponentProps<D extends React.ElementType = TypographyTypeMap['defaultComponent'], P = {}> = TypographyProps<D, P> & {\n  ellipsisPosition?: 'start' | 'end'\n}\n\nexport interface EllipsizeBoxProps extends BoxProps {\n  disableSharedRef?: boolean\n  ellipsisPosition?: 'start' | 'end'\n  typographyProps?: TypographyWithComponentProps\n}\n\nexport const EllipsizeBox = ({\n  ref, children, ellipsisPosition = 'start', disableSharedRef, typographyProps, ...props\n}: PropsWithChildren<EllipsizeBoxProps>) => {\n  // Allow syncing of :before pseudo element height with contentWrapHeight\n  const { contentWrapRef, contentWrapHeight } = useClientHeight()\n  const sharedRef = useShareForwardedRef(ref)\n\n  return (\n    <EllipsizeRoot beforeLineHeight={!!sharedRef && !disableSharedRef ? contentWrapHeight : undefined} {...props} ref={sharedRef}>\n      <EllipsizeInnerWrap>\n        <EllipsizeContentWrap ref={contentWrapRef} component=\"span\" ellipsisPosition={ellipsisPosition} variant=\"body2\" {...typographyProps}>\n          {children}\n        </EllipsizeContentWrap>\n      </EllipsizeInnerWrap>\n    </EllipsizeRoot>\n  )\n}\nEllipsizeBox.displayName = 'EllipsizeBox'\n","import type { StackProps } from '@mui/material'\nimport { Stack, Typography } from '@mui/material'\nimport React from 'react'\n\nexport interface LabeledTextFieldWrapperProps extends StackProps {\n  label: string\n}\n\nexport const LabeledTextFieldWrapper: React.FC<LabeledTextFieldWrapperProps> = ({\n  children, label, ...props\n}) => {\n  return (\n    <Stack flexDirection=\"column\" {...props}>\n      <Typography gutterBottom variant=\"caption\">\n        {label}\n      </Typography>\n      {children}\n    </Stack>\n  )\n}\n","import type { ListItemButtonProps } from '@mui/material'\nimport { ListItemButton } from '@mui/material'\nimport type { MouseEvent } from 'react'\nimport React from 'react'\nimport type { NavigateOptions, To } from 'react-router-dom'\nimport { useNavigate } from 'react-router-dom'\n\nexport interface ListItemButtonExProps extends ListItemButtonProps {\n  target?: string\n  to?: To\n  toOptions?: NavigateOptions\n}\n\nexport const ListItemButtonExTo: React.FC<ListItemButtonExProps> = ({\n  to, toOptions, onClick, ...props\n}) => {\n  const navigate = useNavigate()\n  const localOnClick = (event: MouseEvent<HTMLDivElement>) => {\n    onClick?.(event)\n    if (to) {\n      void navigate(to, toOptions)\n    }\n  }\n\n  return <ListItemButton onClick={localOnClick} {...props} />\n}\n\nexport const ListItemButtonEx: React.FC<ListItemButtonExProps> = ({ to, ...props }) => {\n  return to ? <ListItemButtonExTo to={to} {...props} /> : <ListItemButton {...props} />\n}\n","import { FlexGrowRow } from '@xylabs/react-flexbox'\nimport type { PropsWithChildren } from 'react'\nimport React from 'react'\n\nimport { NotFound } from './NotFound.tsx'\n\nexport interface LoadResultProps<T> {\n  /** @deprecated - use error prop */\n  apiError?: Error\n  /** Defer error handling to the children and load them */\n  error?: boolean\n  notFound: boolean\n  searchResult: T | undefined\n}\n\nexport function LoadResult<T>(props: PropsWithChildren<LoadResultProps<T>>) {\n  const {\n    notFound, error, searchResult, children,\n  } = props\n  if (notFound) {\n    return <NotFound />\n  }\n  if (error) {\n    return <>{children}</>\n  }\n  return searchResult === undefined ? <FlexGrowRow busy minHeight=\"50px\" /> : <>{children}</>\n}\n","import { Typography } from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexGrowCol } from '@xylabs/react-flexbox'\nimport React from 'react'\n\n/** @deprecated use from @@xylabs/react-shared instead */\nexport const NotFound: React.FC<FlexBoxProps> = (props) => {\n  return (\n    <FlexGrowCol {...props}>\n      <Typography variant=\"h2\">Sorry!</Typography>\n      <Typography marginY={3} variant=\"body2\">\n        {'Can\\'t find anything here'}\n      </Typography>\n    </FlexGrowCol>\n  )\n}\n","import type { TypographyProps } from '@mui/material'\nimport { Typography } from '@mui/material'\nimport React from 'react'\n\nexport const Pipe: React.FC<TypographyProps> = (props) => {\n  return (\n    <Typography marginX={1} component=\"span\" {...props}>\n      |\n    </Typography>\n  )\n}\n","import type { AlertProps } from '@mui/material'\nimport { Alert, AlertTitle } from '@mui/material'\nimport React from 'react'\n\nexport interface PayloadDataMissingProps extends AlertProps {\n  alertBody?: string\n}\n\nexport const PayloadDataMissing: React.FC<PayloadDataMissingProps> = ({ alertBody, ...props }) => {\n  return (\n    <Alert severity=\"warning\" {...props}>\n      <AlertTitle>Missing Data</AlertTitle>\n      {alertBody ?? 'Payload is missing required data to render correctly'}\n    </Alert>\n  )\n}\n","import { styled } from '@mui/material'\nimport type { PropsWithChildren } from 'react'\nimport React from 'react'\n\nconst StyledScrollTableOnSm = styled('div')(({ theme }) => ({\n  [theme.breakpoints.down('md')]: { overflowX: 'scroll' },\n  display: 'flex',\n  flexGrow: 1,\n}))\n\nconst ScrollTableOnSm: React.FC<PropsWithChildren> = ({ children }) => <StyledScrollTableOnSm>{children}</StyledScrollTableOnSm>\n\nexport { ScrollTableOnSm }\n","import { useTheme } from '@mui/material'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexGrowRow } from '@xylabs/react-flexbox'\nimport React from 'react'\n\nexport const SectionSpacingRow = ({\n  ref, children, sx, ...props\n}: FlexBoxProps) => {\n  const theme = useTheme()\n  return (\n    <FlexGrowRow\n      sx={{\n        paddingBottom: { md: theme.spacing(5), xs: theme.spacing(5) },\n        paddingTop: { md: theme.spacing(5), xs: theme.spacing(5) },\n        ...sx,\n      }}\n      width=\"100%\"\n      ref={ref}\n      {...props}\n    >\n      {children}\n    </FlexGrowRow>\n  )\n}\n\nSectionSpacingRow.displayName = 'SectionSpacingRow'\n","import React from 'react'\n\nimport type { EllipsisTableCellProps } from './EllipsisTableCell.tsx'\nimport { EllipsisTableCell } from './EllipsisTableCell.tsx'\n\nexport interface AddressTableCellProps extends EllipsisTableCellProps {\n  /** @deprecated - archives are no longer supported */\n  archive?: string\n  /** @deprecated - use events instead */\n  exploreDomain?: string\n  link?: boolean\n}\n\nconst AddressTableCell = ({\n  ref, value, archive, exploreDomain, link, ...props\n}: AddressTableCellProps) => {\n  const href = exploreDomain && archive ? `${exploreDomain}/archive/${archive}/address/${value}` : undefined\n  const to = exploreDomain === undefined && archive ? `/archive/${archive}/address/${value}` : undefined\n\n  return <EllipsisTableCell value={value} href={href} to={to} ref={ref} link={link} {...props} />\n}\n\nAddressTableCell.displayName = 'AddressTableCell'\nexport { AddressTableCell }\n","import type { TableCellProps } from '@mui/material'\nimport { styled, TableCell } from '@mui/material'\nimport { asLinkHrefOrToProps, LinkEx } from '@xylabs/react-link'\nimport React, { useMemo } from 'react'\nimport type { To } from 'react-router-dom'\n\nimport { EllipsizeBox } from '../Ellipsize.tsx'\n\nconst EllipsisTableCellRoot = styled(TableCell, {\n  name: 'EllipsisTableCell',\n  shouldForwardProp: prop => prop !== 'width',\n  slot: 'Root',\n})(({ width = '100%' }) => ({ width }))\n\nexport interface EllipsisTableCellProps extends TableCellProps {\n  href?: string\n  link?: boolean\n  to?: To\n  value?: string\n  /**\n   * Width of the table cell.\n   *\n   * Note: When using percentages, this value can be different than what you expect\n   * if used on a cell that is not the first cell in the first row.\n   */\n  width?: string | number\n}\n\nexport const EllipsisTableCellWithRef = ({\n  ref, children, href, link = false, to, value, ...props\n}: EllipsisTableCellProps) => {\n  const data = useMemo(() => {\n    if (children) {\n      return children\n    }\n    if (href || link || to) {\n      return (\n        <LinkEx title={value} {...asLinkHrefOrToProps({ to, href })} target={href ? '_blank' : undefined}>\n          {value}\n        </LinkEx>\n      )\n    }\n    return value\n  }, [children, href, link, to, value])\n  return (\n    <EllipsisTableCellRoot {...props}>\n      <EllipsizeBox ref={ref} sx={{ cursor: link || to || href ? 'pointer' : 'inherit' }}>{data}</EllipsizeBox>\n    </EllipsisTableCellRoot>\n  )\n}\n\nEllipsisTableCellWithRef.displayName = 'EllipsisTableCell'\nexport const EllipsisTableCell = EllipsisTableCellWithRef\n","import type { Hash } from '@xylabs/hex'\nimport { useEvent } from '@xyo-network/react-event'\nimport React, { useRef } from 'react'\n\nimport type { EllipsisTableCellProps } from './EllipsisTableCell.tsx'\nimport { EllipsisTableCell } from './EllipsisTableCell.tsx'\n\nexport interface HashTableCellProps extends EllipsisTableCellProps {\n  archive?: string\n  dataType?: 'block' | 'payload'\n  exploreDomain?: string\n  network?: string\n  onHashClick?: (value: Hash) => void\n}\n\nexport const HashTableCell: React.FC<HashTableCellProps> = ({\n  value, archive, dataType, network, exploreDomain, onHashClick, ...props\n}) => {\n  const ref = useRef<HTMLTableCellElement | null>(null)\n  const [tableCellRef, dispatch] = useEvent<HTMLTableCellElement>(undefined, ref)\n  const hashPath = `/${dataType}/hash/${value}?network=${network ?? 'main'}`\n  const explorePath = archive ? `/archive/${archive}${hashPath}` : hashPath\n\n  const handleCellClick = () => {\n    if (onHashClick) {\n      onHashClick(value as Hash)\n    } else {\n      dispatch?.('hash', 'click', value as Hash)\n    }\n  }\n\n  return (\n    <EllipsisTableCell\n      onClick={handleCellClick}\n      ref={tableCellRef}\n      value={value}\n      href={exploreDomain ? `${exploreDomain}${explorePath}}` : undefined}\n      to={exploreDomain ? undefined : explorePath}\n      {...props}\n    />\n  )\n}\n","import type { AvatarProps } from '@mui/material'\nimport { Avatar, useTheme } from '@mui/material'\nimport React from 'react'\n\nexport const ThemeTokenAvatar: React.FC<AvatarProps> = ({ ...props }) => {\n  const theme = useTheme()\n  return <Avatar sx={{ background: theme.palette.common.white }} {...props} />\n}\n","import type { AvatarGroupProps } from '@mui/material'\nimport { AvatarGroup } from '@mui/material'\nimport React from 'react'\n\nimport { ThemeTokenAvatar } from '../ThemeTokenAvatar/index.ts'\n\nexport interface ThemeTokenAvatarGroupProps extends AvatarGroupProps {\n  images?: string[]\n}\n\nexport const ThemeTokenAvatarGroup: React.FC<ThemeTokenAvatarGroupProps> = ({ images, ...props }) => {\n  return <AvatarGroup {...props}>{images?.map((image, index) => <ThemeTokenAvatar key={index} src={image} />)}</AvatarGroup>\n}\n","import type { PaperProps, TypographyProps } from '@mui/material'\nimport { Paper, Typography } from '@mui/material'\nimport { FlexRow } from '@xylabs/react-flexbox'\nimport type { ReactNode } from 'react'\nimport React from 'react'\nexport interface TokenBarProps extends PaperProps {\n  text1?: ReactNode\n  text1Props?: TypographyProps\n  text1Suffix?: ReactNode\n  text2?: ReactNode\n  text2Props?: TypographyProps\n  text2Suffix?: ReactNode\n}\n\nexport const TokenBar: React.FC<TokenBarProps> = ({\n  text1, text1Props, text1Suffix, text2, text2Props, text2Suffix, ...props\n}) => {\n  return (\n    <Paper elevation={0} className=\"TokenBar-root\" {...props}>\n      <FlexRow justifyContent=\"space-between\">\n        <Typography variant=\"body1\" fontWeight={300} margin={1} {...text1Props}>\n          {text1}\n          {text1Suffix}\n        </Typography>\n        <Typography variant=\"body1\" fontWeight={300} textTransform=\"uppercase\" color=\"gray\" margin={1} {...text2Props}>\n          {text2}\n          {text2Suffix}\n        </Typography>\n      </FlexRow>\n    </Paper>\n  )\n}\n","export { default as ada } from './ada.png'\nexport { default as btc } from './btc.png'\nexport { default as busd } from './busd.png'\nexport { default as dai } from './dai.png'\nexport { default as dogecoin } from './dogecoin.png'\nexport { default as dot } from './dot.png'\nexport { default as ethereum } from './ethereum.png'\nexport { default as frax } from './frax.png'\nexport { default as link } from './link.png'\nexport { default as sol } from './sol.png'\nexport { default as tether } from './tether.png'\nexport { default as usdCoin } from './usd-coin.png'\nexport { default as weth } from './weth.png'\nexport { default as wrappedBtc } from './wrapped-bitcoin.png'\nexport { default as xyo } from './xyo.png'\n","import * as tokenImages from './img/index.ts'\n\nexport interface TokenData {\n  coinmarketcapLink: string\n  etherscanLink: string\n  icon: string\n  readableName: string\n  tokenSymbol: string\n  uniqueTokenId: string\n}\n\nexport const TokenData: TokenData[] = [\n  {\n    coinmarketcapLink: 'https://coinmarketcap.com/currencies/multi-collateral-dai/',\n    etherscanLink: 'https://etherscan.io/token/0x6b175474e89094c44da98b954eedeac495271d0f',\n    icon: tokenImages.dai,\n    readableName: 'Dai',\n    tokenSymbol: 'dai',\n    uniqueTokenId: 'dai',\n  },\n  {\n    coinmarketcapLink: 'https://coinmarketcap.com/currencies/weth/',\n    etherscanLink: 'https://etherscan.io/token/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n    icon: tokenImages.weth,\n    readableName: 'Weth',\n    tokenSymbol: 'weth',\n    uniqueTokenId: 'weth',\n  },\n  {\n    coinmarketcapLink: 'https://coinmarketcap.com/currencies/ethereum/',\n    etherscanLink: 'n/a',\n    icon: tokenImages.ethereum,\n    readableName: 'Ethereum',\n    tokenSymbol: 'eth',\n    uniqueTokenId: 'ethereum',\n  },\n  {\n    coinmarketcapLink: 'https://coinmarketcap.com/currencies/bitcoin/',\n    etherscanLink: 'n/a',\n    icon: tokenImages.btc,\n    readableName: 'Bitcoin',\n    tokenSymbol: 'btc',\n    uniqueTokenId: 'btc',\n  },\n  {\n    coinmarketcapLink: 'https://coinmarketcap.com/currencies/xyo/',\n    etherscanLink: 'https://etherscan.io/token/0x55296f69f40ea6d20e478533c15a6b08b654e758',\n    icon: tokenImages.xyo,\n    readableName: 'XYO',\n    tokenSymbol: 'xyo',\n    uniqueTokenId: 'xyo',\n  },\n  {\n    coinmarketcapLink: 'https://coinmarketcap.com/currencies/frax/',\n    etherscanLink: 'https://etherscan.io/token/0x853d955acef822db058eb8505911ed77f175b99e',\n    icon: tokenImages.frax,\n    readableName: 'Frax',\n    tokenSymbol: 'frax',\n    uniqueTokenId: 'frax',\n  },\n  {\n    coinmarketcapLink: 'https://coinmarketcap.com/currencies/wrapped-bitcoin/',\n    etherscanLink: 'https://etherscan.io/token/0x2260fac5e5542a773aa44fbcfedf7c193bc2c599',\n    icon: tokenImages.wrappedBtc,\n    readableName: 'Wrapped BTC',\n    tokenSymbol: 'wbtc',\n    uniqueTokenId: 'wbtc',\n  },\n  {\n    coinmarketcapLink: 'https://coinmarketcap.com/currencies/usd-coin/',\n    etherscanLink: 'https://etherscan.io/token/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n    icon: tokenImages.usdCoin,\n    readableName: 'USDC',\n    tokenSymbol: 'usdc',\n    uniqueTokenId: 'usdc',\n  },\n  {\n    coinmarketcapLink: 'https://coinmarketcap.com/currencies/tether/',\n    etherscanLink: 'https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7',\n    icon: tokenImages.tether,\n    readableName: 'Tether',\n    tokenSymbol: 'usdt',\n    uniqueTokenId: 'usdt',\n  },\n  {\n    coinmarketcapLink: 'https://coinmarketcap.com/currencies/cardano/',\n    etherscanLink: 'https://etherscan.io/token/0xc14777c94229582e5758c5a79b83dde876b9be98',\n    icon: tokenImages.ada,\n    readableName: 'Cardano',\n    tokenSymbol: 'ada',\n    uniqueTokenId: 'ada',\n  },\n  {\n    coinmarketcapLink: 'https://coinmarketcap.com/currencies/binance-usd/',\n    etherscanLink: 'https://etherscan.io/token/0x4Fabb145d64652a948d72533023f6E7A623C7C53',\n    icon: tokenImages.busd,\n    readableName: 'Binance USD',\n    tokenSymbol: 'busd',\n    uniqueTokenId: 'busd',\n  },\n  {\n    coinmarketcapLink: 'https://coinmarketcap.com/currencies/dogecoin/',\n    etherscanLink: 'https://etherscan.io/token/0x7618b5024a6349f9aef10ddfd33e3428c734551e',\n    icon: tokenImages.dogecoin,\n    readableName: 'Dogecoin',\n    tokenSymbol: 'doge',\n    uniqueTokenId: 'doge',\n  },\n  {\n    coinmarketcapLink: 'https://coinmarketcap.com/currencies/polkadot-new/',\n    etherscanLink: 'https://etherscan.io/token/0x2d4fb6dd969992c881d8e534c747cc925d5ba221',\n    icon: tokenImages.dot,\n    readableName: 'Polkadot',\n    tokenSymbol: 'dot',\n    uniqueTokenId: 'dot',\n  },\n  {\n    coinmarketcapLink: 'https://coinmarketcap.com/currencies/chainlink/',\n    etherscanLink: 'https://etherscan.io/token/0x514910771af9ca656af840dff83e8264ecf986ca',\n    icon: tokenImages.link,\n    readableName: 'ChainLink',\n    tokenSymbol: 'link',\n    uniqueTokenId: 'link',\n  },\n  {\n    coinmarketcapLink: 'https://coinmarketcap.com/currencies/solana/',\n    etherscanLink: 'https://etherscan.io/token/0x1f54638b7737193ffd86c19ec51907a7c41755d8',\n    icon: tokenImages.sol,\n    readableName: 'Solana',\n    tokenSymbol: 'sol',\n    uniqueTokenId: 'sol',\n  },\n]\n","import { TokenData } from './TokenData.ts'\n\nexport const getTokenData = (symbols: (string | undefined)[]) => {\n  return symbols?.map((symbol) => {\n    const additionalTokenData = TokenData.find(x => x.tokenSymbol === symbol)\n    const checkedTokenData = additionalTokenData ?? TokenData[0]\n    return checkedTokenData\n  })\n}\n","import type { AvatarProps, CardHeaderProps } from '@mui/material'\nimport { CardHeader, Typography } from '@mui/material'\nimport type { ReactNode } from 'react'\nimport React from 'react'\n\nimport { ThemeTokenAvatar } from '../ThemeTokenAvatar/index.ts'\n\nexport interface TokenSummaryProps extends CardHeaderProps {\n  icon?: string\n  imgBgProps?: AvatarProps\n  symbol?: string\n  symbolElement?: ReactNode\n}\n\nexport const TokenSummary: React.FC<TokenSummaryProps> = ({\n  icon, symbol, symbolElement, children, ...props\n}) => {\n  return (\n    <>\n      <CardHeader\n        avatar={<ThemeTokenAvatar src={icon} alt={symbol} />}\n        title={(\n          <Typography variant=\"h6\" fontWeight={300} textTransform=\"uppercase\">\n            {symbolElement ?? symbol}\n          </Typography>\n        )}\n        {...props}\n      />\n      {children}\n    </>\n  )\n}\n","import type { TypographyProps } from '@mui/material'\nimport { Typography } from '@mui/material'\nimport React from 'react'\n\nimport { useGradientStyles } from '../hooks/index.ts'\n\nexport interface TypographyExProps extends TypographyProps {\n  gradient?: 'text'\n}\n\nexport const TypographyEx: React.FC<TypographyExProps> = ({ gradient, ...props }) => {\n  const styles = useGradientStyles()\n  return <Typography style={gradient === 'text' ? styles.heading : undefined} {...props} />\n}\n","import { createContext } from 'react'\n\nimport type { ContextExState } from './State.ts'\n\n// eslint-disable-next-line @eslint-react/naming-convention/context-name\nexport const createContextEx = <T>() => createContext<T & ContextExState>({ provided: false } as T & ContextExState)\n","import type { Context } from 'react'\nimport { use } from 'react'\n\nimport type { ContextExState } from './State.ts'\n\nexport const useContextEx = <T extends ContextExState>(context: Context<T>, contextName: string, required = true) => {\n  const { provided, ...props } = use(context)\n  if (!provided && required) {\n    throw new Error(`use${contextName} can not be used outside of a ${contextName}Context when required=true`)\n  }\n  return props\n}\n\nexport const useProvided = <T extends ContextExState>(context: Context<T>) => {\n  const { provided } = use(context)\n  return provided\n}\n","import { createContextEx } from '../contextEx/index.ts'\n\nexport const ResolvedDivinerContext = <T>() => createContextEx<T>()\n","import { useResetState } from '@xylabs/react-hooks'\nimport type { Context, PropsWithChildren } from 'react'\nimport React, { useMemo } from 'react'\n\nimport type { ContextExProviderProps } from '../contextEx/index.ts'\nimport type { ResolvedDivinerState } from './State.ts'\n\nexport interface DivinerProviderProps<D> extends ContextExProviderProps, PropsWithChildren {\n  context: Context<ResolvedDivinerState<D>>\n  diviner?: D\n}\n\n/** Exposes a resolved diviner */\nexport const ResolvedDivinerProvider = <D,>({\n  diviner: divinerProp, required = false, children, context: Context,\n}: DivinerProviderProps<D>) => {\n  const [diviner, setDiviner] = useResetState<D | undefined>(divinerProp)\n\n  const value = useMemo(() => {\n    const resolveDiviner = () => {\n      if (divinerProp) {\n        return diviner === divinerProp ? diviner : undefined\n      } else {\n        return diviner\n      }\n    }\n    return {\n      diviner: resolveDiviner(),\n      provided: true,\n      setDiviner,\n    }\n  }, [\n    setDiviner, divinerProp])\n\n  return (\n    <Context\n      value={value}\n    >\n      {diviner\n        ? children\n        : required\n          ? null\n          : children}\n    </Context>\n  )\n}\n","import { createContextEx } from '../contextEx/index.ts'\nimport type { ListModeContextState } from './State.ts'\n\nexport const ListModeContext = createContextEx<ListModeContextState>()\n","import type { PropsWithChildren } from 'react'\nimport React, { useMemo, useState } from 'react'\n\nimport type { ListMode } from '../../models/index.ts'\nimport { ListModeContext } from './Context.ts'\n\nexport interface ListModeProviderProps {\n  defaultListMode?: ListMode\n}\n\nexport const ListModeProvider: React.FC<PropsWithChildren<ListModeProviderProps>> = ({ children, defaultListMode }) => {\n  const [listMode, setListMode] = useState(defaultListMode ?? 'default')\n\n  const value = useMemo(() => ({\n    listMode,\n    provided: true,\n    setListMode,\n  }), [listMode,\n    setListMode])\n\n  return (\n    <ListModeContext\n      value={value}\n    >\n      {children}\n    </ListModeContext>\n  )\n}\n","import { useContextEx } from '../contextEx/index.ts'\nimport { ListModeContext } from './Context.ts'\n\nexport const useListMode = (required = false) => {\n  return useContextEx(ListModeContext, 'ListMode', required)\n}\n","/**\n * @deprecated use from @xylabs/with instead\n * */\nexport const assertDefinedEx = <T>(expr?: T | null, message?: string): T => {\n  if (expr !== null && expr !== undefined) return expr\n  throw new Error(message)\n}\n","export const parseMeausureString = (measure?: string, absolute?: number) => {\n  if (measure !== undefined && measure !== null && measure.length > 0) {\n    if (measure.endsWith('px')) {\n      return Number.parseFloat(measure.slice(0, Math.max(0, measure.length - 2)))\n    } else if (measure.endsWith('%')) {\n      if (absolute !== undefined) {\n        return (Number.parseFloat(measure.slice(0, Math.max(0, measure.length - 1))) / 100) * absolute\n      }\n      throw new Error('Error Parsing Measure [missing absolute]')\n    } else if (measure.endsWith('vw')) {\n      return (Number.parseFloat(measure.slice(0, Math.max(0, measure.length - 2))) / 100) * window.innerWidth\n    } else if (measure.endsWith('vh')) {\n      return (Number.parseFloat(measure.slice(0, Math.max(0, measure.length - 2))) / 100) * window.innerHeight\n    }\n    throw new Error(`Error Parsing Measure [${measure}]`)\n  }\n}\n\nexport const parsePadding = (padding: string) => {\n  const parts = padding.split(' ')\n  switch (parts.length) {\n    case 4: {\n      return {\n        bottom: parts[2],\n        left: parts[3],\n        right: parts[1],\n        top: parts[0],\n      }\n    }\n    case 3: {\n      return {\n        bottom: parts[2],\n        right: parts[1],\n        top: parts[0],\n      }\n    }\n    case 2: {\n      return {\n        bottom: parts[0],\n        left: parts[1],\n        right: parts[1],\n        top: parts[0],\n      }\n    }\n    case 1: {\n      return {\n        bottom: parts[0],\n        left: parts[0],\n        right: parts[0],\n        top: parts[0],\n      }\n    }\n  }\n}\n\nexport const getActualPaddingX = (element: HTMLElement) => {\n  const padding = parsePadding(globalThis.getComputedStyle(element, null).getPropertyValue('padding'))\n  const paddingLeft\n    = parseMeausureString(globalThis.getComputedStyle(element, null).getPropertyValue('padding-left') ?? padding?.left, element.clientWidth) ?? 0\n  const paddingRight\n    = parseMeausureString(globalThis.getComputedStyle(element, null).getPropertyValue('padding-right') ?? padding?.right, element.clientWidth) ?? 0\n  return paddingLeft + paddingRight\n}\n","import {\n  BubbleChartRounded as BubbleChartRoundedIcon,\n  HubRounded as HubRoundedIcon,\n  InsertLinkRounded as InsertLinkRoundedIcon,\n  Inventory2Rounded as Inventory2RoundedIcon,\n  TimerRounded as TimerRoundedIcon,\n  VisibilityRounded as VisibilityRoundedIcon,\n} from '@mui/icons-material'\nimport type { SvgIconProps } from '@mui/material'\nimport type { ReactElement } from 'react'\nimport React from 'react'\n\nexport type NetworkComponentSlug = 'sentinel' | 'bridge' | 'archivist' | 'diviner' | 'node' | 'witness'\n\nexport interface NetworkComponentDetails {\n  icon: (props?: SvgIconProps) => ReactElement\n  name: string\n  slug: NetworkComponentSlug\n}\n\nexport const networkComponents: NetworkComponentDetails[] = [\n  {\n    icon: props => <HubRoundedIcon {...props} />, name: 'Node', slug: 'node',\n  },\n  {\n    icon: props => <TimerRoundedIcon {...props} />, name: 'Sentinel', slug: 'sentinel',\n  },\n  {\n    icon: props => <InsertLinkRoundedIcon {...props} />, name: 'Bridge', slug: 'bridge',\n  },\n  {\n    icon: props => <Inventory2RoundedIcon {...props} />, name: 'Archivist', slug: 'archivist',\n  },\n  {\n    icon: props => <BubbleChartRoundedIcon {...props} />, name: 'Diviner', slug: 'diviner',\n  },\n  {\n    icon: props => <VisibilityRoundedIcon {...props} />, name: 'Witness', slug: 'witness',\n  },\n]\n\nexport const findNetworkComponentIndex = (slug: string) => {\n  return networkComponents.findIndex(info => info.slug === slug)\n}\n\nexport const findNetworkComponent = (slug: string) => {\n  return networkComponents.find(info => info.slug === slug)\n}\n"],"mappings":"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","names":["Typography","React","Ampersand","props","Typography","marginX","component","Container","Grid","styled","Typography","ButtonEx","FlexGrowCol","FlexGrowRow","LinkEx","useIsSmall","React","useTheme","colorfulGradientLightMode","background","backgroundImage","border","borderImage","borderImageSlice","borderImageSource","borderRadius","borderStyle","borderWidth","heading","WebkitBackgroundClip","WebkitTextFillColor","display","colorfulGradientDarkMode","useGradientStyles","theme","useTheme","styles","palette","mode","assertEx","usePromise","BoundWitnessValidator","isAnyPayload","useValidateBoundWitness","input","output","validationError","usePromise","object","JSON","parse","validPayload","assertEx","isAnyPayload","errors","BoundWitnessValidator","validate","payload","filter","error","usePromise","PayloadBuilder","usePayloadHash","payload","usePromise","PayloadBuilder","dataHash","undefined","usePayloadRootHash","hash","usePayloadHashes","payloads","Promise","all","map","assertEx","PayloadBuilder","isAnyPayload","useMemo","usePayloadValidate","input","useMemo","object","JSON","parse","validPayload","assertEx","isAnyPayload","schema","fields","payload","PayloadBuilder","build","error","errors","useState","useDataState","defaultValue","state","setState","useState","setDataState","value","JSON","stringify","console","error","useMediaQuery","useEffect","useRef","useShareForwardedRef","forwardedRef","refresh","innerRef","useRef","useEffect","current","SubLinkSection","backgroundImageAlignment","subLinkIcon","subLinkPath","subLinkText1","subLinkText2","React","FlexGrowRow","width","sx","flexDirection","md","xs","justifyContent","span","Typography","LinkEx","href","underline","target","color","ButtonSection","to","buttonText","isMobile","useIsSmall","ButtonEx","fullWidth","marginTop","marginBottom","marginRight","marginLeft","variant","paddingX","display","BasicHero","backgroundImage","title","gradientTitle","backgroundColor","textColor","desc","heroImage","title2","button1Text","button2Text","button2To","button1To","button2Href","button1Href","props","styles","useGradientStyles","StyledSpan","styled","heading","FlexGrowCol","backgroundPosition","lg","minHeight","sm","style","backgroundRepeat","backgroundSize","Container","Grid","container","alignItems","size","paddingY","component","gutterBottom","textAlign","img","src","FormHelperText","Popover","TextField","React","FixedPointPopover","fixedPoint","minFixedPoint","minimumPoint","onFixedPointChange","props","handleChange","event","fixedPointInteger","Number","parseInt","target","value","isNaN","React","Popover","slotProps","paper","sx","p","TextField","htmlInput","min","onChange","type","FormHelperText","FormControl","FormHelperText","TextField","toFixedPoint","React","useEffect","useMemo","useState","Avatar","IconButton","InputAdornment","React","useRef","useState","FixedPointInputAdornment","fixedPoint","minFixedPoint","onFixedPointChange","props","ref","useRef","open","setOpen","useState","React","InputAdornment","FixedPointPopover","anchorEl","current","anchorOrigin","vertical","horizontal","onClose","IconButton","size","onClick","Avatar","sx","fontSize","height","width","BigIntTextField","defaultFixedPoint","defaultRawValue","helperText","hideAdornment","onChangeFixedPoint","onChange","resetValue","props","rawValue","setRawValue","useState","fixedPoint","setFixedPoint","error","setError","useMemo","handleRawValueChange","filteredValue","replaceAll","split","length","handleChange","event","target","value","onFixedPointChange","bigIntValue","fixedValue","toFixedPoint","undefined","e","console","useEffect","minFixedPoint","resolvedHelperText","React","TextField","type","Boolean","slotProps","htmlInput","pattern","input","startAdornment","FixedPointInputAdornment","position","FormHelperText","WithFormControl","textFieldProps","FormControl","BigIntInput","TextField","BigIntTextField","WithFormControl","Box","styled","Typography","React","useCallback","useState","ComponentName","EllipsizeRoot","styled","Box","name","shouldForwardProp","prop","slot","beforeLineHeight","content","display","float","visibility","lineHeight","EllipsizeInnerWrap","position","EllipsizeContentWrap","Typography","theme","ellipsisPosition","fontFamily","unstable_sx","left","overflow","right","textOverflow","whiteSpace","direction","textAlign","useClientHeight","contentWrapHeight","setContentWrapHeight","useState","contentWrapRef","useCallback","node","clientHeight","EllipsizeBox","ref","children","disableSharedRef","typographyProps","props","sharedRef","useShareForwardedRef","React","undefined","component","variant","displayName","Stack","Typography","React","LabeledTextFieldWrapper","children","label","props","React","Stack","flexDirection","Typography","gutterBottom","variant","ListItemButton","React","useNavigate","ListItemButtonExTo","to","toOptions","onClick","props","navigate","useNavigate","localOnClick","event","React","ListItemButton","ListItemButtonEx","FlexGrowRow","React","Typography","FlexGrowCol","React","NotFound","props","React","FlexGrowCol","Typography","variant","marginY","LoadResult","props","notFound","error","searchResult","children","React","NotFound","undefined","FlexGrowRow","busy","minHeight","Typography","React","Pipe","props","React","Typography","marginX","component","Alert","AlertTitle","React","PayloadDataMissing","alertBody","props","React","Alert","severity","AlertTitle","styled","React","StyledScrollTableOnSm","styled","theme","breakpoints","down","overflowX","display","flexGrow","ScrollTableOnSm","children","React","useTheme","FlexGrowRow","React","SectionSpacingRow","ref","children","sx","props","theme","useTheme","React","FlexGrowRow","paddingBottom","md","spacing","xs","paddingTop","width","displayName","React","styled","TableCell","asLinkHrefOrToProps","LinkEx","React","useMemo","EllipsisTableCellRoot","styled","TableCell","name","shouldForwardProp","prop","slot","width","EllipsisTableCellWithRef","ref","children","href","link","to","value","props","data","useMemo","React","LinkEx","title","asLinkHrefOrToProps","target","undefined","EllipsizeBox","sx","cursor","displayName","EllipsisTableCell","AddressTableCell","ref","value","archive","exploreDomain","link","props","href","undefined","to","React","EllipsisTableCell","displayName","useEvent","React","useRef","HashTableCell","value","archive","dataType","network","exploreDomain","onHashClick","props","ref","useRef","tableCellRef","dispatch","useEvent","undefined","hashPath","explorePath","handleCellClick","React","EllipsisTableCell","onClick","href","to","Avatar","useTheme","React","ThemeTokenAvatar","props","theme","useTheme","React","Avatar","sx","background","palette","common","white","AvatarGroup","React","ThemeTokenAvatarGroup","images","props","React","AvatarGroup","map","image","index","ThemeTokenAvatar","key","src","Paper","Typography","FlexRow","React","TokenBar","text1","text1Props","text1Suffix","text2","text2Props","text2Suffix","props","React","Paper","elevation","className","FlexRow","justifyContent","Typography","variant","fontWeight","margin","textTransform","color","ada","default","btc","busd","dai","dogecoin","dot","ethereum","frax","link","sol","tether","usdCoin","weth","wrappedBtc","xyo","TokenData","coinmarketcapLink","etherscanLink","icon","dai","readableName","tokenSymbol","uniqueTokenId","weth","ethereum","btc","xyo","frax","wrappedBtc","usdCoin","tether","ada","busd","dogecoin","dot","link","sol","getTokenData","symbols","map","symbol","additionalTokenData","TokenData","find","x","tokenSymbol","checkedTokenData","CardHeader","Typography","React","TokenSummary","icon","symbol","symbolElement","children","props","React","CardHeader","avatar","ThemeTokenAvatar","src","alt","title","Typography","variant","fontWeight","textTransform","Typography","React","TypographyEx","gradient","props","styles","useGradientStyles","React","Typography","style","heading","undefined","createContext","createContextEx","createContext","provided","use","useContextEx","context","contextName","required","provided","props","use","Error","useProvided","ResolvedDivinerContext","createContextEx","useResetState","React","useMemo","ResolvedDivinerProvider","diviner","divinerProp","required","children","context","Context","setDiviner","useResetState","value","useMemo","resolveDiviner","undefined","provided","React","ListModeContext","createContextEx","React","useMemo","useState","ListModeProvider","children","defaultListMode","listMode","setListMode","useState","value","useMemo","provided","React","ListModeContext","useListMode","required","useContextEx","ListModeContext","assertDefinedEx","expr","message","undefined","Error","parseMeausureString","measure","absolute","undefined","length","endsWith","Number","parseFloat","slice","Math","max","Error","window","innerWidth","innerHeight","parsePadding","padding","parts","split","bottom","left","right","top","getActualPaddingX","element","globalThis","getComputedStyle","getPropertyValue","paddingLeft","clientWidth","paddingRight","BubbleChartRounded","BubbleChartRoundedIcon","HubRounded","HubRoundedIcon","InsertLinkRounded","InsertLinkRoundedIcon","Inventory2Rounded","Inventory2RoundedIcon","TimerRounded","TimerRoundedIcon","VisibilityRounded","VisibilityRoundedIcon","React","networkComponents","icon","props","React","HubRoundedIcon","name","slug","TimerRoundedIcon","InsertLinkRoundedIcon","Inventory2RoundedIcon","BubbleChartRoundedIcon","VisibilityRoundedIcon","findNetworkComponentIndex","findIndex","info","findNetworkComponent","find"]}