github puckeditor/puck v0.21.0
0.21.0

14 hours ago

Puck 0.21 introduces AI page generation, rich text editing, a new interface for Plugins, and more.

Puck.0.21.Rich.Text.Example.mp4

This is a summary of the main new features and full changelog.

Read the full release post on our blog.

Summary

  • Puck has moved: All packages have moved to the @puckeditor scope on npm. See the upgrade guide for step-by-step migration instructions.
  • AI page generation: generate pages from your existing Puck config using Puck AI, now in open beta.
  • Rich text editing: add a WYSIWYG editor that can be edited inline in the canvas or in the sidebar.
  • Plugin Rail: a new left-side navigation bar that plugins can use to render dedicated UI in the sidebar.
  • Puck.Layout: use the Puck component as a context provider for the internal Puck API while keeping the default editor UI.

Full changelog

Features

  • add "as" API to change slot element type (1cec93c)
  • add "richtext" field (301595f)
  • add ActionBar.Separator component (410819e)
  • add active API to IconButton (8116c86)
  • add cache control to external fields (a5160e5)
  • add delete hotkeys for removing components (20aafb6)
  • add disabled option to ActionBar.Action (32d0666)
  • add experimental full-screen canvas support (c15c4f8)
  • add full-width viewport to fit to container (7373a6b)
  • add getParentById for getting the parent data for a child id (38e79ba)
  • add key parameter to force custom field remounting (ace4c8b)
  • add parent to resolveData APIs and trigger resolveData on move (7c2f928)
  • add Plugin Rail, a menu for plugins (86526e7)
  • add puck ai option to create-puck-app (d1f05aa)
  • add resolveDataById utility to Puck API (12f0a21)
  • add resolveDataBySelector utility to Puck API (4f0b390)
  • de-select component on second click (ccff0d8)
  • enable modification of Puck height (538f7bf)
  • export ConfigParams and ComponentConfigParams for convenience (0f9606c)
  • expose default layout via Puck.Layout (4a8e38f)
  • extend Plugin API with support for Plugin Rail (d68edca)
  • improve mobile interface (3daa05e)
  • provide metadata to resolveFields (6dae6cb)
  • provide parent data to resolvePermissions API (1b69a8f)
  • rename package to @puckeditor/core (d1c0d6a)
  • support CSS units for minEmptyHeight in slots (79a2684)
  • support dynamic props for default array items via function (6c44fdb)
  • support extending all field types via declaration merging (26fd286)
  • support extending ComponentConfig via declaration merging (3c46c44)
  • support overrides for custom fields (89038d0)
  • support React nodes in getItemSummary for array fields (73b98fb)
  • support typing metadata via declaration merging (66c5aa3)
  • use dashed outline for overlay portals (f79baa9)
  • use next@^16.0.8 in create-puck-app (313bbb5)

Bug Fixes

  • account for drags during slow resolveData on insert (dfecd01)
  • account for drags during slow resolveData on update (304940a)
  • add missing ref prop to Slot render types (ac9eba2)
  • automatically set IDs for slots in root defaultProps (f5820ce)
  • check the user provides a name in create-puck-app (b1de8bf)
  • don't unmount sidebars on hide (ceebd0f)
  • handle exits gracefully from create-puck-app (abfa3c3)
  • memoize initialHistoryIndex and check the index provided by the user is not out of bounds (ec77dd9)
  • mitigate CVE-2025-57822 in Next.js recipe (74d9a16)
  • prevent empty objects from causing parent re-render (a4bfae4)
  • prevent frame overflowing on small viewports when embedded (5c9515c)
  • prevent valueOf errors due to fast-deep-equals (16a3eee)
  • prioritize disableDrag in overlay portals (1df9dde)
  • reset keystrokes when window is blurred (5333fc7)
  • respect custom root label in breadcrumb navigation (de0baf3)
  • respect ui changes in replace action (af2d5ac)
  • restore valid type for renderDropZone prop (29ef713)
  • retain overlay if dragRef changes (e310a17)
  • run resolve permissions in slots (cf074bc)
  • show title instead of undefined in React Router recipe (68f8542)
  • use latest reference for onChange callback (b818cb1)

Performance Improvements

  • don't remount slot when parent changes (a7a6599)
  • eliminate unnecessary re-renders in fields (b633e3b)
  • prevent re-rendering of user components on hover (a62292f)

Contributors

Don't miss a new puck release

NewReleases is sending notifications on new releases.