fix(component): Add asChild support to Accordion component #7949
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR adds
asChild
support to the Accordion component, allowing users to compose the trigger with their own custom components. This aligns with Radix UI's composition patterns and provides greater flexibility for customization.Problem
When attempting to use
asChild
prop withAccordionTrigger
, users encounter the following errorThis occurs because the current implementation renders multiple children (content + icon), which is incompatible with Radix UI's
Slot
component that requires a single child element for prop merging.Solution
Following Radix UI's
Slot
component pattern, I've implemented conditional rendering thatasChild
is true (ensuring single element)asChild
is false (maintaining current behavior)Changes Made
Modified Files
apps/www/registry/default/ui/accordion.tsx
apps/www/registry/new-york/ui/accordion.tsx
Key Implementation
Testing
asChild
prop with custom componentshideIcon
,icon
)pnpm build:registry
Usage Examples
Checklist
default
andnew-york
stylespnpm build:registry
Additional Notes
This implementation
hideIcon
andicon
propsAccordionTriggerProps
type for TypeScript usersRelated issues
Closes #4732
Related documents