{"version":3,"file":"JsonTreeNavigator-DaOkIsmx.js","sources":["../../components/features/JsonTreeNavigator.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { FileCodeIcon } from '../icons/FeatureIcons.tsx';\n\ninterface JsonNodeProps {\n data: any;\n nodeKey: string;\n isRoot?: boolean;\n}\n\nconst JsonNode: React.FC = ({ data, nodeKey, isRoot = false }) => {\n const [isOpen, setIsOpen] = useState(isRoot);\n const isObject = typeof data === 'object' && data !== null;\n\n const toggleOpen = () => setIsOpen(!isOpen);\n\n if (!isObject) {\n return (\n
\n {nodeKey}: \n \n {typeof data === 'string' ? `\"${data}\"` : String(data)}\n \n
\n );\n }\n\n const entries = Object.entries(data);\n const bracket = Array.isArray(data) ? '[]' : '{}';\n\n return (\n
\n \n {isOpen && (\n
\n {entries.map(([key, value]) => (\n \n ))}\n
{bracket[1]}
\n
\n )}\n
\n );\n};\n\nexport const JsonTreeNavigator: React.FC<{ initialData?: object }> = ({ initialData }) => {\n const defaultJson = '{\\n \"id\": \"devcore-001\",\\n \"active\": true,\\n \"features\": [\\n \"ai-explainer\",\\n \"api-tester\"\\n ],\\n \"config\": {\\n \"theme\": \"dark\",\\n \"version\": 1\\n }\\n}';\n const [jsonInput, setJsonInput] = useState(initialData ? JSON.stringify(initialData, null, 2) : defaultJson);\n const [parsedData, setParsedData] = useState(() => {\n try {\n return JSON.parse(jsonInput);\n } catch {\n return null;\n }\n });\n const [error, setError] = useState('');\n\n const parseJson = (input: string) => {\n try {\n const parsed = JSON.parse(input);\n setParsedData(parsed);\n setError('');\n } catch (e) {\n if (e instanceof Error) setError(e.message);\n setParsedData(null);\n }\n };\n\n const handleInputChange = (e: React.ChangeEvent) => {\n setJsonInput(e.target.value);\n parseJson(e.target.value);\n }\n \n return (\n
\n
\n

\n \n JSON Tree Navigator\n

\n

Paste your JSON data to visualize it as a collapsible tree.

\n
\n
\n
\n \n \n {error &&

{error}

}\n
\n
\n \n
\n {parsedData ? :
Enter valid JSON to view
}\n
\n
\n
\n
\n );\n};\n"],"names":["JsonNode","data","nodeKey","isRoot","isOpen","setIsOpen","useState","isObject","toggleOpen","jsxs","entries","bracket","jsx","key","value","JsonTreeNavigator","initialData","defaultJson","jsonInput","setJsonInput","parsedData","setParsedData","error","setError","parseJson","input","parsed","e","handleInputChange","FileCodeIcon"],"mappings":"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"}