'use client';
import type { ComponentProps } from 'react';
import { ChevronDownIcon, PaperclipIcon } from 'lucide-react';
import { cn } from '@/lib/utils';
import { Button } from '@/components/ui/button';
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible';
import { ScrollArea } from '@/components/ui/scroll-area';
export type QueueMessagePart = {
type: string;
text?: string;
url?: string;
filename?: string;
mediaType?: string;
};
export type QueueMessage = {
id: string;
parts: QueueMessagePart[];
};
export type QueueTodo = {
id: string;
title: string;
description?: string;
status?: 'pending' | 'completed';
};
export type QueueItemProps = ComponentProps<'li'>;
export const QueueItem = ({ className, ...props }: QueueItemProps) => (
);
export type QueueItemIndicatorProps = ComponentProps<'span'> & {
completed?: boolean;
};
export const QueueItemIndicator = ({ completed = false, className, ...props }: QueueItemIndicatorProps) => (
);
export type QueueItemContentProps = ComponentProps<'span'> & {
completed?: boolean;
};
export const QueueItemContent = ({ completed = false, className, ...props }: QueueItemContentProps) => (
);
export type QueueItemDescriptionProps = ComponentProps<'div'> & {
completed?: boolean;
};
export const QueueItemDescription = ({ completed = false, className, ...props }: QueueItemDescriptionProps) => (
);
export type QueueItemActionsProps = ComponentProps<'div'>;
export const QueueItemActions = ({ className, ...props }: QueueItemActionsProps) => (
);
export type QueueItemActionProps = Omit, 'variant' | 'size'>;
export const QueueItemAction = ({ className, ...props }: QueueItemActionProps) => (
);
export type QueueItemAttachmentProps = ComponentProps<'div'>;
export const QueueItemAttachment = ({ className, ...props }: QueueItemAttachmentProps) => (
);
export type QueueItemImageProps = ComponentProps<'img'>;
export const QueueItemImage = ({ className, ...props }: QueueItemImageProps) => (
);
export type QueueItemFileProps = ComponentProps<'span'>;
export const QueueItemFile = ({ children, className, ...props }: QueueItemFileProps) => (
{children}
);
export type QueueListProps = ComponentProps;
export const QueueList = ({ children, className, ...props }: QueueListProps) => (
);
// QueueSection - collapsible section container
export type QueueSectionProps = ComponentProps;
export const QueueSection = ({ className, defaultOpen = true, ...props }: QueueSectionProps) => (
);
// QueueSectionTrigger - section header/trigger
export type QueueSectionTriggerProps = ComponentProps<'button'>;
export const QueueSectionTrigger = ({ children, className, ...props }: QueueSectionTriggerProps) => (
);
// QueueSectionLabel - label content with icon and count
export type QueueSectionLabelProps = ComponentProps<'span'> & {
count?: number;
label: string;
icon?: React.ReactNode;
};
export const QueueSectionLabel = ({ count, label, icon, className, ...props }: QueueSectionLabelProps) => (
{icon}
{count} {label}
);
// QueueSectionContent - collapsible content area
export type QueueSectionContentProps = ComponentProps;
export const QueueSectionContent = ({ className, ...props }: QueueSectionContentProps) => (
);
export type QueueProps = ComponentProps<'div'>;
export const Queue = ({ className, ...props }: QueueProps) => (
);