Download packages/ui/src/components/collapsible.tsx from SaylorTwift/opencode: direct link, hf CLI and curl.
- Browser
- Download file 1.45 kB
-
https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/ui/src/components/collapsible.tsx
- Command line
-
hf download hf://SaylorTwift/opencode/packages/ui/src/components/collapsible.tsx
-
curl -L -o collapsible.tsx https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/ui/src/components/collapsible.tsx
1.45 kB
| import { Collapsible as Kobalte, CollapsibleRootProps } from "@kobalte/core/collapsible" | |
| import { ComponentProps, ParentProps, splitProps } from "solid-js" | |
| import { Icon } from "./icon" | |
| export interface CollapsibleProps extends ParentProps<CollapsibleRootProps> { | |
| class?: string | |
| classList?: ComponentProps<"div">["classList"] | |
| variant?: "normal" | "ghost" | |
| } | |
| function CollapsibleRoot(props: CollapsibleProps) { | |
| const [local, others] = splitProps(props, ["class", "classList", "variant"]) | |
| return ( | |
| <Kobalte | |
| data-component="collapsible" | |
| data-variant={local.variant || "normal"} | |
| classList={{ | |
| ...local.classList, | |
| [local.class ?? ""]: !!local.class, | |
| }} | |
| {...others} | |
| /> | |
| ) | |
| } | |
| function CollapsibleTrigger(props: ComponentProps<typeof Kobalte.Trigger>) { | |
| return <Kobalte.Trigger data-slot="collapsible-trigger" {...props} /> | |
| } | |
| function CollapsibleContent(props: ComponentProps<typeof Kobalte.Content>) { | |
| return <Kobalte.Content data-slot="collapsible-content" {...props} /> | |
| } | |
| function CollapsibleArrow(props?: ComponentProps<"div">) { | |
| return ( | |
| <div data-slot="collapsible-arrow" {...(props || {})}> | |
| <span data-slot="collapsible-arrow-icon"> | |
| <Icon name="chevron-down" size="small" /> | |
| </span> | |
| </div> | |
| ) | |
| } | |
| export const Collapsible = Object.assign(CollapsibleRoot, { | |
| Arrow: CollapsibleArrow, | |
| Trigger: CollapsibleTrigger, | |
| Content: CollapsibleContent, | |
| }) | |