diff --git a/components.d.ts b/components.d.ts
index 98255204..2da25b0f 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -12,6 +12,7 @@ declare module '@vue/runtime-core' {
'404.page': typeof import('./src/pages/404.page.vue')['default']
About: typeof import('./src/pages/About.vue')['default']
App: typeof import('./src/App.vue')['default']
+ AsciiTextDrawer: typeof import('./src/tools/ascii-text-drawer/ascii-text-drawer.vue')['default']
'Base.layout': typeof import('./src/layouts/base.layout.vue')['default']
Base64FileConverter: typeof import('./src/tools/base64-file-converter/base64-file-converter.vue')['default']
Base64StringConverter: typeof import('./src/tools/base64-string-converter/base64-string-converter.vue')['default']
@@ -137,10 +138,13 @@ declare module '@vue/runtime-core' {
NH3: typeof import('naive-ui')['NH3']
NIcon: typeof import('naive-ui')['NIcon']
NInput: typeof import('naive-ui')['NInput']
+ NInputNumber: typeof import('naive-ui')['NInputNumber']
+ NLabel: typeof import('naive-ui')['NLabel']
NLayout: typeof import('naive-ui')['NLayout']
NLayoutSider: typeof import('naive-ui')['NLayoutSider']
NMenu: typeof import('naive-ui')['NMenu']
NScrollbar: typeof import('naive-ui')['NScrollbar']
+ NSpin: typeof import('naive-ui')['NSpin']
NumeronymGenerator: typeof import('./src/tools/numeronym-generator/numeronym-generator.vue')['default']
OtpCodeGeneratorAndValidator: typeof import('./src/tools/otp-code-generator-and-validator/otp-code-generator-and-validator.vue')['default']
PasswordStrengthAnalyser: typeof import('./src/tools/password-strength-analyser/password-strength-analyser.vue')['default']
diff --git a/package.json b/package.json
index c16cb9f1..871c766e 100644
--- a/package.json
+++ b/package.json
@@ -41,6 +41,7 @@
"@tiptap/pm": "2.1.6",
"@tiptap/starter-kit": "2.1.6",
"@tiptap/vue-3": "2.0.3",
+ "@types/figlet": "^1.5.8",
"@vicons/material": "^0.12.0",
"@vicons/tabler": "^0.12.0",
"@vueuse/core": "^10.3.0",
@@ -57,6 +58,7 @@
"date-fns": "^2.29.3",
"dompurify": "^3.0.6",
"emojilib": "^3.0.10",
+ "figlet": "^1.7.0",
"figue": "^1.2.0",
"fuse.js": "^6.6.2",
"highlight.js": "^11.7.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c116fbeb..b43eaac3 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -23,6 +23,9 @@ dependencies:
'@tiptap/vue-3':
specifier: 2.0.3
version: 2.0.3(@tiptap/core@2.1.12)(@tiptap/pm@2.1.6)(vue@3.3.4)
+ '@types/figlet':
+ specifier: ^1.5.8
+ version: 1.5.8
'@vicons/material':
specifier: ^0.12.0
version: 0.12.0
@@ -71,6 +74,9 @@ dependencies:
emojilib:
specifier: ^3.0.10
version: 3.0.10
+ figlet:
+ specifier: ^1.7.0
+ version: 1.7.0
figue:
specifier: ^1.2.0
version: 1.2.0
@@ -2932,6 +2938,10 @@ packages:
/@types/estree@1.0.0:
resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
+ /@types/figlet@1.5.8:
+ resolution: {integrity: sha512-G22AUvy4Tl95XLE7jmUM8s8mKcoz+Hr+Xm9W90gJsppJq9f9tHvOGkrpn4gRX0q/cLtBdNkWtWCKDg2UDZoZvQ==}
+ dev: false
+
/@types/fs-extra@11.0.1:
resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==}
dependencies:
@@ -5863,6 +5873,12 @@ packages:
web-streams-polyfill: 3.2.1
dev: true
+ /figlet@1.7.0:
+ resolution: {integrity: sha512-gO8l3wvqo0V7wEFLXPbkX83b7MVjRrk1oRLfYlZXol8nEpb/ON9pcKLI4qpBv5YtOTfrINtqb7b40iYY2FTWFg==}
+ engines: {node: '>= 0.4.0'}
+ hasBin: true
+ dev: false
+
/figue@1.2.0:
resolution: {integrity: sha512-CXKr12kiNWjKtUK3X+YHeXKepn80s9Rg6pgZXoLQYEybgwaGJ9uGW4DrBrVK30ZWZf1mcvTbXF56AcovG7gLVw==}
dependencies:
diff --git a/src/tools/ascii-text-drawer/ascii-text-drawer.vue b/src/tools/ascii-text-drawer/ascii-text-drawer.vue
new file mode 100644
index 00000000..9a6520a4
--- /dev/null
+++ b/src/tools/ascii-text-drawer/ascii-text-drawer.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Loading font...
+
+
+
+ Current settings resulted in error.
+
+
+
+
+
+
+
diff --git a/src/tools/ascii-text-drawer/index.ts b/src/tools/ascii-text-drawer/index.ts
new file mode 100644
index 00000000..cc1ba86c
--- /dev/null
+++ b/src/tools/ascii-text-drawer/index.ts
@@ -0,0 +1,12 @@
+import { Artboard } from '@vicons/tabler';
+import { defineTool } from '../tool';
+
+export const tool = defineTool({
+ name: 'ASCII Art Text Generator',
+ path: '/ascii-text-drawer',
+ description: 'Create ASCII art text with many fonts and styles.',
+ keywords: ['ascii', 'asciiart', 'text', 'drawer'],
+ component: () => import('./ascii-text-drawer.vue'),
+ icon: Artboard,
+ createdAt: new Date('2024-03-03'),
+});
diff --git a/src/tools/index.ts b/src/tools/index.ts
index ca75c83e..ef661d63 100644
--- a/src/tools/index.ts
+++ b/src/tools/index.ts
@@ -1,6 +1,9 @@
import { tool as base64FileConverter } from './base64-file-converter';
import { tool as base64StringConverter } from './base64-string-converter';
import { tool as basicAuthGenerator } from './basic-auth-generator';
+
+import { tool as asciiTextDrawer } from './ascii-text-drawer';
+
import { tool as textToUnicode } from './text-to-unicode';
import { tool as csrGenerator } from './csr-generator';
import { tool as pdfSignatureChecker } from './pdf-signature-checker';
@@ -173,7 +176,15 @@ export const toolsByCategory: ToolCategory[] = [
},
{
name: 'Text',
- components: [loremIpsumGenerator, textStatistics, emojiPicker, stringObfuscator, textDiff, numeronymGenerator],
+ components: [
+ loremIpsumGenerator,
+ textStatistics,
+ emojiPicker,
+ stringObfuscator,
+ textDiff,
+ numeronymGenerator,
+ asciiTextDrawer,
+ ],
},
{
name: 'Data',