item
gmhlab/itemFreeComponent
gmhlab publishes no description for this item.
Install it
npx shadcn@latest add https://raw.githubusercontent.com/gmhlab/monorepo/main/packages/ui/public/r/item.jsonSource
1import * as React from "react"2import { cva, type VariantProps } from "class-variance-authority"3import { Slot } from "radix-ui"45import { cn } from "@/lib/utils"6import { Separator } from "@/components/ui/separator"78function ItemGroup({ className, ...props }: React.ComponentProps<"div">) {9 return (10 <div11 role="list"12 data-slot="item-group"13 className={cn("group/item-group flex flex-col", className)}14 {...props}15 />16 )17}1819function ItemSeparator({20 className,21 ...props22}: React.ComponentProps<typeof Separator>) {23 return (24 <Separator25 data-slot="item-separator"26 orientation="horizontal"27 className={cn("my-0", className)}28 {...props}29 />30 )31}3233const itemVariants = cva(34 "group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",35 {36 variants: {37 variant: {38 default: "bg-transparent",39 outline: "border-border",40 muted: "bg-muted/50",41 },42 size: {43 default: "p-4 gap-4 ",44 sm: "py-3 px-4 gap-2.5",45 },46 },47 defaultVariants: {48 variant: "default",49 size: "default",50 },51 }52)5354function Item({55 className,56 variant = "default",57 size = "default",58 asChild = false,59 ...props60}: React.ComponentProps<"div"> &61 VariantProps<typeof itemVariants> & { asChild?: boolean }) {62 const Comp = asChild ? Slot.Root : "div"63 return (64 <Comp65 data-slot="item"66 data-variant={variant}67 data-size={size}68 className={cn(itemVariants({ variant, size, className }))}69 {...props}70 />71 )72}7374const itemMediaVariants = cva(75 "flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5",76 {77 variants: {78 variant: {79 default: "bg-transparent",80 icon: "size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4",81 image:82 "size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover",83 },84 },85 defaultVariants: {86 variant: "default",87 },88 }89)9091function ItemMedia({92 className,93 variant = "default",94 ...props95}: React.ComponentProps<"div"> & VariantProps<typeof itemMediaVariants>) {96 return (97 <div98// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from gmhlab
All 64 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| accordionaccordion | gmhlab | Components | Free | 2 deps | |
| alertalert | gmhlab | Components | Free | 1 dep | |
| alert-dialogalert-dialog | gmhlab | Components | Free | 1 dep | |
| aspect-ratioaspect-ratio | gmhlab | Components | Free | 1 dep | |
| avataravatar | gmhlab | Components | Free | 1 dep | |
| badgebadge | gmhlab | Components | Free | 2 deps | |
| breadcrumbbreadcrumb | gmhlab | Components | Free | 2 deps | |
| buttonbutton | gmhlab | Components | Free | 2 deps |
