albx / albx/bitblazor

[FEATURE] Add Upload component

Open
#36 0 comments 0 reactions 0 assignees View on GitHub
components enhancement
Dominant language
HTML
Stars
10
Forks
4
Avg merge
4d
Merged PRs (30d)
1

Description

Implement a BitUploadField component inspired by the Bootstrap Italia upload component.

### Requirements:
- Create a reusable BitUploadField component following the design and UX patterns of the Bootstrap Italia upload component ([docs](https://italia.github.io/bootstrap-italia/docs/form/upload/)).
- Support for both single and multiple file uploads.
- Expose properties for accepted file types, max file size, and max file count.
- Provide visual feedback for file upload progress, errors, and completed uploads.
- Add support for drag & drop file selection.
- Allow customization of labels, button texts, and icons.
- Emit events or callbacks for file selection, upload progress, completion, and errors.
- Ensure accessibility and keyboard navigation as shown in Bootstrap Italia documentation.
- Responsive layout and mobile-friendly behavior.

### Acceptance Criteria:
- The BitUploadField visually matches the Bootstrap Italia component (as much as possible within BitBlazor/Blazor constraints).
- Users can select files either via the dialog or by drag & drop.
- Component must restrict file types and enforce limits on file size/count.
- Upload progress, success, and error states are visually indicated.
- All customization props and events are documented and tested.
- Component passes accessibility checks (keyboard navigation, ARIA labels).
- Example usage is provided in the documentation and a sample page is available.

### References
- Bootstrap Italia Upload: https://italia.github.io/bootstrap-italia/docs/form/upload/

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.