Files
dewedev/node_modules/.cache/babel-loader/7157efd95f0dab20523d39eaab8e003571b718438a662d8c617a1053615a1d84.json
dwindown 7f2dd5260f Initial commit: Developer Tools MVP with visual editor
- Complete React app with 7 developer tools
- JSON Tool with visual structured editor
- Serialize Tool with visual structured editor
- URL, Base64, CSV/JSON, Beautifier, Diff tools
- Responsive navigation with dropdown menu
- Dark/light mode toggle
- Mobile-responsive design with sticky header
- All tools working with copy/paste functionality
2025-08-02 09:31:26 +07:00

1 line
39 KiB
JSON

{"ast":null,"code":"var _jsxFileName = \"/Users/dwindown/CascadeProjects/developer-tools/src/pages/BeautifierTool.js\",\n _s = $RefreshSig$();\nimport React, { useState } from 'react';\nimport { FileText } from 'lucide-react';\nimport ToolLayout from '../components/ToolLayout';\nimport CopyButton from '../components/CopyButton';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst BeautifierTool = () => {\n _s();\n const [input, setInput] = useState('');\n const [output, setOutput] = useState('');\n const [language, setLanguage] = useState('json');\n const [mode, setMode] = useState('beautify'); // 'beautify' or 'minify'\n\n const beautifyJson = text => {\n try {\n const parsed = JSON.parse(text);\n return JSON.stringify(parsed, null, 2);\n } catch (err) {\n throw new Error(`Invalid JSON: ${err.message}`);\n }\n };\n const minifyJson = text => {\n try {\n const parsed = JSON.parse(text);\n return JSON.stringify(parsed);\n } catch (err) {\n throw new Error(`Invalid JSON: ${err.message}`);\n }\n };\n const beautifyXml = text => {\n try {\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(text, 'text/xml');\n if (xmlDoc.getElementsByTagName('parsererror').length > 0) {\n throw new Error('Invalid XML');\n }\n const serializer = new XMLSerializer();\n let xmlString = serializer.serializeToString(xmlDoc);\n\n // Simple XML formatting\n let formatted = '';\n let indent = 0;\n const tab = ' ';\n xmlString = xmlString.replace(/></g, '>\\n<');\n const lines = xmlString.split('\\n');\n lines.forEach(line => {\n const trimmed = line.trim();\n if (trimmed) {\n if (trimmed.startsWith('</')) {\n indent--;\n }\n formatted += tab.repeat(Math.max(0, indent)) + trimmed + '\\n';\n if (trimmed.startsWith('<') && !trimmed.startsWith('</') && !trimmed.endsWith('/>')) {\n indent++;\n }\n }\n });\n return formatted.trim();\n } catch (err) {\n throw new Error(`XML formatting error: ${err.message}`);\n }\n };\n const minifyXml = text => {\n return text.replace(/>\\s+</g, '><').replace(/\\s+/g, ' ').trim();\n };\n const beautifyCss = text => {\n let formatted = text.replace(/\\{/g, ' {\\n ').replace(/\\}/g, '\\n}\\n').replace(/;/g, ';\\n ').replace(/,/g, ',\\n').replace(/\\n\\s*\\n/g, '\\n').trim();\n\n // Clean up extra spaces and indentation\n const lines = formatted.split('\\n');\n let result = '';\n let indent = 0;\n lines.forEach(line => {\n const trimmed = line.trim();\n if (trimmed) {\n if (trimmed === '}') {\n indent--;\n }\n result += ' '.repeat(Math.max(0, indent)) + trimmed + '\\n';\n if (trimmed.endsWith('{')) {\n indent++;\n }\n }\n });\n return result.trim();\n };\n const minifyCss = text => {\n return text.replace(/\\s+/g, ' ').replace(/;\\s*}/g, '}').replace(/\\s*{\\s*/g, '{').replace(/;\\s*/g, ';').replace(/,\\s*/g, ',').trim();\n };\n const beautifyHtml = text => {\n let formatted = '';\n let indent = 0;\n const tab = ' ';\n\n // Simple HTML formatting\n text = text.replace(/></g, '>\\n<');\n const lines = text.split('\\n');\n lines.forEach(line => {\n const trimmed = line.trim();\n if (trimmed) {\n if (trimmed.startsWith('</')) {\n indent--;\n }\n formatted += tab.repeat(Math.max(0, indent)) + trimmed + '\\n';\n if (trimmed.startsWith('<') && !trimmed.startsWith('</') && !trimmed.endsWith('/>') && !trimmed.includes('<!')) {\n indent++;\n }\n }\n });\n return formatted.trim();\n };\n const minifyHtml = text => {\n return text.replace(/>\\s+</g, '><').replace(/\\s+/g, ' ').trim();\n };\n const beautifySql = text => {\n const keywords = ['SELECT', 'FROM', 'WHERE', 'JOIN', 'INNER JOIN', 'LEFT JOIN', 'RIGHT JOIN', 'ORDER BY', 'GROUP BY', 'HAVING', 'INSERT', 'UPDATE', 'DELETE', 'CREATE', 'ALTER', 'DROP'];\n let formatted = text.toUpperCase();\n keywords.forEach(keyword => {\n const regex = new RegExp(`\\\\b${keyword}\\\\b`, 'gi');\n formatted = formatted.replace(regex, `\\n${keyword}`);\n });\n return formatted.split('\\n').map(line => line.trim()).filter(line => line).join('\\n').trim();\n };\n const minifySql = text => {\n return text.replace(/\\s+/g, ' ').trim();\n };\n const handleProcess = () => {\n try {\n let result = '';\n if (mode === 'beautify') {\n switch (language) {\n case 'json':\n result = beautifyJson(input);\n break;\n case 'xml':\n result = beautifyXml(input);\n break;\n case 'css':\n result = beautifyCss(input);\n break;\n case 'html':\n result = beautifyHtml(input);\n break;\n case 'sql':\n result = beautifySql(input);\n break;\n default:\n result = input;\n }\n } else {\n switch (language) {\n case 'json':\n result = minifyJson(input);\n break;\n case 'xml':\n result = minifyXml(input);\n break;\n case 'css':\n result = minifyCss(input);\n break;\n case 'html':\n result = minifyHtml(input);\n break;\n case 'sql':\n result = minifySql(input);\n break;\n default:\n result = input;\n }\n }\n setOutput(result);\n } catch (err) {\n setOutput(`Error: ${err.message}`);\n }\n };\n const clearAll = () => {\n setInput('');\n setOutput('');\n };\n const loadSample = () => {\n const samples = {\n json: '{\"name\":\"John\",\"age\":30,\"city\":\"New York\",\"hobbies\":[\"reading\",\"coding\"]}',\n xml: '<root><person><name>John</name><age>30</age></person></root>',\n css: 'body{margin:0;padding:0;}h1{color:blue;font-size:24px;}',\n html: '<div><h1>Title</h1><p>Content</p></div>',\n sql: 'select name, age from users where age > 18 order by name'\n };\n setInput(samples[language] || '');\n };\n return /*#__PURE__*/_jsxDEV(ToolLayout, {\n title: \"Code Beautifier/Minifier\",\n description: \"Format and minify JSON, XML, SQL, CSS, and HTML code\",\n icon: FileText,\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-wrap gap-4 mb-6\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex items-center space-x-2\",\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n className: \"text-sm font-medium text-gray-700 dark:text-gray-300\",\n children: \"Language:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 245,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n value: language,\n onChange: e => setLanguage(e.target.value),\n className: \"px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100\",\n children: [/*#__PURE__*/_jsxDEV(\"option\", {\n value: \"json\",\n children: \"JSON\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 253,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"option\", {\n value: \"xml\",\n children: \"XML\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 254,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"option\", {\n value: \"css\",\n children: \"CSS\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 255,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"option\", {\n value: \"html\",\n children: \"HTML\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 256,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"option\", {\n value: \"sql\",\n children: \"SQL\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 257,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 248,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 244,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex bg-gray-100 dark:bg-gray-800 rounded-lg p-1\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n onClick: () => setMode('beautify'),\n className: `px-4 py-2 rounded-md font-medium transition-colors ${mode === 'beautify' ? 'bg-white dark:bg-gray-700 text-primary-600 shadow-sm' : 'text-gray-600 dark:text-gray-400'}`,\n children: \"Beautify\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: () => setMode('minify'),\n className: `px-4 py-2 rounded-md font-medium transition-colors ${mode === 'minify' ? 'bg-white dark:bg-gray-700 text-primary-600 shadow-sm' : 'text-gray-600 dark:text-gray-400'}`,\n children: \"Minify\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 272,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 261,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 243,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-wrap gap-3 mb-6\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n onClick: handleProcess,\n className: \"tool-button\",\n children: mode === 'beautify' ? `Beautify ${language.toUpperCase()}` : `Minify ${language.toUpperCase()}`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: loadSample,\n className: \"tool-button-secondary\",\n children: \"Load Sample\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 290,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: clearAll,\n className: \"tool-button-secondary\",\n children: \"Clear All\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 293,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"grid grid-cols-1 lg:grid-cols-2 gap-6\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-2\",\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n className: \"block text-sm font-medium text-gray-700 dark:text-gray-300\",\n children: [language.toUpperCase(), \" Input\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 302,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"relative\",\n children: /*#__PURE__*/_jsxDEV(\"textarea\", {\n value: input,\n onChange: e => setInput(e.target.value),\n placeholder: `Paste your ${language.toUpperCase()} code here...`,\n className: \"tool-input h-96\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 306,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 305,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 301,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-2\",\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n className: \"block text-sm font-medium text-gray-700 dark:text-gray-300\",\n children: [mode === 'beautify' ? 'Beautified' : 'Minified', \" Output\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 317,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"relative\",\n children: [/*#__PURE__*/_jsxDEV(\"textarea\", {\n value: output,\n readOnly: true,\n placeholder: `${mode === 'beautify' ? 'Beautified' : 'Minified'} code will appear here...`,\n className: \"tool-input h-96 bg-gray-50 dark:bg-gray-800\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 321,\n columnNumber: 13\n }, this), output && /*#__PURE__*/_jsxDEV(CopyButton, {\n text: output\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 327,\n columnNumber: 24\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 316,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 299,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-md p-4 mt-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h4\", {\n className: \"text-blue-800 dark:text-blue-200 font-medium mb-2\",\n children: \"Usage Tips\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 334,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"ul\", {\n className: \"text-blue-700 dark:text-blue-300 text-sm space-y-1\",\n children: [/*#__PURE__*/_jsxDEV(\"li\", {\n children: \"\\u2022 Beautify adds proper indentation and formatting for readability\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 336,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"\\u2022 Minify removes unnecessary whitespace to reduce file size\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 337,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"\\u2022 Select the appropriate language for optimal formatting\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 338,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"li\", {\n children: \"\\u2022 Use beautified code for development and minified for production\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 339,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 335,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 333,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 5\n }, this);\n};\n_s(BeautifierTool, \"GM2YTSqXBPWxkA/BHZubYSKc1UI=\");\n_c = BeautifierTool;\nexport default BeautifierTool;\nvar _c;\n$RefreshReg$(_c, \"BeautifierTool\");","map":{"version":3,"names":["React","useState","FileText","ToolLayout","CopyButton","jsxDEV","_jsxDEV","BeautifierTool","_s","input","setInput","output","setOutput","language","setLanguage","mode","setMode","beautifyJson","text","parsed","JSON","parse","stringify","err","Error","message","minifyJson","beautifyXml","parser","DOMParser","xmlDoc","parseFromString","getElementsByTagName","length","serializer","XMLSerializer","xmlString","serializeToString","formatted","indent","tab","replace","lines","split","forEach","line","trimmed","trim","startsWith","repeat","Math","max","endsWith","minifyXml","beautifyCss","result","minifyCss","beautifyHtml","includes","minifyHtml","beautifySql","keywords","toUpperCase","keyword","regex","RegExp","map","filter","join","minifySql","handleProcess","clearAll","loadSample","samples","json","xml","css","html","sql","title","description","icon","children","className","fileName","_jsxFileName","lineNumber","columnNumber","value","onChange","e","target","onClick","placeholder","readOnly","_c","$RefreshReg$"],"sources":["/Users/dwindown/CascadeProjects/developer-tools/src/pages/BeautifierTool.js"],"sourcesContent":["import React, { useState } from 'react';\nimport { FileText } from 'lucide-react';\nimport ToolLayout from '../components/ToolLayout';\nimport CopyButton from '../components/CopyButton';\n\nconst BeautifierTool = () => {\n const [input, setInput] = useState('');\n const [output, setOutput] = useState('');\n const [language, setLanguage] = useState('json');\n const [mode, setMode] = useState('beautify'); // 'beautify' or 'minify'\n\n const beautifyJson = (text) => {\n try {\n const parsed = JSON.parse(text);\n return JSON.stringify(parsed, null, 2);\n } catch (err) {\n throw new Error(`Invalid JSON: ${err.message}`);\n }\n };\n\n const minifyJson = (text) => {\n try {\n const parsed = JSON.parse(text);\n return JSON.stringify(parsed);\n } catch (err) {\n throw new Error(`Invalid JSON: ${err.message}`);\n }\n };\n\n const beautifyXml = (text) => {\n try {\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(text, 'text/xml');\n \n if (xmlDoc.getElementsByTagName('parsererror').length > 0) {\n throw new Error('Invalid XML');\n }\n\n const serializer = new XMLSerializer();\n let xmlString = serializer.serializeToString(xmlDoc);\n \n // Simple XML formatting\n let formatted = '';\n let indent = 0;\n const tab = ' ';\n \n xmlString = xmlString.replace(/></g, '>\\n<');\n const lines = xmlString.split('\\n');\n \n lines.forEach(line => {\n const trimmed = line.trim();\n if (trimmed) {\n if (trimmed.startsWith('</')) {\n indent--;\n }\n formatted += tab.repeat(Math.max(0, indent)) + trimmed + '\\n';\n if (trimmed.startsWith('<') && !trimmed.startsWith('</') && !trimmed.endsWith('/>')) {\n indent++;\n }\n }\n });\n \n return formatted.trim();\n } catch (err) {\n throw new Error(`XML formatting error: ${err.message}`);\n }\n };\n\n const minifyXml = (text) => {\n return text.replace(/>\\s+</g, '><').replace(/\\s+/g, ' ').trim();\n };\n\n const beautifyCss = (text) => {\n let formatted = text\n .replace(/\\{/g, ' {\\n ')\n .replace(/\\}/g, '\\n}\\n')\n .replace(/;/g, ';\\n ')\n .replace(/,/g, ',\\n')\n .replace(/\\n\\s*\\n/g, '\\n')\n .trim();\n \n // Clean up extra spaces and indentation\n const lines = formatted.split('\\n');\n let result = '';\n let indent = 0;\n \n lines.forEach(line => {\n const trimmed = line.trim();\n if (trimmed) {\n if (trimmed === '}') {\n indent--;\n }\n result += ' '.repeat(Math.max(0, indent)) + trimmed + '\\n';\n if (trimmed.endsWith('{')) {\n indent++;\n }\n }\n });\n \n return result.trim();\n };\n\n const minifyCss = (text) => {\n return text\n .replace(/\\s+/g, ' ')\n .replace(/;\\s*}/g, '}')\n .replace(/\\s*{\\s*/g, '{')\n .replace(/;\\s*/g, ';')\n .replace(/,\\s*/g, ',')\n .trim();\n };\n\n const beautifyHtml = (text) => {\n let formatted = '';\n let indent = 0;\n const tab = ' ';\n \n // Simple HTML formatting\n text = text.replace(/></g, '>\\n<');\n const lines = text.split('\\n');\n \n lines.forEach(line => {\n const trimmed = line.trim();\n if (trimmed) {\n if (trimmed.startsWith('</')) {\n indent--;\n }\n formatted += tab.repeat(Math.max(0, indent)) + trimmed + '\\n';\n if (trimmed.startsWith('<') && !trimmed.startsWith('</') && !trimmed.endsWith('/>') && !trimmed.includes('<!')) {\n indent++;\n }\n }\n });\n \n return formatted.trim();\n };\n\n const minifyHtml = (text) => {\n return text\n .replace(/>\\s+</g, '><')\n .replace(/\\s+/g, ' ')\n .trim();\n };\n\n const beautifySql = (text) => {\n const keywords = ['SELECT', 'FROM', 'WHERE', 'JOIN', 'INNER JOIN', 'LEFT JOIN', 'RIGHT JOIN', 'ORDER BY', 'GROUP BY', 'HAVING', 'INSERT', 'UPDATE', 'DELETE', 'CREATE', 'ALTER', 'DROP'];\n \n let formatted = text.toUpperCase();\n \n keywords.forEach(keyword => {\n const regex = new RegExp(`\\\\b${keyword}\\\\b`, 'gi');\n formatted = formatted.replace(regex, `\\n${keyword}`);\n });\n \n return formatted\n .split('\\n')\n .map(line => line.trim())\n .filter(line => line)\n .join('\\n')\n .trim();\n };\n\n const minifySql = (text) => {\n return text.replace(/\\s+/g, ' ').trim();\n };\n\n const handleProcess = () => {\n try {\n let result = '';\n \n if (mode === 'beautify') {\n switch (language) {\n case 'json':\n result = beautifyJson(input);\n break;\n case 'xml':\n result = beautifyXml(input);\n break;\n case 'css':\n result = beautifyCss(input);\n break;\n case 'html':\n result = beautifyHtml(input);\n break;\n case 'sql':\n result = beautifySql(input);\n break;\n default:\n result = input;\n }\n } else {\n switch (language) {\n case 'json':\n result = minifyJson(input);\n break;\n case 'xml':\n result = minifyXml(input);\n break;\n case 'css':\n result = minifyCss(input);\n break;\n case 'html':\n result = minifyHtml(input);\n break;\n case 'sql':\n result = minifySql(input);\n break;\n default:\n result = input;\n }\n }\n \n setOutput(result);\n } catch (err) {\n setOutput(`Error: ${err.message}`);\n }\n };\n\n const clearAll = () => {\n setInput('');\n setOutput('');\n };\n\n const loadSample = () => {\n const samples = {\n json: '{\"name\":\"John\",\"age\":30,\"city\":\"New York\",\"hobbies\":[\"reading\",\"coding\"]}',\n xml: '<root><person><name>John</name><age>30</age></person></root>',\n css: 'body{margin:0;padding:0;}h1{color:blue;font-size:24px;}',\n html: '<div><h1>Title</h1><p>Content</p></div>',\n sql: 'select name, age from users where age > 18 order by name'\n };\n \n setInput(samples[language] || '');\n };\n\n return (\n <ToolLayout\n title=\"Code Beautifier/Minifier\"\n description=\"Format and minify JSON, XML, SQL, CSS, and HTML code\"\n icon={FileText}\n >\n {/* Language and Mode Selection */}\n <div className=\"flex flex-wrap gap-4 mb-6\">\n <div className=\"flex items-center space-x-2\">\n <label className=\"text-sm font-medium text-gray-700 dark:text-gray-300\">\n Language:\n </label>\n <select\n value={language}\n onChange={(e) => setLanguage(e.target.value)}\n className=\"px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100\"\n >\n <option value=\"json\">JSON</option>\n <option value=\"xml\">XML</option>\n <option value=\"css\">CSS</option>\n <option value=\"html\">HTML</option>\n <option value=\"sql\">SQL</option>\n </select>\n </div>\n \n <div className=\"flex bg-gray-100 dark:bg-gray-800 rounded-lg p-1\">\n <button\n onClick={() => setMode('beautify')}\n className={`px-4 py-2 rounded-md font-medium transition-colors ${\n mode === 'beautify'\n ? 'bg-white dark:bg-gray-700 text-primary-600 shadow-sm'\n : 'text-gray-600 dark:text-gray-400'\n }`}\n >\n Beautify\n </button>\n <button\n onClick={() => setMode('minify')}\n className={`px-4 py-2 rounded-md font-medium transition-colors ${\n mode === 'minify'\n ? 'bg-white dark:bg-gray-700 text-primary-600 shadow-sm'\n : 'text-gray-600 dark:text-gray-400'\n }`}\n >\n Minify\n </button>\n </div>\n </div>\n\n {/* Controls */}\n <div className=\"flex flex-wrap gap-3 mb-6\">\n <button onClick={handleProcess} className=\"tool-button\">\n {mode === 'beautify' ? `Beautify ${language.toUpperCase()}` : `Minify ${language.toUpperCase()}`}\n </button>\n <button onClick={loadSample} className=\"tool-button-secondary\">\n Load Sample\n </button>\n <button onClick={clearAll} className=\"tool-button-secondary\">\n Clear All\n </button>\n </div>\n\n {/* Input/Output Grid */}\n <div className=\"grid grid-cols-1 lg:grid-cols-2 gap-6\">\n {/* Input */}\n <div className=\"space-y-2\">\n <label className=\"block text-sm font-medium text-gray-700 dark:text-gray-300\">\n {language.toUpperCase()} Input\n </label>\n <div className=\"relative\">\n <textarea\n value={input}\n onChange={(e) => setInput(e.target.value)}\n placeholder={`Paste your ${language.toUpperCase()} code here...`}\n className=\"tool-input h-96\"\n />\n </div>\n </div>\n\n {/* Output */}\n <div className=\"space-y-2\">\n <label className=\"block text-sm font-medium text-gray-700 dark:text-gray-300\">\n {mode === 'beautify' ? 'Beautified' : 'Minified'} Output\n </label>\n <div className=\"relative\">\n <textarea\n value={output}\n readOnly\n placeholder={`${mode === 'beautify' ? 'Beautified' : 'Minified'} code will appear here...`}\n className=\"tool-input h-96 bg-gray-50 dark:bg-gray-800\"\n />\n {output && <CopyButton text={output} />}\n </div>\n </div>\n </div>\n\n {/* Usage Tips */}\n <div className=\"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-md p-4 mt-6\">\n <h4 className=\"text-blue-800 dark:text-blue-200 font-medium mb-2\">Usage Tips</h4>\n <ul className=\"text-blue-700 dark:text-blue-300 text-sm space-y-1\">\n <li>• Beautify adds proper indentation and formatting for readability</li>\n <li>• Minify removes unnecessary whitespace to reduce file size</li>\n <li>• Select the appropriate language for optimal formatting</li>\n <li>• Use beautified code for development and minified for production</li>\n </ul>\n </div>\n </ToolLayout>\n );\n};\n\nexport default BeautifierTool;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}