- Make them navigable by keyboard (UP, DOWN, ENTER to activate option).
- Filter based on the actual text in the element, use containment condition instead of CSS selector on value prefix.
- Make all the elements in the filter searchable and reachable by keyboard.
Without this, any default action would still happen. With Chrome on
Linux, that causes browser features to be triggered with our CTRL+J and
CTRL+K actions.
Yes, Platform Agent is overkill for just this but there isn't a one-size JS solution for updating both input placeholders and other HTML text and we're likely to need it later for other things like displaying platform-specific PWA prompts.
- Big simplification of the overall workflow.
- Composite commands store their commands properly, these are undoable now.
- Child commands are excluded from history
- @jorgemanrubia this is a little fragile because it relies on CSS `:empty` which fails if any whitespace is present, which is why I needed to make the `<ul>` a one-liner. If we like this we may want to implement something more robust
It also handles auto selecting when an element is focus. E.g: if you tabulate to the next control in the navigable list, you want selection to update accordingly.
* main: (29 commits)
Ensure that a "reconsidered" card gets an updated timestamp
Try a fresh activity design
Log the authenticated user
Remove leading space when avatar is hidden on pinned cards
Display card number in notifications and events
Ensure that cards with an empty title aren't mysterious in notifs
bin/dev ensures puma runs solid queue
Adjust selection color to feel more terminal-y
Eliminate double-tab behavior
Clear error state when you start editing
Color terminal text on error
Don't indicate spelling errors
The command is lowercase
Remind 7 days before, not 30
Make the icon square
Subtler bubble styles
Variable bubble shapes
Bubble CSS
Rename 'badge' to 'bubble'
Address PR feedback
...
# Conflicts:
# app/javascript/controllers/terminal_controller.js
# app/views/commands/_form.html.erb
We need to keep the focus in place when submitting the form. We are using a data-turbo-permanent for that. We were rendering the error form with a turbo stream. The problem was that turbo streams ignore permanent elements as per this https://github.com/hotwired/turbo/pull/688, so the system wasn't updating the input field as expected.
Handling this as the stimulus level will also help with managing additional error states (such as the one we need for confirmations).