lumerel/livewire-media-library

Minimal media library for Laravel Livewire 3

Maintainers

Package info

github.com/kimcee/livewire-media-library

Language:Blade

pkg:composer/lumerel/livewire-media-library

Statistics

Installs: 17

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.1.6 2025-08-20 14:22 UTC

README

A minimal, production-ready image media library for Laravel 10/11 and Livewire 3.

Installation

Add the repository locally and require the package:

"repositories": [
  {"type": "path", "url": "../livewire-media-library", "options": {"symlink": true}}
]
composer require lumerel/livewire-media-library:@dev

Publish the configuration and run migrations:

php artisan vendor:publish --tag=media-library-config
php artisan migrate

Publish the views:

php artisan vendor:publish --tag=media-library-views

Usage

In you app.css file, add for tailwindcss support

@source '../../vendor/lumerel/livewire-media-library/resources/**/*.blade.php';

Render the uploader and gallery components in your Blade view:

<livewire:lw-media-uploader collection="images" />
<livewire:lw-media-gallery collection="images" />

Alternatively, use the browser component to open the gallery and uploader inside a modal:

<livewire:lw-media-browser collection="images" />

Listen for the lw-media:selected event to get the selected media's id and path.

Switch to the Flux or Bootstrap theme by updating the config:

// config/media-library.php
'theme' => 'flux', // or 'bootstrap'

Install livewire/flux if you want to use the Flux-styled views. Include Bootstrap in your layout if you switch to the Bootstrap theme.

If intervention/image is installed the package will create conversions (thumb, preview) for uploaded images.

The download route /lw-media/{media} proxies files through Laravel's Storage::response() which is useful if direct disk URLs are not desired.

Security

Media files may expose their URLs if stored on public disks. Use the included download route or secure disks as needed.