variant-selector-images
stackzero/variant-selector-imagesFreeComponent
stackzero publishes no description for this item.
Install it
npx shadcn@latest add https://ui.stackzero.co/r/variant-selector-images.jsonSource
1"use client";23import * as React from "react";4import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";5import { Circle } from "lucide-react";67import { cn } from "@/lib/utils";8import Image from "next/image";910export interface VariantItem {11 id: string;12 value: string;13 label: string;14 url: string;15 disabled?: boolean;16}1718interface VariantSelectorImagesProps {19 value: string;20 onValueChange: (value: string) => void;21 variants: VariantItem[];22 className?: string;23}2425const VariantSelectorImages = ({26 className,27 onValueChange,28 value,29 variants,30}: VariantSelectorImagesProps) => {31 return (32 <RadioGroupPrimitive.Root33 className={cn("grid grid-cols-2 gap-2 sm:grid-cols-3", className)}34 value={value}35 onValueChange={onValueChange}36 >37 {variants.map((variant) => (38 <label39 key={variant.id}40 className="border-input has-data-[state=checked]:border-ring has-data-[state=checked]:bg-accent has-focus-visible:outline-ring/70 relative flex cursor-pointer flex-col items-center gap-3 rounded-lg border px-2 py-3 text-center shadow-xs shadow-black/5 outline-offset-2 transition-colors has-focus-visible:outline has-data-disabled:cursor-not-allowed has-data-disabled:opacity-50"41 >42 <RadioGroupPrimitive.Item43 value={variant.value}44 disabled={variant.disabled}45 className="sr-only after:absolute after:inset-0"46 >47 <RadioGroupPrimitive.Indicator className="flex items-center justify-center">48 <Circle className="h-2.5 w-2.5 fill-current text-current" />49 </RadioGroupPrimitive.Indicator>50 </RadioGroupPrimitive.Item>51 <Image52 alt={variant.label}53 src={variant.url}54 width={150}55 height={150}56 unoptimized57 />58 <p className="text-muted-foreground text-xs">{variant.label}</p>59 </label>60 ))}61 </RadioGroupPrimitive.Root>62 );63};6465export default VariantSelectorImages;
What it pulls in
npm packages
Files it writes
More from stackzero
All 112 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| face-rating-basicface-rating-basic | stackzero | Components | Free | 1 dep | |
| face-rating-gradientface-rating-gradient | stackzero | Components | Free | 2 deps | |
| image-carousel-basicimage-carousel-basic | stackzero | Components | Free | 5 deps | |
| image-viewer-basicimage-viewer-basic | stackzero | Components | Free | 3 deps | |
| image-viewer-basic-ex-01image-viewer-basic-ex-01 | stackzero | Components | Free | 1 dep | |
| image-viewer-basic-ex-02image-viewer-basic-ex-02 | stackzero | Components | Free | 1 dep | |
| image-viewer-motionimage-viewer-motion | stackzero | Components | Free | 4 deps | |
| image-viewer-motion-ex-01image-viewer-motion-ex-01 | stackzero | Components | Free | 1 dep |
