Skip to content

feat(sheet): new TEDI-Ready component #530 - #830

Open
intermetric wants to merge 2 commits into
rcfrom
feat/530-sheet-tedi-ready
Open

intermetric wants to merge 2 commits into
rcfrom
feat/530-sheet-tedi-ready

Conversation

@intermetric

@intermetric intermetric commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • New Features
    • Added a configurable bottom sheet for dialogs and mobile experiences, with accessible headers, body and footer sections, and controls for opening, closing, collapsing, and dismissing.
    • Added drag-to-close and snap-point behavior, plus options for backdrop, scrolling, focus, sizing, and docked layouts.
    • Added guidance and interactive examples for using and configuring sheets.

@coderabbitai

coderabbitai Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
Walkthrough

The PR adds a standalone bottom-sheet component to the overlay package. It provides configurable content, accessible trigger and close controls, focus and overlay behavior, dragging, snap points, and header, body, and footer components. It also adds tests, Storybook examples, translations, and usage guidance.

Changes: Sheet component

Layer / File(s) Summary
Public API and responsive configuration
src/tedi/components/overlay/index.ts, src/tedi/components/overlay/sheet/index.ts, src/tedi/components/overlay/sheet/sheet-content.directive.ts, src/tedi/components/overlay/sheet/sheet-trigger.directive.ts, src/tedi/components/overlay/sheet/sheet-close.directive.ts, src/tedi/services/breakpoint/breakpoint.service.ts, src/tedi/services/breakpoint/breakpoint.service.spec.ts, src/tedi/services/translation/translations.ts, skills/tedi-angular/references/components.md
The overlay exports the sheet APIs. The content directive adds inputs for accessibility, focus, sizing, padding, mounting, and snap points. BreakpointService resolves breakpoint-based input values. Translations and component usage guidance are added.
Overlay lifecycle and drag behavior
src/tedi/components/overlay/sheet/sheet.component.ts, src/tedi/components/overlay/sheet/sheet.component.html, src/tedi/components/overlay/sheet/sheet.component.scss, src/tedi/components/overlay/sheet/sheet.component.spec.ts
SheetComponent manages open and collapsed state, overlay attachment, focus, dismissal, pointer dragging, and snap points. The template and styles render the overlay and panel. Tests cover lifecycle, accessibility, dismissal, docked mode, collapse, dragging, and snapping.
Header, body, footer, and examples
src/tedi/components/overlay/sheet/sheet-header/*, src/tedi/components/overlay/sheet/sheet-body/*, src/tedi/components/overlay/sheet/sheet-footer/*, src/tedi/components/overlay/sheet/sheet.component.scss, src/tedi/components/overlay/sheet/sheet.component.spec.ts, src/tedi/components/overlay/sheet/sheet.stories.ts
The header supports default and custom content, title levels, collapse controls, and close controls. The body and footer add padding, alignment, and collapsed-state behavior. Stories demonstrate sheet configurations and interaction patterns.

Estimated code review effort: 4 (Complex) | ~60 minutes

Change: Feature

Sequence Diagram(s)

sequenceDiagram
  actor User
  participant SheetTriggerDirective
  participant SheetComponent
  participant CDKOverlay
  participant FocusTrap
  User->>SheetTriggerDirective: Click trigger
  SheetTriggerDirective->>SheetComponent: Toggle open state
  SheetComponent->>CDKOverlay: Attach sheet template
  SheetComponent->>FocusTrap: Configure focus after rendering
  User->>SheetComponent: Close sheet
  SheetComponent->>CDKOverlay: Detach after closing delay
Loading

Possibly related issues

  • TEDI-Design-System/angular issue 828: The PR adds the Sheet component referenced by the mobile-overlay requirement. This diff does not show TableOfContents or Pagination integration.

Suggested reviewers: mart-sessman, ly-tempel-bitweb

Merge Risk: Low · previous review e860c

Closing sheet controls can briefly remain reachable by keyboard and assistive technology. Make the closing panel inert; otherwise the change is mergeable with this bounded accessibility risk understood.

Pre-merge checks: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly identifies the main change: adding a new TEDI-Ready sheet component. The feat(sheet) scope is concise and relevant.
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 15 files. (4 skipped: 4 unsupported.)

Finishing Touches
Generate docstrings
  • Commit to this branch
  • Create a new PR
Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Tip

🎯 Customize your risk assessments

Guide how CodeRabbit assesses merge risk and security architecture risk. Highlight sensitive changes and explain your security boundaries using Merge Risk Instructions and Security Risk Instructions in your review settings. Security architecture risk assessments require the Advanced plan or above.

✅ Automatic approvals, with your rules

Let CodeRabbit approve pull requests once required threads are resolved, pre-merge checks pass, and your risk limits are met. Enable Automatic approvals in review settings, with overrides for teams or file paths.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

CodeRabbit Verify

  • Run CodeRabbit Verify to test the changes in this pull request.
Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between d86bf8c and e860c8e.

Files selected for processing: 19
  • skills/tedi-angular/references/components.md
  • src/tedi/components/overlay/index.ts
  • src/tedi/components/overlay/sheet/index.ts
  • src/tedi/components/overlay/sheet/sheet-body/sheet-body.component.ts
  • src/tedi/components/overlay/sheet/sheet-close.directive.ts
  • src/tedi/components/overlay/sheet/sheet-content.directive.ts
  • src/tedi/components/overlay/sheet/sheet-footer/sheet-footer.component.ts
  • src/tedi/components/overlay/sheet/sheet-header/sheet-header-content.directive.ts
  • src/tedi/components/overlay/sheet/sheet-header/sheet-header.component.html
  • src/tedi/components/overlay/sheet/sheet-header/sheet-header.component.ts
  • src/tedi/components/overlay/sheet/sheet-trigger.directive.ts
  • src/tedi/components/overlay/sheet/sheet.component.html
  • src/tedi/components/overlay/sheet/sheet.component.scss
  • src/tedi/components/overlay/sheet/sheet.component.spec.ts
  • src/tedi/components/overlay/sheet/sheet.component.ts
  • src/tedi/components/overlay/sheet/sheet.stories.ts
  • src/tedi/services/breakpoint/breakpoint.service.spec.ts
  • src/tedi/services/breakpoint/breakpoint.service.ts
  • src/tedi/services/translation/translations.ts

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown

♿ Accessibility — ✅ no blocking violations

No accessibility violations in the components changed by this PR.

🔕 Known issues — 20 stories marked todo (warn only)

Stories

@codecov

codecov Bot commented Nov 2, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.59551% with 5 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
...c/tedi/components/overlay/sheet/sheet.component.ts 98.17% 3 Missing and 2 partials ⚠️

📢 Thoughts on this report? Let us know!

@coderabbitai coderabbitai Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Fix comments: Fix CodeRabbit comments on this PR

This branch was previously deployed

1 inactive deployment
github-pages — 5f1d2d49 Deployed Nov 3, 2026 by intermetric via Deploy #1362
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant