{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "tooltip-glass", "type": "registry:ui", "title": "Tooltip Glass", "description": "Glass-themed tooltip with:", "dependencies": [ "@radix-ui/react-tooltip", "react", "shadcn-glass-ui" ], "registryDependencies": [ "cn" ], "files": [ { "path": "components/glass/ui/tooltip-glass.tsx", "type": "registry:component", "content": "/**\n * TooltipGlass Component\n *\n * Glass-themed tooltip with:\n * - Unified dark design (consistent UX across themes)\n * - Position variants (top/bottom/left/right)\n * - Smooth animation\n * - Built on Radix UI primitives\n *\n * @example Compound API (recommended)\n * ```tsx\n * \n * \n * \n * Hover\n * \n * \n * Add to library\n * \n * \n * \n * ```\n *\n * @example Simple wrapper\n * ```tsx\n * \n * \n * Edit\n * \n * \n * ```\n */\n\n'use client';\n\nimport * as React from 'react';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport { cn } from '@/lib/utils';\nimport '@/glass-theme.css';\n\n// ========================================\n// COMPOUND COMPONENT: PROVIDER\n// ========================================\n\ntype TooltipGlassProviderProps = React.ComponentPropsWithoutRef;\n\n/**\n * TooltipGlassProvider - Context provider for all tooltips\n * Must wrap TooltipGlass components at the app level.\n */\nconst TooltipGlassProvider: React.FC = ({\n delayDuration = 0,\n ...props\n}) => {\n return (\n \n );\n};\n\nTooltipGlassProvider.displayName = 'TooltipGlassProvider';\n\n// ========================================\n// COMPOUND COMPONENT: ROOT\n// ========================================\n\n/**\n * TooltipGlassRoot - Individual tooltip instance\n * Wraps Radix TooltipPrimitive.Root with auto-included Provider (shadcn/ui pattern)\n */\nfunction TooltipGlassRoot({\n ...props\n}: React.ComponentPropsWithoutRef) {\n return (\n \n \n \n );\n}\n\n// ========================================\n// COMPOUND COMPONENT: TRIGGER\n// ========================================\n\n/**\n * TooltipGlassTrigger - Element that triggers the tooltip\n * Supports asChild pattern for custom trigger elements.\n */\nconst TooltipGlassTrigger = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ ...props }, ref) => (\n \n));\n\nTooltipGlassTrigger.displayName = 'TooltipGlassTrigger';\n\n// ========================================\n// COMPOUND COMPONENT: CONTENT\n// ========================================\n\ntype TooltipGlassContentProps = React.ComponentPropsWithoutRef;\n\n/**\n * TooltipGlassContent - Tooltip content with glass styling\n * Rendered in a portal for proper z-index handling.\n */\nconst TooltipGlassContent = React.forwardRef<\n React.ElementRef,\n TooltipGlassContentProps\n>(({ className, sideOffset = 0, children, ...props }, ref) => {\n const tooltipStyles: React.CSSProperties = {\n background: 'var(--tooltip-bg)',\n color: 'var(--tooltip-text)',\n border: '1px solid var(--tooltip-border)',\n boxShadow: 'var(--tooltip-shadow)',\n backdropFilter: 'blur(var(--blur-xl))',\n WebkitBackdropFilter: 'blur(var(--blur-xl))',\n };\n\n return (\n \n \n {children}\n \n \n \n );\n});\n\nTooltipGlassContent.displayName = 'TooltipGlassContent';\n\n// ========================================\n// SIMPLE WRAPPER (convenience)\n// ========================================\n\ninterface TooltipGlassSimpleProps {\n content: string;\n children: React.ReactNode;\n side?: 'top' | 'right' | 'bottom' | 'left';\n className?: string;\n}\n\nconst TooltipGlassSimple: React.FC = ({\n content,\n children,\n side = 'top',\n className,\n}) => {\n return (\n \n {children}\n \n {content}\n \n \n );\n};\n\n// ========================================\n// EXPORTS\n// ========================================\n\n// Compound API (shadcn/ui pattern)\nexport const TooltipGlass = TooltipGlassRoot;\nexport { TooltipGlassProvider, TooltipGlassTrigger, TooltipGlassContent, TooltipGlassSimple };\n\n// ========================================\n// SHADCN/UI COMPATIBLE ALIASES\n// ========================================\n\n/**\n * Tooltip - shadcn/ui compatible alias for TooltipGlass\n *\n * @example Drop-in replacement for shadcn/ui Tooltip\n * ```tsx\n * import { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from 'shadcn-glass-ui'\n *\n * \n * \n * Hover\n * Tooltip text\n * \n * \n * ```\n */\nexport const Tooltip = TooltipGlassRoot;\n\n/** TooltipTrigger - shadcn/ui compatible alias for TooltipGlassTrigger */\nexport const TooltipTrigger = TooltipGlassTrigger;\n\n/** TooltipContent - shadcn/ui compatible alias for TooltipGlassContent */\nexport const TooltipContent = TooltipGlassContent;\n\n/** TooltipProvider - shadcn/ui compatible alias for TooltipGlassProvider */\nexport const TooltipProvider = TooltipGlassProvider;\n" } ], "categories": [ "ui" ], "cssVars": { "light": { "--glass-bg": "rgba(255, 255, 255, 0.1)", "--glass-border": "rgba(255, 255, 255, 0.2)", "--blur-sm": "8px", "--blur-md": "16px", "--blur-lg": "24px" }, "dark": { "--glass-bg": "rgba(255, 255, 255, 0.05)", "--glass-border": "rgba(255, 255, 255, 0.1)", "--blur-sm": "8px", "--blur-md": "16px", "--blur-lg": "24px" } } }
Add to library