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

1
node_modules/postcss-selector-not/dist/index.cjs generated vendored Normal file
View File

@@ -0,0 +1 @@
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=e(require("postcss-selector-parser"));const o=()=>({postcssPlugin:"postcss-selector-not",Rule:(e,{result:o})=>{if(e.selector&&e.selector.toLowerCase().includes(":not("))try{const o=s.default().astSync(e.selector);o.walkPseudos((e=>{if(":not"!==e.value.toLowerCase())return;if(!e.nodes||e.nodes.length<2)return;const o=[];e.nodes.forEach((e=>{!function(e){e.spaces&&(e.spaces.after="",e.spaces.before=""),e.nodes&&e.nodes.length>0&&(e.nodes[0]&&e.nodes[0].spaces&&(e.nodes[0].spaces.before=""),e.nodes[e.nodes.length-1]&&e.nodes[e.nodes.length-1].spaces&&(e.nodes[e.nodes.length-1].spaces.after=""))}(e);const t=s.default.pseudo({value:":not",nodes:[e]});o.push(t)})),e.replaceWith(...o)}));const t=o.toString();t!==e.selector&&e.replaceWith(e.clone({selector:t}))}catch(s){e.warn(o,`Failed to parse selector "${e.selector}"`)}}});o.postcss=!0,module.exports=o;

3
node_modules/postcss-selector-not/dist/index.d.ts generated vendored Normal file
View File

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

1
node_modules/postcss-selector-not/dist/index.mjs generated vendored Normal file
View File

@@ -0,0 +1 @@
import e from"postcss-selector-parser";const s=()=>({postcssPlugin:"postcss-selector-not",Rule:(s,{result:o})=>{if(s.selector&&s.selector.toLowerCase().includes(":not("))try{const o=e().astSync(s.selector);o.walkPseudos((s=>{if(":not"!==s.value.toLowerCase())return;if(!s.nodes||s.nodes.length<2)return;const o=[];s.nodes.forEach((s=>{!function(e){e.spaces&&(e.spaces.after="",e.spaces.before=""),e.nodes&&e.nodes.length>0&&(e.nodes[0]&&e.nodes[0].spaces&&(e.nodes[0].spaces.before=""),e.nodes[e.nodes.length-1]&&e.nodes[e.nodes.length-1].spaces&&(e.nodes[e.nodes.length-1].spaces.after=""))}(s);const t=e.pseudo({value:":not",nodes:[s]});o.push(t)})),s.replaceWith(...o)}));const t=o.toString();t!==s.selector&&s.replaceWith(s.clone({selector:t}))}catch(e){s.warn(o,`Failed to parse selector "${s.selector}"`)}}});s.postcss=!0;export{s as default};