Update assets/index-77d0c996.js
Browse files- assets/index-77d0c996.js +86 -15
assets/index-77d0c996.js
CHANGED
@@ -1,18 +1,89 @@
|
|
1 |
-
import {
|
2 |
-
import App from './App';
|
3 |
-
import UnicodeSelector from './UnicodeSelector';
|
4 |
-
import './index.css';
|
5 |
|
6 |
-
const
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
</div>
|
16 |
</div>
|
17 |
-
|
18 |
-
|
|
|
1 |
+
import { useState } from 'react';
|
|
|
|
|
|
|
2 |
|
3 |
+
const UNICODE_FONTS = {
|
4 |
+
"Mathematical Script": {
|
5 |
+
uppercase: "๐๐๐๐๐ ๐ก๐ข๐ฃ๐ค๐ฅ๐ฆ๐ง๐จ๐ฉ๐ช๐ซ๐ฌ๐ญ๐ฎ๐ฏ๐ฐ๐ฑ๐ฒ๐ณ๐ด๐ต",
|
6 |
+
lowercase: "๐ถ๐ท๐ธ๐น๐บ๐ป๐ผ๐ฝ๐พ๐ฟ๐๐๐๐๐๐
๐๐๐๐๐๐๐๐๐๐"
|
7 |
+
},
|
8 |
+
"Fraktur": {
|
9 |
+
uppercase: "๐๐
โญ๐๐๐๐โโ๐๐๐๐๐๐๐๐โ๐๐๐๐๐๐๐โจ",
|
10 |
+
lowercase: "๐๐๐ ๐ก๐ข๐ฃ๐ค๐ฅ๐ฆ๐ง๐จ๐ฉ๐ช๐ซ๐ฌ๐ญ๐ฎ๐ฏ๐ฐ๐ฑ๐ฒ๐ณ๐ด๐ต๐ถ๐ท"
|
11 |
+
},
|
12 |
+
"Bold Fraktur": {
|
13 |
+
uppercase: "๐ฌ๐ญ๐ฎ๐ฏ๐ฐ๐ฑ๐ฒ๐ณ๐ด๐ต๐ถ๐ท๐ธ๐น๐บ๐ป๐ผ๐ฝ๐พ๐ฟ๐๐๐๐๐๐
",
|
14 |
+
lowercase: "๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐"
|
15 |
+
},
|
16 |
+
"Double-struck": {
|
17 |
+
uppercase: "๐ธ๐นโ๐ป๐ผ๐ฝ๐พโ๐๐๐๐๐โ๐โโโ๐๐๐๐๐๐๐โค",
|
18 |
+
lowercase: "๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐ ๐ก๐ข๐ฃ๐ค๐ฅ๐ฆ๐ง๐จ๐ฉ๐ช๐ซ"
|
19 |
+
},
|
20 |
+
"Script/Italic": {
|
21 |
+
uppercase: "๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐ ๐ก๐ข๐ฃ๐ค๐ฅ๐ฆ๐ง๐จ๐ฉ",
|
22 |
+
lowercase: "๐ช๐ซ๐ฌ๐ญ๐ฎ๐ฏ๐ฐ๐ฑ๐ฒ๐ณ๐ด๐ต๐ถ๐ท๐ธ๐น๐บ๐ป๐ผ๐ฝ๐พ๐ฟ๐๐๐๐"
|
23 |
+
}
|
24 |
+
};
|
25 |
+
|
26 |
+
export default function UnicodeSelector() {
|
27 |
+
const [text, setText] = useState('');
|
28 |
+
const [selectedFont, setSelectedFont] = useState(Object.keys(UNICODE_FONTS)[0]);
|
29 |
+
|
30 |
+
const convertToUnicode = (input, fontType) => {
|
31 |
+
const font = UNICODE_FONTS[fontType];
|
32 |
+
let result = '';
|
33 |
+
|
34 |
+
for (let char of input) {
|
35 |
+
if (char >= 'A' && char <= 'Z') {
|
36 |
+
const index = char.charCodeAt(0) - 'A'.charCodeAt(0);
|
37 |
+
result += font.uppercase[index] || char;
|
38 |
+
} else if (char >= 'a' && char <= 'z') {
|
39 |
+
const index = char.charCodeAt(0) - 'a'.charCodeAt(0);
|
40 |
+
result += font.lowercase[index] || char;
|
41 |
+
} else {
|
42 |
+
result += char;
|
43 |
+
}
|
44 |
+
}
|
45 |
+
return result;
|
46 |
+
};
|
47 |
+
|
48 |
+
const handleCopyToClipboard = (text) => {
|
49 |
+
navigator.clipboard.writeText(text);
|
50 |
+
};
|
51 |
+
|
52 |
+
return (
|
53 |
+
<div className="bg-white p-6 rounded-lg shadow-lg">
|
54 |
+
<div className="mb-4">
|
55 |
+
<input
|
56 |
+
type="text"
|
57 |
+
value={text}
|
58 |
+
onChange={(e) => setText(e.target.value)}
|
59 |
+
placeholder="Enter text to convert"
|
60 |
+
className="w-full p-2 border rounded"
|
61 |
+
/>
|
62 |
+
</div>
|
63 |
+
|
64 |
+
<div className="grid grid-cols-1 gap-4">
|
65 |
+
{Object.entries(UNICODE_FONTS).map(([fontName, font]) => {
|
66 |
+
const convertedText = convertToUnicode(text, fontName);
|
67 |
+
return (
|
68 |
+
<div key={fontName} className="border p-4 rounded">
|
69 |
+
<h3 className="font-bold mb-2">{fontName}</h3>
|
70 |
+
<div className="mb-2">
|
71 |
+
<div className="text-lg mb-1">{convertedText}</div>
|
72 |
+
<button
|
73 |
+
onClick={() => handleCopyToClipboard(convertedText)}
|
74 |
+
className="bg-blue-500 text-white px-4 py-1 rounded hover:bg-blue-600"
|
75 |
+
>
|
76 |
+
Copy
|
77 |
+
</button>
|
78 |
+
</div>
|
79 |
+
<div className="text-sm text-gray-600">
|
80 |
+
<div>Uppercase: {font.uppercase}</div>
|
81 |
+
<div>Lowercase: {font.lowercase}</div>
|
82 |
+
</div>
|
83 |
+
</div>
|
84 |
+
)
|
85 |
+
})}
|
86 |
</div>
|
87 |
</div>
|
88 |
+
);
|
89 |
+
}
|