Treat server broadcasts as highlights
Don't focus composer on key press if modifier is also pressed
Turn dialog close button into a <button>

This is semantically more correct.
Use semantically more correct elements for error bubble
Focus buffer scrollview instead of composer

Instead of focusing the composer, focus the buffer scrollview when
switching to a buffer. This allows keyboard navigation to work as
expected, with arrow up/down and page up/down scrolling the buffer
instead of doing nothing.

Focus back the composer when a KeyboardEvent produces text. This
allows users to start typing a message right after switching to a

Closes: https://todo.sr.ht/~emersion/gamja/64
Improve composer form indentation
Allow resetting nick and auto-join with query params
Add web app manifest

We'll need this to register protocol handlers.
lib/client: reject Client.roundtrip promise on disconnect
component/app: Automatically prepend wss to server URL if unspecified
Allow resetting server URL with query param
lib/linkify: stop using RegExp indices

Co-authored-by: Simon Ser <contact@emersion.fr>
Closes: https://todo.sr.ht/~emersion/gamja/90
Use cursor pointer for buttons

I'm usually not a fan of changing the default browser styles for
things like the cursor image, but here it actually improves
accessibility: it's clearer for the user what can be clicked on.

Closes: https://todo.sr.ht/~emersion/gamja/81
Add /unvoice
Add irc.forEachChannelModeUpdate helper
Move MODE state updates outof App
Add STATUSMSG indicator

Closes: https://todo.sr.ht/~emersion/gamja/65
Move message key generation to State.addMessage
readme: s/bare-bones/simple/

We used to be bare-bones, we're a little bit more than that now.
Don't try to reconnect if the network is down