github austinginder/minn-admin v0.9.0

latest releases: v0.34.0, v0.33.0, v0.32.0...
one month ago

v0.9.0 - July 9, 2026

The block-library release. Minn grows past the curated slash menu: auto-insert for standalone third-party blocks, Stackable / Kadence / GenerateBlocks free design libraries, site patterns, and a Browse all (⌘/) picker. Complex islands gain text and image editing, previews that actually warm their CSS, and no more mid-card clipping. Table structure undoes with ⌘Z; entry details step with ←/→.

Added

  • Third-party blocks insert with no adapter: dynamic (server-rendered) blocks a plugin registers now appear in the editor's slash menu automatically, provided they prove they render standalone: each candidate is render-probed, and blocks that output nothing from a bare comment (hybrids whose real markup lives in their editor JS) are excluded rather than inserted broken. Entries are search-only, so the default menu stays curated; type part of a block's title, or its namespace (like /anchor) to list everything a plugin ships. Insertion lands as a configurable island with a real preview and the schema-driven inspector, exactly like adapter-declared blocks. Adapter insert templates still win when present, insert => false hides a block, and the new minn_admin_insert_blocks filter prunes or extends the list.

  • Swap the images inside any complex block: the inspector now shows an Images section listing every picture an island uses, whether it sits in an img tag or a background style. Replace opens the media picker (upload straight into it if the shot isn't in the library yet), and the new image lands everywhere the old one appeared, with paired media ids and wp-image classes retargeted so the block editor agrees. Anything typed into the inspector's other fields rides along with the swap.

  • Edit the text inside any complex block: the block inspector now lists every piece of text living in an island's saved HTML as an editable field, no matter how deeply the block nests and even when the block registers no editable settings (the Stackable case). Each field writes back only the exact text you changed; everything else in the block stays byte-identical, so nothing ever breaks in the block editor. Inserting a design opens the inspector right away so the placeholder copy can be replaced on the spot.

  • Stackable design library in the slash menu: Stackable's blocks are built in its editor JS, so Minn can't create them one by one; instead, Minn now scrapes what Stackable itself publishes as data. All 107 free designs from the Design Library (Hero, Call to Action, Pricing Table, Testimonials, and more) surface as search-only slash entries; try /hero or /pricing. Each design inserts as one island of the library's own serialized markup, valid in Gutenberg by construction, with its stock images sideloaded into the media library first. Requires Stackable to be active; nothing loads otherwise.

  • Design-suite previews got their CSS back: three more preview fixes from the block-suite lab. GenerateBlocks previews now carry each block's own styles; Otter previews (including the new atomic-wind Tailwind blocks) recover the per-post CSS the plugin already cached, so an icon renders at icon size instead of filling the canvas; Essential Blocks previews extract the CSS each block carries in its own markup. Under the hood the preview scoper also learned modern CSS: @layer-wrapped stylesheets (compiled Tailwind) and nested rules now scope correctly instead of being dropped. Adapters can feed preview styles via the new minn_admin_render_styles filter.

  • The block picker (⌘/): with hundreds of insertables now available, the / menu grew a door. "Browse all" at the bottom of the slash menu, or ⌘/ anywhere in the editor, opens a large searchable picker with everything grouped by source: Basics, each plugin's blocks, each design library, and patterns. Picking inserts exactly like the slash menu would, at your caret. The inline / menu stays curated and fast.

  • GenerateBlocks pattern library in the slash menu: all free GenerateBlocks patterns join the block library through the plugin's own cached proxy, with their per-block CSS traveling inside the markup so previews arrive fully styled. Entries wear a generateblocks badge; remote images are sideloaded on insert like every design source.

  • Kadence design library in the slash menu: all 352 free Kadence sections join the block library, fetched through Kadence's own caching proxy (no license needed) and inserted as preserved sections with live previews, editable text, and replaceable images; remote images are sideloaded into the media library first, like every design source. Search by section name; entries wear a kadence badge.

  • Previews warm themselves: some plugins only produce their CSS when a page runs in a browser (Otter's atomic-wind compiles Tailwind client-side, and clears its cache on every save, so an actively edited post is usually cold). When the server reports that gap, Minn quietly loads the page in a hidden iframe so the plugin's own compiler runs and caches, then picks the styles up for its previews. No more giant unstyled icons after a save.

  • Fresh assets after every update: script and stylesheet versions now include the file's timestamp, so the browser never serves a stale copy of the app after an update or during development.

  • Block settings that scale: design-suite blocks can register hundreds of settings (one popular post grid ships 315). The inspector now keeps the fields a block actually uses in view and tucks the rest behind "More settings" with a filter box; setting a value promotes that field into view. Small blocks are unchanged.

  • Image replacement understands more plugins: swapping an image inside a complex block now retargets attachment ids across every convention found in the block-suite lab (Kadence's background pairs, media objects, GenerateBlocks' media ids, and per-image markers from Otter sliders) so the block editor and front end always agree on the new image.

  • Friendlier block settings labels: inspector fields fall back to humanized attribute names ("Has custom CSS" instead of hasCustomCSS) when a plugin doesn't provide labels.

  • Block patterns in the slash menu: every pattern registered on the site (by core, the active theme, or plugins like Otter and Essential Blocks) is now insertable from the editor, no adapter needed. Patterns are ready-made valid markup, so they land as preserved sections with live previews, editable text, and replaceable images; a multi-section pattern becomes a run of siblings, and its plain paragraphs turn into normal editable prose. Search-only like the rest of the block library; contextual patterns (query variations, template parts) are filtered out, and post-type-restricted patterns only show where they apply.

  • Block editor escape hatch on every island: the inspector's action row now links straight to the post in the block editor. Content lives in Minn; layout, spacing, and color controls live where the block's own tools are.

Improved

  • ←/→ steps through entry details: when viewing a Gravity Forms entry (or any surface detail opened from a list), the left and right arrow keys go to the previous and next item on the current page, with matching ‹ › buttons in the modal header. Same idea as the media preview; arrow keys leave the caret alone when you're typing in a field.
  • Widget drag grips: widget rows in an area get the same drag handle as menu items. Drop above or below another row to reorder; ↑↓ and Move to… stay for the other cases.

Fixed

  • Island previews no longer clip tall blocks. Previews had a hard max-height: 420px with overflow hidden, so multi-card grids (e.g. Anchor Blocks vector-cards) and tall design inserts were cut off mid-card in the editor while the front end looked fine. The cap is gone; the island grows with its content.
  • X embeds read correctly in dark mode. Island previews can't run Twitter's widgets.js, so they show the bare blockquote fallback (always a light card before). It now uses Minn design tokens (dark panel on dark theme, soft gray on light). The site's body background is no longer painted onto the island shell either (that was the remaining white plate under the card).
  • Table row/column actions undo with ⌘Z. Add, delete, header toggle, and delete-table used to mutate the DOM directly, so ⌘Z was a no-op (deletes only offered a short-lived Undo toast). Those ops now go through the browser command stack: mutate a clone, swap via insertHTML / delete, and ⌘Z restores the previous table. Destructive ops still toast a "⌘Z restores it" hint.
  • Adding a column/card to a complex block clones a sibling. "+ Add" used to create an empty block comment, which renders nothing and fails block-editor validation for design-suite blocks. It now duplicates an existing sibling verbatim (plugins like Stackable regenerate duplicate ids themselves), which is what "add another card" means anyway. Attribute-only children keep their blank start.
  • Complex-block previews now pick up lazily-loaded styles. Many block plugins (Stackable with its CSS optimizer, Kadence, GenerateBlocks) only enqueue their stylesheets while one of their blocks renders, so island previews could show bare unstyled markup. The preview renderer now reports what the render enqueued and the editor scopes it in, and the editor-styles sweep also fires the front-end registration hooks it was missing.
  • New posts no longer degrade to classic mode. Reloading a brand-new post before its first content save (the title-only autosave draft) reopened it as a classic-mode post permanently, silently hiding embeds, galleries, and custom blocks from the slash menu. Empty posts now open in blocks mode; there is nothing classic mode would need to preserve.

Don't miss a new minn-admin release

NewReleases is sending notifications on new releases.