/* 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 { BookIcon, ChevronDownIcon } from 'lucide-react' import type { ComponentProps } from 'react' import { useTranslation } from 'react-i18next' import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from '@/components/ui/collapsible' import { cn } from '@/lib/utils' export type SourcesProps = ComponentProps<'div'> export const Sources = ({ className, ...props }: SourcesProps) => ( ) export type SourcesTriggerProps = ComponentProps & { count: number } export const SourcesTrigger = ({ className, count, children, ...props }: SourcesTriggerProps) => { const { t } = useTranslation() return ( {children ?? ( <>

{t('Used')} {count} {t('sources')}

)}
) } export type SourcesContentProps = ComponentProps export const SourcesContent = ({ className, ...props }: SourcesContentProps) => ( ) export type SourceProps = ComponentProps<'a'> export const Source = ({ href, title, children, ...props }: SourceProps) => ( {children ?? ( <> {title} )} )