Collapsible
optics/collapsibleFreeComponent
An interactive component which expands/collapses a panel.
See it running
Open the demo on optics
optics.agusmayol.com.ar/components/collapsibleInstall it
npx shadcn@latest add https://optics.agusmayol.com.ar/r/collapsible.jsonSource
1"use client";23import { Collapsible as CollapsiblePrimitive } from "@base-ui/react/collapsible";4import { cn } from "@/registry/optics/lib/utils";56function Collapsible({7 open = false,8 defaultOpen = false,9 onOpenChange = undefined,10 disabled = false,11 className = "",12 ...props13}) {14 return (15 <CollapsiblePrimitive.Root16 data-slot="collapsible"17 open={open}18 defaultOpen={defaultOpen}19 onOpenChange={onOpenChange}20 disabled={disabled}21 className={className}22 {...props}23 />24 );25}2627function CollapsibleTrigger({ disabled = false, className = "", ...props }) {28 return (29 <CollapsiblePrimitive.Trigger30 data-slot="collapsible-trigger"31 disabled={disabled}32 className={className}33 {...props}34 />35 );36}3738function CollapsibleContent({39 className = "",40 forceMount = false,41 children = null,42 ...props43}) {44 return (45 <CollapsiblePrimitive.Panel46 data-slot="collapsible-content"47 keepMounted={forceMount}48 className={cn(49 "grid transition-[grid-template-rows,opacity] duration-300 ease-out",50 "data-[closed]:grid-rows-[0fr] data-[closed]:opacity-0",51 "data-[starting-style]:grid-rows-[0fr] data-[ending-style]:grid-rows-[0fr]",52 "data-[open]:grid-rows-[1fr] data-[open]:opacity-100",53 className,54 )}55 {...props}56 >57 <div className={cn("min-h-0 overflow-hidden", className)}>{children}</div>58 </CollapsiblePrimitive.Panel>59 );60}6162Collapsible.displayName = "Collapsible";63CollapsibleTrigger.displayName = "CollapsibleTrigger";64CollapsibleContent.displayName = "CollapsibleContent";6566export { Collapsible, CollapsibleTrigger, CollapsibleContent };
What it pulls in
npm packages
Other registry items
Files it writes
More from optics
All 79 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | optics | Components | Free | 5 deps | |
| Alertalert | optics | Components | Free | 4 deps | |
| Alert Dialogalert-dialog | optics | Components | Free | 4 deps | |
| Aspect Ratioaspect-ratio | optics | Components | Free | 2 deps | |
| Auto Heightauto-height | optics | Components | Free | 3 deps | |
| Avataravatar | optics | Components | Free | 3 deps | |
| Badgebadge | optics | Components | Free | 4 deps | |
| Breadcrumbbreadcrumb | optics | Components | Free | 4 deps |
