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
This commit is contained in:
dwindown
2025-08-02 09:31:26 +07:00
commit 7f2dd5260f
45657 changed files with 4730486 additions and 0 deletions

View File

@@ -0,0 +1 @@
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=e(require("postcss-value-parser"));const o=["woff","truetype","opentype","woff2","embedded-opentype","collection","svg"],r=e=>{const r="preserve"in Object(e)&&Boolean(e.preserve);return{postcssPlugin:"postcss-font-format-keywords",AtRule(e){"font-face"===e.name.toLowerCase()&&e.walkDecls((e=>{if("src"!==e.prop.toLowerCase())return;if(!e.value.toLowerCase().includes("format("))return;const s=t.default(e.value);s.walk((e=>{"function"===e.type&&"format"===e.value.toLowerCase()&&e.nodes.forEach((e=>{"word"===e.type&&o.includes(e.value.toLowerCase())&&(e.value=t.default.stringify({type:"string",value:e.value,quote:'"'}))}))})),s.toString()!==e.value&&(e.cloneBefore({value:s.toString()}),r||e.remove())}))}}};r.postcss=!0,module.exports=r;

View File

@@ -0,0 +1,5 @@
import type { PluginCreator } from 'postcss';
declare const creator: PluginCreator<{
preserve: boolean;
}>;
export default creator;

View File

@@ -0,0 +1 @@
import e from"postcss-value-parser";const o=["woff","truetype","opentype","woff2","embedded-opentype","collection","svg"],t=t=>{const r="preserve"in Object(t)&&Boolean(t.preserve);return{postcssPlugin:"postcss-font-format-keywords",AtRule(t){"font-face"===t.name.toLowerCase()&&t.walkDecls((t=>{if("src"!==t.prop.toLowerCase())return;if(!t.value.toLowerCase().includes("format("))return;const s=e(t.value);s.walk((t=>{"function"===t.type&&"format"===t.value.toLowerCase()&&t.nodes.forEach((t=>{"word"===t.type&&o.includes(t.value.toLowerCase())&&(t.value=e.stringify({type:"string",value:t.value,quote:'"'}))}))})),s.toString()!==t.value&&(t.cloneBefore({value:s.toString()}),r||t.remove())}))}}};t.postcss=!0;export{t as default};