"use client"; import * as React from "react"; import { Button } from "@/components/ui/button"; import { PopoverContent } from "@/components/ui/popover"; import { Separator } from "@/components/ui/separator"; import { Skeleton } from "@/components/ui/skeleton"; import { cn } from "@/lib/utils"; function ComposerSuggestionPopoverContent({ className, align = "start", sideOffset = 6, collisionPadding = 12, onOpenAutoFocus, onCloseAutoFocus, style, ...props }: React.ComponentProps) { return ( { event.preventDefault(); onOpenAutoFocus?.(event); }} onCloseAutoFocus={(event) => { event.preventDefault(); onCloseAutoFocus?.(event); }} className={cn( "w-[232px] select-none overflow-hidden rounded-md border border-popover-border bg-popover p-0 text-popover-foreground shadow-md sm:w-[264px]", "data-[state=open]:!animate-none data-[state=closed]:!animate-none data-[state=open]:!duration-0 data-[state=closed]:!duration-0", className )} style={{ ...style, animation: "none" }} {...props} /> ); } const ComposerSuggestionList = React.forwardRef< HTMLDivElement, React.HTMLAttributes >(({ className, ...props }, ref) => (
)); ComposerSuggestionList.displayName = "ComposerSuggestionList"; function ComposerSuggestionGroup({ className, ...props }: React.HTMLAttributes) { return
; } function ComposerSuggestionGroupHeading({ className, ...props }: React.HTMLAttributes) { return (
); } function ComposerSuggestionHeader({ className, icon, children, ...props }: React.HTMLAttributes & { icon?: React.ReactNode }) { return (
{icon ? {icon} : null} {children}
); } const ComposerSuggestionItem = React.forwardRef< HTMLButtonElement, Omit, "variant"> & { icon?: React.ReactNode; selected?: boolean; muted?: boolean; } >(({ className, children, icon, selected, muted, disabled, ...props }, ref) => ( )); ComposerSuggestionItem.displayName = "ComposerSuggestionItem"; function ComposerSuggestionSeparator({ className, ...props }: React.ComponentProps) { return (
); } function ComposerSuggestionMessage({ className, children, variant = "muted", }: React.HTMLAttributes & { variant?: "muted" | "destructive" }) { return (

{children}

); } function ComposerSuggestionSkeleton({ rows = 5, mobileRows = 3, }: { rows?: number; mobileRows?: number; }) { return (
{Array.from({ length: rows }, (_, index) => `skeleton-row-${index}`).map((id, index) => (
= mobileRows && "hidden sm:flex" )} >
))}
); } export { ComposerSuggestionPopoverContent, ComposerSuggestionList, ComposerSuggestionGroup, ComposerSuggestionGroupHeading, ComposerSuggestionHeader, ComposerSuggestionItem, ComposerSuggestionSeparator, ComposerSuggestionMessage, ComposerSuggestionSkeleton, };