A native drag-and-drop file picker with accept/size/count validation, inline rejection reasons and a removable file list.
npx shadcn@latest add @zyeon/dropzone
Zyeon UI limits how often it can be asked, and Dropzone hasn't had its turn. Its source will show here once it has.