Accessible name override (falls back to Title)
Emitted after the exit transition completes
Drives the enter/exit transition classes
Open transition finished — transform settles to none
Optional header row text; also the default accessible name
Scrim click / programmatic dismiss
A callback method that performs custom clean-up, invoked immediately before a directive, pipe, or service instance is destroyed.
Focus trap: aria-modal promises assistive tech the background is inert — Tab must cycle within the sheet, never walk out behind the scrim.
Generic bottom sheet — the canonical mobile overlay surface (scrim + panel sliding up from the bottom edge with a grab handle).
Pure chrome, no breakpoint logic: the CALLER decides when a sheet is the right presentation (typically below its mobile breakpoint). Content is projected; the sheet owns the scrim, enter/exit transitions, Escape, focus capture/restore, and the open/close lifecycle.
Modality contract (this is a shared primitive — the a11y baseline is the full one, not the historic house minimum):
role="dialog"+aria-modal="true", focus moves INTO the sheet on open and is trapped there (Tab/Shift+Tab cycle within), body scroll is locked while open, and focus returns to the opener on close.Mechanics notes (learned from the earlier hand-rolled sheets):
transitions (the filter-popover sheet's mount-onlyanimationcannot animate dismissal).transform: none, NOTtranslateY(0)— any non-none transform makes the sheet a containing block and breaksposition: fixeddescendants (dropdowns/popovers projected into it).Example