"use client" import * as React from "react" import { iconLibraries, type IconLibraryName } 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" const logos = { lucide: ( ), tabler: ( ), hugeicons: ( ), phosphor: ( ), remixicon: ( ), } export function IconLibraryPicker({ isMobile, anchorRef, }: { isMobile: boolean anchorRef: React.RefObject }) { const [params, setParams] = useDesignSystemSearchParams() const { setOverride, clearOverride } = usePreviewOverride() const currentIconLibrary = React.useMemo( () => iconLibraries[params.iconLibrary as keyof typeof iconLibraries], [params.iconLibrary] ) return ( { if (!open) { clearOverride() } }} > Icon Library {currentIconLibrary?.title} {logos[currentIconLibrary?.name as keyof typeof logos]} { setParams({ iconLibrary: value as IconLibraryName }) }} onItemPreview={ isMobile ? undefined : (value) => setOverride({ iconLibrary: value as IconLibraryName }) } > {Object.values(iconLibraries).map((iconLibrary) => ( {iconLibrary.title} ))} ) }