feat(drawer): add organism component#258
Conversation
egdev6
left a comment
There was a problem hiding this comment.
Thanks for the thorough Drawer work. CI and the overall component structure look strong, but I found two implementation issues that should be fixed before merge.
Also, small PR hygiene note: the Workflow gates section still says the Project flow is unchecked and the issue appears as Todo, but #23 now shows In progress. Please update that metadata while touching the PR body.
|
@egdev6 I found a few follow-up Drawer suggestions while reviewing the requested fixes, but I do not want to expand this PR without your opinion. My read:
Happy to handle whichever subset you think should be in this PR, or defer them to a follow-up issue if you prefer keeping this review focused. |
|
Thanks for checking before expanding the PR. My recommendation: include the I would defer the description-warning suppression and reduced-motion overlay polish to a follow-up, and keep the |
|
Thanks, included this before merge. I added Validation:
Pushed in |
egdev6
left a comment
There was a problem hiding this comment.
Thanks, this addresses the asChild forwarding follow-up.
I verified wrapper props and handlers now land on both Drawer.Trigger and Drawer.Close custom children, with regression coverage for both paths. CI is green, including the accessibility audit.
Looks good from my side.
Summary
Closes #23
Review scope
src/components/organisms/drawer/**src/index.tssrc/styles/theme.cssdocs/COMPONENTS.mddocs/DESIGN.md.atl/,judgment/,reports/).Type of change
Workflow gates
Closes #NNNor maintainer approved an exception.status:approvedbefore implementation starts.In progress, branch/worktree recorded.<type>(<optional scope>): <description>..playwright-mcp,page-*.png,page-*.jpeg,*.md.playwright-output.Component evidence (required for component changes)
types.ts,use*.ts,Component.tsx,Component.test.tsx,Component.stories.tsx,index.ts.types.ts; JSX component has no state, CVA calls, or business logic.@defaultJSDoc intypes.ts(node scripts/verify-prop-default-docs.mjs).theme.css; no hardcoded colors or arbitrary color utilities.Accessibility evidence
Validation evidence
pnpm exec tsc --noEmit✅pnpm test -- src/components/organisms/drawer/Drawer.test.tsx✅pnpm run build✅,pnpm run verify:package✅pnpm run storybook-build✅aria-controlsis only present while content is mounted/open.asChildtriggers support Enter/Space keyboard activation.asChildtriggers block child side effects and do not open.Screenshots or recordings
N/A — component behavior is covered by Storybook stories and local visual/a11y checks.
Notes for reviewer
start/end) adapt to bottom-sheet layout belowmd; onmd+, logical LTR/RTL placement seams are exposed viadata-*attributes and responsive classes.Drawer.Titleis required in development/test so the dialog has an accessible name.dismissibleandcloseOnEscapeare intentionally independent; explicit close controls remain available for non-dismissible drawers.In progress; assignee and approved label are present.