11import './style.css'
22import { renderHeader } from './components/header.ts'
33
4+ const demoSamples = [
5+ 'French (Latin): René François Lacôte' ,
6+ 'German (Latin): Blöße' ,
7+ 'Vietnamese (Latin): Trần Hưng Đạo' ,
8+ 'Norwegian (Latin): Nærøy' ,
9+ 'Ancient Greek (Greek): Φειδιππίδης' ,
10+ 'Modern Greek (Greek): Δημήτρης Φωτόπουλος' ,
11+ 'Russian (Cyrillic): Борис Николаевич Ельцин' ,
12+ 'Ukrainian (Cyrillic): Володимир Горбулін' ,
13+ 'Bulgarian (Cyrillic): Търговище' ,
14+ 'Mandarin Chinese (Han): 深圳' ,
15+ 'Cantonese Chinese (Han): 深水埗' ,
16+ 'Korean (Hangul): 화성시' ,
17+ 'Korean (Han): 華城市' ,
18+ 'Japanese (Hiragana): さいたま' ,
19+ 'Japanese (Han): 埼玉県' ,
20+ 'Amharic (Ethiopic): ደብረ ዘይት' ,
21+ 'Tigrinya (Ethiopic): ደቀምሓረ' ,
22+ 'Arabic: دمنهور' ,
23+ 'Armenian: Աբովյան' ,
24+ 'Georgian: სამტრედია' ,
25+ 'Hebrew: אברהם הלוי פרנקל' ,
26+ 'Unified English Braille (Braille): ⠠⠎⠁⠽⠀⠭⠀⠁⠛' ,
27+ 'Bengali: ময়মনসিংহ' ,
28+ 'Burmese (Myanmar): ထန်တလန်' ,
29+ 'Gujarati: પોરબંદર' ,
30+ 'Hindi (Devanagari): महासमुंद' ,
31+ 'Kannada: ಬೆಂಗಳೂರು' ,
32+ 'Khmer: សៀមរាប' ,
33+ 'Lao: ສະຫວັນນະເຂດ' ,
34+ 'Malayalam: കളമശ്ശേരി' ,
35+ 'Odia: ଗଜପତି' ,
36+ 'Punjabi (Gurmukhi): ਜਲੰਧਰ' ,
37+ 'Sinhala: රත්නපුර' ,
38+ 'Tamil: கன்னியாகுமரி' ,
39+ 'Telugu: శ్రీకాకుళం' ,
40+ 'Thai: สงขลา' ,
41+ 'Emojis: 👑 🌴' ,
42+ 'Misc.: ☆ ♯ ♰ ⚄ ⛌' ,
43+ 'Letterlike: № ℳ ⅋ ⅍' ,
44+ ]
45+
446document . querySelector < HTMLDivElement > ( '#app' ) ! . innerHTML = `
547<main class="min-h-screen bg-base-200" data-theme="light">
648 <section class="mx-auto flex max-w-5xl flex-col gap-8 px-4 py-8 md:px-8 md:py-12">
749 ${ renderHeader ( ) }
850
951 <section class="rounded-box border border-base-300 bg-base-100 p-8 shadow-sm">
10- <h1 class="text-3xl font-bold">Asciify</h1>
11- <p class="mt-3 text-base-content/70">Type text below to convert it to ASCII in your browser.</p>
52+ <div class="flex items-center justify-between gap-3">
53+ <h1 class="text-3xl font-bold">Asciify</h1>
54+ <button id="demo-button" type="button" class="btn btn-sm">Demo</button>
55+ </div>
56+ <p class="mt-3 text-base-content/70">Type text below to convert it to ASCII using <a href="https://github.com/anyascii/anyascii">AnyAscii</a>.</p>
1257
1358 <form class="mt-6 flex flex-col gap-4" action="#" method="post" onsubmit="return false;">
1459 <label class="form-control w-full">
@@ -37,6 +82,7 @@ document.querySelector<HTMLDivElement>('#app')!.innerHTML = `
3782const inputText = document . querySelector < HTMLTextAreaElement > ( '#input-text' )
3883const outputText = document . querySelector < HTMLTextAreaElement > ( '#output-text' )
3984const copyButton = document . querySelector < HTMLButtonElement > ( '#copy-button' )
85+ const demoButton = document . querySelector < HTMLButtonElement > ( '#demo-button' )
4086
4187type AnyAsciiFn = ( value : string ) => string
4288let anyAsciiPromise : Promise < AnyAsciiFn > | undefined
@@ -63,6 +109,16 @@ inputText?.addEventListener('input', () => {
63109} )
64110void updateOutput ( )
65111
112+ demoButton ?. addEventListener ( 'click' , ( ) => {
113+ if ( ! inputText ) {
114+ return
115+ }
116+
117+ const randomIndex = Math . floor ( Math . random ( ) * demoSamples . length )
118+ inputText . value = demoSamples [ randomIndex ]
119+ void updateOutput ( )
120+ } )
121+
66122copyButton ?. addEventListener ( 'click' , async ( ) => {
67123 if ( ! outputText ) {
68124 return
0 commit comments