Unify event attribute construction through buildAttrKey() so debounce,
throttle, and window modifiers compose cleanly. OnChange no longer
hardcodes a 200ms debounce — callers opt in explicitly.
Add window-scoped keydown dispatching with per-key signal and
preventDefault options. Use comma operator instead of semicolons
in generated ternary expressions to produce valid JavaScript.
OnKeyDownMap merges multiple key bindings into a single
data-on:keydown__window attribute via a JS ternary chain,
avoiding HTML attribute deduplication. WithWindow scopes
any keydown listener to the window object.
* Remove unused method. Don't panic if unknown room.
* Need a Connected() check for rooms publishing - don't do the work of rendering for a dead connection
* Make vars private.
* Linter issues
* Remove Connected()
* Mutation observer. Publish 4x / second.
---------
Co-authored-by: João Gonçalves <joao.goncalves01@gmail.com>
* # This is a combination of 4 commits.
# This is the 1st commit message:
Chatroom example
# This is the commit message #2:
Avatar styling
# This is the commit message #3:
Styling
# This is the commit message #4:
cleanup
* Chatroom example
Avatar styling
Benchmark tests
Cleanup
ignore
Files
Cleanroom chatroom impl
* Rewrite.
* changes
* Fix Deadlocks. Start the rooms. Fix styling. Random things. Bookmarklet.
* Subset data
* Rm file
* Simplify User. Just Comparable.
* Remove method.