mirror of
https://github.com/logseq/logseq.git
synced 2026-05-25 13:14:39 +00:00
Multiple keyboard-navigation fixes for the unified icon-picker: - After committing a color, return DOM focus to the highlighted tile via Radix's onCloseAutoFocus instead of trying to focus during the swatch click (Radix's FocusScope traps focus while the popover is mounted, so any synchronous .focus() is silently undone). Routed through a new :after-close! kwarg on color-picker. - focus-grid! now moves DOM focus to the active tile alongside updating *highlighted-index, so activeElement and .is-highlighted always coincide (WAI-APG roving-focus pattern, no double focus ring). - Stable refs in icon-search and asset-picker: created once in :will-mount, stored in component state. rum/create-ref produces a new RefObject every render in defcs, which left popover-captured closures holding orphaned refs whose .current was nil after later renders. - Search results now filter by tab content type while keeping the query active across tabs: :all shows both, :emoji only emoji matches, :icon only icon matches. Mirrors the gate in compute-flat-items so the visible grid and keyboard-nav flat-items list stay in sync. - emojis-cp / icons-cp now forward the full opts to pane-section so highlight, ghost-highlight, focus-region, and wave propagate on the no-search :emoji / :icon tab paths. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>