diff --git a/package.json b/package.json
index 63e5856a5..4e7a9b2d1 100644
--- a/package.json
+++ b/package.json
@@ -41,8 +41,10 @@
"@tiptap/pm": "2.1.6",
"@tiptap/starter-kit": "2.1.6",
"@tiptap/vue-3": "2.0.3",
- "@types/markdown-it": "^13.0.7",
"@types/figlet": "^1.5.8",
+ "@types/markdown-it": "^13.0.7",
+ "@types/utf8": "^3.0.3",
+ "@unicode/unicode-15.1.0": "^1.6.0",
"@vicons/material": "^0.12.0",
"@vicons/tabler": "^0.12.0",
"@vueuse/core": "^10.3.0",
@@ -89,6 +91,7 @@
"ulid": "^2.3.0",
"unicode-emoji-json": "^0.4.0",
"unplugin-auto-import": "^0.16.4",
+ "utf8": "^3.0.0",
"uuid": "^9.0.0",
"vue": "^3.3.4",
"vue-i18n": "^9.9.1",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2311f3aff..688b93622 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -29,6 +29,12 @@ dependencies:
'@types/markdown-it':
specifier: ^13.0.7
version: 13.0.9
+ '@types/utf8':
+ specifier: ^3.0.3
+ version: 3.0.3
+ '@unicode/unicode-15.1.0':
+ specifier: ^1.6.0
+ version: 1.6.0
'@vicons/material':
specifier: ^0.12.0
version: 0.12.0
@@ -167,6 +173,9 @@ dependencies:
unplugin-auto-import:
specifier: ^0.16.4
version: 0.16.4(@vueuse/core@10.3.0)(rollup@2.79.1)
+ utf8:
+ specifier: ^3.0.0
+ version: 3.0.0
uuid:
specifier: ^9.0.0
version: 9.0.0
@@ -3079,6 +3088,10 @@ packages:
resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==}
dev: true
+ /@types/utf8@3.0.3:
+ resolution: {integrity: sha512-+lqLGxWZsEe4Z6OrzBI7Ym4SMUTaMS5yOrHZ0/IL0bpIye1Qbs4PpobJL2mLDbftUXlPFZR7fu6d1yM+bHLX1w==}
+ dev: false
+
/@types/uuid@9.0.0:
resolution: {integrity: sha512-kr90f+ERiQtKWMz5rP32ltJ/BtULDI5RVO0uavn1HQUOwjx0R1h0rnDYNL0CepF1zL5bSY6FISAfd9tOdDhU5Q==}
dev: true
@@ -3378,6 +3391,10 @@ packages:
- '@vue/composition-api'
dev: false
+ /@unicode/unicode-15.1.0@1.6.0:
+ resolution: {integrity: sha512-qGpWJwJ7AtqRrQBjoy4RAuoXlHuQIFcUCXXd4Mh7lcx9B2pVcMZp2eO2G70WydzLsZks/7D27sH30RK7fAnaag==}
+ dev: false
+
/@unocss/astro@0.57.1(rollup@2.79.1)(vite@4.4.9):
resolution: {integrity: sha512-KNaqN/SGM/uz1QitajIkzNEw0jy9Zx9Wp8fl4GhfGYEMAN2+M4cuvBZRmlb6cLctSXmSAJQDG91ivbD1JijGnw==}
peerDependencies:
@@ -8986,6 +9003,10 @@ packages:
requires-port: 1.0.0
dev: true
+ /utf8@3.0.0:
+ resolution: {integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==}
+ dev: false
+
/util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
dev: true
diff --git a/src/tools/index.ts b/src/tools/index.ts
index c9003fe81..c5d997cca 100644
--- a/src/tools/index.ts
+++ b/src/tools/index.ts
@@ -2,6 +2,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 emailNormalizer } from './email-normalizer';
+import { tool as unicodeSearch } from './unicode-search';
import { tool as asciiTextDrawer } from './ascii-text-drawer';
@@ -135,6 +136,7 @@ export const toolsByCategory: ToolCategory[] = [
httpStatusCodes,
jsonDiff,
safelinkDecoder,
+ unicodeSearch,
],
},
{
diff --git a/src/tools/unicode-search/index.ts b/src/tools/unicode-search/index.ts
new file mode 100644
index 000000000..b416b4fbd
--- /dev/null
+++ b/src/tools/unicode-search/index.ts
@@ -0,0 +1,12 @@
+import { FileText } from '@vicons/tabler';
+import { defineTool } from '../tool';
+
+export const tool = defineTool({
+ name: 'Unicode Search',
+ path: '/unicode-search',
+ description: 'Search in Unicode Characters',
+ keywords: ['unicode', 'search'],
+ component: () => import('./unicode-search.vue'),
+ icon: FileText,
+ createdAt: new Date('2024-08-15'),
+});
diff --git a/src/tools/unicode-search/unicode-search.vue b/src/tools/unicode-search/unicode-search.vue
new file mode 100644
index 000000000..b0942b734
--- /dev/null
+++ b/src/tools/unicode-search/unicode-search.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No results
+
+
+
+
+ Search result
+
+
+
+
+ UCOD |
+ Display/UTF8 |
+
+ Category
+ |
+ Html |
+
+ Name
+ |
+
+
+
+
+
+
+ > More info
+
+ |
+
+
+
+ |
+
+
+ |
+
+
+
+ |
+ |
+
+
+
+
+
+
+
diff --git a/src/tools/unicode-search/unicode.d.ts b/src/tools/unicode-search/unicode.d.ts
new file mode 100644
index 000000000..b53caff7a
--- /dev/null
+++ b/src/tools/unicode-search/unicode.d.ts
@@ -0,0 +1,9 @@
+declare module '@unicode/unicode-15.1.0/Names/index.js'{
+ const unicode: HashSet;
+ export default unicode;
+}
+
+declare module '@unicode/unicode-15.1.0/General_Category'{
+ const unicode: HashSet;
+ export default unicode;
+}
\ No newline at end of file