{
  "version": 3,
  "sources": ["../../src/modules/module/components/Card/Diviner/Card.tsx", "../../src/modules/module/components/Card/Module/Card.tsx", "../../src/modules/module/components/Card/Module/CardActions.tsx", "../../src/modules/module/components/Card/Module/components/DiscoverDialog.tsx", "../../src/modules/module/components/Card/Module/CardContent.tsx", "../../src/modules/module/components/Card/Module/CardHeader.tsx", "../../src/modules/module/components/Card/Diviner/CardContent.tsx", "../../src/modules/module/components/Card/Diviner/CardHeader.tsx", "../../src/modules/module/components/DetailsBox.tsx", "../../src/modules/module/components/TableCell.tsx", "../../src/modules/module/hooks/useRefresh.tsx"],
  "sourcesContent": ["import type { CardProps } from '@mui/material'\nimport { Card } from '@mui/material'\nimport type { DivinerInstance } from '@xyo-network/sdk'\nimport React from 'react'\n\nimport type { ModuleRenderProps } from '../../../ModuleRenderProps.tsx'\nimport { ModuleCardActions } from '../Module/index.ts'\nimport { DivinerCardContent } from './CardContent.tsx'\nimport { DivinerCardHeader } from './CardHeader.tsx'\n\n/** Card UI summarizing a diviner module. */\nexport const DivinerCard: React.FC<CardProps & ModuleRenderProps<DivinerInstance>> = ({\n  children, mod, ...props\n}) => {\n  return (\n    <Card {...props}>\n      <DivinerCardHeader mod={mod} />\n      <DivinerCardContent mod={mod} />\n      {children}\n      <ModuleCardActions mod={mod} />\n    </Card>\n  )\n}\n", "import type { CardProps } from '@mui/material'\nimport { Card } from '@mui/material'\nimport React from 'react'\n\nimport type { ModuleRenderProps } from '../../../ModuleRenderProps.tsx'\nimport { ModuleCardActions } from './CardActions.tsx'\nimport { ModuleCardContent } from './CardContent.tsx'\nimport { ModuleCardHeader } from './CardHeader.tsx'\n\n/** Card UI summarizing a generic XYO module with header, content, and actions. */\nexport const ModuleCard: React.FC<CardProps & ModuleRenderProps> = ({ mod, ...props }) => {\n  return (\n    <Card {...props}>\n      <ModuleCardHeader mod={mod} />\n      <ModuleCardContent mod={mod} />\n      <ModuleCardActions mod={mod} />\n    </Card>\n  )\n}\n", "import { ButtonEx } from '@ariestools/sdk-react/button'\nimport { FlexRow } from '@ariestools/sdk-react/flexbox'\nimport type { CardActionsProps } from '@mui/material'\nimport { CardActions, Chip } from '@mui/material'\nimport React, { useState } from 'react'\n\nimport type { ModuleRenderProps } from '../../../ModuleRenderProps.tsx'\nimport { DiscoverDialog } from './components/index.ts'\n\n/** Card actions with schema chip and discover dialog for a module. */\nexport const ModuleCardActions: React.FC<CardActionsProps & ModuleRenderProps> = ({\n  children, mod, sx, ...props\n}) => {\n  const [discoverDialogOpen, setDiscoverDialogOpen] = useState(false)\n\n  const config = mod?.config\n\n  return (\n    <CardActions\n      sx={{\n        alignItems: 'stretch', flexDirection: 'column', ml: 1, ...sx,\n      }}\n      {...props}\n    >\n      <FlexRow\n        sx={{\n          justifyContent: 'space-between',\n          gap: 1,\n          alignItems: 'center',\n        }}\n      >\n        {mod\n          ? <Chip label={config?.schema} size=\"small\" />\n          : null}\n        {children}\n        <ButtonEx onClick={() => setDiscoverDialogOpen(true)} size=\"small\" variant=\"outlined\">\n          Discover\n        </ButtonEx>\n      </FlexRow>\n      <DiscoverDialog\n        fullWidth\n        mod={mod}\n        open={discoverDialogOpen}\n        setOpen={setDiscoverDialogOpen}\n        sx={{ maxWidth: 'md' }}\n      />\n    </CardActions>\n  )\n}\n", "import { usePromise } from '@ariestools/sdk-react/promise'\nimport type { DialogProps } from '@mui/material'\nimport {\n  Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Divider, Paper,\n} from '@mui/material'\nimport type { ModuleInstance } from '@xyo-network/sdk'\nimport type { Dispatch, SetStateAction } from 'react'\nimport React from 'react'\n\n/** Props for {@link DiscoverDialog}. */\nexport interface DiscoverDialogProps extends DialogProps {\n  mod?: ModuleInstance\n  setOpen?: Dispatch<SetStateAction<boolean>>\n}\n\n/** Dialog that displays a module's discover/state payloads. */\nexport const DiscoverDialog: React.FC<DiscoverDialogProps> = ({\n  mod, setOpen, ...props\n}) => {\n  const [discoverPayloads] = usePromise(async () => {\n    return await mod?.state()\n  }, [mod])\n\n  return (\n    <Dialog {...props}>\n      <DialogTitle>\n        Supported Queries for\n        {mod?.config.name || mod?.address}\n      </DialogTitle>\n      <Divider />\n      <DialogContent>\n        <Paper sx={{ p: 1 }}>\n          <DialogContentText>All modules share a set of base queries along with ones specific to the module.</DialogContentText>\n          <pre>{JSON.stringify(discoverPayloads, null, 2)}</pre>\n        </Paper>\n      </DialogContent>\n      <DialogActions>\n        <Button onClick={() => setOpen?.(false)} variant=\"outlined\">\n          Close\n        </Button>\n      </DialogActions>\n    </Dialog>\n  )\n}\n", "import type { CardContentProps } from '@mui/material'\nimport { CardContent } from '@mui/material'\nimport React from 'react'\n\nimport type { ModuleRenderProps } from '../../../ModuleRenderProps.tsx'\n\n/** Card content region for a module card. */\nexport const ModuleCardContent: React.FC<ModuleRenderProps & CardContentProps> = ({ children, ...props }) => {\n  return <CardContent {...props}>{children}</CardContent>\n}\n", "import type { CardHeaderProps } from '@mui/material'\nimport { CardHeader } from '@mui/material'\nimport type { Module } from '@xyo-network/sdk'\nimport React from 'react'\n\nimport { findNetworkComponent } from '#shared'\n\nimport type { ModuleRenderProps } from '../../../ModuleRenderProps.tsx'\n\nconst moduleTypes = ['sentinel', 'bridge', 'archivist', 'diviner', 'node', 'witness']\n\nconst getModuleIcons = (moduleType: string, mod: Module) => {\n  return mod?.queries.find(query => query.startsWith(`network.xyo.query.${moduleType}`)) ? findNetworkComponent(moduleType)?.icon : null\n}\n\n/** Card header showing module name, address, and type icons. */\nexport const ModuleCardHeader: React.FC<ModuleRenderProps & CardHeaderProps> = ({\n  subheader, avatar, title, mod, ...props\n}) => {\n  return (\n    <CardHeader\n      title={title ?? mod?.config.name ?? 'Module'}\n      subheader={subheader ?? mod?.address}\n      avatar={\n        avatar ?? (\n          <>\n            {mod\n              ? moduleTypes.map((moduleType) => {\n                  const renderIcon = getModuleIcons(moduleType, mod)\n                  return renderIcon\n                    ? (\n                        <React.Fragment key={moduleType}>\n                          {renderIcon({ fontSize: 'large', color: 'primary' })}\n                        </React.Fragment>\n                      )\n                    : null\n                })\n              : null}\n          </>\n        )\n      }\n      {...props}\n    />\n  )\n}\n", "import type { CardContentProps } from '@mui/material'\nimport type { DivinerInstance } from '@xyo-network/sdk'\nimport React from 'react'\n\nimport type { ModuleRenderProps } from '../../../ModuleRenderProps.tsx'\nimport { ModuleCardContent } from '../Module/index.ts'\n\n/** Card content region for a diviner module card. */\nexport const DivinerCardContent: React.FC<ModuleRenderProps<DivinerInstance> & CardContentProps> = ({ children, ...props }) => {\n  return <ModuleCardContent {...props}>{children}</ModuleCardContent>\n}\n", "import type { CardHeaderProps } from '@mui/material'\nimport type { DivinerInstance } from '@xyo-network/sdk'\nimport React from 'react'\n\nimport type { ModuleRenderProps } from '../../../ModuleRenderProps.tsx'\nimport { ModuleCardHeader } from '../Module/index.ts'\n\n/** Card header for a diviner module with a default \"Diviner\" title. */\nexport const DivinerCardHeader: React.FC<ModuleRenderProps<DivinerInstance> & CardHeaderProps> = ({\n  title, mod, ...props\n}) => {\n  return <ModuleCardHeader mod={mod} title={title ?? mod?.config.name ?? 'Diviner'} {...props} />\n}\n", "import { EthAddressWrapper } from '@ariestools/eth-address'\nimport { ButtonEx } from '@ariestools/sdk-react/button'\nimport { EthAccountBox } from '@ariestools/sdk-react/crypto'\nimport type { FlexBoxProps } from '@ariestools/sdk-react/flexbox'\nimport { FlexCol, FlexRow } from '@ariestools/sdk-react/flexbox'\nimport type { Module } from '@xyo-network/sdk'\nimport React, { useState } from 'react'\n\nimport { findNetworkComponent } from '#shared'\n\nimport type { ModuleRenderProps } from '../ModuleRenderProps.tsx'\n\nconst getModuleIcon = (moduleType: string, mod: Module) => {\n  return mod?.queries.find(query => query.startsWith(`network.xyo.query.${moduleType}`)) ? findNetworkComponent(moduleType)?.icon() : null\n}\n\n/** Detail box showing module address, queries, and related metadata. */\nexport const ModuleDetailsBox: React.FC<ModuleRenderProps & FlexBoxProps> = ({\n  children, mod, ...props\n}) => {\n  const [showQueries, setShowQueries] = useState(false)\n  return (\n    <FlexCol {...props}>\n      <FlexRow>\n        {mod\n          ? ['sentinel', 'bridge', 'archivist', 'diviner', 'node'].map((moduleType) => {\n              const icon = getModuleIcon(moduleType, mod)\n              return icon\n                ? (\n                    <ButtonEx onClick={() => setShowQueries(!showQueries)} key={moduleType}>\n                      {icon}\n                    </ButtonEx>\n                  )\n                : null\n            })\n          : null}\n        <EthAccountBox address={EthAddressWrapper.fromString(mod?.address)} />\n      </FlexRow>\n\n      {showQueries\n        ? mod?.queries.map((query) => {\n            return <FlexRow key={query}>{query}</FlexRow>\n          })\n        : null}\n      {children}\n    </FlexCol>\n  )\n}\n", "import { EthAddressWrapper } from '@ariestools/eth-address'\nimport { EthAccountBox } from '@ariestools/sdk-react/crypto'\nimport type { TableCellProps } from '@mui/material'\nimport { TableCell } from '@mui/material'\nimport React from 'react'\n\nimport type { ModuleRenderProps } from '../ModuleRenderProps.tsx'\n\n/** Table cell that displays a module name or address. */\nexport const ModuleTableCell: React.FC<ModuleRenderProps & TableCellProps> = ({\n  children, mod, ...props\n}) => {\n  return (\n    <TableCell {...props}>\n      <EthAccountBox address={EthAddressWrapper.fromString(mod?.address)} />\n      {children}\n    </TableCell>\n  )\n}\n", "import { useState } from 'react'\n\n/** Callback that bumps the refresh token to re-run dependent fetches. */\nexport type RefreshCallback = () => number\n/** Callback that disables refresh by clearing the enable token. */\nexport type DisableCallback = () => void\n\n/** Hook that returns a refresh token plus refresh and disable callbacks. */\nexport const useRefresh = (): [number, RefreshCallback, DisableCallback] => {\n  const [count, setCount] = useState(1)\n  return [\n    count,\n    () => {\n      const newCount = count + 1\n      setCount(newCount)\n      return newCount\n    },\n    () => setCount(0),\n  ]\n}\n"],
  "mappings": "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",
  "names": ["Card", "jsx", "jsxs", "jsx", "React", "jsx", "jsx", "jsxs", "jsx", "jsx", "jsx", "jsxs", "Card", "ButtonEx", "FlexRow", "useState", "findNetworkComponent", "jsx", "jsxs", "EthAddressWrapper", "EthAccountBox", "jsx", "jsxs", "useState"]
}
