# Media Input

> A compound file picker for local media (images, audio, video) that previews the picked file via an object URL, with an empty-state prompt, replace/clear controls, and accept and max-size validation — nothing ever leaves the browser.

- Author: [Mohammad Shehadeh](https://21st.dev/@mohammadshehadeh)
- Library: [Hirael](https://21st.dev/@mohammadshehadeh/library/hirael)
- License: MIT
- Tags: File Input, File Upload, Image Preview, Form
- npm dependencies: lucide-react
- Live preview: https://21st.dev/@mohammadshehadeh/components/media-input

## Install

```bash
npx shadcn@latest add "https://21st.dev/r/mohammadshehadeh/media-input?api_key=$API_KEY_21ST"
```

Requires a 21st API key (generate one at https://21st.dev/mcp) passed as `API_KEY_21ST`. Free accounts get a limited number of installs per day; unlimited on a paid plan — see https://21st.dev/pricing.

Full component directory: https://21st.dev/llms.txt · More like this: https://21st.dev/community/components/s/file-input.md
