Buckets:
| 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, | |
| }) | |
Xet Storage Details
- Size:
- 1.45 kB
- Xet hash:
- e2e62f611150c2b7429db8fb3ddc9b6b72e3d697e7d629ccdff912036af62cfa
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.