-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Stepper: define the public boundary for context exports #6060
Open
Description
Problem
@astryxdesign/core/Stepper publicly exports both useStepperContext and StepperContextValue, but the exported value includes component-private coordination such as previousActiveStep and registerStep.
- Public barrel:
packages/core/src/Stepper/index.ts - Context shape:
packages/core/src/Stepper/StepperContext.ts
The source itself describes some fields as internal, and the only repository consumer of registerStep is the built-in Step. However, exporting the hook and full interface makes those details part of the installable TypeScript surface. Internal Stepper changes can therefore become accidental consumer type breaks.
Desired outcome
Decide and encode the supported context boundary:
- If custom Step composition is supported, define and document a stable public subset while keeping registration, measurement, animation, and compact-layout coordination private.
- If the hook/type are not supported public API, deprecate them and remove them only at an explicit compatibility boundary.
Acceptance criteria
- The intended public use case for
useStepperContextis explicit. - Private Stepper coordination is not exposed through a required public interface.
- A compatibility/type test protects the chosen public surface.
- Consumer docs or deprecation guidance match the decision.
Activity
Metadata
Metadata
Assignees
Labels
No labels