{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "glass-code-block-command",
  "title": "Glass Code Block Command",
  "description": "Glass Code Block Command with five variants: clear, frosted, subtle, liquid, and liquid-refract",
  "registryDependencies": [
    "@glasscn/utils",
    "@glasscn/code-block-command",
    "@glasscn/glass-badge",
    "@glasscn/glass-variants",
    "@glasscn/liquid-glass"
  ],
  "files": [
    {
      "path": "components/ui/glasscn/glass-code-block-command.tsx",
      "content": "\"use client\";\n\nimport * as React from \"react\";\n\nimport { FrostGlassVariantProp, glassVariantStyles } from \"@/lib/glass-variants\";\nimport { cn } from \"@/lib/utils\";\n\nimport { CodeBlockCommand, type CodeBlockCommandProps } from \"../code-block-command\";\nimport { GlassBadge } from \"./glass-badge\";\nimport { LiquidGlass } from \"./liquid-glass\";\n\ntype GlassCodeBlockCommandProps = Omit<CodeBlockCommandProps, \"className\"> &\n  FrostGlassVariantProp & { className?: string };\n\nconst borderStyles: Record<string, string> = {\n  clear: \"border-white/[0.5] dark:border-white/[0.12]\",\n  frosted: \"border-white/[0.4] dark:border-white/10\",\n  subtle: \"border-black/[0.05] dark:border-white/[0.08]\",\n  liquid: \"border-white/[0.45] dark:border-white/[0.12]\",\n  \"liquid-refract\": \"border-white/[0.3] dark:border-white/[0.08]\",\n};\n\nconst headerBorderStyles: Record<string, string> = {\n  clear:\n    \"[&_[data-slot=code-block-command-header]]:border-b-black/[0.2] dark:[&_[data-slot=code-block-command-header]]:border-b-white/10\",\n  frosted:\n    \"[&_[data-slot=code-block-command-header]]:border-b-black/[0.2] dark:[&_[data-slot=code-block-command-header]]:border-b-white/10\",\n  subtle:\n    \"[&_[data-slot=code-block-command-header]]:border-b-black/[0.05] dark:[&_[data-slot=code-block-command-header]]:border-b-white/[0.06]\",\n  liquid:\n    \"[&_[data-slot=code-block-command-header]]:border-b-white/[0.35] dark:[&_[data-slot=code-block-command-header]]:border-b-white/[0.10]\",\n  \"liquid-refract\":\n    \"[&_[data-slot=code-block-command-header]]:border-b-white/[0.25] dark:[&_[data-slot=code-block-command-header]]:border-b-white/[0.08]\",\n};\n\nconst tabStyles =\n  \"[&_[data-slot=code-block-command-tab][data-active=false]]:text-muted-foreground [&_[data-slot=code-block-command-tab][data-active=false]]:hover:text-foreground\";\n\nconst activeTabStyles =\n  \"[&_[data-slot=code-block-command-tab][data-active=true]]:border-foreground [&_[data-slot=code-block-command-tab][data-active=true]]:text-foreground dark:[&_[data-slot=code-block-command-tab][data-active=true]]:border-white/80 dark:[&_[data-slot=code-block-command-tab][data-active=true]]:text-white\";\n\nexport function GlassCodeBlockCommand({\n  glassVariant = \"liquid-refract\",\n  className,\n  ...props\n}: GlassCodeBlockCommandProps) {\n  const badgeVariant = glassVariant === \"liquid-refract\" ? \"clear\" : glassVariant;\n  const glassBadge = React.useCallback(\n    (badgeProps: React.ComponentProps<typeof GlassBadge>) => <GlassBadge glassVariant={badgeVariant} {...badgeProps} />,\n    [badgeVariant],\n  );\n\n  const codeBlock = (\n    <CodeBlockCommand\n      badgeComponent={glassBadge}\n      className={cn(\n        glassVariant !== \"liquid-refract\" && glassVariantStyles[glassVariant],\n        glassVariant === \"liquid-refract\" && \"bg-transparent border-0 shadow-none\",\n        borderStyles[glassVariant],\n        headerBorderStyles[glassVariant],\n        tabStyles,\n        activeTabStyles,\n        \"bg-background/55 text-foreground\",\n        className,\n      )}\n      {...props}\n    />\n  );\n\n  if (glassVariant === \"liquid-refract\") {\n    return <LiquidGlass className=\"rounded-xl\">{codeBlock}</LiquidGlass>;\n  }\n\n  return codeBlock;\n}\n\nexport { CodeBlockCommand, type CodeBlockCommandProps };\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:component"
}