{
  "version": 3,
  "sources": ["../../src/modules/debug/components/BoundWitnessDebugger.tsx", "../../src/modules/debug/hooks/useDebugBoundWitness.tsx", "../../src/modules/debug/hooks/useDebugPayload.tsx", "../../src/modules/debug/components/shared/Chips.tsx", "../../src/modules/debug/components/shared/JsonPayloadLikeViewerEx.tsx", "../../src/modules/debug/components/PayloadDebugger.tsx"],
  "sourcesContent": ["import { ErrorRender } from '@ariestools/sdk-react/error'\nimport { FlexCol } from '@ariestools/sdk-react/flexbox'\nimport {\n  FormControl, Grid,\n  TextField,\n} from '@mui/material'\nimport React, { useState } from 'react'\n\nimport { useDebugBoundWitness } from '../hooks/index.ts'\nimport { JsonPayloadLikeViewerEx, ValidationChips } from './shared/index.ts'\n\n/** Props for {@link BoundWitnessDebugger}. */\nexport interface BoundWitnessDebuggerProps {\n  defaultBoundWitnessInput?: string\n}\n\n/** Interactive debugger for editing, validating, and inspecting bound witness JSON. */\nexport const BoundWitnessDebugger: React.FC<BoundWitnessDebuggerProps> = ({ defaultBoundWitnessInput = '' }) => {\n  const [input, setInput] = useState<string>(defaultBoundWitnessInput)\n\n  const {\n    boundWitness, errors, rootHash, dataHash, valid,\n  } = useDebugBoundWitness(input)\n\n  return (\n    <Grid\n      container\n      sx={{ justifyContent: 'center' }}\n    >\n      <Grid\n        size={{ xs: 12, sm: 6 }}\n      >\n        <FlexCol\n          sx={{\n            gap: 2,\n            width: '100%',\n            alignItems: 'start',\n          }}\n        >\n          <h2>BoundWitness Debugger</h2>\n          <FormControl fullWidth>\n            <TextField value={input} multiline minRows={10} maxRows={Infinity} name=\"payload\" onChange={e => setInput(e.target.value)} />\n          </FormControl>\n          <JsonPayloadLikeViewerEx value={boundWitness} />\n          {errors.map(error => <ErrorRender key={error?.message} error={error} />)}\n          <ValidationChips valid={valid} rootHash={rootHash} dataHash={dataHash} />\n        </FlexCol>\n      </Grid>\n    </Grid>\n  )\n}\n", "import type { Hash } from '@ariestools/sdk'\nimport type { BoundWitness } from '@xyo-network/sdk'\n\nimport { usePayloadRootHash, useValidateBoundWitness } from '#shared'\n\n/** Debug state for a parsed bound witness including hashes, errors, and validity. */\nexport interface DebugBoundWitnessState {\n  boundWitness?: BoundWitness\n  dataHash?: Hash\n  errors: Error[]\n  rootHash?: Hash\n  valid: boolean\n}\n\n/** Parses and validates JSON bound witness input for debugging. */\nexport const useDebugBoundWitness = (input?: string): DebugBoundWitnessState => {\n  const { payload: boundWitness, errors } = useValidateBoundWitness(input)\n\n  const rootHash = usePayloadRootHash(boundWitness)\n  const dataHash = usePayloadRootHash(boundWitness)\n\n  return {\n    boundWitness,\n    errors: errors ?? [],\n    valid: errors ? errors.length === 0 : true,\n    rootHash,\n    dataHash,\n  }\n}\n", "import type { Hash } from '@ariestools/sdk'\nimport type { Payload } from '@xyo-network/sdk'\n\nimport { usePayloadRootHash, usePayloadValidate } from '#shared'\n\n/** Debug state for a parsed payload including hashes, errors, and validity. */\nexport interface DebugPayloadState {\n  dataHash?: Hash\n  errors: Error[]\n  payload?: Payload\n  rootHash?: Hash\n  valid: boolean\n}\n\n/** Parses and validates JSON payload input for debugging. */\nexport const useDebugPayload = (input?: string): DebugPayloadState => {\n  const { payload, errors } = usePayloadValidate(input)\n  const rootHash = usePayloadRootHash(payload)\n  const dataHash = usePayloadRootHash(payload)\n\n  return {\n    payload, errors: errors ?? [], valid: errors ? errors.length === 0 : true, rootHash, dataHash,\n  }\n}\n", "import { CheckCircle } from '@mui/icons-material'\nimport { Chip, type ChipProps } from '@mui/material'\nimport React from 'react'\n\n/** Props for {@link ValidationChips}. */\nexport interface ValidationChipsProps extends ChipProps {\n  dataHash?: string\n  rootHash?: string\n  valid?: boolean\n}\n\n/** Chips summarizing protocol validity and payload hashes for debug UIs. */\nexport const ValidationChips: React.FC<ValidationChipsProps> = ({\n  dataHash, rootHash, valid,\n}) => {\n  return (\n    <>\n      {valid ? <Chip avatar={<CheckCircle color=\"success\" />} label=\"Protocol Valid\" /> : null}\n      {rootHash ? <Chip label={`Root Hash: ${rootHash}`} title={rootHash} /> : null}\n      {dataHash ? <Chip label={`Data Hash: ${dataHash}`} title={dataHash} /> : null}\n    </>\n  )\n}\n", "import { Paper, useTheme } from '@mui/material'\nimport React from 'react'\n\nimport { JsonViewerEx, type JsonViewerExProps } from '#payload-raw-info'\n\n/** Props for {@link JsonPayloadLikeViewerEx}. */\nexport interface JsonPayloadLikeViewerExProps extends JsonViewerExProps {}\n\n/** Paper-wrapped JSON viewer for payload-like debug values. */\nexport const JsonPayloadLikeViewerEx: React.FC<JsonPayloadLikeViewerExProps> = ({ ...props }) => {\n  const theme = useTheme()\n\n  return props.value\n    ? (\n        <Paper sx={{ width: '100%', padding: theme.spacing(2) }}>\n          <JsonViewerEx style={{ width: '100%' }} {...props} />\n        </Paper>\n      )\n    : null\n}\n", "import { ErrorRender } from '@ariestools/sdk-react/error'\nimport { FlexCol } from '@ariestools/sdk-react/flexbox'\nimport {\n  FormControl, Grid, TextField,\n} from '@mui/material'\nimport React, { useState } from 'react'\n\nimport { useDebugPayload } from '../hooks/index.ts'\nimport { JsonPayloadLikeViewerEx, ValidationChips } from './shared/index.ts'\n\nconst defaultPayload = '{ \"schema\": \"network.xyo.test\", \"foo\": true }'\n\n/** Interactive debugger for editing, validating, and inspecting payload JSON. */\nexport const PayloadDebugger: React.FC = () => {\n  const [input, setInput] = useState<string>(defaultPayload)\n\n  const {\n    payload, errors, rootHash, dataHash, valid,\n  } = useDebugPayload(input)\n\n  return (\n    <Grid\n      container\n      sx={{ justifyContent: 'center' }}\n    >\n      <Grid\n        size={{ xs: 12, sm: 6 }}\n      >\n        <FlexCol\n          sx={{\n            gap: 2,\n            width: '100%',\n            alignItems: 'start',\n          }}\n        >\n          <h2>Payload Debugger</h2>\n          <FormControl fullWidth>\n            <TextField value={input} multiline minRows={10} maxRows={Infinity} name=\"payload\" onChange={e => setInput(e.target.value)} />\n          </FormControl>\n          <JsonPayloadLikeViewerEx value={payload} />\n          {errors.map(error => <ErrorRender key={error?.message} error={error} />)}\n          <ValidationChips valid={valid} rootHash={rootHash} dataHash={dataHash} />\n        </FlexCol>\n      </Grid>\n    </Grid>\n  )\n}\n"],
  "mappings": "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",
  "names": ["usePayloadRootHash", "jsx", "jsx", "jsxs", "ErrorRender", "FlexCol", "FormControl", "Grid", "TextField", "useState", "jsx", "jsxs", "useState", "Grid", "FlexCol", "FormControl", "TextField", "ErrorRender"]
}
