mirror of
https://github.com/multica-ai/multica.git
synced 2026-09-28 13:23:48 +08:00
* feat(issues): add a peek variant to IssueDetail A single-column layout for the board's side peek: the core properties render as a row of pills under the title (the create dialog's PillButton with the sidebar's pickers), the properties sidebar and its toggle are dropped, and the host supplies the header's leading and trailing controls. The peek keeps its own scroll key and always opens at the top. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: multica-agent <github@multica.ai> * feat(issues): open board cards in a side peek on Shift+Click (MUL-7755) Shift+Click (or Space on a focused card) opens the issue in a floating panel over the board, so it can be triaged without leaving the board. Shift+Click another card switches the panel; on the same card, or Esc, it closes. J / K step through the card's column, the peeked card keeps a brand ring, and the board scrolls it clear of the panel. The page header and toolbar stay usable, and the panel stops above the chat launcher. On web, Shift+Click on a board card no longer opens a browser window; Cmd/Ctrl(+Shift)+Click still open tabs. Board and swimlane only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: multica-agent <github@multica.ai> * feat(issues): animate the side peek and peek the hovered card on Space The panel now enters and exits through motion/react with the shared UI easing: a 200ms fade and 16px slide in, a shorter 150ms fade and 8px slide out, fade-only under reduced motion. The key is stable, so switching issues (J / K, Shift+Click another card) swaps content without replaying it, and the exiting panel stops taking clicks and keys at once. The sideways board scroll that keeps the peeked card in view also respects reduced motion. Space now peeks the card under the pointer as well as a focused card, unless a control has focus and owns Space itself. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: multica-agent <github@multica.ai> * feat(issues): side peek in every issue view, with H / L and arrow keys Shift+Click (and Space on the hovered issue) now opens the side peek from list rows, table rows, gantt rows and swimlane cards as well as the board. The host wraps every view and its loading states, so an open peek survives a view switch; each view publishes its own order: - board: its columns; swimlane: one column per status, running down through the expanded lanes; list, table, gantt: one column in display order, skipping collapsed groups. H / L step to the nearest non-empty column at the same row (clamped), J / K within it. The arrow keys mirror them unless the reader last clicked into the panel, where they scroll it as usual; tabs, radios and sliders keep their own arrows. Peeked rows get a brand tint and leading bar; table cells carry it because pinned cells paint over the row. DataTable gains a generic getRowProps for that. The swimlane scroller reserves room for the panel like the board's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: multica-agent <github@multica.ai> * fix(issues): keep the peek closable in every state, and follow moved cards Review of #8886: - The peek's close button lives in IssueDetail's trailing controls, which the loading and not-found early returns dropped, leaving only Esc. Both states now render the host's trailing controls, and the panel's error boundary gets a fallback with its own close button. - Keep-in-view keyed on the peeked card's neighbours, so a card alone in its column that moved to an empty column never scrolled back into view. It now acts whenever the element standing for the issue is a new one (another issue, a column move, a view switch) and still ignores reorders that leave it in place. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: multica-agent <github@multica.ai> * feat(issues): make default card opening configurable (MUL-7755) Co-authored-by: multica-agent <github@multica.ai> * feat(settings): move the issue-opening preference into the new Preferences page Main folded the Preferences tabs into one page (MUL-7732), deleting the issue tab the preference had been added to. It now lives there as its own "Opening issues" section, in the page's own terms: - device scope badge, like Appearance, since the choice is stored per device - the either/or SegmentedToggle Theme uses, instead of a two-item dropdown - no success toast: the new page announces only failures - a settings-search entry, also matched by its option names Clicks now mean "the other one" with Shift: a plain click opens the preferred target, Shift+Click the other. In side-preview mode that makes the full page one click away again (before, Shift also peeked, leaving only the panel's button or a new tab); a link would otherwise hand Shift to the browser, so the hook navigates in place itself. The row's hint says so. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: multica-agent <github@multica.ai> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: multica-agent <github@multica.ai>