Skip to content

Pluck for iPad: a split view with a sidebar, keyboard shortcuts, and the App Store iPad set - #134

Merged
NiallJoeMaher merged 1 commit into
mainfrom
ipad
Nov 3, 2026
Merged

NiallJoeMaher merged 1 commit into
mainfrom
ipad

Conversation

@NiallJoeMaher

Copy link
Copy Markdown
Contributor

Turns on iPad. (Replaces #133, the same tree as one signed-off commit: the handover commit had no Signed-off-by, and the DCO check reads every commit.) From 600 wide the app is a split view: sidebar, list column, detail column. Narrower than that (an iPhone, or an iPad window in Split View or Stage Manager), it keeps the iPhone layout unchanged.

What's in it

  • Split view (components/split): pinned sidebar in landscape; in portrait it hides behind a button and comes in from the edge.
    • The list column shows Inbox, Later, Lists, Search, Archive, Bin and Settings.
    • The detail column shows the Item, the List or a Settings group.
  • Keyboard: modules/key-commands registers UIKeyCommands, which iPadOS lists when ⌘ is held. Single-letter commands step aside while a text field is being edited.
  • iPad Add: a form sheet with Link, Note, Todo and Thing. ⌘↩ plucks and Esc cancels.
  • Words: on an iPad they say "iPad" ({device} in nine messages, all ten languages). The share sheet gets queuedBodyPad.
  • App Store iPad set: a store demo seed (scripts/demo-seed.mjs --store) and scripts/store-ipad.mjs.

Review fixes, added on top

  • The detail column's List Share built the public link on defaultServer, so a self-hosted account shared a getpluck.io link. It now uses the session's server, as share.tsx does.
  • The kind chips' filter stayed on after a Stage Manager window narrowed to the iPhone layout, where there are no chips. It now applies only in the split view.
  • Merged main. The one conflict was the consent imports in app/_layout.tsx.

Still for Niall (docs/loop/BLOCKED.md): try the keyboard by hand, and capture App Store frames 1, 6 and 7.

Checks: the loop's final gate passed typecheck, lint, test, e2e (57), design and Simulator builds. After merging main: typecheck, lint and 517 unit tests pass locally.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Per4f8yL5A7nL9frZVDJj7

…the App Store iPad set

The iPad design handover and slices 1 to 7 of the iPad loop (ipad-design, #133),
as one signed-off commit: the handover's first commit carried no Signed-off-by.

- From 600 wide a split view: sidebar, list column, detail column; under it the
  iPhone layout, unchanged.
- Hardware keyboard shortcuts (modules/key-commands) in the hold-Command overlay.
- iPad Add as a form sheet; words name the iPad on an iPad, in all ten languages.
- The App Store iPad set: store demo seed and scripts/store-ipad.mjs.
- Review fixes: a List's public link uses the server signed in to, and the kind
  filter applies only while its chips show.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Per4f8yL5A7nL9frZVDJj7
Signed-off-by: NiallJoeMaher <nialljoemaher@gmail.com>
@vercel

vercel Bot commented Nov 3, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
pluck Ready Ready Preview Nov 3, 2026 6:32pm UTC

Request Review

@NiallJoeMaher
NiallJoeMaher merged commit b79a3fe into main Nov 3, 2026
5 checks passed
@NiallJoeMaher
NiallJoeMaher deleted the ipad branch November 3, 2026 18:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant