{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "glass-combobox",
  "title": "Glass Combobox",
  "description": "Glass Combobox with five variants: clear, frosted, subtle, liquid, and liquid-refract",
  "registryDependencies": [
    "@glasscn/utils",
    "@glasscn/combobox",
    "@glasscn/glass-variants",
    "@glasscn/liquid-glass"
  ],
  "files": [
    {
      "path": "components/ui/glasscn/glass-combobox.tsx",
      "content": "\"use client\";\n\nimport * as React from \"react\";\n\nimport { type FrostGlassVariant, type FrostGlassVariantProp, glassVariantStyles } from \"@/lib/glass-variants\";\nimport { cn } from \"@/lib/utils\";\n\nimport { Combobox, ComboboxContent, ComboboxInput } from \"../combobox\";\nimport { LiquidGlass } from \"./liquid-glass\";\n\nconst GlassComboboxVariantContext = React.createContext<FrostGlassVariant>(\"liquid-refract\");\n\ntype GlassComboboxProps<T extends readonly string[]> = React.ComponentProps<typeof Combobox<T>> & FrostGlassVariantProp;\n\nfunction GlassCombobox<T extends readonly string[]>({\n  glassVariant = \"liquid-refract\",\n  ...props\n}: GlassComboboxProps<T>) {\n  return (\n    <GlassComboboxVariantContext.Provider value={glassVariant}>\n      <Combobox data-slot=\"glass-combobox\" {...props} />\n    </GlassComboboxVariantContext.Provider>\n  );\n}\n\nfunction GlassComboboxInput({ className, inputClassName, ...props }: React.ComponentProps<typeof ComboboxInput>) {\n  const variant = React.useContext(GlassComboboxVariantContext);\n\n  const baseStyles =\n    \"border-white/40 bg-white/40 text-foreground shadow-[0_8px_30px_rgba(255,255,255,0.08)] dark:border-white/12 dark:bg-black/40\";\n\n  if (variant === \"liquid-refract\") {\n    return (\n      <LiquidGlass className={cn(\"rounded-lg\", className)}>\n        <ComboboxInput\n          data-slot=\"glass-combobox-input\"\n          className={cn(\"bg-transparent border-0 shadow-none\", baseStyles, className)}\n          inputClassName={cn(\"placeholder:text-foreground/75\", inputClassName)}\n          {...props}\n        />\n      </LiquidGlass>\n    );\n  }\n\n  return (\n    <ComboboxInput\n      data-slot=\"glass-combobox-input\"\n      className={cn(glassVariantStyles[variant], baseStyles, className)}\n      inputClassName={cn(\"placeholder:text-foreground/75\", inputClassName)}\n      {...props}\n    />\n  );\n}\n\nfunction GlassComboboxContent({ className, ...props }: React.ComponentProps<typeof ComboboxContent>) {\n  const variant = React.useContext(GlassComboboxVariantContext);\n\n  return (\n    <ComboboxContent\n      data-slot=\"glass-combobox-content\"\n      className={cn(\n        variant !== \"liquid-refract\" && glassVariantStyles[variant],\n        \"rounded-xl border border-white/30 bg-white/60 text-foreground shadow-2xl ring-1 ring-white/20 dark:border-white/10 dark:bg-black/55 dark:ring-white/10\",\n        \"[&_[data-slot=combobox-item][data-highlighted]]:bg-white/70 [&_[data-slot=combobox-item][data-highlighted]]:text-black dark:[&_[data-slot=combobox-item][data-highlighted]]:bg-white/12 dark:[&_[data-slot=combobox-item][data-highlighted]]:text-white\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nexport { GlassCombobox, GlassComboboxContent, GlassComboboxInput };\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:component"
}