docs: add SPEC.md to util and hook packages - #34
Merged
Conversation
Fill the SPEC.md gap for the eight packages that had none: the two core utils (controllable, overlay), the four DOM utils (focus-trap, navigation, overlay, scroll-lock), and the two React hooks (use-focus-trap, use-scroll-lock). Core utils follow the behavior-contract shape; React hooks defer behavior to their DOM spec and document their own API. Docs only — empty changeset, no version bump. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
What
Every package should carry a
SPEC.md, but only the two dialog packages had one. This fills the gap for the remaining eight:controllable,overlayfocus-trap,navigation,overlay,scroll-lockuse-focus-trap,use-scroll-lockApproach
core/dialog/SPEC.md(Reference / Overview / Behavior / Constraints / Internals) plus an API table, since they're consumed as libraries.Internals(Position/Why) table — theSymbol.forrealm-global stores, selector-based focusability, the microtask-deferred back-guard consumption, etc. — cross-referencing the dialog spec rather than restating it.isTopmostLayer(id)), matching howreact-dialogwires them.packages/react(the private Storybook host) is intentionally left without a spec.Release
Docs only — no package changes. Ships with an empty changeset so no version bump is triggered.