diff --git a/CHANGELOG.md b/CHANGELOG.md
index 55cb32fbb3..b6e905912f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,34 @@
+## [0.17.0](https://github.com/measuredco/puck/compare/v0.16.2...v0.17.0) (2024-12-18)
+
+### Features
+
+* add duplicate action to array field ([229cbdd](https://github.com/measuredco/puck/commit/229cbddb7eed513c8ac9a2e36e3af3b53ff28d7e))
+* add renderFooter API to external field ([ccec96e](https://github.com/measuredco/puck/commit/ccec96e5ddf831fcd89a2af335449ad4cff1ea81))
+* allow react elements in external field mapRow ([2f781de](https://github.com/measuredco/puck/commit/2f781de0a910a193f0a4bae795725119476f8e94))
+* enable resolveFields to access parent data ([196227b](https://github.com/measuredco/puck/commit/196227bdf33ee678ce47b68fc624804448008cc1))
+* list React 19 as supported peer dependency ([85e8cc1](https://github.com/measuredco/puck/commit/85e8cc1a6fcd29d9dd04e5e53c6e7f9a85f99959))
+* track focused field in app state ([91bc97a](https://github.com/measuredco/puck/commit/91bc97a760d1750d65dedbbffee962a6c6ee8d60))
+* upgrade next recipe to v15.1 ([8ef51c5](https://github.com/measuredco/puck/commit/8ef51c54e386528fca69be1e54b8a3ce69651bd0))
+* use React 19 in next recipe ([6b3d97f](https://github.com/measuredco/puck/commit/6b3d97f9f3d0cc2283178ba6f4bda3b23f1f718a))
+
+
+### Bug Fixes
+
+* always run field resolvers when item change ([159d819](https://github.com/measuredco/puck/commit/159d819e0263f4e91bff8a83adfa404601850aa5))
+* always update fields when resolveData runs ([39dd619](https://github.com/measuredco/puck/commit/39dd61934c15a452c59f26b0c6721802df0c1889))
+* ensure radio fields are functional inside arrays ([7736294](https://github.com/measuredco/puck/commit/7736294d201f432799c0854be14b35edbad156d8))
+* prevent field name collision causing hook render mismatch ([b51954a](https://github.com/measuredco/puck/commit/b51954a19875e1f3c87e0cdc03c10173e9786820))
+* prevent flicker when using resolveData with arrays ([1be9b88](https://github.com/measuredco/puck/commit/1be9b886325a1515434759011e9e3514c583bd2e))
+* provide better error when usePuck used inappropriately ([9991c07](https://github.com/measuredco/puck/commit/9991c079b2b7d8f18ecb42efc3ebc32e5d679b88))
+* remove leading zeros in Number field ([5ba9399](https://github.com/measuredco/puck/commit/5ba9399e6546919ae744d7a4986b59faa1cd7aef))
+* respect original value type in radio and select fields ([00ccd1d](https://github.com/measuredco/puck/commit/00ccd1df6513d2420c87cd136577e1df1ac9a9a3) and [6e5864a](https://github.com/measuredco/puck/commit/6e5864a5df01a52fb4e6b23132d68d4496f1e64e))
+
+
+
+
## [0.16.2](https://github.com/measuredco/puck/compare/v0.16.1...v0.16.2) (2024-11-07)
diff --git a/apps/docs/package.json b/apps/docs/package.json
index 52ccb51a05..d0c961c5a0 100644
--- a/apps/docs/package.json
+++ b/apps/docs/package.json
@@ -1,6 +1,6 @@
{
"name": "docs",
- "version": "0.16.2",
+ "version": "0.17.0",
"private": true,
"scripts": {
"dev": "next dev",
diff --git a/apps/docs/pages/docs/api-reference/fields/external.mdx b/apps/docs/pages/docs/api-reference/fields/external.mdx
index 738894ff95..2241cac7a5 100644
--- a/apps/docs/pages/docs/api-reference/fields/external.mdx
+++ b/apps/docs/pages/docs/api-reference/fields/external.mdx
@@ -546,7 +546,7 @@ const config = {
Customize what will be displayed in the footer of the modal.
-```tsx {13} copy
+```tsx {13-15} copy
const config = {
components: {
Example: {
@@ -585,7 +585,9 @@ const config = {
{ title: "Goodbye, world", description: "Lorem ipsum 2" },
];
},
- renderFooter: ({ items }) => {items.length} results,
+ renderFooter: ({ items }) => (
+ Custom footer with {items.length} results
+ ),
},
},
render: ({ data }) => {
diff --git a/apps/docs/releases.json b/apps/docs/releases.json
index 84b6fa2ff1..dec720b6fc 100644
--- a/apps/docs/releases.json
+++ b/apps/docs/releases.json
@@ -1,5 +1,6 @@
{
"canary": "https://puck-docs-git-main-measured.vercel.app",
+ "0.17.0": "https://puck-docs-git-releases-v0170-measured.vercel.app",
"0.16.2": "https://puck-docs-git-releases-v0162-measured.vercel.app",
"0.16.1": "https://puck-docs-git-releases-v0161-measured.vercel.app",
"0.16.0": "https://puck-docs-git-releases-v0160-measured.vercel.app",
diff --git a/apps/docs/theme.config.tsx b/apps/docs/theme.config.tsx
index 297b83c65f..76c6030d48 100644
--- a/apps/docs/theme.config.tsx
+++ b/apps/docs/theme.config.tsx
@@ -134,13 +134,13 @@ const theme: DocsThemeConfig = {
process.env.NEXT_PUBLIC_IS_LATEST === "true"
? {
dismissible: true,
- key: "v0.16.0",
+ key: "v0.17.0",
content: (
- 🔐 Puck 0.16: Toggle functionality with permissions →
+ 🎄 Puck 0.17: React 19 and field enhancements →
),
}
diff --git a/lerna.json b/lerna.json
index fdec091e30..f6ef564490 100644
--- a/lerna.json
+++ b/lerna.json
@@ -7,6 +7,6 @@
"packages/plugin-emotion-cache",
"packages/plugin-heading-analyzer"
],
- "version": "0.16.2",
+ "version": "0.17.0",
"npmClient": "yarn"
}
diff --git a/package.json b/package.json
index 68c062a5dd..dc3ae21387 100644
--- a/package.json
+++ b/package.json
@@ -33,7 +33,7 @@
"recipes/*",
"packages/*"
],
- "version": "0.16.2",
+ "version": "0.17.0",
"engines": {
"node": ">=18.18"
}
diff --git a/packages/core/package.json b/packages/core/package.json
index 645de36502..5091c76d3d 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -1,6 +1,6 @@
{
"name": "@measured/puck",
- "version": "0.16.2",
+ "version": "0.17.0",
"author": "Measured Corporation Ltd ",
"repository": "measuredco/puck",
"bugs": "https://github.com/measuredco/puck/issues",
diff --git a/packages/create-puck-app/package.json b/packages/create-puck-app/package.json
index 30a97a3fd7..523849486b 100644
--- a/packages/create-puck-app/package.json
+++ b/packages/create-puck-app/package.json
@@ -1,6 +1,6 @@
{
"name": "create-puck-app",
- "version": "0.16.2",
+ "version": "0.17.0",
"author": "Measured Corporation Ltd ",
"repository": "measuredco/puck",
"bugs": "https://github.com/measuredco/puck/issues",
diff --git a/packages/field-contentful/package.json b/packages/field-contentful/package.json
index 9a3ef30219..8b2aa12828 100644
--- a/packages/field-contentful/package.json
+++ b/packages/field-contentful/package.json
@@ -1,6 +1,6 @@
{
"name": "@measured/puck-field-contentful",
- "version": "0.16.2",
+ "version": "0.17.0",
"author": "Measured Corporation Ltd ",
"repository": "measuredco/puck",
"bugs": "https://github.com/measuredco/puck/issues",
@@ -22,7 +22,7 @@
"dist"
],
"devDependencies": {
- "@measured/puck": "^0.16.2",
+ "@measured/puck": "^0.17.0",
"@types/react": "^19.0.1",
"@types/react-dom": "^19.0.2",
"contentful": "^10.8.6",
diff --git a/packages/plugin-emotion-cache/package.json b/packages/plugin-emotion-cache/package.json
index 35c3237410..7a942cfc1f 100644
--- a/packages/plugin-emotion-cache/package.json
+++ b/packages/plugin-emotion-cache/package.json
@@ -1,6 +1,6 @@
{
"name": "@measured/puck-plugin-emotion-cache",
- "version": "0.16.2",
+ "version": "0.17.0",
"author": "Measured Corporation Ltd ",
"repository": "measuredco/puck",
"bugs": "https://github.com/measuredco/puck/issues",
@@ -23,7 +23,7 @@
],
"devDependencies": {
"@emotion/react": "^11.13.3",
- "@measured/puck": "^0.16.2",
+ "@measured/puck": "^0.17.0",
"@types/react": "^19.0.1",
"@types/react-dom": "^19.0.2",
"eslint": "^7.32.0",
diff --git a/packages/plugin-heading-analyzer/package.json b/packages/plugin-heading-analyzer/package.json
index b2e0d1936b..9e32332e0c 100644
--- a/packages/plugin-heading-analyzer/package.json
+++ b/packages/plugin-heading-analyzer/package.json
@@ -1,6 +1,6 @@
{
"name": "@measured/puck-plugin-heading-analyzer",
- "version": "0.16.2",
+ "version": "0.17.0",
"author": "Measured Corporation Ltd ",
"repository": "measuredco/puck",
"bugs": "https://github.com/measuredco/puck/issues",
@@ -25,7 +25,7 @@
"dist"
],
"devDependencies": {
- "@measured/puck": "^0.16.2",
+ "@measured/puck": "^0.17.0",
"@types/react": "^19.0.1",
"@types/react-dom": "^19.0.2",
"eslint": "^7.32.0",
diff --git a/recipes/next/README.md b/recipes/next/README.md
index 69be1c81ea..96c255bc16 100644
--- a/recipes/next/README.md
+++ b/recipes/next/README.md
@@ -4,7 +4,7 @@ The `next` recipe showcases one of the most powerful ways to implement Puck usin
## Demonstrates
-- Next.js 13 App Router implementation
+- Next.js App Router implementation
- JSON database implementation with HTTP API
- Catch-all routes to use puck for any route on the platform
- Incremental static regeneration (ISR) for all Puck pages