Steps to reproduce
<Accordion>
<AccordionTrigger className={'extraTriggerClass'}>trigger</AccordionTrigger>
<AccordionContent className={'extraContentClass'}>content</AccordionContent>
</Accordion>
Expected Behavior
Should result in a trigger button with classes like Accordion__trigger ExpandCollapse__trigger extraTriggerClass
(it actually results in extraTriggerClass ExpandCollapse__trigger)
Root cause
The bug is a prop-spread ordering issue in Accordion.tsx:98-107:
<PanelTrigger
...
className={classnames('Accordion__trigger', trigger.props.className)} // ← line 101: "Accordion__trigger extraTriggerClass"
...
{...trigger.props} // ← line 104: spreads className:"extraTriggerClass", clobbering line 101
>
Tracing the reproduction (<AccordionTrigger className="extraTriggerClass">):
- Line 101 composes the intended value:
"Accordion__trigger extraTriggerClass".
- Line 104 spreads
{...trigger.props} after the explicit className. Since trigger.props contains className: "extraTriggerClass", the later spread overwrites the composed value. PanelTrigger receives just "extraTriggerClass" — Accordion__trigger is silently dropped.
PanelTrigger.tsx:41 then composes its own: classnames("extraTriggerClass", 'ExpandCollapse__trigger', ...) → "extraTriggerClass ExpandCollapse__trigger".
Version
7.2.0
What browser(s) are you experiencing the problem on?
Chrome
Relevant log output
Steps to reproduce
Expected Behavior
Should result in a trigger button with classes like
Accordion__trigger ExpandCollapse__trigger extraTriggerClass(it actually results in
extraTriggerClass ExpandCollapse__trigger)Root cause
The bug is a prop-spread ordering issue in
Accordion.tsx:98-107:Tracing the reproduction (
<AccordionTrigger className="extraTriggerClass">):"Accordion__trigger extraTriggerClass".{...trigger.props}after the explicitclassName. Sincetrigger.propscontainsclassName: "extraTriggerClass", the later spread overwrites the composed value.PanelTriggerreceives just"extraTriggerClass"—Accordion__triggeris silently dropped.PanelTrigger.tsx:41then composes its own:classnames("extraTriggerClass", 'ExpandCollapse__trigger', ...)→"extraTriggerClass ExpandCollapse__trigger".Version
7.2.0
What browser(s) are you experiencing the problem on?
Chrome
Relevant log output