"use client" import * as React from "react" import { type Style, type StyleName } from "@/registry/config" import { LockButton } from "@/app/(app)/(create)/components/lock-button" import { Picker, PickerContent, PickerGroup, PickerRadioGroup, PickerRadioItem, PickerTrigger, } from "@/app/(app)/(create)/components/picker" import { usePreviewOverride } from "@/app/(app)/(create)/components/preview-override" import { useDesignSystemSearchParams } from "@/app/(app)/(create)/lib/search-params" export function StylePicker({ styles, isMobile, anchorRef, }: { styles: readonly Style[] isMobile: boolean anchorRef: React.RefObject }) { const [params, setParams] = useDesignSystemSearchParams() const { setOverride, clearOverride } = usePreviewOverride() const currentStyle = styles.find((style) => style.name === params.style) return (
{ if (!open) { clearOverride() } }} >
Style
{currentStyle?.title}
{currentStyle?.icon && (
{React.cloneElement(currentStyle.icon, { className: "size-4", })}
)}
{ setParams({ style: value as StyleName }) }} onItemPreview={ isMobile ? undefined : (value) => setOverride({ style: value as StyleName }) } > {styles.map((style) => ( {style.title} ))}
) }