Commit Graph

15 Commits

Author SHA1 Message Date
Philipinho 8685c32249 fix grid cells on mobile 2026-06-18 23:06:43 +01:00
Philipinho 0e3549faf1 fix(base): place caret at end instead of selecting all when editing cells 2026-06-16 21:40:15 +01:00
Philipinho 2e80fc457c feat(base): insert row below via Shift+Enter on the primary cell 2026-06-16 13:22:54 +01:00
Philipinho ad00efe317 fix(base): enable grid cell editing on touch devices
Cells could only enter edit mode via double-click or a physical keyboard,
so touch devices had no way to edit a cell. Treat a touch/pen tap as the
edit gesture, distinguishing a tap from a scroll by movement and branching
per pointer type so mouse double-click stays unchanged. Also reveal the
row expand button on hover-less devices so the row detail view stays
reachable.
2026-06-16 12:14:21 +01:00
Philipinho 770c9b9d98 fix: activate New row button via keyboard (Enter/Space)
The New row control is a role=button div with no keydown handler, so Enter/Space never triggered it. It also lives inside the grid element, whose native keydown listener caught the Enter and ran cell navigation against the previously focused cell.

Add Enter/Space activation to the button, and make the grid keyboard handler ignore keydowns that originate from a focusable child rather than the grid element itself, so in-grid controls handle their own keys.
2026-06-16 10:49:53 +01:00
Philipinho dc63ed8dee fix(base): select grid cell on mousedown to avoid stale focus ring flash
The focus ring is gated on the grid having DOM focus (.bodyGrid:focus .cellFocused), but the focusedCell atom is never cleared when the grid blurs. Clicking outside hides the ring via the :focus gate while the atom still points at the old cell.

Selection was committed on click (mouseup), while the grid receives focus on mousedown. Clicking a new cell re-focused the grid before the atom updated, briefly painting the ring on the previously selected cell. Commit selection on mousedown so the atom updates in the same event that grants focus, before the browser paints.
2026-06-16 00:30:54 +01:00
Philipinho 1b5c081e1e fix(base): tab from long-text editor moves to next cell instead of leaving the table 2026-06-15 04:54:23 +01:00
Philipinho 8fc538386d fix(base): sync header/body horizontal scroll on header focus; expand row via Space, drop expander from tab order 2026-06-15 04:08:52 +01:00
Philipinho cc951ae883 feat(base): keyboard-navigate the row-number column for selection 2026-06-15 03:59:03 +01:00
Philipinho 308079af8b feat(base): make column headers keyboard-focusable as tab stops 2026-06-15 03:13:27 +01:00
Philipinho 514c68e049 feat(base): row ARIA index and selected state 2026-06-15 02:34:00 +01:00
Philipinho dec87947cf feat(base): cell focus ring, click-to-focus, and gridcell ARIA 2026-06-15 02:31:32 +01:00
Philipinho bb7fddfc54 update offerings 2026-06-15 02:27:31 +01:00
Philipinho f5831a256a feat(base): keyboard navigation controller and grid wiring 2026-06-15 02:13:59 +01:00
Philipinho 4e5bff6d55 feat(ee): bases
Table and kanban UI, formula engine package, and the base-embed editor extension
2026-06-14 01:29:06 +01:00