{"ast":null,"code":"var _jsxFileName = \"/Users/dwindown/CascadeProjects/developer-tools/src/components/Layout.js\",\n _s = $RefreshSig$();\nimport React, { useState } from 'react';\nimport { Link, useLocation } from 'react-router-dom';\nimport { Code2, Home, ChevronDown, Menu, X, Database, FileText, Link as LinkIcon, Hash, FileSpreadsheet, Wand2, GitCompare } from 'lucide-react';\nimport ThemeToggle from './ThemeToggle';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst Layout = ({\n children\n}) => {\n _s();\n const location = useLocation();\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);\n const isActive = path => {\n return location.pathname === path;\n };\n const tools = [{\n path: '/json',\n name: 'JSON Tool',\n icon: FileText,\n description: 'Format & validate JSON'\n }, {\n path: '/serialize',\n name: 'Serialize Tool',\n icon: Database,\n description: 'PHP serialize/unserialize'\n }, {\n path: '/url',\n name: 'URL Tool',\n icon: LinkIcon,\n description: 'URL encode/decode'\n }, {\n path: '/base64',\n name: 'Base64 Tool',\n icon: Hash,\n description: 'Base64 encode/decode'\n }, {\n path: '/csv-json',\n name: 'CSV/JSON Tool',\n icon: FileSpreadsheet,\n description: 'Convert CSV ↔ JSON'\n }, {\n path: '/beautifier',\n name: 'Beautifier Tool',\n icon: Wand2,\n description: 'Beautify/minify code'\n }, {\n path: '/diff',\n name: 'Diff Tool',\n icon: GitCompare,\n description: 'Compare text differences'\n }];\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"min-h-screen bg-gray-50 dark:bg-gray-900\",\n children: [/*#__PURE__*/_jsxDEV(\"header\", {\n className: \"bg-white dark:bg-gray-800 shadow-sm border-b border-gray-200 dark:border-gray-700\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex justify-between items-center h-16\",\n children: [/*#__PURE__*/_jsxDEV(Link, {\n to: \"/\",\n className: \"flex items-center space-x-2\",\n children: [/*#__PURE__*/_jsxDEV(Code2, {\n className: \"h-8 w-8 text-primary-600\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"text-xl font-bold text-gray-900 dark:text-white\",\n children: \"DevTools\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center space-x-4\",\n children: [/*#__PURE__*/_jsxDEV(\"nav\", {\n className: \"hidden md:flex space-x-8\",\n children: /*#__PURE__*/_jsxDEV(Link, {\n to: \"/\",\n className: `flex items-center space-x-1 px-3 py-2 rounded-md text-sm font-medium transition-colors ${isActive('/') ? 'bg-primary-100 text-primary-700 dark:bg-primary-900 dark:text-primary-300' : 'text-gray-600 hover:text-gray-900 dark:text-gray-300 dark:hover:text-white'}`,\n children: [/*#__PURE__*/_jsxDEV(Home, {\n className: \"h-4 w-4\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n children: \"Home\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(ThemeToggle, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 53,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 38,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"main\", {\n className: \"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8\",\n children: children\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 60,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"footer\", {\n className: \"bg-white dark:bg-gray-800 border-t border-gray-200 dark:border-gray-700 mt-16\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"text-center text-gray-600 dark:text-gray-400\",\n children: /*#__PURE__*/_jsxDEV(\"p\", {\n children: [\"\\xA9 \", new Date().getFullYear(), \" Dewe Toolsites - Developer Tools.\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 68,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 67,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 66,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 65,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 5\n }, this);\n};\n_s(Layout, \"zUX0bErwz7mST4dt07882K0mmJA=\", false, function () {\n return [useLocation];\n});\n_c = Layout;\nexport default Layout;\nvar _c;\n$RefreshReg$(_c, \"Layout\");","map":{"version":3,"names":["React","useState","Link","useLocation","Code2","Home","ChevronDown","Menu","X","Database","FileText","LinkIcon","Hash","FileSpreadsheet","Wand2","GitCompare","ThemeToggle","jsxDEV","_jsxDEV","Layout","children","_s","location","isDropdownOpen","setIsDropdownOpen","isMobileMenuOpen","setIsMobileMenuOpen","isActive","path","pathname","tools","name","icon","description","className","to","fileName","_jsxFileName","lineNumber","columnNumber","Date","getFullYear","_c","$RefreshReg$"],"sources":["/Users/dwindown/CascadeProjects/developer-tools/src/components/Layout.js"],"sourcesContent":["import React, { useState } from 'react';\nimport { Link, useLocation } from 'react-router-dom';\nimport { Code2, Home, ChevronDown, Menu, X, Database, FileText, Link as LinkIcon, Hash, FileSpreadsheet, Wand2, GitCompare } from 'lucide-react';\nimport ThemeToggle from './ThemeToggle';\n\nconst Layout = ({ children }) => {\n const location = useLocation();\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);\n \n const isActive = (path) => {\n return location.pathname === path;\n };\n\n const tools = [\n { path: '/json', name: 'JSON Tool', icon: FileText, description: 'Format & validate JSON' },\n { path: '/serialize', name: 'Serialize Tool', icon: Database, description: 'PHP serialize/unserialize' },\n { path: '/url', name: 'URL Tool', icon: LinkIcon, description: 'URL encode/decode' },\n { path: '/base64', name: 'Base64 Tool', icon: Hash, description: 'Base64 encode/decode' },\n { path: '/csv-json', name: 'CSV/JSON Tool', icon: FileSpreadsheet, description: 'Convert CSV ↔ JSON' },\n { path: '/beautifier', name: 'Beautifier Tool', icon: Wand2, description: 'Beautify/minify code' },\n { path: '/diff', name: 'Diff Tool', icon: GitCompare, description: 'Compare text differences' }\n ];\n\n return (\n
\n {/* Header */}\n
\n
\n
\n \n \n \n DevTools\n \n \n \n
\n \n \n \n
\n
\n
\n
\n\n {/* Main Content */}\n
\n {children}\n
\n\n {/* Footer */}\n \n
\n );\n};\n\nexport default Layout;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}