mirror of
https://github.com/anomalyco/opencode.git
synced 2026-05-02 02:36:52 +00:00
36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
import { Collapsible as Kobalte, CollapsibleRootProps } from "@kobalte/core/collapsible"
|
|
import { ComponentProps, ParentProps, splitProps } from "solid-js"
|
|
|
|
export interface CollapsibleProps extends ParentProps<CollapsibleRootProps> {
|
|
class?: string
|
|
classList?: ComponentProps<"div">["classList"]
|
|
}
|
|
|
|
function CollapsibleRoot(props: CollapsibleProps) {
|
|
const [local, others] = splitProps(props, ["class", "classList"])
|
|
|
|
return (
|
|
<Kobalte
|
|
data-component="collapsible"
|
|
classList={{
|
|
...(local.classList ?? {}),
|
|
[local.class ?? ""]: !!local.class,
|
|
}}
|
|
{...others}
|
|
/>
|
|
)
|
|
}
|
|
|
|
function CollapsibleTrigger(props: ComponentProps<typeof Kobalte.Trigger>) {
|
|
return <Kobalte.Trigger data-slot="trigger" {...props} />
|
|
}
|
|
|
|
function CollapsibleContent(props: ComponentProps<typeof Kobalte.Content>) {
|
|
return <Kobalte.Content data-slot="content" {...props} />
|
|
}
|
|
|
|
export const Collapsible = Object.assign(CollapsibleRoot, {
|
|
Trigger: CollapsibleTrigger,
|
|
Content: CollapsibleContent,
|
|
})
|