{"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