@brainfish-ai/components 0.8.3 → 0.10.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/colors/customColor.ts","../../src/colors/dark.ts","../../src/colors/primary.ts","../../src/colors/orange.ts","../../src/colors/yellow.ts","../../src/colors/green.ts","../../src/colors/blue.ts","../../src/colors/purple.ts","../../src/colors/pink.ts","../../src/colors/red.ts","../../src/colors/index.ts","../../src/components/ui/table.tsx"],"sourcesContent":["// function to create custom color that supports TW's opacity modifier\nexport function customColor(cssVariable: string, fallbackColor?: string) {\n return ({ opacityVariable, opacityValue }: { opacityVariable: string; opacityValue: string }) => {\n const opacity = opacityValue !== undefined ? opacityValue : `var(${opacityVariable}, 1)`;\n\n return `rgb(var(${cssVariable}, ${fallbackColor}) / ${opacity})`;\n };\n}\n","export const dark = {\n 50: '#FAFAFA',\n 100: '#F5F5F5',\n 200: '#E5E5E5',\n 300: '#D4D4D4',\n 400: '#A3A3A3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n DEFAULT: '#171717', // 900\n};\n","import { customColor } from './customColor';\nimport { dark } from './dark';\n\nexport const primary = {\n 50: '#F7FEE8',\n 100: '#ECFCCC',\n 200: '#D9F99E',\n 300: '#BEF265',\n 400: '#A3E635',\n 500: '#84CC17',\n 600: '#65A30E',\n 700: '#4E7C10',\n 800: '#406213',\n 900: '#375415',\n DEFAULT: customColor('--bfc-primary', '#A3E635'), // 400\n foreground: customColor('--bfc-primary-foreground', dark.DEFAULT),\n};\n","export const orange = {\n 50: '#FFF7EE',\n 100: '#FFEDD6',\n 200: '#FED7AB',\n 300: '#FDBA75',\n 400: '#FB923D',\n 500: '#F97317',\n 600: '#EA590D',\n 700: '#C2420D',\n 800: '#9A3513',\n 900: '#7C2E13',\n DEFAULT: '#FB923D', // 400\n};\n","export const yellow = {\n 50: '#FFFBEC',\n 100: '#FEF3C8',\n 200: '#FDE68B',\n 300: '#FCD34E',\n 400: '#FBBF25',\n 500: '#F59E0C',\n 600: '#D97707',\n 700: '#B4540A',\n 800: '#92410F',\n 900: '#783610',\n DEFAULT: '#FBBF25', // 400\n};\n","export const green = {\n 50: '#EDFDF5',\n 100: '#D2FAE5',\n 200: '#A8F3D0',\n 300: '#6FE7B7',\n 400: '#35D399',\n 500: '#11B981',\n 600: '#069669',\n 700: '#057857',\n 800: '#075F47',\n 900: '#074F3C',\n DEFAULT: '#35D399', // 400\n};\n","export const blue = {\n 50: '#F0F6FF',\n 100: '#DCEAFE',\n 200: '#C0DBFE',\n 300: '#94C5FD',\n 400: '#61A5FA',\n 500: '#3C82F6',\n 600: '#2663EB',\n 700: '#1E4FD8',\n 800: '#1F41AF',\n 900: '#1F3B8A',\n DEFAULT: '#61A5FA', // 400\n};\n","export const purple = {\n 50: '#F5F4FF',\n 100: '#EDEAFE',\n 200: '#DED7FE',\n 300: '#C5B6FD',\n 400: '#A78CFA',\n 500: '#8C5DF6',\n 600: '#7C3BED',\n 700: '#6D29D9',\n 800: '#5B22B6',\n 900: '#4D1E95',\n DEFAULT: '#8C5DF6', // 500\n};\n","export const pink = {\n 50: '#F5F4FF',\n 100: '#FAE9FF',\n 200: '#F5D1FE',\n 300: '#F0ACFC',\n 400: '#E87AF9',\n 500: '#D947EF',\n 600: '#C027D3',\n 700: '#A21DAF',\n 800: '#861A8F',\n 900: '#701B75',\n DEFAULT: '#E87AF9', // 400\n};\n","export const red = {\n 50: '#FFF2F3',\n 100: '#FFE5E6',\n 200: '#FECED4',\n 300: '#FDA5B0',\n 400: '#FB7286',\n 500: '#F4405E',\n 600: '#E11E49',\n 700: '#BE133D',\n 800: '#9F133A',\n 900: '#881438',\n DEFAULT: '#F4405E', // 500\n};\n","import { primary } from './primary';\nimport { dark } from './dark';\nimport { orange } from './orange';\nimport { yellow } from './yellow';\nimport { green } from './green';\nimport { blue } from './blue';\nimport { purple } from './purple';\nimport { pink } from './pink';\nimport { red } from './red';\nimport { customColor } from './customColor';\n\nexport const BrainfishColors = {\n primary,\n dark,\n orange,\n yellow,\n green,\n blue,\n purple,\n pink,\n red,\n};\n\nexport { customColor };\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n))\nTable.displayName = \"Table\"\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n))\nTableHeader.displayName = \"TableHeader\"\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n))\nTableBody.displayName = \"TableBody\"\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n))\nTableFooter.displayName = \"TableFooter\"\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n))\nTableRow.displayName = \"TableRow\"\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n))\nTableHead.displayName = \"TableHead\"\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n))\nTableCell.displayName = \"TableCell\"\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nTableCaption.displayName = \"TableCaption\"\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/colors/customColor.ts","../../src/colors/dark.ts","../../src/colors/primary.ts","../../src/colors/orange.ts","../../src/colors/yellow.ts","../../src/colors/green.ts","../../src/colors/blue.ts","../../src/colors/purple.ts","../../src/colors/pink.ts","../../src/colors/red.ts","../../src/colors/index.ts","../../src/components/ui/table.tsx","../../src/components/ui/badge.tsx","../../src/components/ui/progress.tsx","../../src/components/file-upload/utils.tsx","../../src/components/file-upload/file-upload-context.tsx","../../src/components/file-upload/file-upload.tsx"],"sourcesContent":["// function to create custom color that supports TW's opacity modifier\nexport function customColor(cssVariable: string, fallbackColor?: string) {\n return ({ opacityVariable, opacityValue }: { opacityVariable: string; opacityValue: string }) => {\n const opacity = opacityValue !== undefined ? opacityValue : `var(${opacityVariable}, 1)`;\n\n return `rgb(var(${cssVariable}, ${fallbackColor}) / ${opacity})`;\n };\n}\n","export const dark = {\n 50: '#FAFAFA',\n 100: '#F5F5F5',\n 200: '#E5E5E5',\n 300: '#D4D4D4',\n 400: '#A3A3A3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n DEFAULT: '#171717', // 900\n};\n","import { customColor } from './customColor';\nimport { dark } from './dark';\n\nexport const primary = {\n 50: '#F7FEE8',\n 100: '#ECFCCC',\n 200: '#D9F99E',\n 300: '#BEF265',\n 400: '#A3E635',\n 500: '#84CC17',\n 600: '#65A30E',\n 700: '#4E7C10',\n 800: '#406213',\n 900: '#375415',\n DEFAULT: customColor('--bfc-primary', '#A3E635'), // 400\n foreground: customColor('--bfc-primary-foreground', dark.DEFAULT),\n};\n","export const orange = {\n 50: '#FFF7EE',\n 100: '#FFEDD6',\n 200: '#FED7AB',\n 300: '#FDBA75',\n 400: '#FB923D',\n 500: '#F97317',\n 600: '#EA590D',\n 700: '#C2420D',\n 800: '#9A3513',\n 900: '#7C2E13',\n DEFAULT: '#FB923D', // 400\n};\n","export const yellow = {\n 50: '#FFFBEC',\n 100: '#FEF3C8',\n 200: '#FDE68B',\n 300: '#FCD34E',\n 400: '#FBBF25',\n 500: '#F59E0C',\n 600: '#D97707',\n 700: '#B4540A',\n 800: '#92410F',\n 900: '#783610',\n DEFAULT: '#FBBF25', // 400\n};\n","export const green = {\n 50: '#EDFDF5',\n 100: '#D2FAE5',\n 200: '#A8F3D0',\n 300: '#6FE7B7',\n 400: '#35D399',\n 500: '#11B981',\n 600: '#069669',\n 700: '#057857',\n 800: '#075F47',\n 900: '#074F3C',\n DEFAULT: '#35D399', // 400\n};\n","export const blue = {\n 50: '#F0F6FF',\n 100: '#DCEAFE',\n 200: '#C0DBFE',\n 300: '#94C5FD',\n 400: '#61A5FA',\n 500: '#3C82F6',\n 600: '#2663EB',\n 700: '#1E4FD8',\n 800: '#1F41AF',\n 900: '#1F3B8A',\n DEFAULT: '#61A5FA', // 400\n};\n","export const purple = {\n 50: '#F5F4FF',\n 100: '#EDEAFE',\n 200: '#DED7FE',\n 300: '#C5B6FD',\n 400: '#A78CFA',\n 500: '#8C5DF6',\n 600: '#7C3BED',\n 700: '#6D29D9',\n 800: '#5B22B6',\n 900: '#4D1E95',\n DEFAULT: '#8C5DF6', // 500\n};\n","export const pink = {\n 50: '#F5F4FF',\n 100: '#FAE9FF',\n 200: '#F5D1FE',\n 300: '#F0ACFC',\n 400: '#E87AF9',\n 500: '#D947EF',\n 600: '#C027D3',\n 700: '#A21DAF',\n 800: '#861A8F',\n 900: '#701B75',\n DEFAULT: '#E87AF9', // 400\n};\n","export const red = {\n 50: '#FFF2F3',\n 100: '#FFE5E6',\n 200: '#FECED4',\n 300: '#FDA5B0',\n 400: '#FB7286',\n 500: '#F4405E',\n 600: '#E11E49',\n 700: '#BE133D',\n 800: '#9F133A',\n 900: '#881438',\n DEFAULT: '#F4405E', // 500\n};\n","import { primary } from './primary';\nimport { dark } from './dark';\nimport { orange } from './orange';\nimport { yellow } from './yellow';\nimport { green } from './green';\nimport { blue } from './blue';\nimport { purple } from './purple';\nimport { pink } from './pink';\nimport { red } from './red';\nimport { customColor } from './customColor';\n\nexport const BrainfishColors = {\n primary,\n dark,\n orange,\n yellow,\n green,\n blue,\n purple,\n pink,\n red,\n};\n\nexport { customColor };\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n))\nTable.displayName = \"Table\"\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n))\nTableHeader.displayName = \"TableHeader\"\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n))\nTableBody.displayName = \"TableBody\"\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n))\nTableFooter.displayName = \"TableFooter\"\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n))\nTableRow.displayName = \"TableRow\"\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n))\nTableHead.displayName = \"TableHead\"\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n))\nTableCell.displayName = \"TableCell\"\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nTableCaption.displayName = \"TableCaption\"\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n )\n}\n\nexport { Badge, badgeVariants }\n","import * as React from 'react';\nimport * as ProgressPrimitive from '@radix-ui/react-progress';\n\nimport { cn } from '@/lib/utils';\n\nconst Progress = React.forwardRef<\n React.ElementRef<typeof ProgressPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root> & {\n indicatorClassName?: string;\n }\n>(({ className, value, indicatorClassName, ...props }, ref) => (\n <ProgressPrimitive.Root\n ref={ref}\n className={cn('relative h-2 w-full overflow-hidden rounded-full bg-primary/20', className)}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className={cn('h-full w-full flex-1 bg-primary transition-all', indicatorClassName)}\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n));\nProgress.displayName = ProgressPrimitive.Root.displayName;\n\nexport { Progress };\n","import React from 'react';\nimport { Image, Video, Headphones, FileText, File, Spinner, CheckCircle, WarningCircle } from '@phosphor-icons/react';\n\nimport { FileUploadState } from './types';\n\nexport const getFileIcon = (file: File) => {\n const type = file.type.split('/')[0];\n switch (type) {\n case 'image':\n return <Image className=\"size-8 text-blue-500\" />;\n case 'video':\n return <Video className=\"size-8 text-purple-500\" />;\n case 'audio':\n return <Headphones className=\"size-8 text-green-500\" />;\n case 'text':\n return <FileText className=\"size-8 text-orange-500\" />;\n default:\n return <File className=\"size-8 text-gray-500\" />;\n }\n};\n\nexport const formatFileSize = (bytes: number) => {\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return Number.parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n};\n\nexport const getStatusIcon = (status: FileUploadState['status']) => {\n switch (status) {\n case 'uploading':\n return <Spinner className=\"size-4 animate-spin text-blue-500\" />;\n case 'success':\n return <CheckCircle className=\"size-4 text-green-500\" />;\n case 'error':\n return <WarningCircle className=\"size-4 text-red-500\" />;\n default:\n return null;\n }\n};\n\nexport const calculateTimeRemaining = (fileState: FileUploadState): string => {\n if (!fileState.startTime || fileState.progress === 0) return 'Calculating...';\n\n const elapsed = Date.now() - fileState.startTime;\n const rate = fileState.progress / elapsed;\n const remaining = (100 - fileState.progress) / rate;\n\n if (remaining < 60000) {\n return `${Math.round(remaining / 1000)}s remaining`;\n } else {\n return `${Math.round(remaining / 60000)}m remaining`;\n }\n};\n\nexport const getStatusColor = (status: FileUploadState['status']) => {\n switch (status) {\n case 'uploading':\n return 'border-blue-200 bg-blue-50';\n case 'success':\n return 'border-green-200 bg-green-50';\n case 'error':\n return 'border-red-200 bg-red-50';\n default:\n return '';\n }\n};\n","import { createContext, useContext } from 'react';\n\nimport { FileUploadState } from './types';\n\nexport interface FileUploadContextType {\n fileStates: FileUploadState[];\n cancelUpload: (fileState: FileUploadState) => void;\n removeFile: (fileState: FileUploadState) => void;\n retryUpload: (fileState: FileUploadState) => void;\n showStatus: boolean;\n setShowStatus: (showStatus: boolean) => void;\n}\n\nconst FileUploadContext = createContext<FileUploadContextType | null>(null);\n\n// Hook to use the FileUpload context\nexport function useFileUpload() {\n const context = useContext(FileUploadContext);\n if (!context) {\n throw new Error('useFileUpload must be used within a FileUpload component');\n }\n\n return context;\n}\n\nexport { FileUploadContext };\n","'use client';\nimport React, { useCallback, useState } from 'react';\nimport { useDropzone } from 'react-dropzone';\nimport { CloudArrowUp, X } from '@phosphor-icons/react';\nimport { createId } from '@paralleldrive/cuid2';\n\nimport { FileUploadProps, FileWithPreview, FileUploadState } from './types';\nimport { getFileIcon, formatFileSize, getStatusIcon, getStatusColor } from './utils';\nimport { FileUploadContext, FileUploadContextType } from './file-upload-context';\n\nimport { Button } from '@/components/ui/button';\nimport { Card } from '@/components/ui/card';\nimport { Badge } from '@/components/ui/badge';\nimport { Progress } from '@/components/ui/progress';\nimport { cn } from '@/lib/utils';\n\nexport function FileUpload({\n onFilesChange,\n onUpload,\n accept = {\n 'image/*': ['.png', '.jpg', '.jpeg', '.gif'],\n 'application/pdf': ['.pdf'],\n 'text/*': ['.txt', '.csv'],\n },\n maxSize = 5 * 1024 * 1024, // 5MB\n maxFiles = 5,\n multiple = true,\n className,\n disabled = false,\n autoUpload = true,\n title = 'Drag & drop files here, or click to select',\n description = '',\n children,\n}: FileUploadProps) {\n const [fileStates, setFileStates] = useState<FileUploadState[]>([]);\n const [showStatus, setShowStatus] = useState<boolean>(false);\n const [dropErrors, setDropErrors] = useState<string[]>([]);\n\n const uploadFile = async (fileState: FileUploadState) => {\n if (!onUpload) return;\n\n const abortController = new AbortController();\n\n setFileStates((prev) =>\n prev.map((fs) =>\n fs.file.id === fileState.file.id ? { ...fs, status: 'uploading', progress: 0, abortController } : fs,\n ),\n );\n\n setShowStatus(true);\n\n try {\n // Simulate progress updates\n const progressInterval = setInterval(() => {\n setFileStates((prev) =>\n prev.map((fs) =>\n fs.file.id === fileState.file.id && fs.status === 'uploading'\n ? {\n ...fs,\n progress: Math.min(fs.progress + Math.random() * 30, 90),\n }\n : fs,\n ),\n );\n }, 200);\n\n const result = await onUpload(fileState.file, abortController.signal);\n\n clearInterval(progressInterval);\n\n if (abortController.signal.aborted) {\n return; // Upload was cancelled\n }\n\n setFileStates((prev) =>\n prev.map((fs) =>\n fs.file.id === fileState.file.id\n ? {\n ...fs,\n status: result.success ? 'success' : 'error',\n progress: result.success ? 100 : fs.progress,\n error: result.error,\n abortController: undefined,\n }\n : fs,\n ),\n );\n } catch (error) {\n if (abortController.signal.aborted) {\n return; // Upload was cancelled\n }\n\n setFileStates((prev) =>\n prev.map((fs) =>\n fs.file.id === fileState.file.id\n ? {\n ...fs,\n status: 'error',\n error: error instanceof Error ? error.message : 'Upload failed',\n abortController: undefined,\n }\n : fs,\n ),\n );\n }\n };\n\n const onDrop = useCallback(\n (acceptedFiles: File[], rejectedFiles: any[]) => {\n setDropErrors([]);\n\n // Handle rejected files\n if (rejectedFiles.length > 0) {\n const newErrors = rejectedFiles.map((rejection) => {\n const { file, errors } = rejection;\n\n return `${file.name}: ${errors.map((e: any) => e.message).join(', ')}`;\n });\n setDropErrors(newErrors);\n }\n\n // Handle accepted files\n if (acceptedFiles.length > 0) {\n const newFiles: FileWithPreview[] = acceptedFiles.map((file) => {\n const fileWithPreview = Object.assign(file, {\n preview: file.type.startsWith('image/') ? URL.createObjectURL(file) : undefined,\n id: createId(),\n });\n\n return fileWithPreview;\n });\n\n const newFileStates: FileUploadState[] = newFiles.map((file) => ({\n file,\n status: 'pending',\n progress: 0,\n }));\n\n const updatedFileStates = multiple ? [...fileStates, ...newFileStates] : newFileStates;\n\n // Respect maxFiles limit\n const finalFileStates = updatedFileStates.slice(0, maxFiles);\n\n setFileStates(finalFileStates);\n setShowStatus(true);\n onFilesChange?.(finalFileStates.map((fs) => fs.file));\n\n // Auto-upload if enabled\n if (autoUpload && onUpload) {\n newFileStates.forEach((fileState) => {\n void uploadFile(fileState);\n });\n }\n }\n },\n [fileStates, multiple, maxFiles, onFilesChange, autoUpload, onUpload],\n );\n\n const { getRootProps, getInputProps, isDragActive, isDragReject } = useDropzone({\n onDrop,\n accept,\n maxSize,\n multiple,\n disabled,\n });\n\n const cancelUpload = (fileState: FileUploadState) => {\n if (fileState.abortController) {\n fileState.abortController.abort();\n }\n\n setFileStates((prev) => prev.filter((fs) => fs.file.id !== fileState.file.id));\n onFilesChange?.(fileStates.filter((fs) => fs.file.id !== fileState.file.id).map((fs) => fs.file));\n\n // Revoke preview URL\n if (fileState.file.preview) {\n URL.revokeObjectURL(fileState.file.preview);\n }\n };\n\n const removeFile = (fileState: FileUploadState) => {\n // If uploading, cancel it first\n if (fileState.status === 'uploading' && fileState.abortController) {\n fileState.abortController.abort();\n }\n\n const updatedFileStates = fileStates.filter((fs) => fs.file.id !== fileState.file.id);\n setFileStates(updatedFileStates);\n onFilesChange?.(updatedFileStates.map((fs) => fs.file));\n\n // Revoke the preview URL to avoid memory leaks\n if (fileState.file.preview) {\n URL.revokeObjectURL(fileState.file.preview);\n }\n };\n\n const retryUpload = (fileState: FileUploadState) => {\n if (onUpload) {\n void uploadFile(fileState);\n }\n };\n\n const clearAll = () => {\n // Cancel all ongoing uploads\n fileStates.forEach((fs) => {\n if (fs.abortController) {\n fs.abortController.abort();\n }\n if (fs.file.preview) {\n URL.revokeObjectURL(fs.file.preview);\n }\n });\n\n setShowStatus(false);\n setFileStates([]);\n setDropErrors([]);\n onFilesChange?.([]);\n };\n\n const contextValue: FileUploadContextType = {\n fileStates,\n cancelUpload,\n removeFile,\n retryUpload,\n setShowStatus,\n showStatus,\n };\n\n return (\n <FileUploadContext.Provider value={contextValue}>\n <div data-testid=\"file-upload\" className=\"w-full space-y-4\">\n <div className={cn('group', className, 'focus-visible:outline-none')} {...getRootProps()}>\n <Card\n className={cn(\n 'custom-dashed-border p-8 text-center cursor-pointer',\n 'group-focus:custom-dashed-border-hover',\n 'group-hover:custom-dashed-border-hover',\n isDragActive && !isDragReject && 'border-primary bg-primary/5',\n isDragReject && 'border-destructive bg-destructive/5',\n disabled && 'cursor-not-allowed opacity-50',\n )}\n >\n <input {...getInputProps()} />\n <div className=\"flex flex-col items-center gap-4\">\n <CloudArrowUp\n className={cn(\n 'size-12',\n isDragActive && !isDragReject && 'text-primary',\n isDragReject && 'text-destructive',\n )}\n />\n <div className=\"space-y-2\">\n <p className=\"text-lg font-medium\">\n {isDragActive ? (isDragReject ? 'Some files will be rejected' : 'Drop files here') : title}\n </p>\n {description && <p className=\"text-sm\">{description}</p>}\n <p className=\"text-sm\">\n {`Supports: ${Object.values(accept).flat().join(', ')} • Max size: ${formatFileSize(maxSize)}${\n maxFiles > 1 ? ` • Max files: ${maxFiles}` : ''\n }`}\n </p>\n </div>\n </div>\n </Card>\n </div>\n\n {/* Drop Error Messages */}\n {dropErrors.length > 0 && (\n <div className=\"space-y-2\">\n {dropErrors.map((error, index) => (\n <div key={index} className=\"text-sm text-destructive bg-destructive/10 p-2 rounded\">\n {error}\n </div>\n ))}\n </div>\n )}\n\n {/* Traditional File List (optional, can be hidden when using FileUploadStatus) */}\n {!children && fileStates.length > 0 && (\n <div className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <h3 className=\"text-lg font-medium\">Files ({fileStates.length})</h3>\n <Button variant=\"outline\" size=\"sm\" onClick={clearAll}>\n Clear All\n </Button>\n </div>\n\n <div className=\"grid gap-3\">\n {fileStates.map((fileState) => (\n <Card key={fileState.file.id} className={cn('p-4 overflow-x-auto', getStatusColor(fileState.status))}>\n <div className=\"space-y-3\">\n <div className=\"flex items-center gap-4\">\n {fileState.file.preview ? (\n <img\n src={fileState.file.preview || '/placeholder.svg'}\n alt={fileState.file.name}\n className=\"h-12 w-12 object-cover rounded\"\n />\n ) : (\n getFileIcon(fileState.file)\n )}\n\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-2\">\n <p className=\"font-medium truncate\">{fileState.file.name}</p>\n {getStatusIcon(fileState.status)}\n </div>\n <div className=\"flex items-center gap-2 text-sm text-muted-foreground\">\n <span>{formatFileSize(fileState.file.size)}</span>\n <Badge variant=\"secondary\" className=\"text-xs\">\n {fileState.file.type || 'Unknown'}\n </Badge>\n <Badge\n variant={\n fileState.status === 'success'\n ? 'default'\n : fileState.status === 'error'\n ? 'destructive'\n : 'secondary'\n }\n className=\"text-xs capitalize\"\n >\n {fileState.status}\n </Badge>\n </div>\n </div>\n\n <div className=\"flex items-center gap-2\">\n {fileState.status === 'error' && onUpload && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => retryUpload(fileState)}\n className=\"text-blue-600 hover:text-blue-700\"\n >\n Retry\n </Button>\n )}\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() =>\n fileState.status === 'uploading' ? cancelUpload(fileState) : removeFile(fileState)\n }\n className=\"text-destructive hover:text-destructive\"\n >\n <X className=\"h-4 w-4\" />\n </Button>\n </div>\n </div>\n\n {/* Progress Bar */}\n {fileState.status === 'uploading' && (\n <div className=\"space-y-1\">\n <Progress value={fileState.progress} className=\"h-2\" />\n <p className=\"text-xs text-muted-foreground\">Uploading... {Math.round(fileState.progress)}%</p>\n </div>\n )}\n\n {/* Error Message */}\n {fileState.status === 'error' && fileState.error && (\n <div className=\"text-sm text-destructive bg-destructive/10 p-2 rounded\">{fileState.error}</div>\n )}\n </div>\n </Card>\n ))}\n </div>\n </div>\n )}\n\n {children}\n </div>\n </FileUploadContext.Provider>\n );\n}\n"],"names":["React"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ import { JSONSchemaType } from 'ajv';
9
9
  import * as LabelPrimitive from '@radix-ui/react-label';
10
10
  import { Options } from 'react-markdown';
11
11
  import * as PopoverPrimitive from '@radix-ui/react-popover';
12
+ import * as ProgressPrimitive from '@radix-ui/react-progress';
12
13
  import * as React_2 from 'react';
13
14
  import { ReactNode } from 'react';
14
15
  import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
@@ -112,7 +113,7 @@ export declare interface Answer {
112
113
 
113
114
  declare type AnswerBlock = MarkdownTextBlock | ActionButtonsBlock | ActionInputFormBlock;
114
115
 
115
- declare type AnswerListAction = SetAnswers | ClearAll | AppendNewAnswer | SetSearchResults | AppendAnswerChunk | SetAnswerError | SetUserFeedback | ClearUserFeedback | SetFollowUpQuestions | AppendBlock | CompleteAnswer | MarkAsUncertain | InvokeAction | GetActionInputs | AddActionButtons;
116
+ declare type AnswerListAction = SetAnswers | ClearAll | AppendNewAnswer | SetSearchResults | AppendAnswerChunk | SetAnswerError | SetUserFeedback | ClearUserFeedback | SetFollowUpQuestions | AppendBlock | CompleteAnswer | MarkAsUncertain | InvokeAction | GetActionInputs | AddActionButtons | NoArticlesFound;
116
117
 
117
118
  declare const AnswersActions: {
118
119
  readonly SET_ANSWERS: "answers/set_answers";
@@ -127,6 +128,7 @@ declare const AnswersActions: {
127
128
  readonly SET_USER_FEEDBACK: "answers/set_user_feedback";
128
129
  readonly CLEAR_USER_FEEDBACK: "answers/clear_user_feedback";
129
130
  readonly MARK_AS_UNCERTAIN: "answers/mark_as_uncertain";
131
+ readonly NO_ARTICLES_FOUND: "answers/no_articles_found";
130
132
  readonly GET_ACTION_INPUTS: "answers/request_action_inputs";
131
133
  readonly INVOKE_ACTION: "answers/invoke_action";
132
134
  readonly ADD_ACTION_BUTTONS: "answers/add_action_buttons";
@@ -158,6 +160,15 @@ declare type AppendNewAnswer = {
158
160
  };
159
161
  };
160
162
 
163
+ export declare function Badge({ className, variant, ...props }: BadgeProps): React_2.JSX.Element;
164
+
165
+ export declare interface BadgeProps extends React_2.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
166
+ }
167
+
168
+ export declare const badgeVariants: (props?: ({
169
+ variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
170
+ } & ClassProp) | undefined) => string;
171
+
161
172
  export declare const BrainfishColors: {
162
173
  primary: {
163
174
  50: string;
@@ -619,6 +630,24 @@ declare type FeatureFlags = {
619
630
 
620
631
  declare type FeedbackResponse = 'accept' | 'reject';
621
632
 
633
+ export declare function FileUpload({ onFilesChange, onUpload, accept, maxSize, // 5MB
634
+ maxFiles, multiple, className, disabled, autoUpload, title, description, children, }: FileUploadProps): default_2.JSX.Element;
635
+
636
+ declare interface FileUploadProps {
637
+ onFilesChange?: (files: File[]) => void;
638
+ onUpload?: (file: File, abortSignal: AbortSignal) => Promise<UploadResult>;
639
+ accept?: Record<string, string[]>;
640
+ maxSize?: number;
641
+ maxFiles?: number;
642
+ multiple?: boolean;
643
+ className?: string;
644
+ disabled?: boolean;
645
+ autoUpload?: boolean;
646
+ title?: string;
647
+ description?: string;
648
+ children?: ReactNode;
649
+ }
650
+
622
651
  export declare const Filter: default_2.ForwardRefExoticComponent<FilterProps & default_2.RefAttributes<{
623
652
  focus: () => void;
624
653
  }>>;
@@ -765,6 +794,13 @@ declare enum NextBestActionType {
765
794
  Function = "function"
766
795
  }
767
796
 
797
+ declare type NoArticlesFound = {
798
+ type: typeof AnswersActions.NO_ARTICLES_FOUND;
799
+ payload: {
800
+ index?: number;
801
+ };
802
+ };
803
+
768
804
  export declare enum Operator {
769
805
  IS = "is",
770
806
  IS_NOT = "is not",
@@ -781,6 +817,10 @@ export declare const PopoverContent: React_2.ForwardRefExoticComponent<Omit<Popo
781
817
 
782
818
  export declare const PopoverTrigger: React_2.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React_2.RefAttributes<HTMLButtonElement>>;
783
819
 
820
+ export declare const Progress: React_2.ForwardRefExoticComponent<Omit<ProgressPrimitive.ProgressProps & React_2.RefAttributes<HTMLDivElement>, "ref"> & {
821
+ indicatorClassName?: string | undefined;
822
+ } & React_2.RefAttributes<HTMLDivElement>>;
823
+
784
824
  export declare interface Props {
785
825
  message: Message;
786
826
  isStreaming?: boolean;
@@ -924,6 +964,12 @@ export declare const TooltipProvider: ({ delayDuration, ...props }: TooltipPrimi
924
964
 
925
965
  export declare const TooltipTrigger: React_2.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React_2.RefAttributes<HTMLButtonElement>>;
926
966
 
967
+ declare interface UploadResult {
968
+ success: boolean;
969
+ url?: string;
970
+ error?: string;
971
+ }
972
+
927
973
  declare type UrlString = string & {
928
974
  __url: never;
929
975
  };