- Support for Drag-and-Drop and file browser selection.
- Support for Multiple and Single file upload modes.
- Progress Indicators (individual file progress and overall status).
- Validation Rules: Allow configuration for maxFileSize, acceptedFileTypes, and maxFiles.
- State Management: Handle idle, uploading, success, and error states.
Component
Uploader
Is your feature request related to a problem? Please describe.
The Uploader component allows users to select and upload files from their device to a system or application. It supports various file types and sizes, providing real-time feedback on the upload process through progress indicators. Key features include drag-and-drop functionality, multiple file uploads, and validation rules to ensure only appropriate files are processed.
Describe the solution you'd like
Component Implementation
Language: Implement the Uploader component in TypeScript.
Styling: Utilize SCSS with BEM methodology.
Theming: Integrate design tokens from @geneui/tokens for consistent colors, borders, spacing, and typography.
Features:
Accessibility: Ensure full keyboard navigation (e.g., triggering the file picker with Enter/Space) and appropriate ARIA attributes (role="button", aria-live for progress updates).
Unit Tests
Framework: Write tests using Jest and React Testing Library.
Coverage:
Storybook Stories
Checklist
Describe alternatives you've considered
No response
Are you able to assist to bring the feature to reality?
yes
Additional context
No response