diff --git a/components.d.ts b/components.d.ts
index f2c3146f..9d8c607b 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -126,6 +126,8 @@ declare module '@vue/runtime-core' {
MenuLayout: typeof import('./src/components/MenuLayout.vue')['default']
MetaTagGenerator: typeof import('./src/tools/meta-tag-generator/meta-tag-generator.vue')['default']
MimeTypes: typeof import('./src/tools/mime-types/mime-types.vue')['default']
+ MorseConverter: typeof import('./src/tools/morse-converter/morse-converter.vue')['default']
+ NAlert: typeof import('naive-ui')['NAlert']
NavbarButtons: typeof import('./src/components/NavbarButtons.vue')['default']
NCode: typeof import('naive-ui')['NCode']
NCollapseTransition: typeof import('naive-ui')['NCollapseTransition']
diff --git a/package.json b/package.json
index c6cb7757..5a78e837 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/morsee": "^1.0.2",
"@types/figlet": "^1.5.8",
"@vicons/material": "^0.12.0",
"@vicons/tabler": "^0.12.0",
@@ -73,6 +74,7 @@
"mathjs": "^11.9.1",
"mime-types": "^2.1.35",
"monaco-editor": "^0.43.0",
+ "morsee": "^1.0.9",
"naive-ui": "^2.35.0",
"netmask": "^2.0.2",
"node-forge": "^1.3.1",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 8619d8c0..00d7302d 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/morsee':
+ specifier: ^1.0.2
+ version: 1.0.2
'@types/figlet':
specifier: ^1.5.8
version: 1.5.8
@@ -119,6 +122,9 @@ dependencies:
monaco-editor:
specifier: ^0.43.0
version: 0.43.0
+ morsee:
+ specifier: ^1.0.9
+ version: 1.0.9
naive-ui:
specifier: ^2.35.0
version: 2.35.0(vue@3.3.4)
@@ -2986,6 +2992,10 @@ packages:
resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
dev: true
+ /@types/morsee@1.0.2:
+ resolution: {integrity: sha512-WANv1kCyQtmGZTiov9FzFdt1X4wRtXYZA6B4YR3CghKgx4ychU7d1gkOx7oD+ddVGI+SWmWOPccco7pAc6wXeA==}
+ dev: false
+
/@types/netmask@2.0.0:
resolution: {integrity: sha512-6LjGn0BPF0gOHGuRuJ0hGfdBJLz/9K8Ikz+oRThTNc2w7CGLvwqdjAP7/CydsUeL4cxBBXAHLFfC9bMs74757Q==}
dev: true
@@ -6958,6 +6968,10 @@ packages:
resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==}
dev: false
+ /morsee@1.0.9:
+ resolution: {integrity: sha512-8X8jKVUmZBHKpET9Ap6FPiwlAAASvv60M1K25/YwCU7veuj5MfYgaWX3oEPHtMGgC44IIkIKzyD73fduEKB/9g==}
+ dev: false
+
/mrmime@1.0.1:
resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
engines: {node: '>=10'}
@@ -9449,6 +9463,7 @@ packages:
/workbox-google-analytics@7.0.0:
resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==}
+ deprecated: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained
dependencies:
workbox-background-sync: 7.0.0
workbox-core: 7.0.0
diff --git a/src/tools/index.ts b/src/tools/index.ts
index aa861c93..49df4d4a 100644
--- a/src/tools/index.ts
+++ b/src/tools/index.ts
@@ -1,7 +1,7 @@
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 morseConverter } from './morse-converter';
import { tool as asciiTextDrawer } from './ascii-text-drawer';
import { tool as textToUnicode } from './text-to-unicode';
@@ -107,6 +107,7 @@ export const toolsByCategory: ToolCategory[] = [
listConverter,
tomlToJson,
tomlToYaml,
+ morseConverter,
],
},
{
diff --git a/src/tools/morse-converter/index.ts b/src/tools/morse-converter/index.ts
new file mode 100644
index 00000000..70303301
--- /dev/null
+++ b/src/tools/morse-converter/index.ts
@@ -0,0 +1,12 @@
+import { ArrowsShuffle } from '@vicons/tabler';
+import { defineTool } from '../tool';
+
+export const tool = defineTool({
+ name: 'Morse Code Converter',
+ path: '/morse-converter',
+ description: 'Encode/Decode to Morse code',
+ keywords: ['morse', 'converter'],
+ component: () => import('./morse-converter.vue'),
+ icon: ArrowsShuffle,
+ createdAt: new Date('2024-04-20'),
+});
diff --git a/src/tools/morse-converter/morse-converter.vue b/src/tools/morse-converter/morse-converter.vue
new file mode 100644
index 00000000..3e2a3e55
--- /dev/null
+++ b/src/tools/morse-converter/morse-converter.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ decodeError }}
+
+
+
+