/* Copyright (C) 2023-2026 QuantumNous This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ 'use client' import { ChevronDownIcon, PaperclipIcon } from 'lucide-react' import type { ComponentProps } from 'react' import { Button } from '@/components/ui/button' import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from '@/components/ui/collapsible' import { ScrollArea } from '@/components/ui/scroll-area' import { cn } from '@/lib/utils' 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< ComponentProps, 'variant' | 'size' > export const QueueItemAction = ({ className, ...props }: QueueItemActionProps) => (