Delete assets/index-77d0c996.js
Browse files- assets/index-77d0c996.js +0 -89
assets/index-77d0c996.js
DELETED
|
@@ -1,89 +0,0 @@
|
|
| 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 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|