@delmaredigital/payload-puck 0.1.3 → 0.3.0
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 +293 -1237
- package/dist/admin/EditWithPuckButton.d.ts +74 -0
- package/dist/admin/EditWithPuckButton.d.ts.map +1 -0
- package/dist/admin/EditWithPuckButton.js +114 -0
- package/dist/admin/EditWithPuckButton.js.map +1 -0
- package/dist/admin/EditWithPuckCell.d.ts +43 -0
- package/dist/admin/EditWithPuckCell.d.ts.map +1 -0
- package/dist/admin/EditWithPuckCell.js +66 -0
- package/dist/admin/EditWithPuckCell.js.map +1 -0
- package/dist/admin/PuckEditorView.d.ts +85 -0
- package/dist/admin/PuckEditorView.d.ts.map +1 -0
- package/dist/admin/PuckEditorView.js +135 -0
- package/dist/admin/PuckEditorView.js.map +1 -0
- package/dist/admin/client.d.ts +8 -104
- package/dist/admin/client.d.ts.map +1 -0
- package/dist/admin/client.js +14 -176
- package/dist/admin/client.js.map +1 -0
- package/dist/admin/generateAdminComponents.d.ts +51 -0
- package/dist/admin/generateAdminComponents.d.ts.map +1 -0
- package/dist/admin/generateAdminComponents.js +42 -0
- package/dist/admin/generateAdminComponents.js.map +1 -0
- package/dist/admin/index.d.ts +14 -150
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +17 -30
- package/dist/admin/index.js.map +1 -0
- package/dist/api/createPuckApiRoutes.d.ts +31 -0
- package/dist/api/createPuckApiRoutes.d.ts.map +1 -0
- package/dist/api/createPuckApiRoutes.js +193 -0
- package/dist/api/createPuckApiRoutes.js.map +1 -0
- package/dist/api/createPuckApiRoutesVersions.d.ts +28 -0
- package/dist/api/createPuckApiRoutesVersions.d.ts.map +1 -0
- package/dist/api/createPuckApiRoutesVersions.js +144 -0
- package/dist/api/createPuckApiRoutesVersions.js.map +1 -0
- package/dist/api/createPuckApiRoutesWithId.d.ts +34 -0
- package/dist/api/createPuckApiRoutesWithId.d.ts.map +1 -0
- package/dist/api/createPuckApiRoutesWithId.js +251 -0
- package/dist/api/createPuckApiRoutesWithId.js.map +1 -0
- package/dist/api/index.d.ts +11 -431
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +40 -587
- package/dist/api/index.js.map +1 -0
- package/dist/api/types.d.ts +302 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +2 -0
- package/dist/api/types.js.map +1 -0
- package/dist/api/utils/mapRootProps.d.ts +76 -0
- package/dist/api/utils/mapRootProps.d.ts.map +1 -0
- package/dist/api/utils/mapRootProps.js +169 -0
- package/dist/api/utils/mapRootProps.js.map +1 -0
- package/dist/collections/Templates.d.ts +9 -0
- package/dist/collections/Templates.d.ts.map +1 -0
- package/dist/collections/Templates.js +62 -0
- package/dist/collections/Templates.js.map +1 -0
- package/dist/components/AccordionClient.d.ts +20 -0
- package/dist/components/AccordionClient.d.ts.map +1 -0
- package/dist/components/AccordionClient.js +67 -0
- package/dist/components/AccordionClient.js.map +1 -0
- package/dist/components/AnimatedWrapper.d.ts +33 -0
- package/dist/components/AnimatedWrapper.d.ts.map +1 -0
- package/dist/components/AnimatedWrapper.js +61 -0
- package/dist/components/AnimatedWrapper.js.map +1 -0
- package/dist/components/exports.d.ts +54 -0
- package/dist/components/exports.d.ts.map +1 -0
- package/dist/components/exports.js +71 -0
- package/dist/components/exports.js.map +1 -0
- package/dist/components/index.d.ts +8 -219
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +15 -9155
- package/dist/components/index.js.map +1 -0
- package/dist/components/interactive/Accordion.d.ts +28 -0
- package/dist/components/interactive/Accordion.d.ts.map +1 -0
- package/dist/components/interactive/Accordion.js +159 -0
- package/dist/components/interactive/Accordion.js.map +1 -0
- package/dist/components/interactive/Accordion.server.d.ts +29 -0
- package/dist/components/interactive/Accordion.server.d.ts.map +1 -0
- package/dist/components/interactive/Accordion.server.js +30 -0
- package/dist/components/interactive/Accordion.server.js.map +1 -0
- package/dist/components/interactive/Button.d.ts +26 -0
- package/dist/components/interactive/Button.d.ts.map +1 -0
- package/dist/components/interactive/Button.js +133 -0
- package/dist/components/interactive/Button.js.map +1 -0
- package/dist/components/interactive/Button.server.d.ts +28 -0
- package/dist/components/interactive/Button.server.d.ts.map +1 -0
- package/dist/components/interactive/Button.server.js +96 -0
- package/dist/components/interactive/Button.server.js.map +1 -0
- package/dist/components/interactive/Card.d.ts +27 -0
- package/dist/components/interactive/Card.d.ts.map +1 -0
- package/dist/components/interactive/Card.js +128 -0
- package/dist/components/interactive/Card.js.map +1 -0
- package/dist/components/interactive/Card.server.d.ts +29 -0
- package/dist/components/interactive/Card.server.d.ts.map +1 -0
- package/dist/components/interactive/Card.server.js +77 -0
- package/dist/components/interactive/Card.server.js.map +1 -0
- package/dist/components/interactive/Divider.d.ts +18 -0
- package/dist/components/interactive/Divider.d.ts.map +1 -0
- package/dist/components/interactive/Divider.js +68 -0
- package/dist/components/interactive/Divider.js.map +1 -0
- package/dist/components/interactive/Divider.server.d.ts +20 -0
- package/dist/components/interactive/Divider.server.d.ts.map +1 -0
- package/dist/components/interactive/Divider.server.js +50 -0
- package/dist/components/interactive/Divider.server.js.map +1 -0
- package/dist/components/interactive/index.d.ts +10 -0
- package/dist/components/interactive/index.d.ts.map +1 -0
- package/dist/components/interactive/index.js +10 -0
- package/dist/components/interactive/index.js.map +1 -0
- package/dist/components/layout/Container.d.ts +29 -0
- package/dist/components/layout/Container.d.ts.map +1 -0
- package/dist/components/layout/Container.js +166 -0
- package/dist/components/layout/Container.js.map +1 -0
- package/dist/components/layout/Container.server.d.ts +32 -0
- package/dist/components/layout/Container.server.d.ts.map +1 -0
- package/dist/components/layout/Container.server.js +105 -0
- package/dist/components/layout/Container.server.js.map +1 -0
- package/dist/components/layout/Flex.d.ts +36 -0
- package/dist/components/layout/Flex.d.ts.map +1 -0
- package/dist/components/layout/Flex.js +183 -0
- package/dist/components/layout/Flex.js.map +1 -0
- package/dist/components/layout/Flex.server.d.ts +36 -0
- package/dist/components/layout/Flex.server.d.ts.map +1 -0
- package/dist/components/layout/Flex.server.js +97 -0
- package/dist/components/layout/Flex.server.js.map +1 -0
- package/dist/components/layout/Grid.d.ts +31 -0
- package/dist/components/layout/Grid.d.ts.map +1 -0
- package/dist/components/layout/Grid.js +164 -0
- package/dist/components/layout/Grid.js.map +1 -0
- package/dist/components/layout/Grid.server.d.ts +32 -0
- package/dist/components/layout/Grid.server.d.ts.map +1 -0
- package/dist/components/layout/Grid.server.js +92 -0
- package/dist/components/layout/Grid.server.js.map +1 -0
- package/dist/components/layout/Section.d.ts +35 -0
- package/dist/components/layout/Section.d.ts.map +1 -0
- package/dist/components/layout/Section.js +212 -0
- package/dist/components/layout/Section.js.map +1 -0
- package/dist/components/layout/Section.server.d.ts +35 -0
- package/dist/components/layout/Section.server.d.ts.map +1 -0
- package/dist/components/layout/Section.server.js +144 -0
- package/dist/components/layout/Section.server.js.map +1 -0
- package/dist/components/layout/Spacer.d.ts +18 -0
- package/dist/components/layout/Spacer.d.ts.map +1 -0
- package/dist/components/layout/Spacer.js +99 -0
- package/dist/components/layout/Spacer.js.map +1 -0
- package/dist/components/layout/Spacer.server.d.ts +21 -0
- package/dist/components/layout/Spacer.server.d.ts.map +1 -0
- package/dist/components/layout/Spacer.server.js +61 -0
- package/dist/components/layout/Spacer.server.js.map +1 -0
- package/dist/components/layout/Template.d.ts +35 -0
- package/dist/components/layout/Template.d.ts.map +1 -0
- package/dist/components/layout/Template.js +124 -0
- package/dist/components/layout/Template.js.map +1 -0
- package/dist/components/layout/Template.server.d.ts +32 -0
- package/dist/components/layout/Template.server.d.ts.map +1 -0
- package/dist/components/layout/Template.server.js +75 -0
- package/dist/components/layout/Template.server.js.map +1 -0
- package/dist/components/layout/index.d.ts +14 -0
- package/dist/components/layout/index.d.ts.map +1 -0
- package/dist/components/layout/index.js +13 -0
- package/dist/components/layout/index.js.map +1 -0
- package/dist/components/media/Image.d.ts +30 -0
- package/dist/components/media/Image.d.ts.map +1 -0
- package/dist/components/media/Image.js +123 -0
- package/dist/components/media/Image.js.map +1 -0
- package/dist/components/media/Image.server.d.ts +28 -0
- package/dist/components/media/Image.server.d.ts.map +1 -0
- package/dist/components/media/Image.server.js +76 -0
- package/dist/components/media/Image.server.js.map +1 -0
- package/dist/components/media/index.d.ts +7 -0
- package/dist/components/media/index.d.ts.map +1 -0
- package/dist/components/media/index.js +7 -0
- package/dist/components/media/index.js.map +1 -0
- package/dist/components/typography/Heading.d.ts +21 -0
- package/dist/components/typography/Heading.d.ts.map +1 -0
- package/dist/components/typography/Heading.js +71 -0
- package/dist/components/typography/Heading.js.map +1 -0
- package/dist/components/typography/Heading.server.d.ts +21 -0
- package/dist/components/typography/Heading.server.d.ts.map +1 -0
- package/dist/components/typography/Heading.server.js +49 -0
- package/dist/components/typography/Heading.server.js.map +1 -0
- package/dist/components/typography/RichText.d.ts +20 -0
- package/dist/components/typography/RichText.d.ts.map +1 -0
- package/dist/components/typography/RichText.editor.d.ts +11 -0
- package/dist/components/typography/RichText.editor.d.ts.map +1 -0
- package/dist/components/typography/RichText.editor.js +67 -0
- package/dist/components/typography/RichText.editor.js.map +1 -0
- package/dist/components/typography/RichText.js +73 -0
- package/dist/components/typography/RichText.js.map +1 -0
- package/dist/components/typography/RichText.server.d.ts +22 -0
- package/dist/components/typography/RichText.server.d.ts.map +1 -0
- package/dist/components/typography/RichText.server.js +52 -0
- package/dist/components/typography/RichText.server.js.map +1 -0
- package/dist/components/typography/Text.d.ts +20 -0
- package/dist/components/typography/Text.d.ts.map +1 -0
- package/dist/components/typography/Text.js +61 -0
- package/dist/components/typography/Text.js.map +1 -0
- package/dist/components/typography/Text.server.d.ts +21 -0
- package/dist/components/typography/Text.server.d.ts.map +1 -0
- package/dist/components/typography/Text.server.js +39 -0
- package/dist/components/typography/Text.server.js.map +1 -0
- package/dist/components/typography/index.d.ts +10 -0
- package/dist/components/typography/index.d.ts.map +1 -0
- package/dist/components/typography/index.js +10 -0
- package/dist/components/typography/index.js.map +1 -0
- package/dist/config/config.editor.d.ts +15 -56
- package/dist/config/config.editor.d.ts.map +1 -0
- package/dist/config/config.editor.js +125 -9364
- package/dist/config/config.editor.js.map +1 -0
- package/dist/config/index.d.ts +7 -33
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +110 -2028
- package/dist/config/index.js.map +1 -0
- package/dist/config/merge.d.ts +23 -0
- package/dist/config/merge.d.ts.map +1 -0
- package/dist/config/merge.js +80 -0
- package/dist/config/merge.js.map +1 -0
- package/dist/config/presets.d.ts +342 -0
- package/dist/config/presets.d.ts.map +1 -0
- package/dist/config/presets.js +247 -0
- package/dist/config/presets.js.map +1 -0
- package/dist/editor/PuckEditor.client.d.ts +131 -0
- package/dist/editor/PuckEditor.client.d.ts.map +1 -0
- package/dist/editor/PuckEditor.client.js +42 -0
- package/dist/editor/PuckEditor.client.js.map +1 -0
- package/dist/editor/PuckEditorCore.client.d.ts +141 -0
- package/dist/editor/PuckEditorCore.client.d.ts.map +1 -0
- package/dist/editor/PuckEditorCore.client.js +306 -0
- package/dist/editor/PuckEditorCore.client.js.map +1 -0
- package/dist/editor/components/HeaderActions.d.ts +109 -0
- package/dist/editor/components/HeaderActions.d.ts.map +1 -0
- package/dist/editor/components/HeaderActions.js +254 -0
- package/dist/editor/components/HeaderActions.js.map +1 -0
- package/dist/editor/components/IframeWrapper.d.ts +77 -0
- package/dist/editor/components/IframeWrapper.d.ts.map +1 -0
- package/dist/editor/components/IframeWrapper.js +257 -0
- package/dist/editor/components/IframeWrapper.js.map +1 -0
- package/dist/editor/components/LoadingState.d.ts +14 -0
- package/dist/editor/components/LoadingState.d.ts.map +1 -0
- package/dist/editor/components/LoadingState.js +12 -0
- package/dist/editor/components/LoadingState.js.map +1 -0
- package/dist/editor/components/PreviewModal.d.ts +54 -0
- package/dist/editor/components/PreviewModal.d.ts.map +1 -0
- package/dist/editor/components/PreviewModal.js +298 -0
- package/dist/editor/components/PreviewModal.js.map +1 -0
- package/dist/editor/components/VersionHistory.d.ts +44 -0
- package/dist/editor/components/VersionHistory.d.ts.map +1 -0
- package/dist/editor/components/VersionHistory.js +308 -0
- package/dist/editor/components/VersionHistory.js.map +1 -0
- package/dist/editor/hooks/useUnsavedChanges.d.ts +27 -0
- package/dist/editor/hooks/useUnsavedChanges.d.ts.map +1 -0
- package/dist/editor/hooks/useUnsavedChanges.js +55 -0
- package/dist/editor/hooks/useUnsavedChanges.js.map +1 -0
- package/dist/editor/index.d.ts +16 -756
- package/dist/editor/index.d.ts.map +1 -0
- package/dist/editor/index.js +49 -4533
- package/dist/editor/index.js.map +1 -0
- package/dist/editor/plugins/index.d.ts +12 -0
- package/dist/editor/plugins/index.d.ts.map +1 -0
- package/dist/editor/plugins/index.js +12 -0
- package/dist/editor/plugins/index.js.map +1 -0
- package/dist/endpoints/index.d.ts +46 -0
- package/dist/endpoints/index.d.ts.map +1 -0
- package/dist/endpoints/index.js +204 -0
- package/dist/endpoints/index.js.map +1 -0
- package/dist/exports/client.d.ts +19 -0
- package/dist/exports/client.d.ts.map +1 -0
- package/dist/exports/client.js +21 -0
- package/dist/exports/client.js.map +1 -0
- package/dist/exports/rsc.d.ts +19 -0
- package/dist/exports/rsc.d.ts.map +1 -0
- package/dist/exports/rsc.js +19 -0
- package/dist/exports/rsc.js.map +1 -0
- package/dist/fields/AlignmentField.d.ts +36 -0
- package/dist/fields/AlignmentField.d.ts.map +1 -0
- package/dist/fields/AlignmentField.js +120 -0
- package/dist/fields/AlignmentField.js.map +1 -0
- package/dist/fields/AnimationField.d.ts +44 -0
- package/dist/fields/AnimationField.d.ts.map +1 -0
- package/dist/fields/AnimationField.js +329 -0
- package/dist/fields/AnimationField.js.map +1 -0
- package/dist/fields/BackgroundField.d.ts +40 -0
- package/dist/fields/BackgroundField.d.ts.map +1 -0
- package/dist/fields/BackgroundField.js +413 -0
- package/dist/fields/BackgroundField.js.map +1 -0
- package/dist/fields/BorderField.d.ts +29 -0
- package/dist/fields/BorderField.d.ts.map +1 -0
- package/dist/fields/BorderField.js +264 -0
- package/dist/fields/BorderField.js.map +1 -0
- package/dist/fields/ColorPickerField.d.ts +43 -0
- package/dist/fields/ColorPickerField.d.ts.map +1 -0
- package/dist/fields/ColorPickerField.js +285 -0
- package/dist/fields/ColorPickerField.js.map +1 -0
- package/dist/fields/DimensionsField.d.ts +43 -0
- package/dist/fields/DimensionsField.d.ts.map +1 -0
- package/dist/fields/DimensionsField.js +532 -0
- package/dist/fields/DimensionsField.js.map +1 -0
- package/dist/fields/FlexAlignmentField.d.ts +61 -0
- package/dist/fields/FlexAlignmentField.d.ts.map +1 -0
- package/dist/fields/FlexAlignmentField.js +166 -0
- package/dist/fields/FlexAlignmentField.js.map +1 -0
- package/dist/fields/FolderPickerField.d.ts +17 -0
- package/dist/fields/FolderPickerField.d.ts.map +1 -0
- package/dist/fields/FolderPickerField.js +282 -0
- package/dist/fields/FolderPickerField.js.map +1 -0
- package/dist/fields/GradientEditor.d.ts +22 -0
- package/dist/fields/GradientEditor.d.ts.map +1 -0
- package/dist/fields/GradientEditor.js +322 -0
- package/dist/fields/GradientEditor.js.map +1 -0
- package/dist/fields/LockedField.d.ts +67 -0
- package/dist/fields/LockedField.d.ts.map +1 -0
- package/dist/fields/LockedField.js +170 -0
- package/dist/fields/LockedField.js.map +1 -0
- package/dist/fields/MarginField.d.ts +31 -0
- package/dist/fields/MarginField.d.ts.map +1 -0
- package/dist/fields/MarginField.js +233 -0
- package/dist/fields/MarginField.js.map +1 -0
- package/dist/fields/MediaField.d.ts +33 -0
- package/dist/fields/MediaField.d.ts.map +1 -0
- package/dist/fields/MediaField.js +677 -0
- package/dist/fields/MediaField.js.map +1 -0
- package/dist/fields/PaddingField.d.ts +29 -0
- package/dist/fields/PaddingField.d.ts.map +1 -0
- package/dist/fields/PaddingField.js +232 -0
- package/dist/fields/PaddingField.js.map +1 -0
- package/dist/fields/PageSegmentField.d.ts +17 -0
- package/dist/fields/PageSegmentField.d.ts.map +1 -0
- package/dist/fields/PageSegmentField.js +92 -0
- package/dist/fields/PageSegmentField.js.map +1 -0
- package/dist/fields/ResetField.d.ts +27 -0
- package/dist/fields/ResetField.d.ts.map +1 -0
- package/dist/fields/ResetField.js +122 -0
- package/dist/fields/ResetField.js.map +1 -0
- package/dist/fields/ResponsiveField.d.ts +38 -0
- package/dist/fields/ResponsiveField.d.ts.map +1 -0
- package/dist/fields/ResponsiveField.js +275 -0
- package/dist/fields/ResponsiveField.js.map +1 -0
- package/dist/fields/ResponsiveVisibilityField.d.ts +34 -0
- package/dist/fields/ResponsiveVisibilityField.d.ts.map +1 -0
- package/dist/fields/ResponsiveVisibilityField.js +145 -0
- package/dist/fields/ResponsiveVisibilityField.js.map +1 -0
- package/dist/fields/SizeField.d.ts +54 -0
- package/dist/fields/SizeField.d.ts.map +1 -0
- package/dist/fields/SizeField.js +255 -0
- package/dist/fields/SizeField.js.map +1 -0
- package/dist/fields/SlugPreviewField.d.ts +16 -0
- package/dist/fields/SlugPreviewField.d.ts.map +1 -0
- package/dist/fields/SlugPreviewField.js +49 -0
- package/dist/fields/SlugPreviewField.js.map +1 -0
- package/dist/fields/TemplateField.d.ts +31 -0
- package/dist/fields/TemplateField.d.ts.map +1 -0
- package/dist/fields/TemplateField.js +428 -0
- package/dist/fields/TemplateField.js.map +1 -0
- package/dist/fields/TiptapField.d.ts +40 -0
- package/dist/fields/TiptapField.d.ts.map +1 -0
- package/dist/fields/TiptapField.js +857 -0
- package/dist/fields/TiptapField.js.map +1 -0
- package/dist/fields/TiptapModal.d.ts +10 -0
- package/dist/fields/TiptapModal.d.ts.map +1 -0
- package/dist/fields/TiptapModal.js +114 -0
- package/dist/fields/TiptapModal.js.map +1 -0
- package/dist/fields/TiptapModalField.d.ts +23 -0
- package/dist/fields/TiptapModalField.d.ts.map +1 -0
- package/dist/fields/TiptapModalField.js +55 -0
- package/dist/fields/TiptapModalField.js.map +1 -0
- package/dist/fields/TransformField.d.ts +31 -0
- package/dist/fields/TransformField.d.ts.map +1 -0
- package/dist/fields/TransformField.js +384 -0
- package/dist/fields/TransformField.js.map +1 -0
- package/dist/fields/VerticalAlignmentField.d.ts +35 -0
- package/dist/fields/VerticalAlignmentField.d.ts.map +1 -0
- package/dist/fields/VerticalAlignmentField.js +120 -0
- package/dist/fields/VerticalAlignmentField.js.map +1 -0
- package/dist/fields/WidthField.d.ts +28 -0
- package/dist/fields/WidthField.d.ts.map +1 -0
- package/dist/fields/WidthField.js +339 -0
- package/dist/fields/WidthField.js.map +1 -0
- package/dist/fields/index.d.ts +44 -559
- package/dist/fields/index.d.ts.map +1 -0
- package/dist/fields/index.js +91 -7685
- package/dist/fields/index.js.map +1 -0
- package/dist/fields/richtext-output.css +219 -0
- package/dist/{shared-DeNKN95N.d.mts → fields/shared.d.ts} +114 -133
- package/dist/fields/shared.d.ts.map +1 -0
- package/dist/fields/shared.js +1542 -0
- package/dist/fields/shared.js.map +1 -0
- package/dist/fields/{index.css → tiptap-styles.css} +75 -166
- package/dist/hooks/index.d.ts +8 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +8 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useResponsiveStyles.d.ts +51 -0
- package/dist/hooks/useResponsiveStyles.d.ts.map +1 -0
- package/dist/hooks/useResponsiveStyles.js +149 -0
- package/dist/hooks/useResponsiveStyles.js.map +1 -0
- package/dist/hooks/useScrollAnimation.d.ts +56 -0
- package/dist/hooks/useScrollAnimation.d.ts.map +1 -0
- package/dist/hooks/useScrollAnimation.js +116 -0
- package/dist/hooks/useScrollAnimation.js.map +1 -0
- package/dist/index.d.ts +66 -6
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +67 -568
- package/dist/index.js.map +1 -0
- package/dist/layouts/LayoutWrapper.d.ts +33 -0
- package/dist/layouts/LayoutWrapper.d.ts.map +1 -0
- package/dist/layouts/LayoutWrapper.js +112 -0
- package/dist/layouts/LayoutWrapper.js.map +1 -0
- package/dist/layouts/defaults.d.ts +40 -0
- package/dist/layouts/defaults.d.ts.map +1 -0
- package/dist/layouts/defaults.js +106 -0
- package/dist/layouts/defaults.js.map +1 -0
- package/dist/layouts/index.d.ts +27 -94
- package/dist/layouts/index.d.ts.map +1 -0
- package/dist/layouts/index.js +30 -393
- package/dist/layouts/index.js.map +1 -0
- package/dist/{types-D7D3rZ1J.d.ts → layouts/types.d.ts} +8 -11
- package/dist/layouts/types.d.ts.map +1 -0
- package/dist/layouts/types.js +7 -0
- package/dist/layouts/types.js.map +1 -0
- package/dist/layouts/utils.d.ts +42 -0
- package/dist/layouts/utils.d.ts.map +1 -0
- package/dist/layouts/utils.js +83 -0
- package/dist/layouts/utils.js.map +1 -0
- package/dist/plugin/collections/Pages.d.ts +8 -0
- package/dist/plugin/collections/Pages.d.ts.map +1 -0
- package/dist/plugin/collections/Pages.js +117 -0
- package/dist/plugin/collections/Pages.js.map +1 -0
- package/dist/plugin/fields/index.d.ts +153 -0
- package/dist/plugin/fields/index.d.ts.map +1 -0
- package/dist/plugin/fields/index.js +364 -0
- package/dist/plugin/fields/index.js.map +1 -0
- package/dist/plugin/fields/types.d.ts +108 -0
- package/dist/plugin/fields/types.d.ts.map +1 -0
- package/dist/plugin/fields/types.js +7 -0
- package/dist/plugin/fields/types.js.map +1 -0
- package/dist/plugin/index.d.ts +13 -255
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/plugin/index.js +276 -553
- package/dist/plugin/index.js.map +1 -0
- package/dist/render/HybridPageRenderer.d.ts +85 -0
- package/dist/render/HybridPageRenderer.d.ts.map +1 -0
- package/dist/render/HybridPageRenderer.js +29 -0
- package/dist/render/HybridPageRenderer.js.map +1 -0
- package/dist/render/PageRenderer.d.ts +51 -0
- package/dist/render/PageRenderer.d.ts.map +1 -0
- package/dist/render/PageRenderer.js +61 -0
- package/dist/render/PageRenderer.js.map +1 -0
- package/dist/render/PuckEditor.client.d.ts +66 -0
- package/dist/render/PuckEditor.client.d.ts.map +1 -0
- package/dist/render/PuckEditor.client.js +66 -0
- package/dist/render/PuckEditor.client.js.map +1 -0
- package/dist/render/index.d.ts +8 -106
- package/dist/render/index.d.ts.map +1 -0
- package/dist/render/index.js +10 -2162
- package/dist/render/index.js.map +1 -0
- package/dist/theme/context.d.ts +59 -0
- package/dist/theme/context.d.ts.map +1 -0
- package/dist/theme/context.js +73 -0
- package/dist/theme/context.js.map +1 -0
- package/dist/theme/defaults.d.ts +39 -0
- package/dist/theme/defaults.d.ts.map +1 -0
- package/dist/theme/defaults.js +72 -0
- package/dist/theme/defaults.js.map +1 -0
- package/dist/theme/example.d.ts +30 -0
- package/dist/theme/example.d.ts.map +1 -0
- package/dist/theme/example.js +89 -0
- package/dist/theme/example.js.map +1 -0
- package/dist/theme/index.d.ts +17 -140
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +34 -200
- package/dist/theme/index.js.map +1 -0
- package/dist/{types-_6MvjyKv.d.ts → theme/types.d.ts} +8 -9
- package/dist/theme/types.d.ts.map +1 -0
- package/dist/theme/types.js +9 -0
- package/dist/theme/types.js.map +1 -0
- package/dist/theme/utils.d.ts +30 -0
- package/dist/theme/utils.d.ts.map +1 -0
- package/dist/theme/utils.js +84 -0
- package/dist/theme/utils.js.map +1 -0
- package/dist/{index-CQu6SzDg.d.mts → types/index.d.ts} +120 -115
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/index.d.ts +23 -257
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +56 -425
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/{index.d.mts → migration.d.ts} +16 -112
- package/dist/utils/migration.d.ts.map +1 -0
- package/dist/utils/migration.js +309 -0
- package/dist/utils/migration.js.map +1 -0
- package/dist/utils/validation.d.ts +89 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +247 -0
- package/dist/utils/validation.js.map +1 -0
- package/dist/views/PuckConfigContext.d.ts +71 -0
- package/dist/views/PuckConfigContext.d.ts.map +1 -0
- package/dist/views/PuckConfigContext.js +45 -0
- package/dist/views/PuckConfigContext.js.map +1 -0
- package/dist/views/PuckEditorClient.d.ts +73 -0
- package/dist/views/PuckEditorClient.d.ts.map +1 -0
- package/dist/views/PuckEditorClient.js +130 -0
- package/dist/views/PuckEditorClient.js.map +1 -0
- package/dist/views/PuckEditorView.d.ts +19 -0
- package/dist/views/PuckEditorView.d.ts.map +1 -0
- package/dist/views/PuckEditorView.js +106 -0
- package/dist/views/PuckEditorView.js.map +1 -0
- package/dist/views/index.d.ts +10 -0
- package/dist/views/index.d.ts.map +1 -0
- package/dist/views/index.js +10 -0
- package/dist/views/index.js.map +1 -0
- package/package.json +50 -72
- package/dist/AccordionClient.d.mts +0 -24
- package/dist/AccordionClient.d.ts +0 -24
- package/dist/AccordionClient.js +0 -786
- package/dist/AccordionClient.mjs +0 -784
- package/dist/AnimatedWrapper.d.mts +0 -30
- package/dist/AnimatedWrapper.d.ts +0 -30
- package/dist/AnimatedWrapper.js +0 -379
- package/dist/AnimatedWrapper.mjs +0 -377
- package/dist/admin/client.d.mts +0 -108
- package/dist/admin/client.mjs +0 -173
- package/dist/admin/index.d.mts +0 -157
- package/dist/admin/index.mjs +0 -29
- package/dist/api/index.d.mts +0 -460
- package/dist/api/index.mjs +0 -578
- package/dist/components/index.css +0 -339
- package/dist/components/index.d.mts +0 -222
- package/dist/components/index.mjs +0 -9109
- package/dist/config/config.editor.css +0 -339
- package/dist/config/config.editor.d.mts +0 -153
- package/dist/config/config.editor.mjs +0 -9347
- package/dist/config/index.d.mts +0 -68
- package/dist/config/index.mjs +0 -2008
- package/dist/editor/index.d.mts +0 -784
- package/dist/editor/index.mjs +0 -4500
- package/dist/fields/index.d.mts +0 -600
- package/dist/fields/index.mjs +0 -7569
- package/dist/index-CoUQnyC3.d.ts +0 -327
- package/dist/index.d.mts +0 -6
- package/dist/index.mjs +0 -555
- package/dist/layouts/index.d.mts +0 -96
- package/dist/layouts/index.mjs +0 -378
- package/dist/plugin/index.d.mts +0 -289
- package/dist/plugin/index.mjs +0 -555
- package/dist/render/index.d.mts +0 -109
- package/dist/render/index.mjs +0 -2140
- package/dist/shared-DeNKN95N.d.ts +0 -546
- package/dist/theme/index.d.mts +0 -155
- package/dist/theme/index.mjs +0 -186
- package/dist/types-D7D3rZ1J.d.mts +0 -116
- package/dist/types-_6MvjyKv.d.mts +0 -104
- package/dist/utils/index.mjs +0 -412
- package/dist/utils-DaRs9t0J.d.mts +0 -85
- package/dist/utils-gAvt0Vhw.d.ts +0 -85
- package/examples/README.md +0 -247
- package/examples/api/puck/pages/[id]/route.ts +0 -64
- package/examples/api/puck/pages/[id]/versions/route.ts +0 -47
- package/examples/api/puck/pages/route.ts +0 -45
- package/examples/app/(frontend)/page.tsx +0 -94
- package/examples/app/(manage)/layout.tsx +0 -31
- package/examples/app/[...slug]/page.tsx +0 -101
- package/examples/app/pages/[id]/edit/page.tsx +0 -148
- package/examples/components/CustomBanner.tsx +0 -368
- package/examples/config/custom-config.ts +0 -223
- package/examples/config/payload.config.example.ts +0 -64
- package/examples/lib/puck-layouts.ts +0 -258
- package/examples/lib/puck-theme.ts +0 -94
- package/examples/styles/puck-theme.css +0 -171
package/examples/README.md
DELETED
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
# Puck Plugin Examples
|
|
2
|
-
|
|
3
|
-
Copy these files to your project as a starting point. Each file includes comments explaining what to customize.
|
|
4
|
-
|
|
5
|
-
## Directory Structure
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
examples/
|
|
9
|
-
├── api/
|
|
10
|
-
│ └── puck/
|
|
11
|
-
│ └── pages/
|
|
12
|
-
│ ├── route.ts # List & create pages
|
|
13
|
-
│ └── [id]/
|
|
14
|
-
│ ├── route.ts # Get, update, delete page
|
|
15
|
-
│ └── versions/
|
|
16
|
-
│ └── route.ts # Version history (optional)
|
|
17
|
-
├── app/
|
|
18
|
-
│ ├── (frontend)/
|
|
19
|
-
│ │ └── page.tsx # Homepage route (root "/")
|
|
20
|
-
│ ├── (manage)/
|
|
21
|
-
│ │ └── layout.tsx # Editor layout (imports Tailwind CSS)
|
|
22
|
-
│ ├── pages/
|
|
23
|
-
│ │ └── [id]/
|
|
24
|
-
│ │ └── edit/
|
|
25
|
-
│ │ └── page.tsx # Visual editor page
|
|
26
|
-
│ └── [...slug]/
|
|
27
|
-
│ └── page.tsx # Dynamic page renderer
|
|
28
|
-
├── config/
|
|
29
|
-
│ └── payload.config.example.ts # Payload plugin configuration
|
|
30
|
-
└── lib/
|
|
31
|
-
├── puck-theme.ts # Theme configuration
|
|
32
|
-
└── puck-layouts.ts # Custom page layouts
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
**Note:** The plugin automatically creates a `puck-templates` collection for the Template component. No additional API routes are needed - templates use Payload's built-in REST API at `/api/puck-templates`.
|
|
36
|
-
|
|
37
|
-
## Quick Setup
|
|
38
|
-
|
|
39
|
-
### 1. Add the Plugin to Payload Config
|
|
40
|
-
|
|
41
|
-
Reference the example configuration and merge with your existing `payload.config.ts`:
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
# View the example config
|
|
45
|
-
cat node_modules/@delmaredigital/payload-puck/examples/config/payload.config.example.ts
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
Add the plugin to your config:
|
|
49
|
-
|
|
50
|
-
```typescript
|
|
51
|
-
import { createPuckPlugin } from '@delmaredigital/payload-puck/plugin'
|
|
52
|
-
|
|
53
|
-
export default buildConfig({
|
|
54
|
-
plugins: [
|
|
55
|
-
createPuckPlugin({
|
|
56
|
-
pagesCollection: 'pages',
|
|
57
|
-
}),
|
|
58
|
-
],
|
|
59
|
-
// ... rest of your config
|
|
60
|
-
})
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### 2. Copy API Routes
|
|
64
|
-
|
|
65
|
-
```bash
|
|
66
|
-
# From your project root
|
|
67
|
-
cp -r node_modules/@delmaredigital/payload-puck/examples/api/puck src/app/api/
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### 3. Copy Editor Page & Layout
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
# Create route group and copy layout (REQUIRED for Tailwind styles)
|
|
74
|
-
mkdir -p src/app/\(manage\)/pages/\[id\]/edit
|
|
75
|
-
cp node_modules/@delmaredigital/payload-puck/examples/app/\(manage\)/layout.tsx src/app/\(manage\)/
|
|
76
|
-
|
|
77
|
-
# Copy editor page
|
|
78
|
-
cp node_modules/@delmaredigital/payload-puck/examples/app/pages/\[id\]/edit/page.tsx src/app/\(manage\)/pages/\[id\]/edit/
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
> **Important:** The layout file imports Tailwind CSS. Without it, the editor will be completely unstyled. Update the CSS import path in `layout.tsx` to match your project's globals.css location.
|
|
82
|
-
|
|
83
|
-
### 4. Copy Frontend Routes
|
|
84
|
-
|
|
85
|
-
```bash
|
|
86
|
-
# Homepage route (handles root "/")
|
|
87
|
-
mkdir -p src/app/\(frontend\)
|
|
88
|
-
cp node_modules/@delmaredigital/payload-puck/examples/app/\(frontend\)/page.tsx src/app/\(frontend\)/
|
|
89
|
-
|
|
90
|
-
# Dynamic catch-all route (handles "/about", "/contact", etc.)
|
|
91
|
-
mkdir -p src/app/\(frontend\)/\[...slug\]
|
|
92
|
-
cp node_modules/@delmaredigital/payload-puck/examples/app/\[...slug\]/page.tsx src/app/\(frontend\)/\[...slug\]/
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### 5. Copy Theme (Optional)
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
mkdir -p src/lib
|
|
99
|
-
cp node_modules/@delmaredigital/payload-puck/examples/lib/puck-theme.ts src/lib/
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
Then uncomment the theme imports in the editor and renderer pages.
|
|
103
|
-
|
|
104
|
-
### 6. Copy Layouts (Optional)
|
|
105
|
-
|
|
106
|
-
```bash
|
|
107
|
-
cp node_modules/@delmaredigital/payload-puck/examples/lib/puck-layouts.ts src/lib/
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Then update your plugin config and renderer to use custom layouts.
|
|
111
|
-
|
|
112
|
-
## Customization
|
|
113
|
-
|
|
114
|
-
### Authentication
|
|
115
|
-
|
|
116
|
-
Edit the `authenticate` function in each API route to match your auth setup:
|
|
117
|
-
|
|
118
|
-
```typescript
|
|
119
|
-
authenticate: async (request) => {
|
|
120
|
-
// Your auth logic here
|
|
121
|
-
const session = await getSession(request)
|
|
122
|
-
if (!session?.user) return { authenticated: false }
|
|
123
|
-
return { authenticated: true, user: session.user }
|
|
124
|
-
},
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
### Permissions
|
|
128
|
-
|
|
129
|
-
Customize the `canView`, `canEdit`, `canPublish`, and `canDelete` hooks:
|
|
130
|
-
|
|
131
|
-
```typescript
|
|
132
|
-
canEdit: async (user, pageId) => {
|
|
133
|
-
// Example: Only editors and admins can edit
|
|
134
|
-
return { allowed: ['editor', 'admin'].includes(user?.role) }
|
|
135
|
-
},
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
### Theme
|
|
139
|
-
|
|
140
|
-
Edit `lib/puck-theme.ts` to match your CSS variables:
|
|
141
|
-
|
|
142
|
-
```typescript
|
|
143
|
-
buttonVariants: {
|
|
144
|
-
default: {
|
|
145
|
-
// Use your CSS variable classes
|
|
146
|
-
classes: 'bg-brand text-brand-foreground hover:bg-brand/90',
|
|
147
|
-
},
|
|
148
|
-
},
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
### Layouts
|
|
152
|
-
|
|
153
|
-
Edit `lib/puck-layouts.ts` to define custom page layouts with header/footer support:
|
|
154
|
-
|
|
155
|
-
```typescript
|
|
156
|
-
import { createLayout, mergeLayouts, DEFAULT_LAYOUTS } from '@delmaredigital/payload-puck/layouts'
|
|
157
|
-
import { Header } from '@/components/header'
|
|
158
|
-
import { Footer } from '@/components/footer'
|
|
159
|
-
|
|
160
|
-
// Layout with sticky header
|
|
161
|
-
const defaultLayout = createLayout({
|
|
162
|
-
value: 'default',
|
|
163
|
-
label: 'Default',
|
|
164
|
-
description: 'Standard page with header and footer',
|
|
165
|
-
maxWidth: '1200px',
|
|
166
|
-
// Header/footer rendered in both editor preview and frontend
|
|
167
|
-
header: Header,
|
|
168
|
-
footer: Footer,
|
|
169
|
-
// Editor preview settings
|
|
170
|
-
editorBackground: '#ffffff',
|
|
171
|
-
editorDarkMode: false,
|
|
172
|
-
// IMPORTANT: Set this if your header is sticky/fixed
|
|
173
|
-
// This adds padding-top in both editor AND frontend so content doesn't render behind the header
|
|
174
|
-
stickyHeaderHeight: 80, // Height of your sticky header in pixels
|
|
175
|
-
})
|
|
176
|
-
|
|
177
|
-
// Landing layout without header/footer
|
|
178
|
-
const landingLayout = createLayout({
|
|
179
|
-
value: 'landing',
|
|
180
|
-
label: 'Landing',
|
|
181
|
-
description: 'Full-width layout without header/footer',
|
|
182
|
-
fullWidth: true,
|
|
183
|
-
// No header/footer - content controls the entire page
|
|
184
|
-
editorBackground: '#f8fafc',
|
|
185
|
-
})
|
|
186
|
-
|
|
187
|
-
// Dark theme example
|
|
188
|
-
const darkLayout = createLayout({
|
|
189
|
-
value: 'dark',
|
|
190
|
-
label: 'Dark',
|
|
191
|
-
description: 'Dark theme layout',
|
|
192
|
-
maxWidth: '1200px',
|
|
193
|
-
header: Header, // Could be a dark-themed header
|
|
194
|
-
footer: Footer,
|
|
195
|
-
editorBackground: '#111827',
|
|
196
|
-
editorDarkMode: true, // Sets dark mode class on iframe
|
|
197
|
-
stickyHeaderHeight: 80,
|
|
198
|
-
})
|
|
199
|
-
|
|
200
|
-
// Combine with defaults
|
|
201
|
-
export const customLayouts = mergeLayouts(
|
|
202
|
-
DEFAULT_LAYOUTS,
|
|
203
|
-
[defaultLayout, landingLayout, darkLayout],
|
|
204
|
-
{ replace: true } // Replace defaults with our versions
|
|
205
|
-
)
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
Use layouts in your editor page:
|
|
209
|
-
|
|
210
|
-
```typescript
|
|
211
|
-
import { PuckEditor } from '@delmaredigital/payload-puck/editor'
|
|
212
|
-
import { customLayouts } from '@/lib/puck-layouts'
|
|
213
|
-
|
|
214
|
-
<PuckEditor
|
|
215
|
-
config={editorConfig}
|
|
216
|
-
pageId={page.id}
|
|
217
|
-
initialData={page.puckData}
|
|
218
|
-
layouts={customLayouts} // Editor reads header/footer from layouts
|
|
219
|
-
/>
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
And in your PageRenderer:
|
|
223
|
-
|
|
224
|
-
```typescript
|
|
225
|
-
import { PageRenderer } from '@delmaredigital/payload-puck/render'
|
|
226
|
-
import { customLayouts } from '@/lib/puck-layouts'
|
|
227
|
-
|
|
228
|
-
<PageRenderer
|
|
229
|
-
data={page.puckData}
|
|
230
|
-
layouts={customLayouts} // Frontend renders header/footer from layouts
|
|
231
|
-
/>
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
#### Layout Definition Options
|
|
235
|
-
|
|
236
|
-
| Option | Type | Description |
|
|
237
|
-
|--------|------|-------------|
|
|
238
|
-
| `value` | `string` | Unique identifier |
|
|
239
|
-
| `label` | `string` | Display name in editor |
|
|
240
|
-
| `header` | `ComponentType` | Header component for preview & frontend |
|
|
241
|
-
| `footer` | `ComponentType` | Footer component for preview & frontend |
|
|
242
|
-
| `stickyHeaderHeight` | `number` | Height of sticky/fixed header (applies padding in editor & frontend) |
|
|
243
|
-
| `editorBackground` | `string` | Background color for editor preview |
|
|
244
|
-
| `editorDarkMode` | `boolean` | Use dark mode in editor preview |
|
|
245
|
-
| `maxWidth` | `string` | Container max-width (e.g., `'1200px'`) |
|
|
246
|
-
| `fullWidth` | `boolean` | If true, no container constraints |
|
|
247
|
-
| `classes` | `object` | CSS classes for wrapper/container/content |
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Puck Pages API - Get, Update, Delete
|
|
3
|
-
*
|
|
4
|
-
* Copy this file to: app/api/puck/pages/[id]/route.ts
|
|
5
|
-
*
|
|
6
|
-
* Provides:
|
|
7
|
-
* - GET: Get a single page by ID
|
|
8
|
-
* - PATCH: Update a page (supports draft/publish)
|
|
9
|
-
* - DELETE: Delete a page
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
import { createPuckApiRoutesWithId } from '@delmaredigital/payload-puck/api'
|
|
13
|
-
import config from '@payload-config'
|
|
14
|
-
import { getPayload } from 'payload'
|
|
15
|
-
import { headers } from 'next/headers'
|
|
16
|
-
|
|
17
|
-
export const { GET, PATCH, DELETE } = createPuckApiRoutesWithId({
|
|
18
|
-
collection: 'pages',
|
|
19
|
-
payloadConfig: config,
|
|
20
|
-
auth: {
|
|
21
|
-
// Customize authentication logic for your app
|
|
22
|
-
authenticate: async (request) => {
|
|
23
|
-
const payload = await getPayload({ config })
|
|
24
|
-
const { user } = await payload.auth({ headers: await headers() })
|
|
25
|
-
|
|
26
|
-
if (!user) {
|
|
27
|
-
return { authenticated: false }
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return {
|
|
31
|
-
authenticated: true,
|
|
32
|
-
user: { id: user.id, role: (user as any).role },
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
|
|
36
|
-
// Optional: Customize who can view a page
|
|
37
|
-
canView: async (user, pageId) => {
|
|
38
|
-
return { allowed: true }
|
|
39
|
-
},
|
|
40
|
-
|
|
41
|
-
// Optional: Customize who can edit a page
|
|
42
|
-
canEdit: async (user, pageId) => {
|
|
43
|
-
return { allowed: !!user }
|
|
44
|
-
},
|
|
45
|
-
|
|
46
|
-
// Optional: Customize who can publish (defaults to canEdit)
|
|
47
|
-
canPublish: async (user, pageId) => {
|
|
48
|
-
return { allowed: !!user }
|
|
49
|
-
},
|
|
50
|
-
|
|
51
|
-
// Optional: Customize who can delete a page
|
|
52
|
-
canDelete: async (user, pageId) => {
|
|
53
|
-
// Example: Only admins can delete
|
|
54
|
-
return { allowed: user?.role === 'admin' }
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
|
|
58
|
-
// Optional: Map Puck root props to Payload fields
|
|
59
|
-
rootPropsMapping: [
|
|
60
|
-
{ from: 'metaTitle', to: 'seo.metaTitle' },
|
|
61
|
-
{ from: 'metaDescription', to: 'seo.metaDescription' },
|
|
62
|
-
{ from: 'pageLayout', to: 'pageLayout' },
|
|
63
|
-
],
|
|
64
|
-
})
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Puck Pages Versions API
|
|
3
|
-
*
|
|
4
|
-
* Copy this file to: app/api/puck/pages/[id]/versions/route.ts
|
|
5
|
-
*
|
|
6
|
-
* Provides:
|
|
7
|
-
* - GET: List page versions
|
|
8
|
-
* - POST: Restore a specific version
|
|
9
|
-
*
|
|
10
|
-
* The History button automatically appears in the editor when this route exists.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
import { createPuckApiRoutesVersions } from '@delmaredigital/payload-puck/api'
|
|
14
|
-
import config from '@payload-config'
|
|
15
|
-
import { getPayload } from 'payload'
|
|
16
|
-
import { headers } from 'next/headers'
|
|
17
|
-
|
|
18
|
-
export const { GET, POST } = createPuckApiRoutesVersions({
|
|
19
|
-
collection: 'pages',
|
|
20
|
-
payloadConfig: config,
|
|
21
|
-
auth: {
|
|
22
|
-
// Customize authentication logic for your app
|
|
23
|
-
authenticate: async (request) => {
|
|
24
|
-
const payload = await getPayload({ config })
|
|
25
|
-
const { user } = await payload.auth({ headers: await headers() })
|
|
26
|
-
|
|
27
|
-
if (!user) {
|
|
28
|
-
return { authenticated: false }
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return {
|
|
32
|
-
authenticated: true,
|
|
33
|
-
user: { id: user.id, role: (user as any).role },
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
|
|
37
|
-
// Optional: Customize who can view versions
|
|
38
|
-
canView: async (user, pageId) => {
|
|
39
|
-
return { allowed: !!user }
|
|
40
|
-
},
|
|
41
|
-
|
|
42
|
-
// Optional: Customize who can restore versions
|
|
43
|
-
canEdit: async (user, pageId) => {
|
|
44
|
-
return { allowed: !!user }
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
})
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Puck Pages API - List & Create
|
|
3
|
-
*
|
|
4
|
-
* Copy this file to: app/api/puck/pages/route.ts
|
|
5
|
-
*
|
|
6
|
-
* Provides:
|
|
7
|
-
* - GET: List all pages
|
|
8
|
-
* - POST: Create a new page
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import { createPuckApiRoutes } from '@delmaredigital/payload-puck/api'
|
|
12
|
-
import config from '@payload-config'
|
|
13
|
-
import { getPayload } from 'payload'
|
|
14
|
-
import { headers } from 'next/headers'
|
|
15
|
-
|
|
16
|
-
export const { GET, POST } = createPuckApiRoutes({
|
|
17
|
-
collection: 'pages',
|
|
18
|
-
payloadConfig: config,
|
|
19
|
-
auth: {
|
|
20
|
-
// Customize authentication logic for your app
|
|
21
|
-
authenticate: async (request) => {
|
|
22
|
-
const payload = await getPayload({ config })
|
|
23
|
-
const { user } = await payload.auth({ headers: await headers() })
|
|
24
|
-
|
|
25
|
-
if (!user) {
|
|
26
|
-
return { authenticated: false }
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
return {
|
|
30
|
-
authenticated: true,
|
|
31
|
-
user: { id: user.id, role: (user as any).role },
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
|
|
35
|
-
// Optional: Customize who can list pages
|
|
36
|
-
canList: async (user) => {
|
|
37
|
-
return { allowed: true }
|
|
38
|
-
},
|
|
39
|
-
|
|
40
|
-
// Optional: Customize who can create pages
|
|
41
|
-
canCreate: async (user) => {
|
|
42
|
-
return { allowed: !!user }
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
})
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Homepage Route
|
|
3
|
-
*
|
|
4
|
-
* Copy this file to: app/(frontend)/page.tsx
|
|
5
|
-
*
|
|
6
|
-
* Handles the root URL ("/") separately from the catch-all [...slug] route.
|
|
7
|
-
* Looks for a page with slug "home" or isHomepage=true.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { notFound } from 'next/navigation'
|
|
11
|
-
import { getPayload } from 'payload'
|
|
12
|
-
import config from '@payload-config'
|
|
13
|
-
import { PageRenderer } from '@delmaredigital/payload-puck/render'
|
|
14
|
-
import { baseConfig } from '@delmaredigital/payload-puck/config'
|
|
15
|
-
import { LayoutWrapper, DEFAULT_LAYOUTS } from '@delmaredigital/payload-puck/layouts'
|
|
16
|
-
// Import your custom layouts - create from examples/lib/puck-layouts.ts
|
|
17
|
-
// import { siteLayouts } from '@/lib/puck-layouts'
|
|
18
|
-
// Import your theme - create from examples/lib/puck-theme.ts
|
|
19
|
-
// import { puckTheme } from '@/lib/puck-theme'
|
|
20
|
-
import type { Data as PuckData } from '@measured/puck'
|
|
21
|
-
import type { Metadata } from 'next'
|
|
22
|
-
|
|
23
|
-
// Generate SEO metadata for homepage
|
|
24
|
-
export async function generateMetadata(): Promise<Metadata> {
|
|
25
|
-
const payload = await getPayload({ config })
|
|
26
|
-
|
|
27
|
-
// Find homepage by isHomepage flag or slug
|
|
28
|
-
const { docs } = await payload.find({
|
|
29
|
-
collection: 'pages',
|
|
30
|
-
where: {
|
|
31
|
-
or: [
|
|
32
|
-
{ isHomepage: { equals: true } },
|
|
33
|
-
{ slug: { equals: 'home' } },
|
|
34
|
-
],
|
|
35
|
-
},
|
|
36
|
-
limit: 1,
|
|
37
|
-
})
|
|
38
|
-
|
|
39
|
-
const page = docs[0] as any
|
|
40
|
-
if (!page) return { title: 'Home' }
|
|
41
|
-
|
|
42
|
-
return {
|
|
43
|
-
title: page.meta?.title || page.title,
|
|
44
|
-
description: page.meta?.description,
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export default async function HomePage() {
|
|
49
|
-
const payload = await getPayload({ config })
|
|
50
|
-
|
|
51
|
-
// Find homepage by isHomepage flag or slug
|
|
52
|
-
const { docs } = await payload.find({
|
|
53
|
-
collection: 'pages',
|
|
54
|
-
where: {
|
|
55
|
-
or: [
|
|
56
|
-
{ isHomepage: { equals: true } },
|
|
57
|
-
{ slug: { equals: 'home' } },
|
|
58
|
-
],
|
|
59
|
-
},
|
|
60
|
-
limit: 1,
|
|
61
|
-
})
|
|
62
|
-
|
|
63
|
-
const page = docs[0] as any
|
|
64
|
-
if (!page) notFound()
|
|
65
|
-
|
|
66
|
-
// Handle pages without content
|
|
67
|
-
if (!page.puckData) {
|
|
68
|
-
return (
|
|
69
|
-
<div className="container mx-auto py-12 text-center">
|
|
70
|
-
<h1 className="text-2xl font-bold mb-4">{page.title}</h1>
|
|
71
|
-
<p className="text-muted-foreground">
|
|
72
|
-
This page has no content yet. Edit it in the admin panel.
|
|
73
|
-
</p>
|
|
74
|
-
</div>
|
|
75
|
-
)
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// Find the layout definition based on page's pageLayout setting
|
|
79
|
-
// Use your custom siteLayouts instead of DEFAULT_LAYOUTS for header/footer
|
|
80
|
-
const layouts = DEFAULT_LAYOUTS // Replace with: siteLayouts
|
|
81
|
-
const pageLayout = page.puckData?.root?.props?.pageLayout || 'default'
|
|
82
|
-
const layout = layouts.find((l) => l.value === pageLayout)
|
|
83
|
-
|
|
84
|
-
return (
|
|
85
|
-
<LayoutWrapper layout={layout}>
|
|
86
|
-
<PageRenderer
|
|
87
|
-
data={page.puckData as PuckData}
|
|
88
|
-
config={baseConfig}
|
|
89
|
-
// Optional: Custom theme - uncomment after creating puck-theme.ts
|
|
90
|
-
// theme={puckTheme}
|
|
91
|
-
/>
|
|
92
|
-
</LayoutWrapper>
|
|
93
|
-
)
|
|
94
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Layout for Puck Editor routes
|
|
3
|
-
*
|
|
4
|
-
* IMPORTANT: This layout must import your Tailwind CSS for the editor to be styled.
|
|
5
|
-
* Update the import path to match your project's globals.css location.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
// Import your Tailwind CSS - adjust path as needed
|
|
9
|
-
import '@/app/(frontend)/globals.css'
|
|
10
|
-
// Or if your globals.css is elsewhere:
|
|
11
|
-
// import '@/styles/globals.css'
|
|
12
|
-
// import '../globals.css'
|
|
13
|
-
|
|
14
|
-
export const metadata = {
|
|
15
|
-
title: 'Puck Editor',
|
|
16
|
-
description: 'Visual page editor',
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export default function ManageLayout({
|
|
20
|
-
children,
|
|
21
|
-
}: {
|
|
22
|
-
children: React.ReactNode
|
|
23
|
-
}) {
|
|
24
|
-
return (
|
|
25
|
-
// NOTE: data-theme="light" is required if your CSS uses opacity:0 until theme is set
|
|
26
|
-
// (common FOUC prevention pattern). Adjust to match your theme system.
|
|
27
|
-
<html lang="en" data-theme="light">
|
|
28
|
-
<body>{children}</body>
|
|
29
|
-
</html>
|
|
30
|
-
)
|
|
31
|
-
}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dynamic Page Renderer
|
|
3
|
-
*
|
|
4
|
-
* Copy this file to: app/(frontend)/[...slug]/page.tsx
|
|
5
|
-
* (or your preferred route structure)
|
|
6
|
-
*
|
|
7
|
-
* Renders Puck pages from Payload CMS with:
|
|
8
|
-
* - SEO metadata generation
|
|
9
|
-
* - 404 handling for missing pages
|
|
10
|
-
* - Layout-based header/footer rendering
|
|
11
|
-
* - Optional theming support
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
import { notFound } from 'next/navigation'
|
|
15
|
-
import { getPayload } from 'payload'
|
|
16
|
-
import config from '@payload-config'
|
|
17
|
-
import { PageRenderer } from '@delmaredigital/payload-puck/render'
|
|
18
|
-
import { baseConfig } from '@delmaredigital/payload-puck/config'
|
|
19
|
-
import { LayoutWrapper, DEFAULT_LAYOUTS } from '@delmaredigital/payload-puck/layouts'
|
|
20
|
-
// Import your custom layouts - create from examples/lib/puck-layouts.ts
|
|
21
|
-
// import { siteLayouts } from '@/lib/puck-layouts'
|
|
22
|
-
// Import your theme - create from examples/lib/puck-theme.ts
|
|
23
|
-
// import { puckTheme } from '@/lib/puck-theme'
|
|
24
|
-
import type { Data as PuckData } from '@measured/puck'
|
|
25
|
-
import type { Metadata } from 'next'
|
|
26
|
-
|
|
27
|
-
interface PageParams {
|
|
28
|
-
slug: string[]
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// Generate SEO metadata from page data
|
|
32
|
-
export async function generateMetadata({
|
|
33
|
-
params,
|
|
34
|
-
}: {
|
|
35
|
-
params: Promise<PageParams>
|
|
36
|
-
}): Promise<Metadata> {
|
|
37
|
-
const { slug } = await params
|
|
38
|
-
const payload = await getPayload({ config })
|
|
39
|
-
|
|
40
|
-
const { docs } = await payload.find({
|
|
41
|
-
collection: 'pages',
|
|
42
|
-
where: { slug: { equals: slug.join('/') } },
|
|
43
|
-
limit: 1,
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
const page = docs[0] as any
|
|
47
|
-
if (!page) return {}
|
|
48
|
-
|
|
49
|
-
return {
|
|
50
|
-
title: page.meta?.title || page.title,
|
|
51
|
-
description: page.meta?.description,
|
|
52
|
-
robots: page.meta?.noindex ? { index: false } : undefined,
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export default async function Page({
|
|
57
|
-
params,
|
|
58
|
-
}: {
|
|
59
|
-
params: Promise<PageParams>
|
|
60
|
-
}) {
|
|
61
|
-
const { slug } = await params
|
|
62
|
-
const payload = await getPayload({ config })
|
|
63
|
-
|
|
64
|
-
const { docs } = await payload.find({
|
|
65
|
-
collection: 'pages',
|
|
66
|
-
where: { slug: { equals: slug.join('/') } },
|
|
67
|
-
limit: 1,
|
|
68
|
-
})
|
|
69
|
-
|
|
70
|
-
const page = docs[0] as any
|
|
71
|
-
if (!page) notFound()
|
|
72
|
-
|
|
73
|
-
// Handle pages without content
|
|
74
|
-
if (!page.puckData) {
|
|
75
|
-
return (
|
|
76
|
-
<div className="container mx-auto py-12 text-center">
|
|
77
|
-
<h1 className="text-2xl font-bold mb-4">{page.title}</h1>
|
|
78
|
-
<p className="text-muted-foreground">
|
|
79
|
-
This page has no content yet. Edit it in the admin panel.
|
|
80
|
-
</p>
|
|
81
|
-
</div>
|
|
82
|
-
)
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// Find the layout definition based on page's pageLayout setting
|
|
86
|
-
// Use your custom siteLayouts instead of DEFAULT_LAYOUTS for header/footer
|
|
87
|
-
const layouts = DEFAULT_LAYOUTS // Replace with: siteLayouts
|
|
88
|
-
const pageLayout = page.puckData?.root?.props?.pageLayout || 'default'
|
|
89
|
-
const layout = layouts.find((l) => l.value === pageLayout)
|
|
90
|
-
|
|
91
|
-
return (
|
|
92
|
-
<LayoutWrapper layout={layout}>
|
|
93
|
-
<PageRenderer
|
|
94
|
-
data={page.puckData as PuckData}
|
|
95
|
-
config={baseConfig}
|
|
96
|
-
// Optional: Custom theme - uncomment after creating puck-theme.ts
|
|
97
|
-
// theme={puckTheme}
|
|
98
|
-
/>
|
|
99
|
-
</LayoutWrapper>
|
|
100
|
-
)
|
|
101
|
-
}
|