{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "glass-select",
  "title": "Glass Select",
  "description": "A liquid glass styled select dropdown with frosted glass styling.",
  "dependencies": [
    "@radix-ui/react-select",
    "lucide-react"
  ],
  "files": [
    {
      "path": "registry/liquid-glass/glass-select.tsx",
      "content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\nconst GlassSelect = SelectPrimitive.Root\n\nconst GlassSelectGroup = SelectPrimitive.Group\n\nconst GlassSelectValue = SelectPrimitive.Value\n\nconst GlassSelectTrigger = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Trigger>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n  <SelectPrimitive.Trigger\n    ref={ref}\n    className={cn(\n      \"flex h-10 w-full items-center justify-between gap-2 rounded-xl px-4 py-2 text-sm\",\n      \"bg-white/10 backdrop-blur-xl border border-white/20\",\n      \"text-white placeholder:text-white/40\",\n      \"shadow-[0_4px_16px_rgba(0,0,0,0.2)]\",\n      \"transition-all duration-300\",\n      \"focus:outline-none focus:border-white/40 focus:bg-white/15\",\n      \"focus:ring-2 focus:ring-cyan-400/30 focus:ring-offset-0\",\n      \"disabled:cursor-not-allowed disabled:opacity-50\",\n      \"[&>span]:line-clamp-1\",\n      className,\n    )}\n    {...props}\n  >\n    {children}\n    <SelectPrimitive.Icon asChild>\n      <ChevronDown className=\"h-4 w-4 text-white/60\" />\n    </SelectPrimitive.Icon>\n  </SelectPrimitive.Trigger>\n))\nGlassSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\nconst GlassSelectScrollUpButton = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n  <SelectPrimitive.ScrollUpButton\n    ref={ref}\n    className={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n    {...props}\n  >\n    <ChevronUp className=\"h-4 w-4 text-white/60\" />\n  </SelectPrimitive.ScrollUpButton>\n))\nGlassSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName\n\nconst GlassSelectScrollDownButton = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n  <SelectPrimitive.ScrollDownButton\n    ref={ref}\n    className={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n    {...props}\n  >\n    <ChevronDown className=\"h-4 w-4 text-white/60\" />\n  </SelectPrimitive.ScrollDownButton>\n))\nGlassSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName\n\nconst GlassSelectContent = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n  <SelectPrimitive.Portal>\n    <SelectPrimitive.Content\n      ref={ref}\n      className={cn(\n        \"relative z-50 max-h-96 min-w-32 overflow-hidden rounded-xl\",\n        \"bg-white/10 backdrop-blur-2xl border border-white/20\",\n        \"shadow-[0_8px_32px_rgba(0,0,0,0.4)]\",\n        \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n        \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n        \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n        \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2\",\n        \"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n        position === \"popper\" &&\n          \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n        className,\n      )}\n      position={position}\n      {...props}\n    >\n      <GlassSelectScrollUpButton />\n      <SelectPrimitive.Viewport\n        className={cn(\n          \"p-1\",\n          position === \"popper\" &&\n            \"h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width)\",\n        )}\n      >\n        {children}\n      </SelectPrimitive.Viewport>\n      <GlassSelectScrollDownButton />\n    </SelectPrimitive.Content>\n  </SelectPrimitive.Portal>\n))\nGlassSelectContent.displayName = SelectPrimitive.Content.displayName\n\nconst GlassSelectLabel = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Label>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n  <SelectPrimitive.Label\n    ref={ref}\n    className={cn(\"px-2 py-1.5 text-sm font-semibold text-white/60\", className)}\n    {...props}\n  />\n))\nGlassSelectLabel.displayName = SelectPrimitive.Label.displayName\n\nconst GlassSelectItem = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Item>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n  <SelectPrimitive.Item\n    ref={ref}\n    className={cn(\n      \"relative flex w-full cursor-pointer select-none items-center rounded-lg py-2 pl-8 pr-2 text-sm\",\n      \"text-white/80 outline-none\",\n      \"focus:bg-white/10 focus:text-white\",\n      \"data-disabled:pointer-events-none data-disabled:opacity-50\",\n      \"transition-colors duration-150\",\n      className,\n    )}\n    {...props}\n  >\n    <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n      <SelectPrimitive.ItemIndicator>\n        <Check className=\"h-4 w-4 text-cyan-400\" />\n      </SelectPrimitive.ItemIndicator>\n    </span>\n    <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n  </SelectPrimitive.Item>\n))\nGlassSelectItem.displayName = SelectPrimitive.Item.displayName\n\nconst GlassSelectSeparator = React.forwardRef<\n  React.ElementRef<typeof SelectPrimitive.Separator>,\n  React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n  <SelectPrimitive.Separator ref={ref} className={cn(\"-mx-1 my-1 h-px bg-white/10\", className)} {...props} />\n))\nGlassSelectSeparator.displayName = SelectPrimitive.Separator.displayName\n\nexport {\n  GlassSelect,\n  GlassSelectGroup,\n  GlassSelectValue,\n  GlassSelectTrigger,\n  GlassSelectContent,\n  GlassSelectLabel,\n  GlassSelectItem,\n  GlassSelectSeparator,\n  GlassSelectScrollUpButton,\n  GlassSelectScrollDownButton,\n}\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:component"
}