feat(fuselage)!: Remove `ContextualbarV2` in favor of `Contextualbar`
Proposed changes (including videos or screenshots)
Removes the ContextualbarV2 component family and promotes its implementation into the Contextualbar family, which is no longer deprecated. The ContextualbarV2* components, props types and the src/components/ContextualbarV2 directory are gone; Contextualbar* is now the single, current API.
This is a breaking change for consumers on either name:
| Before | After |
|---|---|
ContextualbarV2* | Contextualbar* (drop the V2) |
Contextualbar* (legacy look) | same name, now rendering the V2 look and behavior |
What actually changed behind the Contextualbar* names:
ContextualbarHeader— heightx56→x44, inline padding24→16, and theMargins inline='x4'wrapper replaced by an 8pxgap.ContextualbarAction—nameis now typed asIconButtonProps['icon']andiconis omitted from the forwarded props, instead ofIconProps['name'].ContextualbarEmptyContentProps— now extendsContextualbarContentPropsrather than re-deriving fromBoxProps.ContextualbarIcon,ContextualbarSection,ContextualbarTitle,ContextualbarFooterandContextualbarSkeletonpick up their V2 spacing/typography counterparts.
Follows up on #2135, which deprecated the legacy family in favor of ContextualbarV2.
Issue(s)
Further comments
Verified locally on the branch:
yarn build(all 18 packages) — api-extractor regeneratedfuselage.api.mdwith no drift; the report now shows theContextualbar*exports as@public(no@deprecated) and noContextualbarV2*symbols at all.yarn testinpackages/fuselage— 80 suites, 482 tests, 177 snapshots passing. TheContextualbarsnapshots were regenerated to reflect the new markup.yarn lintinpackages/fuselage— 0 errors; only the 3 pre-existingreact-hooks/exhaustive-depswarnings inMultiSelect/SelectLegacy.tsc --noEmitand prettier/stylelint clean.grepover the repo confirms no source file referencesContextualbarV2anymore.
Visual regression was not run locally — worth running here, since the promoted implementation changes rendered output for anything still using the Contextualbar* names.
One thing to decide before release: .changeset/lucky-plums-jump.md ("Deprecate the Contextualbar component family in favor of ContextualbarV2", from #2135) is still pending and unreleased. Since this PR reverses that deprecation in the same unreleased version, the changelog would carry both entries and read contradictorily. I left it in place rather than dropping it unilaterally — happy to remove it in this PR if you agree.