🧪 KCE Dev Demos

Userscript / component test environments — one shell, one visual language.

Desktop: hover over the input → password shows, move away → hides.
Mobile: tap the input (focus) → shows, blur → hides.
Tab-key navigation should behave the same way.

1. Standard type="password"
2. class="password" (type text)
3. class="pwd" (short variant)
4. Field injected dynamically (SPA / router panel simulation)

No field yet — click the button.

5. Unrelated input (control group — the script should not touch this)
0 / 0 selected

Tampermonkey script'ini yükle, sayfada boş bir alana (input dışı) tıkla, sonra hızlıca . . bas. Aşağıdaki panel hangi elemente focus olduğunu canlı loglar. Amaç: gerçek chat kutusu kazanmalı, tuzak (gizli/mini/duplicate) elementler kazanmamalı.

A. Gerçek hedef — büyük, görünür contenteditable chat kutusu
Bu #realChat, en büyük görünür alan → script bunu seçmeli.
B. Tuzak 1 — display:none contenteditable (DOM'da erken, seçilmemeli)
display:none olduğu için offsetWidth/Height 0 → filtrelenmeli.
C. Tuzak 2 — opacity:0 contenteditable (boyutu var ama görünmez)
opacity:0 → eski script bunu yakalardı, yeni versiyon opacity kontrolüyle elemeli.
D. Tuzak 3 — 1x1 piksil gizli input (klasik SEO/bot tuzağı deseni) 1px×1px, ekranda yok ama offsetWidth/Height > 0 değil (0'a çok yakın) → büyüklük kıyasında elenmeli.
E. Küçük gerçek input — büyüklük kıyasını test eder Görünür ama #realChat'ten küçük → #realChat kazanmalı.
F. Zaten bir input'a odaklıyken nokta yazma testi isEditable true olduğu için script devre dışı kalmalı, iki nokta normal yazılmalı.
Sonuç Logu
Henüz focus eventi yok. Sayfada boş bir yere tıklayıp .. dene.

Gerçek <a> linkleri üzerine gelince, düz metin linkleri ise seçince sağ/sol tarafta "yeni sekmede aç" butonu çıkmalı. localhost, bare IP, .onion, .i2p, LAN hostname, magnet ve git@ssh gibi scheme'siz adresler de kapsanmalı.

A. Gerçek <a> linkleri — hover testi

Normal http link:

https://example.com

Uzun / çok satırlı link:

https://example.com/very/long/path/that/might/wrap/to/a/second/line/on/narrow/screens/or/small/windows

mailto (buton çıkmamalı):

test@example.com

Çok küçük link (minSize altı, buton çıkmamalı):

x

B. Düz metin — seçince buton çıkmalı

Aşağıdaki değerleri fare ile seçin (çift tıklama veya sürükleme).

Standart http(s):https://example.com/path?query=1
www ile (scheme'siz):www.example.com
Çıplak domain:example.com/some/page
localhost + port:localhost:3000/dashboard
Bare IPv4 + port:192.168.1.1:8080
Bare IPv4, port yok:10.0.0.5
Bare IPv6:[::1]:8080
Tor .onion (v2 uzunluk):3g2upl4pq6kufc4m.onion
Tor .onion (v3 uzunluk):duskgytldkxiuqc6gjqphak3xhbchm6c3st3aoyfnw2coecpufeb6huvxkjyd.onion
I2P:stats.i2p
LAN hostname (.local):router.local
LAN hostname (.home):nas.home:5000
FTP:ftp://files.example.com/pub
Magnet link:magnet:?xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a
Git SSH syntax:git@github.com:someuser/somerepo.git
Websocket:wss://socket.example.com/live
Negatif — çok kelimeli (buton ÇIKMAMALI):bu bir cümle ve link değil
Negatif — TLD'siz tek kelime (buton ÇIKMAMALI):sadecebirkelime
C. Koyu arkaplan — tema geçişi testi

Koyu zeminde link:

https://example.com

Koyu zeminde düz metin:

192.168.0.10:9000

D. Çakışan / komşu interaktif öğe — collision testi

Bu satırda link'in hemen yanında tıklanabilir bir buton var — script kendi butonunu üstüne bindirmemeli.

https://example.com
E. Skip edilmesi gereken bölgeler

Ana shell'in kendi nav/footer'ı yok; script'in nav a / .menu a / header a / footer a skip kuralını test etmek için burada aynı yapıda sahte bir nav ve footer var — bunlarda buton ÇIKMAMALI.