=== VEFmusic ===
Contributors: vimagesericfabre
Author URI: https://v-images.com
Tags: music, band, audio player, gutenberg blocks, events
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 8.3
Stable tag: 2.16.27
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Showcase your band online: audio player, albums, shows, an auto-generated press kit, SEO data — native blocks, no shortcode.

== Description ==

VEFmusic is a free plugin for a band's website (live demo: https://v-images.com/demo-vefmusic/): an audio player with tracks and albums, a show calendar, an auto-generated press kit for media and journalists, visitor ratings, and automatic SEO structured data — all through native blocks, no shortcode required.

**Press kit generator (EPK) — built in, free**

Generate a professional PDF press kit in one click, built directly from your existing tracks, albums, shows and band bio — no separate document to write and keep up to date by hand.

* Auto-built from your published content: biography, links & social media, albums with covers, upcoming shows
* Add as many custom text sections as you need, each with its own title — rich text (bold, italic, lists, clickable links)
* Choose the order sections appear in, to match how you want to present your band
* Multi-page PDF with fully automatic pagination — a long biography or a long custom section is never cut off
* Optional downloadable zip: the PDF plus the original full-resolution files (album covers, extra photos, documents, selected audio previews). The pictures in the PDF only illustrate the kit
* Optional contact form gate (off by default), with a log of received requests in the admin

**Content**

* Track, Album and Show post types, with a Genre taxonomy
* Bulk import: select several audio files at once (e.g. a whole album) to create matching draft tracks in one go, with tags read automatically (title, duration, track number, album, genre) — reviewed and confirmed before publishing
* Track: duration, parent album, listening mode (preview, free full listen, or buyers only), audio file (MP3, WAV, FLAC, OGG, M4A)
* Album: release year, front/back cover, collapsible tracklist
* Show: date, venue, address, image, external ticketing link, optional venue link, free-text price note

**Player**

* SVG icons, clickable progress bar, volume, a real-time audio equalizer
* Fully keyboard-accessible, with ARIA labels reflecting the real playback state
* Automatic lightweight MP3 version generated from a FLAC/WAV master file where hosting allows it

**Accessibility**

* Player: keyboard-operable progress bar and volume, ARIA labels reflecting the real playback state, visible keyboard focus
* Visitor rating form: grouped/labeled star options, screen-reader-only labels, live status region on submission
* Lyrics toggle: proper expanded/collapsed state exposed to assistive technology
* Descriptive alt text on show posters and album covers; external links (tickets, venue, social) flagged as opening a new tab
* Random Player block: an in-admin warning flags that autoplaying sound can be an obstacle for visually impaired visitors relying on a screen reader — weigh this before using it on your site

**Blocks**

Six native Gutenberg blocks — Track List, Album, Shows, Next Show, Past Shows, Random Player — with six matching native Divi 5 modules and six matching native Elementor widgets, all sharing the same server-side rendering.

**More**

* Visitor ratings (moderated) for tracks, albums and shows
* Automatic schema.org structured data for search engines
* Anonymous listening statistics — no IP address, cookie or identifier ever stored
* Settings export/import for deploying the same identity/style on a new site
* Optional "Enlarge on click" on show posters and album covers (front and back), per block — off by default

= Selling music? VEFmusic Pro =

VEFmusic itself never sells anything — it stays a pure showcase plugin, forever free. [VEFmusic Pro](https://v-images.com/plugin-vefmusic/) is a separate paid extension (installed in addition to VEFmusic, which it requires) adding a full sales and ticketing layer:

* Sell individual tracks and albums, with secure time-limited download links
* Accept donations
* Merch store — your own products, or print-on-demand via Printful with no separate store plugin
* Internal ticketing with QR-code entry, in addition to the free external ticketing link
* Promo codes
* Preorders / crowdfunding campaigns, with optional funding tiers — payment methods are saved and only charged if the goal is reached
* Customer accounts — no WordPress account required, secure passwordless access by email link
* Revenue split tracking between band members
* Sales statistics and accounting export (CSV)
* PayPal and Stripe payment
* Admin-managed refunds, including legally compliant withdrawal/right-of-return handling

Every Pro feature reuses your existing VEFmusic content (tracks, albums, shows) — nothing to set up twice.

== Installation ==

1. Upload the `vefmusic` folder to `/wp-content/plugins/`, or install it through the WordPress admin under Plugins > Add New.
2. Activate the plugin.
3. Go to **VEFmusic > Settings > General** to enter your band's identity.
4. Add your tracks, albums and shows, then place the blocks on your pages.

== Frequently Asked Questions ==

= Does this plugin sell anything? =

No. VEFmusic is a showcase plugin only. Selling tracks, albums, merch, tickets, or accepting donations requires the separate VEFmusic Pro extension.

= Do I need Divi or Elementor? =

No. VEFmusic works with the native WordPress block editor (Gutenberg) out of the box. Divi 5 and Elementor support is provided in addition, not required.

= Where are my audio files stored? =

Outside the media library, in a protected location never accessible by direct link — playback always goes through an access check based on the track's listening mode.

= Can I use this plugin for any band, or is it built for a specific one? =

VEFmusic is fully generic: nothing is hard-coded, everything comes from your own settings and content.

== External services ==

This plugin connects to a support service operated by V-IMAGES (v-images.com), the plugin's publisher, only when you explicitly fill in and submit the "Support & feature requests" form (VEFmusic > Help > Support & feature requests tab). It is never contacted automatically or in the background.

When you submit that form, the following is sent: your reply-to email address, the subject and message you typed, your site's URL, the VEFmusic (and, if installed, VEFmusic Pro) version numbers, your WordPress version, your PHP version, and your active theme's name and version. This lets the publisher reply to your request with the relevant technical context, without you having to copy it in by hand.

The plugin also connects to the same V-IMAGES service for the optional free license (VEFmusic > Help > About), and only if you ask for it: nothing is sent until you fill in the form and tick the consent box. The free license unlocks nothing — the plugin works exactly the same without it; it only lets the publisher send you news and offers, and identify your site when you ask for support.

When you register, the following is sent: the email address you typed, the exact consent text you agreed to, your site's URL, the VEFmusic version and your site's language. While you are registered, each time you open the About or General screen the plugin checks the registration status (on each of those screens until you confirm by email, then once a week), sending your license key, your site's URL and the VEFmusic version. When you unregister, the plugin asks the service to delete your data. Your free license key is also added to support requests you send.

This service is provided by V-IMAGES (Eric Fabre): [Terms of use](https://v-images.com/cgv-cgu/), [Privacy policy](https://v-images.com/politique-de-cookies-eu/).

== Screenshots ==

1. Track List block on the front end.
2. Album block with cover and tracklist.
3. Shows block, featured mode with countdown.
4. Style settings screen.

== Changelog ==

= 2.16.27 =
* Maintenance: code comments cleaned up. No change in behavior.

= 2.16.26 =
* Maintenance: code comments cleaned up. No change in behavior.

= 2.16.25 =
* Changed: layout adjustments. Add-to-cart buttons that are not the small round track button (the ticket and merchandise ones) get the same pill shape and padding as the other action buttons; the "Buy the album" button text is centered; the automatic price hint under an album price and the Shuffle button on small screens are centered; the player bar content is centered.

= 2.16.24 =
* New: every button now sinks slightly when the pointer is over it (or it has keyboard focus), and a little more while it is clicked: the same effect on all buttons. It does not apply to disabled buttons, is turned off for visitors whose device asks for reduced motion, and the hover part is skipped on touch screens. The depth can be adjusted in custom CSS with --vefm-btn-hover-scale (0.97 by default).

= 2.16.22 =
* Changed: every button now has the same look, only its shape differs. Same background (the main color), same text color, full strength at rest, same slight dimming on hover and keyboard focus, same visible focus ring and same disabled look. This covers the play, add-to-cart, buy, shuffle, show ticket, random player, rating, cover flip and lightbox buttons, and the icon controls (volume, lyrics, "read more", cancel rating). The Button text color setting now applies to all buttons.
* New: Style > General > Button states: set the opacity of buttons on hover and when disabled (variables --vefm-btn-hover-opacity and --vefm-btn-disabled-opacity). Left empty, the defaults are 85% and 60%.
* Changed: the button styles are now grouped in one small shared stylesheet, which lightens the other stylesheets.

= 2.16.21 =
* New: visitor ratings — ratings you have approved no longer disappear from the interface. The Visitor ratings tab now lists them under "Approved ratings", with a checkbox on each row, a "select all" box and a "Delete selected" button (also available for ratings awaiting moderation, next to "Approve selected"), so ratings can be removed one by one or all at once at any time.
* Changed: the block settings (block editor, Divi 5, Elementor) no longer offer the "Show visitor ratings" switch as if it did something when ratings are turned off for that content in the Visitor ratings tab: the block editor and Elementor show a short note instead. The Visitor ratings tab stays the master setting; the per-block switch only hides stars in a block when ratings are on.
* Fixed: with Pro's automatic album price active, the "automatic price if all tracks are in the cart" hint no longer sits inside the price line, which shifted the price out of line with the other albums.
* Changed: all filled buttons now share the same hover and keyboard-focus effect, a slight dimming, instead of a zoom on some and a different fade on others; the random player's Stop button also has the same full-strength fill as the others (it was dimmed). The strength can be adjusted in custom CSS with --vefm-btn-hover-opacity.
* Changed: after the latest ratings are deleted, the next rating gets the next free number instead of leaving a gap.

= 2.16.20 =
* New: visitor ratings on past shows. When ratings are enabled for shows, clickable stars now appear under the title of each past show (Shows and Past Shows blocks, with the average and the number of reviews). Upcoming shows never show stars. A visitor clicks a star, types a name and, if they wish, a comment.
* New: a "Show visitor ratings" setting on each block that can display stars (Track List, Album, Shows and Past Shows), in the block settings of the block editor, the Content tab of the Divi 5 modules and the Content tab of the Elementor widgets. It is on by default, so nothing changes on existing pages; turn it off to hide the stars in that block only. It never turns ratings on: that still depends on the boxes in the Visitor ratings tab.

= 2.16.19 =
* Changed: VEFmusic now requires PHP 8.3 or higher, because PHP 8.2 stops receiving security fixes on 31 December 2026. WordPress only offers this update on sites that meet the requirement; most hosts let you switch the PHP version from their control panel.
* Fixed: the Track List and Album modules of Divi 5 no longer add debugging comments to the page source when an administrator views the page.

= 2.16.18 =
* New: visitor ratings now appear in your blocks. When ratings are enabled for tracks or albums, clickable stars show right after the length of each track (Track List and Album blocks) and under the title of each album, with the average and the number of reviews. A visitor clicks a star, types a name and, if they wish, a comment, without opening the page of the track. The full rating form stays on the page of each track, album and show.

= 2.16.17 =
* Improved: pressing the global play button of an Album or Track List block now opens the album's collapsible track list when it is closed, so you can see which track is playing. A list you closed yourself while listening stays closed.

= 2.16.16 =
* Improved: the preview of a track now ends exactly where you asked. For WAV and MP3 files the plugin counts the audio itself instead of estimating from the file size, so the length is right whatever the bitrate, and a large cover picture or tag at the start of an MP3 no longer shortens it. FLAC and other formats keep the previous estimate.

= 2.16.15 =
* Fixed: when a track had no duration entered (or one in an unexpected format), its preview length setting was ignored and a fixed amount of audio was played instead (about 20 seconds of an MP3, but only about 4 seconds of a WAV). The duration is now read from the audio file itself (WAV, FLAC and MP3), so the preview length always applies.
* Fixed: changing the preview length of a track (or the default preview length in the settings) had no visible effect for a visitor, or the webmaster, whose browser had already played that preview: the old, longer or shorter preview kept being reused. The preview now comes with a version that changes with its length, so the new length is used straight away.

= 2.16.14 =
* Changed: the MP3 version generated from your master files (the one visitors stream, and the one buyers download with VEFmusic Pro) is now encoded at 320 kbps instead of about 190 kbps. Tracks already converted keep their current quality until you upload their master file again.

= 2.16.13 =
* Changed: the album price field now says it is the price of the album's digital download, and that a vinyl or any other physical edition is a separate product (a Merch product with VEFmusic Pro). The same note appears in the Help screens.

= 2.16.12 =
* Fixed: a few labels and descriptions of the Divi 5 modules (Album, Shows, Past Shows, Random Player, Track List) were still written in French in the plugin itself. They are now in English like the rest of the plugin, with the same names as the matching blocks and Elementor widgets.

= 2.16.11 =
* Fixed: in a "two columns" section of the press kit, a photo no longer floats in the middle of its column, which pushed the two photos far apart. Photos now fill the width of their column (up to a maximum height, since the pictures in the PDF only illustrate the kit), flush left.
* Fixed: in a "two columns" section, the column titles now always stay on the same page as the top of their columns. A title is no longer left alone at the bottom of a page while its photo moves to the next one, and the two columns always start on the same page. A column that is longer than the page continues on the next page, as before. The same applies to the title of a two-column text paragraph.
* Fixed: text placed right under an image touched the bottom edge of that image.
* Changed: clearer press kit help. A new "How the kit works" help tab explains that the PDF illustrates and the zip carries the full-resolution originals, and which images end up in the zip.

= 2.16.10 =
* Fixed: in the press kit, images inserted in a text section or column with "Add Media" were missing from the PDF when the image was wrapped in a link, followed by a line break, or placed next to another image in the same paragraph. They are now all included, one under the other.

= 2.16.9 =
* Changed: the progress bar of the track being played now has the same LED-style, VU-meter look as the equalizer (accent colour at the bottom, peak colour at the top), and follows the same Style settings.
* Changed: a few help texts no longer call the plugin "VEFmusic (free)"; it is simply VEFmusic.
* Changed: layout refinements to the blocks (text labels, badges, toggle buttons, album cover and zoom button now use flex layout so themes cannot misalign them; the buy button of the Shows block keeps its own layout).

= 2.16.8 =
* Fixed: in a "Two columns" press kit section, switching a column to "Text" left its editor disabled, so the text typed there was not saved.
* Fixed: removing a media section and then adding a new text section by Ajax could give two editors the same identifier. Editors are now identified by their section, not by their position.
* Fixed: clicking two "Add a ... section" buttons in quick succession could lose one of the two sections. Only one addition runs at a time.

= 2.16.7 =
* Fixed: saving the press kit could silently wipe or mix up the content of its media sections. When a kit had several sections of different types (text, photos, documents, audio, two columns), saving the page — even without changing anything — could empty the text, the selected files or the colors of every section after the first, or move them to another section. This also affected the additional kits of VEFmusic Pro. The fields of each section are now numbered section by section and read by name, so a save keeps exactly what is on screen. Sections already emptied by an earlier save cannot be recovered automatically: check your kit and re-enter what is missing.

= 2.16.6 =
* Fixed: Shows block (ticket-style layout) — the blocks inside a show now wrap onto a new line when there is not enough room, instead of squeezing together.

= 2.16.5 =
* Improved: a new look for the whole admin. Every screen has a header in the color scheme you chose in WordPress, with the name of the page, what it is for and the version; the tabs are pills with an icon, and a red counter shows how many visitor ratings wait for your approval.
* Improved: the menu now follows how you work — Products, Sales, Marketing, Settings, Help. "About" and "Diagnostics" moved to the Help page, and the menu entry of a page stays highlighted on each of its tabs. Every address, form and bookmark keeps working.
* Added: the "Help" button of WordPress now works on every screen of the plugin, with a few short topics for that screen.
* Improved: the Help tab is now a getting started guide in seven steps, each one with its place in the menu, followed by the detailed reference in folded sections (nothing was removed). "About" has a new "Where to find what" section.
* Improved: the bulk import of tracks has the same header and tabs as the other Products screens.
* Fixed: menu paths quoted in the help texts now match the new menu.
* Fixed: the link to the General settings at the top of the Press kit screen was always shown in French; it is now translatable.

= 2.16.4 =
* Added: a new action, `vefm_concert_duplicated`, fires when a show is duplicated from the Shows list, so extensions can copy their own per-show data (VEFmusic Pro uses it to copy the ticket zones).

= 2.16.3 =
* Changed: the button that flips the album cover now shows two opposite horizontal arrows instead of two circular arrows, on the album cover and in the enlarged view.
* Fixed: random player — its inner padding now matches the track players by default (10px 16px). It used to scale with the theme's text size and could look larger than the tracks.

= 2.16.2 =
* Added: "Enlarge on click" setting (off by default) on the Album, Shows, Next Show and Past Shows blocks, Divi 5 modules and Elementor widgets: a click on the album cover or the show poster opens it in a larger view, with a flip button when the album has a back cover. The background takes the color of your site.
* Fixed: random player — the volume button now switches to the crossed-out speaker icon when muted, like the other players.
* Fixed: Tracks list (admin) — the "Album" column header now sorts in descending order on the first click (the list already opens in ascending order).
* Fixed: Shows block — a very long venue name without spaces no longer sticks out of the show card on very narrow phones.
* Improved: Help tab — documents settings that were missing (data removal on uninstall, tagline, preview length, audio formats for sale, automatic album discount, track style settings).
* Maintenance: Plugin Check errors fixed (translators comment, documented exceptions).

= 2.15.60 =
* Fixed: Help tab — the paragraph about the Tracks list displayed stray backslashes around the quoted button and column names (introduced in 2.15.58).
* Maintenance: internal code comment translated to English.

= 2.15.59 =
* Fixed: concert block (featured layout) — a long venue name without spaces no longer overflows its 90px column; it now wraps.
* Fixed: track number badge — a number with two digits or more (such as track 10) no longer overflows its circle; the badge now stretches into a pill around the number.

= 2.15.58 =
* Added: Tracks list (admin) — a "Track no." column, editable in each row and saved with the existing "Save changes" button. The list now opens grouped by album (tracks without an album last), each album's tracks sorted by track number then title — the same order as the album tracklist on your site. The "Album" and "Track no." headers are sortable too.

= 2.15.57 =
* No functional change. Repackaged so a fresh install properly replaces every file (a same-version file edited in place through the WordPress file editor can be kept by PHP's opcode cache until the next full plugin install).

= 2.15.56 =
* Fixed: press kit PDF — a section title (for example "Albums", or a photo section such as front/back covers) is no longer printed alone at the bottom of a page while its content starts on the next one.
* Fixed: press kit PDF — pages are now filled down to the footer margin, so a short last section (such as "Links & networks") no longer lands alone on an extra page when there is room left.
* Changed: the button that flips the album cover no longer has a light ring around it; only the two circular arrows on the accent-colored disc remain.

= 2.15.55 =
* Added: Album block — when an album has a back cover, a small button on the cover switches between the front and the back. It uses the accent color and button text color from VEFmusic > Style (and the global button shadow), and works the same in Gutenberg, Divi 5 and Elementor. Albums without a back cover look exactly as before.

= 2.15.54 =
* Added: albums now have their own "Band name" field, shown under the album title in the Album block (all builders) and in the grouped track list. It is also used as the artist in the album's structured data. Leave it empty to show no band name.
* Fixed: the bulk track import screen no longer triggers a PHP 8.1+ deprecation notice about the page title.

= 2.15.53 =
* Fixed: PHP 8.5 compatibility — the press kit PDF engine no longer calls a GD function deprecated in PHP 8.5. No visible change.

= 2.15.52 =
* Changed: Shows block — on tablets, the ticket buttons stay right-aligned; they are only centered on phones.

= 2.15.51 =
* Added: button shadow — one setting in VEFmusic > Style > General adds a shadow to all VEFmusic buttons (and VEFmusic Pro's): horizontal and vertical offset, blur, spread and color with opacity. No color chosen = no shadow, the theme's button style is kept.
* Fixed: the settings export now includes the button text color.
* Fixed: the rating form's submit button now follows the main color set in VEFmusic > Style.

= 2.15.50 =
* Changed: Track List and Album blocks — the playlist toolbar (play all, shuffle, volume) now only takes the width of its buttons instead of the whole row, and is centered.

= 2.15.49 =
* Changed: Shows block (list mode) — on tablets, when the buttons move below the show details, they are aligned to the right edge of the card instead of being centered as a group.

= 2.15.48 =
* Changed: show cards with a poster — the poster column now takes 20% of the card (never less than 120px) instead of a fixed 160px, and the poster moves above the show details below 980px.
* Fixed: Random Player — the "Stop" button now uses the block's font instead of the browser's default font.

= 2.15.47 =
* Changed: on small screens, the playlist toolbar keeps play/pause and volume on one line (the Shuffle button wraps below when needed), instead of stacking everything vertically.
* Removed: an unused small-screen rule for show cards with a poster (those cards already switch to a single column below 780px).

= 2.15.46 =
* Changed: the Shuffle button of the Track List block now looks like the other player buttons (filled with the accent color). When shuffle is on, a ring is shown around it.
* Fixed: Random Player — the "volume" and "mute" speaker icons could both show at once with some themes; only one is shown now.

= 2.15.45 =
* Changed: the volume controls (per track and in the playlist toolbar) are never wider than 300px.

= 2.15.44 =
* Fixed: Elementor — the Past Shows and Next Show widgets now pick up the settings of VEFmusic > Style > Shows (colors, border, spacing, title and venue sizes), like the Gutenberg blocks and Divi 5 modules. The Next Show widget still uses its own tab first.

= 2.15.43 =
* Changed: block titles (Album, Shows, Next Show, Past Shows) now use the theme's heading size and weight by default. A title size set in VEFmusic > Style still overrides it. Show titles may therefore look smaller than before on some themes: set a size in VEFmusic > Style to get the previous look back.
* Fixed: with no size set, the album title took the surrounding text size instead of the theme's heading size.

= 2.15.42 =
* Changed: in track lists and albums, the per-track volume control now sits under the track title and comment, with a slider that uses the available width; the duration is shown right after the title and its badges.
* Changed: on small screens, the playlist toolbar and the Random Player stack their controls vertically.
* Changed: track titles are vertically centered with their badges.

= 2.15.41 =
* Fixed: free license — after clicking the confirmation link, the About screen could keep asking to confirm for up to an hour; the status is now checked again each time the screen is opened until it is confirmed.
* Fixed: free license — the "An email is on its way" message is shown once only, instead of coming back on every page reload.

= 2.15.40 =
* Added: optional free license (VEFmusic > Help > About). Register your copy to receive news, offers and faster support — entirely optional, nothing is sent without your explicit consent, and it unlocks nothing: VEFmusic stays free and complete. Double opt-in by email, unregister at any time (your data is then deleted). See "External services".

= 2.15.39 =
* Changed: blocks now use the theme's fonts by default — body text and headings alike. The font set in VEFmusic > Style still applies when filled in, now to block headings too.
* Changed: font sizes come from a single fluid scale (`--vefm-font-size-*`), growing smoothly from phone to desktop and respecting browser zoom, used wherever the active theme doesn't define its own font size presets — one place to adjust, overridable in custom CSS.
* Changed: wider volume slider on large screens (still bounded on mobile); the show date badge uses the plugin's own scale so a theme's large presets can no longer make it overflow.
* Fixed: a font picked in the block editor's Typography panel could fall back to the browser's default font on buttons inside the block.
* Removed: leftovers of a former self-hosted update mechanism are cleaned up automatically on sites installed from an older package; updates come from WordPress.org only.

= 2.15.21 – 2.15.37 =
* Added: every block supports Gutenberg's native anchor, gradients, line height, text alignment, drop shadow and minimum height; press kit — .woff font files accepted (converted on the fly), optional colors for the active-campaign section.
* Changed: most font sizes follow the active theme's typography scale, with explicit fallbacks; more breathing room between press kit sections, and taller header bands in the press kit PDF; slightly less rounded "Buy album" button.
* Fixed: native Gutenberg controls (spacing, link color, line height, minimum height) re-enabled for VEFmusic's own blocks when a theme disables them site-wide; press kit PDF — untitled sections, orphaned section titles, text colors, funding goal shown as "0.00 €"; a corrupted translation file can no longer break the License/Rollback screen; adding a press kit section from VEFmusic Pro's additional kits now targets the right kit; WordPress.org compliance — system-binary fallback removed from .woff2 decoding.

= 2.15.0 – 2.15.20 =
* Added: Shows list — "Duplicate" action; optional automatic updates (manual by default); price, listening mode and album editable directly in the Tracks list with one "Save changes" button; "Preview"/"Full track" indicator on each track; Press kit — text and link color settings, "View PDF" opens in the browser tab; Style — "Button text color" setting; native wide/full alignment on every block.
* Changed: Track List / Album layout refinements (play, cart and volume controls grouped in one column, lyrics panel behaviour); the old native "Bulk Edit" album panel removed in favour of the editable Tracks list columns; Press kit page-number and contact-box styling.
* Fixed: Track List / Album cart button alignment and its display without VEFmusic Pro; Style settings (Album tab) saving on sites that had never touched the title size; Shows block "Read more" ellipsis; Press kit custom .ttf/.woff2 fonts refused on some hosts, contact-box background, image-only sections missing from the PDF and remaining PDF colors; Tracks list "Save changes" button.

= 2.14.1 =
* Changed: removed the bundled readme translation export file — the readme is no longer translated going forward, only the plugin's own strings.

= 2.14.0 =
* Changed: Shows block — with "Also show past shows" enabled, upcoming shows now list first (soonest to farthest), then past shows (most recent to oldest).
* Added: Shows/Next Show style tabs — new "Title color" setting for the show title.
* Fixed: last show in the "Shows" block no longer keeps a bottom margin below it.

= 2.10.0 – 2.13.4 =
* A long run of visual polish and mobile-layout fixes across the Shows, Track List/Album and Random Player blocks (alignment, spacing, wrapping on narrow screens), plus the Help/About tabs brought up to date, a French-translation pass, and the introduction of the "Shows to display" setting (replacing the separate "Past Shows" block).

= 2.9.0 – 2.9.5 =
* Track audio files can be picked from the media library, not just uploaded. Accessibility warning added for the Random Player's autoplay. Press kit weekly-download counter added. A few translation and pagination fixes.

= 2.8.0 – 2.8.6 =
* Optional full data removal on uninstall. Several track-upload reliability fixes for restrictive hosting environments. Press kit gained per-paragraph text alignment and an optional two-column layout. Assorted French-translation fixes.

= 2.6.0 – 2.7.2 =
* Press kit fully rewritten (unlimited custom sections, reorderable, clickable links, no more silent cut-off on long text) and its Divi 5 preview switched to live content. Two housekeeping fixes for WordPress.org's translation tooling.

= 2.3.0 – 2.5.4 =
* 6 native Elementor widgets added. Optional lyrics field. Two critical upload/playback bugs fixed. Rollback screen and Plugin Check hardening.

= 2.0.0 – 2.2.12 =
* Initial WordPress.org release and the work leading up to it: update/rollback mechanism, press kit PDF improvements (logo, tagline, album selection), code hardening.

== Upgrade Notice ==

= 2.16.19 =
Requires PHP 8.3 or higher. WordPress only offers this update on sites that meet the requirement.

= 2.16.7 =
Fixes a press kit bug: saving a kit with several media sections could empty or mix up their text, files and colors. Please update, then check your kit.

= 2.9.1 =
Fixes a press kit bug where a 2-column paragraph could look cut off if both columns overflowed onto a new page — they now correctly share the same page.

= 2.7.2 =
Removes a plugin header that was likely causing a WordPress.org translation-tooling warning. No functional change.

= 2.7.1 =
Fixes a WordPress.org translation-loading compatibility warning (GlotPress). No functional change.

= 2.7.0 =
Press kit: unlimited custom text sections with reordering, clickable links, and a pagination rewrite so long text is never cut off.

= 2.3.5 =
Fixes a critical bug where uploading a track's audio file could silently fail to save.

= 2.0.0 =
Initial public release.
