33 lines
800 B
TypeScript
33 lines
800 B
TypeScript
"use client"
|
|
|
|
import {
|
|
DisclosurePanel as CollapsibleContentPrimitive,
|
|
Disclosure as CollapsiblePrimitive,
|
|
Button as CollapsibleTriggerPrimitive,
|
|
type ButtonProps,
|
|
type DisclosurePanelProps,
|
|
type DisclosureProps,
|
|
} from "react-aria-components"
|
|
|
|
function Collapsible({ ...props }: DisclosureProps) {
|
|
return <CollapsiblePrimitive data-slot="collapsible" {...props} />
|
|
}
|
|
|
|
function CollapsibleTrigger({ ...props }: ButtonProps) {
|
|
return (
|
|
<CollapsibleTriggerPrimitive
|
|
slot="trigger"
|
|
data-slot="collapsible-trigger"
|
|
{...props}
|
|
/>
|
|
)
|
|
}
|
|
|
|
function CollapsibleContent({ ...props }: DisclosurePanelProps) {
|
|
return (
|
|
<CollapsibleContentPrimitive data-slot="collapsible-content" {...props} />
|
|
)
|
|
}
|
|
|
|
export { Collapsible, CollapsibleTrigger, CollapsibleContent }
|