From cc08ea589b0f9dffed62e426cf3866c3f97146e6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 30 Sep 2025 08:29:18 +0000 Subject: [PATCH 1/3] Initial plan From c74d4667a104bf8a3006a37070a0f596827c5e84 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 30 Sep 2025 08:50:36 +0000 Subject: [PATCH 2/3] feat: Add 10 new educational tools using Svelte 5 runes and shadcn components Co-authored-by: Inglan <96573515+Inglan@users.noreply.github.com> --- src/lib/navigation.ts | 40 +++ src/routes/+page.svelte | 12 +- src/routes/tools/ascii-art/+page.svelte | 199 +++++++++++ .../tools/base64-converter/+page.svelte | 107 ++++++ src/routes/tools/color-picker/+page.svelte | 229 +++++++++++++ src/routes/tools/hash-generator/+page.svelte | 153 +++++++++ src/routes/tools/json-formatter/+page.svelte | 145 ++++++++ src/routes/tools/lorem-generator/+page.svelte | 303 +++++++++++++++++ .../tools/markdown-preview/+page.svelte | 314 ++++++++++++++++++ .../tools/qr-code-generator/+page.svelte | 67 ++++ src/routes/tools/regex-tester/+page.svelte | 282 ++++++++++++++++ src/routes/tools/url-tools/+page.svelte | 248 ++++++++++++++ 12 files changed, 2098 insertions(+), 1 deletion(-) create mode 100644 src/routes/tools/ascii-art/+page.svelte create mode 100644 src/routes/tools/base64-converter/+page.svelte create mode 100644 src/routes/tools/color-picker/+page.svelte create mode 100644 src/routes/tools/hash-generator/+page.svelte create mode 100644 src/routes/tools/json-formatter/+page.svelte create mode 100644 src/routes/tools/lorem-generator/+page.svelte create mode 100644 src/routes/tools/markdown-preview/+page.svelte create mode 100644 src/routes/tools/qr-code-generator/+page.svelte create mode 100644 src/routes/tools/regex-tester/+page.svelte create mode 100644 src/routes/tools/url-tools/+page.svelte diff --git a/src/lib/navigation.ts b/src/lib/navigation.ts index 6e2eb5ad..c6710e22 100644 --- a/src/lib/navigation.ts +++ b/src/lib/navigation.ts @@ -67,6 +67,46 @@ export function createMainNavigation( { title: 'Stopwatch & Timer', url: '/tools/stopwatch-timer' + }, + { + title: 'QR Code Generator', + url: '/tools/qr-code-generator' + }, + { + title: 'Base64 Converter', + url: '/tools/base64-converter' + }, + { + title: 'JSON Formatter', + url: '/tools/json-formatter' + }, + { + title: 'Color Picker', + url: '/tools/color-picker' + }, + { + title: 'URL Tools', + url: '/tools/url-tools' + }, + { + title: 'Hash Generator', + url: '/tools/hash-generator' + }, + { + title: 'Lorem Generator', + url: '/tools/lorem-generator' + }, + { + title: 'ASCII Art', + url: '/tools/ascii-art' + }, + { + title: 'Markdown Preview', + url: '/tools/markdown-preview' + }, + { + title: 'Regex Tester', + url: '/tools/regex-tester' } ] }, diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index f7da8651..28798599 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -15,7 +15,17 @@ { name: 'Word Counter', url: '/tools/word-counter' }, { name: 'Password Generator', url: '/tools/password-generator' }, { name: 'Random Number Generator', url: '/tools/random-number-generator' }, - { name: 'Stopwatch & Timer', url: '/tools/stopwatch-timer' } + { name: 'Stopwatch & Timer', url: '/tools/stopwatch-timer' }, + { name: 'QR Code Generator', url: '/tools/qr-code-generator' }, + { name: 'Base64 Converter', url: '/tools/base64-converter' }, + { name: 'JSON Formatter', url: '/tools/json-formatter' }, + { name: 'Color Picker', url: '/tools/color-picker' }, + { name: 'URL Tools', url: '/tools/url-tools' }, + { name: 'Hash Generator', url: '/tools/hash-generator' }, + { name: 'Lorem Generator', url: '/tools/lorem-generator' }, + { name: 'ASCII Art', url: '/tools/ascii-art' }, + { name: 'Markdown Preview', url: '/tools/markdown-preview' }, + { name: 'Regex Tester', url: '/tools/regex-tester' } ]; diff --git a/src/routes/tools/ascii-art/+page.svelte b/src/routes/tools/ascii-art/+page.svelte new file mode 100644 index 00000000..4f873d44 --- /dev/null +++ b/src/routes/tools/ascii-art/+page.svelte @@ -0,0 +1,199 @@ + + +
+ + + ASCII Art Generator + Convert text into ASCII art using different fonts + + +
+
+ + +
+ +
+ + +
+
+ +
+ + + {#if output} + + {/if} +
+ + {#if output} +
+

ASCII Art:

+
+
{output}
+
+
+ {/if} + +
+

Supported characters: A-Z, space, !, ?

+

Tip: Keep text short (max 20 characters) for best results

+

Note: ASCII art works best with monospace fonts

+
+
+
+
diff --git a/src/routes/tools/base64-converter/+page.svelte b/src/routes/tools/base64-converter/+page.svelte new file mode 100644 index 00000000..2c8a9a5a --- /dev/null +++ b/src/routes/tools/base64-converter/+page.svelte @@ -0,0 +1,107 @@ + + +
+ + + Base64 Encoder/Decoder + Encode text to Base64 or decode Base64 back to text + + + + + Encode + Decode + + + +
+