{"version":3,"file":"FileUploadItem.cjs","sources":["../../../../src/components/FileUpload/FileUploadItem.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { cn, cva } from '@/lib/cva';\nimport { Text } from '@/components/Text';\nimport { Icon } from '@/components/Icon';\nimport { IconButton } from '@/components/IconButton';\nimport { ProgressBar } from '@/components/ProgressBar';\nimport { MiddleTruncator } from '@/components/MiddleTruncator';\nimport { formatFileSize } from '@/utils/file';\nimport styles from './FileUploadItem.module.css';\n\nexport interface FileUploadItemProps {\n  fileName: string;\n  fileSize: number;\n  progress?: number;\n  showSuccess?: boolean;\n  showProgress?: boolean;\n  failureMessage?: string;\n  onRetry?: () => void;\n  onRemove?: () => void;\n  size?: 'sm' | 'md';\n  inline?: boolean;\n}\n\nconst fileItemContainerVariants = cva(styles['file-item-container'], {\n  variants: {\n    inline: {\n      false: styles['file-item-container_inline_false'],\n    },\n    error: {\n      true: styles['file-item-container_error_true'],\n    },\n  },\n});\n\nconst documentIconVariants = cva(styles['document-icon'], {\n  variants: {\n    size: {\n      sm: styles['document-icon_size_sm'],\n      md: styles['document-icon_size_md'],\n    },\n  },\n});\n\nconst descriptionVariants = cva(styles.description, {\n  variants: {\n    error: {\n      true: styles['description_error_true'],\n    },\n  },\n});\n\nconst fileContentContainerVariants = cva(styles['file-content-container'], {\n  variants: {\n    size: {\n      sm: styles['file-content-container_size_sm'],\n      md: styles['file-content-container_size_md'],\n    },\n  },\n});\n\nexport const FileUploadItem: FC<FileUploadItemProps> = ({\n  fileName,\n  fileSize,\n  progress = 0,\n  showSuccess = false,\n  showProgress = false,\n  failureMessage = 'Upload failed',\n  onRetry,\n  onRemove,\n  size = 'sm',\n  inline = false,\n}) => {\n  const isError = !showSuccess && !showProgress;\n\n  return (\n    <div\n      className={cn(\n        fileItemContainerVariants({\n          inline: inline ? undefined : false,\n          error: !inline && isError,\n        })\n      )}\n    >\n      {showSuccess ? (\n        <Icon\n          size={'xs'}\n          state={'success'}\n          name={'check'}\n        />\n      ) : (\n        <Icon\n          name={'document'}\n          className={cn(documentIconVariants({ size }))}\n        />\n      )}\n\n      <div className={cn(fileContentContainerVariants({ size }))}>\n        <div className={styles['file-details']}>\n          <MiddleTruncator text={fileName} />\n          {showProgress && !showSuccess && (\n            <Text className={styles.description}>{progress}%</Text>\n          )}\n        </div>\n\n        {isError && (\n          <Text className={cn(descriptionVariants({ error: true }))}>\n            {failureMessage}\n          </Text>\n        )}\n\n        {showProgress && !showSuccess && (\n          <div className={styles['progress-bar-wrapper']}>\n            <ProgressBar\n              progress={progress}\n              type={'small'}\n            />\n          </div>\n        )}\n\n        {showSuccess && (\n          <Text className={styles.description}>{formatFileSize(fileSize)}</Text>\n        )}\n      </div>\n\n      <div className={styles['file-actions']}>\n        {isError && onRetry && (\n          <IconButton\n            size={'sm'}\n            icon={'refresh'}\n            type={'ghost'}\n            onClick={onRetry}\n          />\n        )}\n        {onRemove && (\n          <IconButton\n            size={'sm'}\n            icon={'cross'}\n            type={'ghost'}\n            onClick={onRemove}\n          />\n        )}\n      </div>\n    </div>\n  );\n};\n"],"names":["cva","styles","jsxs","cn","jsx","Icon","MiddleTruncator","Text","ProgressBar","formatFileSize","IconButton"],"mappings":"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"}