Skip to content

feat(project-creation): Add reusable collapsible section for create flow#117847

Merged
jaydgoss merged 1 commit into
masterfrom
jaygoss/scm-collapsible-section
Jun 22, 2026
Merged

feat(project-creation): Add reusable collapsible section for create flow#117847
jaydgoss merged 1 commit into
masterfrom
jaygoss/scm-collapsible-section

Conversation

@jaydgoss

@jaydgoss jaydgoss commented Jun 16, 2026

Copy link
Copy Markdown
Member

TLDR

Introduces ScmCollapsibleSection, a reusable collapsible section for the SCM project-creation flow. The component lands on its own here and is not yet consumed in production; the alert-frequency follow-up (#117849) is its first consumer.

Details

  • ScmCollapsibleSection puts the chevron and title in one transparent toggle button (mirroring the core Disclosure look) with an optional trailing slot pinned right. The body animates its own height (auto to 0) so sibling layout="position" cards below reflow through normal document flow, and initial={false} skips the mount animation so it renders in its defaultExpanded state.
  • It is a local variant of the core Disclosure rather than a consumer: Disclosure.Content hides with display: none, which cannot tween and would not reflow the sibling cards, and Disclosure.Title's full-width stretched button cannot express a content-hugging toggle without forking the shared component.
  • The component has no production consumer in this PR, so it is added to the knip production entry points (see knip.config.ts). feat(project-creation): Make alert frequency collapsible via ScmCollapsibleSection #117849 removes that exemption when it wires the component into alert frequency.

Stack

@github-actions github-actions Bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Jun 16, 2026
@jaydgoss jaydgoss force-pushed the jaygoss/scm-collapsible-section branch from 7c6a809 to c20e5e2 Compare June 16, 2026 21:32
@jaydgoss jaydgoss force-pushed the jaygoss/vdy-77-project-creation-ui-polish-and-analytics-pass branch from 59e9bd9 to b5ae2bc Compare June 16, 2026 21:46
@jaydgoss jaydgoss force-pushed the jaygoss/scm-collapsible-section branch from c20e5e2 to b56d395 Compare June 16, 2026 21:46
@jaydgoss jaydgoss marked this pull request as ready for review June 17, 2026 18:17
@jaydgoss jaydgoss requested a review from a team as a code owner June 17, 2026 18:17
Comment thread static/app/views/onboarding/components/scmCollapsibleSection.tsx
@jaydgoss jaydgoss force-pushed the jaygoss/vdy-77-project-creation-ui-polish-and-analytics-pass branch from b5ae2bc to dda33cc Compare June 22, 2026 16:01
@jaydgoss jaydgoss force-pushed the jaygoss/scm-collapsible-section branch from 513fc52 to 31441bf Compare June 22, 2026 16:01
@jaydgoss jaydgoss force-pushed the jaygoss/vdy-77-project-creation-ui-polish-and-analytics-pass branch from dda33cc to a171292 Compare June 22, 2026 16:43
@jaydgoss jaydgoss force-pushed the jaygoss/scm-collapsible-section branch from 31441bf to 8c502bd Compare June 22, 2026 16:43
jaydgoss added a commit that referenced this pull request Jun 22, 2026
…low (#117846)

## TLDR

Typography and copy polish across the SCM project-creation flow:
normalized heading levels and text sizing, and simplified the
create-project intro copy.

## Details

- Dropped section headings from `h2`/`xl` to `h3` and stepped body text
from `lg` to `md` across `scmFeatureInfoCards`,
`scmFeatureSelectionCards`, `scmProjectDetailsCore`, and
`scmCreateProject`.
- Simplified the create-project intro copy and removed the docs link.

## Stack

- [#117731](#117731): SCM
integration selector (base of this PR)
- **PR 2 (this) #117846:** Typography and copy polish
- [#117847](#117847): Reusable
collapsible section (stacked on this)
- [#117849](#117849):
Alert-frequency collapsible

Draft: more changes coming on this branch.
Base automatically changed from jaygoss/vdy-77-project-creation-ui-polish-and-analytics-pass to master June 22, 2026 16:55
@jaydgoss jaydgoss force-pushed the jaygoss/scm-collapsible-section branch from 8c502bd to a191798 Compare June 22, 2026 16:57
Adds a reusable collapsible section with an animated body and an
accessible toggle. The aria-controls attribute is dropped while the
body is unmounted so it never points at a missing element.

Not yet consumed in production, so add a knip production-entry
exemption. The follow-up that wires it into alert frequency removes
the exemption.
@jaydgoss jaydgoss force-pushed the jaygoss/scm-collapsible-section branch from a191798 to d935cd4 Compare June 22, 2026 17:15
@jaydgoss jaydgoss requested a review from a team as a code owner June 22, 2026 17:15
@jaydgoss jaydgoss merged commit 4040cc9 into master Jun 22, 2026
79 checks passed
@jaydgoss jaydgoss deleted the jaygoss/scm-collapsible-section branch June 22, 2026 17:26
jaydgoss added a commit that referenced this pull request Jun 22, 2026
…psibleSection (#117849)

## TLDR

Applies `ScmCollapsibleSection` to the alert-frequency section of
`ScmProjectDetailsCore`, folding it behind a toggle in the
project-creation flow. Onboarding keeps the always-expanded header. This
is the first production consumer of the component.

## Details

- Gated with `collapsible = analyticsFlow === 'project-creation'`.
- The chevron and "Alert frequency" title replace the `IconSiren`
header, and the "Get notified when things go wrong" subtitle moves into
the collapsible body so it hides when collapsed.
- Onboarding renders the original `IconSiren` header with an
always-expanded body. The body markup is shared between both branches,
so onboarding stays visually unchanged.
- Removes the knip production-entry exemption that #117847 added for
`ScmCollapsibleSection`. Now that the component has a production
consumer, the exemption is redundant and would trip knip's config-hint
check.

## Stack

- [#117731](#117731): SCM
integration selector (merged)
- [#117846](#117846): Typography
and copy polish (merged)
- [#117847](#117847): Reusable
collapsible section (base of this PR)
- **PR 4 (this) #117849:** Alert-frequency collapsible
sehr-m pushed a commit that referenced this pull request Jun 23, 2026
…low (#117846)

## TLDR

Typography and copy polish across the SCM project-creation flow:
normalized heading levels and text sizing, and simplified the
create-project intro copy.

## Details

- Dropped section headings from `h2`/`xl` to `h3` and stepped body text
from `lg` to `md` across `scmFeatureInfoCards`,
`scmFeatureSelectionCards`, `scmProjectDetailsCore`, and
`scmCreateProject`.
- Simplified the create-project intro copy and removed the docs link.

## Stack

- [#117731](#117731): SCM
integration selector (base of this PR)
- **PR 2 (this) #117846:** Typography and copy polish
- [#117847](#117847): Reusable
collapsible section (stacked on this)
- [#117849](#117849):
Alert-frequency collapsible

Draft: more changes coming on this branch.
sehr-m pushed a commit that referenced this pull request Jun 23, 2026
…low (#117847)

## TLDR

Introduces `ScmCollapsibleSection`, a reusable collapsible section for
the SCM project-creation flow. The component lands on its own here and
is not yet consumed in production; the alert-frequency follow-up
(#117849) is its first consumer.

## Details

- `ScmCollapsibleSection` puts the chevron and title in one transparent
toggle button (mirroring the core Disclosure look) with an optional
trailing slot pinned right. The body animates its own height (auto to 0)
so sibling `layout="position"` cards below reflow through normal
document flow, and `initial={false}` skips the mount animation so it
renders in its `defaultExpanded` state.
- It is a local variant of the core Disclosure rather than a consumer:
`Disclosure.Content` hides with `display: none`, which cannot tween and
would not reflow the sibling cards, and `Disclosure.Title`'s full-width
stretched button cannot express a content-hugging toggle without forking
the shared component.
- The component has no production consumer in this PR, so it is added to
the knip production entry points (see `knip.config.ts`). #117849 removes
that exemption when it wires the component into alert frequency.

## Stack

- [#117731](#117731): SCM
integration selector (merged)
- [#117846](#117846): Typography
and copy polish (merged)
- **PR 3 (this) #117847:** Reusable collapsible section
- [#117849](#117849):
Alert-frequency collapsible (stacked on this)
sehr-m pushed a commit that referenced this pull request Jun 23, 2026
…psibleSection (#117849)

## TLDR

Applies `ScmCollapsibleSection` to the alert-frequency section of
`ScmProjectDetailsCore`, folding it behind a toggle in the
project-creation flow. Onboarding keeps the always-expanded header. This
is the first production consumer of the component.

## Details

- Gated with `collapsible = analyticsFlow === 'project-creation'`.
- The chevron and "Alert frequency" title replace the `IconSiren`
header, and the "Get notified when things go wrong" subtitle moves into
the collapsible body so it hides when collapsed.
- Onboarding renders the original `IconSiren` header with an
always-expanded body. The body markup is shared between both branches,
so onboarding stays visually unchanged.
- Removes the knip production-entry exemption that #117847 added for
`ScmCollapsibleSection`. Now that the component has a production
consumer, the exemption is redundant and would trip knip's config-hint
check.

## Stack

- [#117731](#117731): SCM
integration selector (merged)
- [#117846](#117846): Typography
and copy polish (merged)
- [#117847](#117847): Reusable
collapsible section (base of this PR)
- **PR 4 (this) #117849:** Alert-frequency collapsible
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants