@delmaredigital/payload-puck 0.6.9 → 0.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -223,9 +223,21 @@ When adding Puck to an existing Payload project:
223
223
 
224
224
  Without step 3, Puck pages will render blank because your existing routes only look for legacy block fields like `layout` or `hero`.
225
225
 
226
- **Option A: Hybrid Rendering (recommended for migration)**
226
+ **Option A: Hybrid Rendering (recommended)**
227
227
 
228
- Use `HybridPageRenderer` to support both legacy blocks and Puck pages:
228
+ Use `HybridPageRenderer` to render Puck pages. For new projects, this is all you need:
229
+
230
+ ```typescript
231
+ import { HybridPageRenderer } from '@delmaredigital/payload-puck/render'
232
+ import { baseConfig } from '@delmaredigital/payload-puck/config'
233
+
234
+ export default async function Page({ params }) {
235
+ const page = await getPage(params.slug)
236
+ return <HybridPageRenderer page={page} config={baseConfig} />
237
+ }
238
+ ```
239
+
240
+ If you're migrating an existing site with legacy Payload blocks, provide a `legacyRenderer`:
229
241
 
230
242
  ```typescript
231
243
  import { HybridPageRenderer } from '@delmaredigital/payload-puck/render'
@@ -2,10 +2,20 @@
2
2
  * Hybrid Page Renderer
3
3
  *
4
4
  * Renders pages that can be either Puck-edited or legacy Payload block-based.
5
- * Use this when migrating existing collections to Puck while maintaining
6
- * backwards compatibility with legacy content.
5
+ * For new projects using only Puck, legacyRenderer is optional.
7
6
  *
8
- * @example
7
+ * @example New project (Puck-only)
8
+ * ```tsx
9
+ * import { HybridPageRenderer } from '@delmaredigital/payload-puck/render'
10
+ * import { puckConfig } from '@/puck/config'
11
+ *
12
+ * export async function PageRenderer({ slug }) {
13
+ * const page = await fetchPage(slug)
14
+ * return <HybridPageRenderer page={page} config={puckConfig} />
15
+ * }
16
+ * ```
17
+ *
18
+ * @example Migration (with legacy blocks)
9
19
  * ```tsx
10
20
  * import { HybridPageRenderer } from '@delmaredigital/payload-puck/render'
11
21
  * import { puckConfig } from '@/puck/config'
@@ -67,6 +77,9 @@ export interface HybridPageRendererProps<TBlocks = unknown[]> extends Omit<PageR
67
77
  * Render function for legacy Payload blocks.
68
78
  * Called when editorVersion is 'legacy' or when puckData is not available.
69
79
  *
80
+ * Optional for new projects that will only have Puck pages. If not provided
81
+ * and legacy blocks are encountered, the fallback will be rendered instead.
82
+ *
70
83
  * Use the generic type parameter to get proper typing for your blocks:
71
84
  * @example
72
85
  * ```tsx
@@ -78,7 +91,7 @@ export interface HybridPageRendererProps<TBlocks = unknown[]> extends Omit<PageR
78
91
  * @param blocks - The legacy blocks array from the page
79
92
  * @returns React node to render
80
93
  */
81
- legacyRenderer: (blocks: TBlocks) => ReactNode;
94
+ legacyRenderer?: (blocks: TBlocks) => ReactNode;
82
95
  /**
83
96
  * Name of the field containing legacy blocks
84
97
  * @default 'layout'
@@ -95,7 +108,7 @@ export interface HybridPageRendererProps<TBlocks = unknown[]> extends Omit<PageR
95
108
  *
96
109
  * Decision logic:
97
110
  * 1. If editorVersion is 'puck' AND puckData has content → render with PageRenderer
98
- * 2. If legacy blocks exist → render with legacyRenderer
111
+ * 2. If legacy blocks exist AND legacyRenderer is provided → render with legacyRenderer
99
112
  * 3. Otherwise → render fallback
100
113
  */
101
114
  export declare function HybridPageRenderer<TBlocks = unknown[]>({ page, legacyRenderer, legacyBlocksField, fallback, config, layouts, wrapper, className, }: HybridPageRendererProps<TBlocks>): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"HybridPageRenderer.d.ts","sourceRoot":"","sources":["../../src/render/HybridPageRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAwB,IAAI,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC9E,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IAEjC;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;IAE1B;;;OAGG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,uBAAuB,CAAC,OAAO,GAAG,OAAO,EAAE,CAC1D,SAAQ,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACvC;;OAEG;IACH,IAAI,EAAE,cAAc,CAAA;IAEpB;;;;;;;;;;;;;;OAcG;IACH,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,SAAS,CAAA;IAE9C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAG,OAAO,EAAE,EAAE,EACtD,IAAI,EACJ,cAAc,EACd,iBAA4B,EAC5B,QAA0C,EAC1C,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,GACV,EAAE,uBAAuB,CAAC,OAAO,CAAC,2CA8BlC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,GAAG,cAAc,CAwB1E"}
1
+ {"version":3,"file":"HybridPageRenderer.d.ts","sourceRoot":"","sources":["../../src/render/HybridPageRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EAAwB,IAAI,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC9E,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IAEjC;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;IAE1B;;;OAGG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,uBAAuB,CAAC,OAAO,GAAG,OAAO,EAAE,CAC1D,SAAQ,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACvC;;OAEG;IACH,IAAI,EAAE,cAAc,CAAA;IAEpB;;;;;;;;;;;;;;;;;OAiBG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,SAAS,CAAA;IAE/C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAG,OAAO,EAAE,EAAE,EACtD,IAAI,EACJ,cAAc,EACd,iBAA4B,EAC5B,QAA0C,EAC1C,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,GACV,EAAE,uBAAuB,CAAC,OAAO,CAAC,2CA8BlC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,GAAG,cAAc,CAwB1E"}
@@ -5,7 +5,7 @@ import { PageRenderer } from './PageRenderer';
5
5
  *
6
6
  * Decision logic:
7
7
  * 1. If editorVersion is 'puck' AND puckData has content → render with PageRenderer
8
- * 2. If legacy blocks exist → render with legacyRenderer
8
+ * 2. If legacy blocks exist AND legacyRenderer is provided → render with legacyRenderer
9
9
  * 3. Otherwise → render fallback
10
10
  */
11
11
  export function HybridPageRenderer({ page, legacyRenderer, legacyBlocksField = 'layout', fallback = _jsx("div", { children: "No content available" }), config, layouts, wrapper, className, }) {
@@ -19,8 +19,8 @@ export function HybridPageRenderer({ page, legacyRenderer, legacyBlocksField = '
19
19
  if (page.editorVersion === 'puck' && hasPuckContent) {
20
20
  return (_jsx(PageRenderer, { data: puckData, config: config, layouts: layouts, wrapper: wrapper, className: className }));
21
21
  }
22
- // Render legacy pages
23
- if (hasLegacyContent) {
22
+ // Render legacy pages (only if legacyRenderer is provided)
23
+ if (hasLegacyContent && legacyRenderer) {
24
24
  return _jsx(_Fragment, { children: legacyRenderer(legacyBlocks) });
25
25
  }
26
26
  // Fallback for empty pages
@@ -1 +1 @@
1
- {"version":3,"file":"HybridPageRenderer.js","sourceRoot":"","sources":["../../src/render/HybridPageRenderer.tsx"],"names":[],"mappings":";AA8BA,OAAO,EAAE,YAAY,EAA0B,MAAM,gBAAgB,CAAA;AAyErE;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAsB,EACtD,IAAI,EACJ,cAAc,EACd,iBAAiB,GAAG,QAAQ,EAC5B,QAAQ,GAAG,iDAA+B,EAC1C,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,GACwB;IACjC,yBAAyB;IACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAuC,CAAA;IAC7D,MAAM,cAAc,GAClB,QAAQ,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;IAErF,2BAA2B;IAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAwB,CAAA;IACnE,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;IAE/E,oBAAoB;IACpB,IAAI,IAAI,CAAC,aAAa,KAAK,MAAM,IAAI,cAAc,EAAE,CAAC;QACpD,OAAO,CACL,KAAC,YAAY,IACX,IAAI,EAAE,QAAoB,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,GACpB,CACH,CAAA;IACH,CAAC;IAED,sBAAsB;IACtB,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,4BAAG,cAAc,CAAC,YAAuB,CAAC,GAAI,CAAA;IACvD,CAAC;IAED,2BAA2B;IAC3B,OAAO,4BAAG,QAAQ,GAAI,CAAA;AACxB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAyB;IACxD,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;IAEjD,oCAAoC;IACpC,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC1D,IAAI,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CACb,2BAA2B,aAAa,6CAA6C,CACtF,CAAA;QACH,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAChD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,0CAA0C,OAAO,QAAQ,EAAE,CAAC,CAAA;QAC9E,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,IAAI;QACP,aAAa,EAAE,aAAgD;QAC/D,QAAQ,EAAE,QAAsC;KACjD,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"HybridPageRenderer.js","sourceRoot":"","sources":["../../src/render/HybridPageRenderer.tsx"],"names":[],"mappings":";AAwCA,OAAO,EAAE,YAAY,EAA0B,MAAM,gBAAgB,CAAA;AA4ErE;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAsB,EACtD,IAAI,EACJ,cAAc,EACd,iBAAiB,GAAG,QAAQ,EAC5B,QAAQ,GAAG,iDAA+B,EAC1C,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,GACwB;IACjC,yBAAyB;IACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAuC,CAAA;IAC7D,MAAM,cAAc,GAClB,QAAQ,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;IAErF,2BAA2B;IAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAwB,CAAA;IACnE,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;IAE/E,oBAAoB;IACpB,IAAI,IAAI,CAAC,aAAa,KAAK,MAAM,IAAI,cAAc,EAAE,CAAC;QACpD,OAAO,CACL,KAAC,YAAY,IACX,IAAI,EAAE,QAAoB,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,GACpB,CACH,CAAA;IACH,CAAC;IAED,2DAA2D;IAC3D,IAAI,gBAAgB,IAAI,cAAc,EAAE,CAAC;QACvC,OAAO,4BAAG,cAAc,CAAC,YAAuB,CAAC,GAAI,CAAA;IACvD,CAAC;IAED,2BAA2B;IAC3B,OAAO,4BAAG,QAAQ,GAAI,CAAA;AACxB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAyB;IACxD,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;IAEjD,oCAAoC;IACpC,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC1D,IAAI,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CACb,2BAA2B,aAAa,6CAA6C,CACtF,CAAA;QACH,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAChD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,0CAA0C,OAAO,QAAQ,EAAE,CAAC,CAAA;QAC9E,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,IAAI;QACP,aAAa,EAAE,aAAgD;QAC/D,QAAQ,EAAE,QAAsC;KACjD,CAAA;AACH,CAAC"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.6.9";
1
+ export declare const VERSION = "0.6.10";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,UAAU,CAAA"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,WAAW,CAAA"}
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by scripts/generate-version.js - do not edit manually
2
- export const VERSION = '0.6.9';
2
+ export const VERSION = '0.6.10';
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delmaredigital/payload-puck",
3
- "version": "0.6.9",
3
+ "version": "0.6.10",
4
4
  "description": "Puck visual page builder plugin for Payload CMS",
5
5
  "type": "module",
6
6
  "license": "MIT",