=== Trunk Component Library ===
Contributors: trunk
Tags: components, design system, library
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 8.1
Stable tag: 0.3.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A reusable library of design system components for WordPress.

== Description ==

Describe the plugin here. This file follows the WordPress.org readme format;
keep it even for private plugins, as many update servers and tools parse it.

== Installation ==

1. Upload the `trunk-component-library` folder to `/wp-content/plugins/`.
2. Run `composer install --no-dev` inside the plugin folder (optional — a
   fallback autoloader ships with the plugin).
3. Activate the plugin through the "Plugins" screen in WordPress.

== Changelog ==

= 0.3.2 =
* The mu-plugin fallback now installs on a site whose files are not owned by
  the user PHP runs as. WordPress will only write directly when new files come
  out owned by whoever owns core, which is not true of a containerised or
  release-directory deployment however writable mu-plugins itself is, and the
  strict test handed those sites to an FTP transport they have no credentials
  for. Relaxed the ownership requirement, as core does for its own automatic
  updates.

= 0.3.1 =
* Fixed a fatal error on activation. Installing the mu-plugin fallback read
  FS_CHMOD_FILE, which WordPress defines only once WP_Filesystem() has
  connected — and on a site where it cannot, the object it assigns on the way
  past was enough to reach that constant and nothing else. The write is now
  decided by what WP_Filesystem() returns, and it asks about the directory
  being written to rather than wp-content, so a deployment whose release
  directory is read-only is not sent looking for FTP credentials it has no
  reason to need.
* The plugin no longer boots when ACF is missing, and says so on screen
  instead. Every service it registers is a layer over ACF's flexible content
  fields, so without it the first call into one was a fatal rather than an
  absent feature.
* The mu-plugin fallback now stands down once the plugin has booted rather than
  once its classes can be loaded. An active plugin that stopped short leaves
  exactly the same unresolved rows behind as a deleted one, and the old test
  could not tell the two apart.

= 0.3.0 =
* Added a component filter to the Pages, Posts and other list tables. Choosing a
  component narrows the list to the posts using it — including the posts using it
  through a synced library entry, which store a reference rather than the
  component's own name and would otherwise be the ones left out.
* The filter offers only the components the builders on that post type define,
  and is hidden entirely on post types with no builder.

= 0.2.0 =
* Fixed saving a component whose layout name is not lowercase. Layout names
  were run through sanitize_key(), which lowercases, so on a project naming
  its layouts in PascalCase no row could be saved at all.
* Failures now report the reason the server gave. The endpoints answer a
  refusal with a 4xx, which jQuery routes to fail() rather than done(), so
  every distinct error read as the same generic message.
* The library no longer appears on ACF options pages. It is postmeta work
  throughout, and an options page stores elsewhere; a builder cloned onto one
  renders wearing the original's field key, so the heart and the insert picker
  both turned up where neither could work.

= 0.1.0 =
* Initial scaffold.
