feat(web): calendar week view as a drag-and-drop time-grid - #51
Merged
Conversation
Rewrites the Calendar tab into a static time-grid: a shared TimeGutter axis plus 7 DayColumns, each item absolutely positioned by topFactor/spanFactor/colIndex/colCount from toTimeGrid (#18 Task 3). GridItemCard is the poster-tinted card minus the time pill, still wiring ItemMenu/SlotQuickActions unchanged. No drag yet (Task 4); moves go through the existing Move picker. Claude-Session: https://claude.ai/code/session_01VJLReS68zKnpPZgGrbfdLa
Past guide items are non-draggable (useDraggable disabled), but the inner click-to-open button still carried dnd-kit's attributes spread — including aria-disabled="true" and aria-roledescription="draggable" — even though the button remains fully clickable (opening ItemMenu on a past item is intentional). Screen readers would announce the button as disabled while it still works. Only spread listeners/attributes when the card is draggable; past cards render a plain, correctly-labeled button. Claude-Session: https://claude.ai/code/session_01VJLReS68zKnpPZgGrbfdLa
…ength SwapTitle returned the raw titles.runtime_minutes (0 for back-catalog titles TMDB reports no runtime for), so a swap set DurationMin=0 and UpdateGuideItem computed end_min=start_min — a zero-length slot. The generation path already applied the 45/120 default; extract it into a shared defaultRuntime helper and route both paths through it. The old fixed-height calendar hid the collapse; the time-grid renders it as a min-height pill, which surfaced the bug. Claude-Session: https://claude.ai/code/session_01VJLReS68zKnpPZgGrbfdLa
Owner
Author
|
Added a fix while validating a bug found during manual testing (7d9e218): swapped-in items were collapsing to zero height in the time-grid. Root cause was pre-existing and unrelated to the grid itself; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rebuilds the guide Calendar tab as a Google-Calendar-style time-grid, per docs/superpowers/specs/2026-07-18-calendar-timegrid-design.md. The Board tab is intentionally untouched (its overhaul is a separate future PR).
generate, never a manual move.New deps: @dnd-kit/core, @dnd-kit/modifiers.
Verification: per-task reviews (one caught a coupled-conditional-style fixture typo; one hardened a DateStyle-dependent date cast on the enforcement path) plus a final whole-branch review with a live-wire smoke on isolated data confirming future->future move 200, past-slot move 422, move-into-past 422, and window-violating-but-valid move 200.
Not merged yet: held for a manual drag-feel pass on the live stack (both servers serve this branch). Actual pixel snap, cross-day drop, keyboard drag, and the rollback animation are the things to feel.
https://claude.ai/code/session_01VJLReS68zKnpPZgGrbfdLa