@askrjs/askr/foundations provides the low-level runtime helpers used to
build headless components.
Foundations are implementation tools, not the application-facing API. They exist to keep composition behavior consistent across packages.
import {
Slot,
composeHandlers,
composeRefs,
controllableState,
formatId,
mergeProps,
} from '@askrjs/askr/foundations';Slotpreserves caller markup without forcing DOM structuremergePropscombines props while preserving caller intentcomposeHandlersandcomposeRefskeep event and ref composition stablecontrollableStatestandardizes controlled and uncontrolled state patternsformatIdkeeps deterministic ids aligned with runtime expectations
Use foundations only when you are implementing components or shared runtime
behavior. Application code should normally import from @askrjs/ui or
@askrjs/themes instead.
@askrjs/askrowns the shared runtime and helper layer@askrjs/uiowns behavior, accessibility, and composition@askrjs/themesowns visual wrappers, layout, and styling
If a change requires a new helper, it belongs in the runtime package and must be validated there before it is consumed by component packages.