Repository navigation
docs(react-timepicker-preview): add TimePicker spec - #36845
Merged
Merged
Conversation
|
Pull request demo site: URL |
Victor Genaev (mainframev)
force-pushed
the
timepicker-preview/spec
branch
from
October 7, 2026 10:52
3b943f4 to
af8f887
Compare
Victor Genaev (mainframev)
changed the base branch from
timepicker-preview/scaffold
to
master
October 7, 2026 10:52
Victor Genaev (mainframev)
changed the base branch from
master
to
timepicker-preview/scaffold
October 7, 2026 10:53
Victor Genaev (mainframev)
changed the base branch from
timepicker-preview/scaffold
to
master
October 7, 2026 10:53
Victor Genaev (mainframev)
added this pull request to stack #36846
October 7, 2026 10:55
This was referenced Oct 7, 2026
Victor Genaev (mainframev)
marked this pull request as draft
October 7, 2026 14:38
📊 Bundle size report✅ No changes found |
Victor Genaev (mainframev)
force-pushed
the
timepicker-preview/spec
branch
from
October 8, 2026 14:59
df96c45 to
c202afe
Compare
Victor Genaev (mainframev)
removed this pull request from stack #36846
October 8, 2026 15:00
Victor Genaev (mainframev)
changed the base branch from
master
to
timepicker-preview/custom-style-hook
October 8, 2026 15:00
Victor Genaev (mainframev)
added this pull request to stack #36857
October 8, 2026 15:00
Victor Genaev (mainframev)
marked this pull request as ready for review
October 8, 2026 15:10
Victor Genaev (mainframev)
force-pushed
the
timepicker-preview/spec
branch
from
October 8, 2026 15:21
c202afe to
417e8a3
Compare
Victor Genaev (mainframev)
removed this pull request from stack #36857
October 8, 2026 15:21
Victor Genaev (mainframev)
changed the base branch from
timepicker-preview/custom-style-hook
to
master
October 8, 2026 15:21
Victor Genaev (mainframev)
added this pull request to stack #36858
October 8, 2026 15:22
Paul Mardling (PaulGMardling)
left a comment
Contributor
There was a problem hiding this comment.
After an agent review, it left me with a few questions
- resolve the locale hour cycle with { hour: 'numeric' }
- narrow the round-trip guarantee to ASCII digits, a colon separator and AM/PM
- define the DST tie-break as the earliest occurrence at or after the start anchor
- add the non-required empty commit to the onChange table and stop calling null without error a clear
- use an accepted input in the normalization example
- reword the compat note on controlled value
Paul Mardling (PaulGMardling)
approved these changes
Oct 14, 2026
Paul Mardling (PaulGMardling)
left a comment
Contributor
There was a problem hiding this comment.
Looks good! Just the hook signature comment to address before merging. Thanks for the updates.
Victor Genaev (mainframev)
requested a review
from Dmytro Kirpa (dmytrokirpa)
October 20, 2026 10:06
Dmytro Kirpa (dmytrokirpa)
approved these changes
Oct 20, 2026
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The documentation-only change has no identified blocking issues.
No open issues 🎉
What changed in this PR
Adds a standalone specification for the preview v9 TimePicker, separating API review from scaffolding and implementation.
Changes:
- Defines value handling, change events, formatting, parsing, and validation.
- Documents composition hooks, migration guidance, and accessibility behavior.
| File | Description |
|---|---|
| packages/react-components/react-timepicker-preview/library/docs/Spec.md | Defines the TimePicker API and behavior contract. |
Review effort: Balanced
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.
Stack: #36811 scaffold (merged) → #36845 spec → #36812 time utilities → #36813 TimePicker → #36814 headless TimePicker
Previous Behavior
The spec for
@fluentui/react-timepicker-previewwas part of the scaffold PR #36811, next to the generated boilerplate.New Behavior
Adds
library/docs/Spec.mdon its own so the API can be reviewed separately from the scaffolding. The first commit is the spec as it was in #36811; the second commit resolves the review comments left there:onSelectedTimeChangedata extendsEventData<'change' | 'click' | 'keydown' | 'blur', TimePickerSelectedTimeChangeEvent>, so it satisfiesEventHandler. A table documents how option selection, freeform commits and clearing are told apart from the payload.dateAnchoris resolved once on mount (initial selected time, else the current date) and never re-derived from later selections. Ranges that cross midnight require an explicitdateAnchor.hourCycleprop, else the locale's viaIntl). The accepted input formats per cycle are listed, with a round-trip guarantee for ASCII digits andAM/PM; localized digits and day periods need a customparseTimeStringToDate.incrementis a finite positive integer.getTimesBetweenadvances by elapsed time and returns no options for an invalid increment.value/defaultValue(Date | null), optionaldisplayValuefor controlled input text, andonChangefiring on commit, in the shape SpinButton uses. Compat'sselectedTime/defaultSelectedTime/onTimeChangeare mapped in the migration table.invalid-input,out-of-boundsandrequired-input(selection, input text, highlighted option), together with therequiredattribute, the clear button and custom parsers.The spec defines the contract. The implementation in #36812/#36813 is aligned to it in those PRs, together with the
timeMath.tsreview on #36812.