Repository navigation
spec(DateInput): wheel and calendar rules for the touch sheet - #9402
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
AI review status for this pull request.
|
Contributor
Author
|
/approve-spec e545f89 |
This branch was successfully deployed
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.
Maintainer impact
People choosing a date or time in a phone sheet get one recorded rule for the picker wheel instead of none: a wheel never loses their place at a range limit, opening a sheet never rewrites an untouched value, a value changed elsewhere turns the wheel instead of jumping it, a trackpad drives the wheel like a finger while a mouse-wheel notch turns one row, and the touch calendar pages by month and year from the keyboard. Maintainers get one owner for the wheel:
component:DateInputholds the rules, and TimeInput and DateTimeInput point to it, so a later change edits one record instead of three. No public API, default, token, or theme change. Every rule that main does not yet build is marked as an implementation gap with a matching verification row.Exact decision needed
The current
component:DateInputrecord says nothing about the bottom-sheet picker wheel, its scroll input, or the touch calendar's month pager and year step, so work that changes them has no current authority to review against.Existing authority searched
component:DateInput,component:TimeInput,component:DateTimeInput(all current);spec:AST-094FR42, FR43 (touch presentations, current);spec:AST-043(presentation vocabulary);spec:AST-020FR15 (APG grid);design:reduced-motion. Open work carrying wheel rules in the record's old draft path: #8209, #8200, #8206, #8480, #8698. None of the current records settles the wheel's rest, turn, scroll input, or look.Decision
spec:AST-094FR43 provides (2026-11-01).Changed records:
component:DateInput: ownership line for the shared sheet wheel; non-goal for a cylinder look; FR13 (rest on a disabled row continues to the nearest enabled row; a rest on the committed row or opening out of bounds commits nothing); FR14 (a shown wheel turns onto an outside change); FR15 (trackpad and mouse-wheel input, citingspec:AST-094FR43); PR2 (month pager reports the visible month once per half-month crossed); AR8 (Shift+PageUp/PageDown move by a year); DEC-1 (rest rule), DEC-2 (flat column); verification rows for FR13–FR15, PR2, and AR8; Current-state impact entries for each gap.component:TimeInput: one "does not own" pointer line to DateInput.component:DateTimeInput: one "does not own" pointer line to DateInput.Rejected alternatives
Claim scope and non-goals
Only the sheet wheel's rest, turn, scroll input, and look, the month pager's reporting, and the Shift+Page year step. A fine pointer's native column, the public API, theme tokens, and the time wheels' own clamping in TimeInput FR7 are unchanged.
Evidence and implementation relationship
Rest and turn rules follow UIDatePicker's measured behavior on the iOS 26.2 simulator; scroll input follows
spec:AST-094FR43. This PR records rules only. It unblocks #8209, #8200, #8206 and the rules part of #8480 and #8698; those branches move their record rows todocs/specs/components/DateInput/on rebase and are reviewed against these rows.Writing rubric results
spec:AST-094FR43, the platform observation, and current source.Scope
Validation
pnpm install --frozen-lockfilepnpm check:knowledge: "Knowledge templates and records are aligned."git diff --check