Version 2.0.0
October 19, 2026
Changed
- First stable release of v2, licensed under the Craft License.
- Renamed from Component Library to Component Viewer, because the Plugin Store already has a
plugin with the
component-libraryhandle. The package is nowwebdna/component-viewer, the handlecomponent-viewer, the namespacewebdna\componentviewer, the config fileconfig/component-viewer.php, the console commandscomponent-viewer/checkandcomponent-viewer/make, and the control-panel sectionadmin/component-viewer. Share links now startcomponent-viewer/share/. See Upgrading, which also covers a site on an earlier 2.0 beta.
Added
- A site on an earlier 2.0 beta keeps its share links and its granted permissions when it installs
the renamed plugin: the install takes over the old share table and permissions, links sent under
component-library/share/still open, andconfig/component-library.phpis still read, with a deprecation warning, until it is renamed. - v1's
config/app.phpregistration now stops with instructions, rather than a missing class.
Version 2.0.0-beta.2
September 29, 2026
Added
- A plugin icon, for the Plugins settings page, the Plugin Store and the control-panel nav.
Version 2.0.0-beta.1
September 29, 2026
A rewrite as a Craft 5 plugin. See Upgrading from v1.
Added
- A control-panel library: a full-screen workspace with a searchable tree, a preview on each site's own styling, desktop, tablet and phone devices with rotate, and a drawer of settings, examples, props, source and notes. Every view has its own address.
- A preview Mode dropdown for the background (the site's own, light or dark), and a
backgroundkey in thecomponenttag for the one a component opens on. - A Props tab listing each component's whole API from its tag,
control: falsefor code-only props that get no control, and aniconprop type that picks by name from oneiconsfolder. - Share links: expiring, revocable addresses that open the library with no account. A new link's address opens in a copy prompt, and Copy link shows an active link's again.
- The
{% component %}tag, which describes a component in its own file and renders nothing. - Stories in
<name>.stories.twig, which can embed components and fill their blocks. component-library/check [--strict], for automated builds.component-library/make <category>/<name> [--root=<n>] [--folder].- The resolver, a stable API for finding a site's version of any file from PHP.
- Permissions: Access Component Library and Create and revoke share links.
- A Component library index option under Clear Caches.
Changed
- Installed as a plugin, not listed as a module in
config/app.php, which now throws an error naming the line to remove. - Requires Craft 5 and PHP 8.2.
- The component list is built once per site and cached, instead of on every
@handleinclude. - v1's
.config.jsonfiles are read only with'legacy' => trueinconfig/component-library.php. - Previews render as a guest, in a frame on the chosen site's own base URL.
- Values typed into the library reach a component as escaped text, and only for declared settings.
- A legacy
readme.mdis shown as Markdown and no longer rendered as Twig.
Removed
- The front-end
component-libraryandcomponent-library/renderpages and theget-component-infoaction. - The
COMPONENT_LIBRARY_VIEW_KEYview key. Share links replace it. - The
navigationconfig key and Formatters. {ref:},{entry:}and{asset:}placeholders in legacy configs. The check reports each one.- Craft 3 and 4 support.
Security
- The four issues from the September 2026 review cannot recur: Twig injection from typed values,
element disclosure through placeholders, path traversal through
?site=, and a view key that let anyone in when unset.