@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
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { DEFAULT_LAYOUTS } from '../../layouts/defaults';
|
|
2
|
+
import { puckDataField, createEditorVersionField, createPageLayoutField, isHomepageField, seoFieldGroup, conversionFieldGroup, } from '../fields';
|
|
3
|
+
/**
|
|
4
|
+
* Default access function - allows all
|
|
5
|
+
*/
|
|
6
|
+
const defaultAccess = () => true;
|
|
7
|
+
/**
|
|
8
|
+
* Generates a Pages collection configuration for Puck
|
|
9
|
+
*/
|
|
10
|
+
export function generatePagesCollection(slug, options) {
|
|
11
|
+
const { collectionOverrides = {}, access = {}, layouts = DEFAULT_LAYOUTS, additionalFields = [], } = options;
|
|
12
|
+
const baseFields = [
|
|
13
|
+
// Core Fields (title and slug with duplication hooks - unique to collection generation)
|
|
14
|
+
{
|
|
15
|
+
name: 'title',
|
|
16
|
+
type: 'text',
|
|
17
|
+
required: true,
|
|
18
|
+
hooks: {
|
|
19
|
+
beforeDuplicate: [
|
|
20
|
+
({ value }) => {
|
|
21
|
+
if (!value)
|
|
22
|
+
return value;
|
|
23
|
+
const copyMatch = value.match(/^(.+) \(Copy(?: (\d+))?\)$/);
|
|
24
|
+
if (copyMatch) {
|
|
25
|
+
const baseName = copyMatch[1];
|
|
26
|
+
const copyNum = copyMatch[2] ? parseInt(copyMatch[2], 10) + 1 : 2;
|
|
27
|
+
return `${baseName} (Copy ${copyNum})`;
|
|
28
|
+
}
|
|
29
|
+
return `${value} (Copy)`;
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: 'slug',
|
|
36
|
+
type: 'text',
|
|
37
|
+
required: true,
|
|
38
|
+
unique: true,
|
|
39
|
+
index: true,
|
|
40
|
+
admin: {
|
|
41
|
+
position: 'sidebar',
|
|
42
|
+
description: 'URL path for this page (auto-generated from title)',
|
|
43
|
+
},
|
|
44
|
+
hooks: {
|
|
45
|
+
beforeValidate: [
|
|
46
|
+
({ data, value }) => {
|
|
47
|
+
if (data && !value && data.title) {
|
|
48
|
+
return data.title
|
|
49
|
+
.toLowerCase()
|
|
50
|
+
.replace(/[^\w\s-]/g, '')
|
|
51
|
+
.replace(/\s+/g, '-')
|
|
52
|
+
.replace(/-+/g, '-')
|
|
53
|
+
.trim();
|
|
54
|
+
}
|
|
55
|
+
return value;
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
beforeDuplicate: [
|
|
59
|
+
({ value }) => {
|
|
60
|
+
if (!value)
|
|
61
|
+
return value;
|
|
62
|
+
const copyMatch = value.match(/^(.+)-copy(?:-(\d+))?$/);
|
|
63
|
+
if (copyMatch) {
|
|
64
|
+
const baseName = copyMatch[1];
|
|
65
|
+
const copyNum = copyMatch[2] ? parseInt(copyMatch[2], 10) + 1 : 2;
|
|
66
|
+
return `${baseName}-copy-${copyNum}`;
|
|
67
|
+
}
|
|
68
|
+
return `${value}-copy`;
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
// Page Layout
|
|
74
|
+
createPageLayoutField(layouts, true),
|
|
75
|
+
// Editor Version
|
|
76
|
+
createEditorVersionField('puck', true),
|
|
77
|
+
// Homepage Flag
|
|
78
|
+
isHomepageField,
|
|
79
|
+
// Puck Data (hidden - managed via visual editor)
|
|
80
|
+
puckDataField,
|
|
81
|
+
// SEO Fields
|
|
82
|
+
seoFieldGroup,
|
|
83
|
+
// Conversion Tracking Fields
|
|
84
|
+
conversionFieldGroup,
|
|
85
|
+
// Additional fields from options
|
|
86
|
+
...additionalFields,
|
|
87
|
+
];
|
|
88
|
+
return {
|
|
89
|
+
slug,
|
|
90
|
+
admin: {
|
|
91
|
+
useAsTitle: 'title',
|
|
92
|
+
group: 'Content',
|
|
93
|
+
defaultColumns: ['title', 'slug', '_status', 'updatedAt'],
|
|
94
|
+
...(collectionOverrides.admin ?? {}),
|
|
95
|
+
},
|
|
96
|
+
access: {
|
|
97
|
+
read: access.read ?? defaultAccess,
|
|
98
|
+
create: access.create ?? defaultAccess,
|
|
99
|
+
update: access.update ?? defaultAccess,
|
|
100
|
+
delete: access.delete ?? defaultAccess,
|
|
101
|
+
...(collectionOverrides.access ?? {}),
|
|
102
|
+
},
|
|
103
|
+
versions: typeof collectionOverrides.versions === 'object'
|
|
104
|
+
? { drafts: true, ...collectionOverrides.versions }
|
|
105
|
+
: { drafts: true },
|
|
106
|
+
fields: baseFields,
|
|
107
|
+
...collectionOverrides,
|
|
108
|
+
// Ensure fields aren't overwritten by collectionOverrides
|
|
109
|
+
...(collectionOverrides.fields && {
|
|
110
|
+
fields: [...baseFields, ...collectionOverrides.fields],
|
|
111
|
+
}),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
// Note: puckDataField is now exported from '../fields' for hybrid collection integration
|
|
115
|
+
// Re-export for backwards compatibility
|
|
116
|
+
export { puckDataField } from '../fields';
|
|
117
|
+
//# sourceMappingURL=Pages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pages.js","sourceRoot":"","sources":["../../../src/plugin/collections/Pages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Puck Field Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides reusable field definitions for adding Puck support to existing collections.
|
|
5
|
+
* Use getPuckFields() for easy integration, or import individual fields for granular control.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // Option 1: Use getPuckFields() for recommended defaults
|
|
10
|
+
* import { getPuckFields } from '@delmaredigital/payload-puck'
|
|
11
|
+
*
|
|
12
|
+
* const Pages: CollectionConfig = {
|
|
13
|
+
* slug: 'pages',
|
|
14
|
+
* fields: [
|
|
15
|
+
* // Your existing fields...
|
|
16
|
+
* ...getPuckFields({ includeSEO: false }),
|
|
17
|
+
* ],
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* // Option 2: Import individual fields
|
|
21
|
+
* import { puckDataField, editorVersionField } from '@delmaredigital/payload-puck'
|
|
22
|
+
*
|
|
23
|
+
* const Pages: CollectionConfig = {
|
|
24
|
+
* slug: 'pages',
|
|
25
|
+
* fields: [
|
|
26
|
+
* // Your existing fields...
|
|
27
|
+
* puckDataField,
|
|
28
|
+
* editorVersionField,
|
|
29
|
+
* ],
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
import type { Field } from 'payload';
|
|
34
|
+
import type { GetPuckFieldsOptions, ConversionTypeOption } from './types';
|
|
35
|
+
import type { LayoutDefinition } from '../../layouts/types';
|
|
36
|
+
/**
|
|
37
|
+
* Puck data field - stores the visual editor JSON data.
|
|
38
|
+
* This field is always hidden in the admin UI as it's managed via the visual editor.
|
|
39
|
+
*/
|
|
40
|
+
export declare const puckDataField: Field;
|
|
41
|
+
/**
|
|
42
|
+
* Creates an editor version field with smart detection for hybrid setups.
|
|
43
|
+
*
|
|
44
|
+
* The field uses a beforeValidate hook to intelligently determine the editor version:
|
|
45
|
+
* - New pages: Default to 'puck' (or custom defaultValue)
|
|
46
|
+
* - Existing pages with legacy blocks but no puckData: Set to 'legacy'
|
|
47
|
+
* - Existing pages with puckData: Set to 'puck'
|
|
48
|
+
*
|
|
49
|
+
* This prevents existing legacy content from being incorrectly marked as 'puck'
|
|
50
|
+
* when the field is first added to a collection.
|
|
51
|
+
*
|
|
52
|
+
* @param defaultValue - The default editor version for NEW pages ('puck' or 'legacy')
|
|
53
|
+
* @param sidebar - Whether to position in the sidebar (default: true)
|
|
54
|
+
* @param legacyBlocksFieldName - Name of the legacy blocks field to check (default: 'layout')
|
|
55
|
+
*/
|
|
56
|
+
export declare function createEditorVersionField(defaultValue?: 'legacy' | 'puck', sidebar?: boolean, legacyBlocksFieldName?: string): Field;
|
|
57
|
+
/**
|
|
58
|
+
* Pre-configured editor version field with 'puck' as default.
|
|
59
|
+
* Use createEditorVersionField() for custom configuration.
|
|
60
|
+
*/
|
|
61
|
+
export declare const editorVersionField: Field;
|
|
62
|
+
/**
|
|
63
|
+
* Creates a page layout field with custom layouts.
|
|
64
|
+
*
|
|
65
|
+
* @param layouts - Array of layout definitions (defaults to DEFAULT_LAYOUTS)
|
|
66
|
+
* @param sidebar - Whether to position in the sidebar (default: true)
|
|
67
|
+
*/
|
|
68
|
+
export declare function createPageLayoutField(layouts?: LayoutDefinition[], sidebar?: boolean): Field;
|
|
69
|
+
/**
|
|
70
|
+
* Pre-configured page layout field with DEFAULT_LAYOUTS.
|
|
71
|
+
* Use createPageLayoutField() for custom layouts.
|
|
72
|
+
*/
|
|
73
|
+
export declare const pageLayoutField: Field;
|
|
74
|
+
/**
|
|
75
|
+
* Homepage flag field - marks a page as the site homepage.
|
|
76
|
+
*/
|
|
77
|
+
export declare const isHomepageField: Field;
|
|
78
|
+
/**
|
|
79
|
+
* SEO/Meta field group with all metadata fields.
|
|
80
|
+
* Uses the official @payloadcms/plugin-seo convention: meta.title, meta.description
|
|
81
|
+
*
|
|
82
|
+
* Includes: title, description, image, noindex, nofollow, excludeFromSitemap
|
|
83
|
+
*/
|
|
84
|
+
export declare const seoFieldGroup: Field;
|
|
85
|
+
/**
|
|
86
|
+
* Default conversion type options
|
|
87
|
+
*/
|
|
88
|
+
export declare const DEFAULT_CONVERSION_TYPES: ConversionTypeOption[];
|
|
89
|
+
/**
|
|
90
|
+
* Creates a conversion tracking field group with custom options.
|
|
91
|
+
*
|
|
92
|
+
* @param conversionTypes - Custom conversion type options (defaults to DEFAULT_CONVERSION_TYPES)
|
|
93
|
+
* @param sidebar - Whether to position in the sidebar (default: true)
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* // Use default conversion types
|
|
98
|
+
* ...getPuckFields({ includeConversion: true })
|
|
99
|
+
*
|
|
100
|
+
* // Use custom conversion types
|
|
101
|
+
* ...getPuckFields({
|
|
102
|
+
* includeConversion: true,
|
|
103
|
+
* conversionTypeOptions: [
|
|
104
|
+
* { label: 'Registration', value: 'registration' },
|
|
105
|
+
* { label: 'Donation', value: 'donation' },
|
|
106
|
+
* { label: 'Course Start', value: 'course_start' },
|
|
107
|
+
* { label: 'Custom', value: 'custom' },
|
|
108
|
+
* ],
|
|
109
|
+
* })
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
export declare function createConversionFieldGroup(conversionTypes?: ConversionTypeOption[], sidebar?: boolean): Field;
|
|
113
|
+
/**
|
|
114
|
+
* Pre-configured conversion tracking field group with default options.
|
|
115
|
+
* Use createConversionFieldGroup() for custom conversion types.
|
|
116
|
+
*/
|
|
117
|
+
export declare const conversionFieldGroup: Field;
|
|
118
|
+
/**
|
|
119
|
+
* Returns an array of Puck-related field definitions for hybrid collection integration.
|
|
120
|
+
*
|
|
121
|
+
* Use this when you have an existing collection with legacy Payload blocks and want
|
|
122
|
+
* to ADD Puck support without replacing your entire collection configuration.
|
|
123
|
+
*
|
|
124
|
+
* @param options - Configuration options for which fields to include
|
|
125
|
+
* @returns Array of Field definitions to spread into your collection's fields array
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* import { getPuckFields } from '@delmaredigital/payload-puck'
|
|
130
|
+
*
|
|
131
|
+
* export const Pages: CollectionConfig = {
|
|
132
|
+
* slug: 'pages',
|
|
133
|
+
* fields: [
|
|
134
|
+
* // Your existing fields
|
|
135
|
+
* { name: 'title', type: 'text', required: true },
|
|
136
|
+
* { name: 'slug', type: 'text', required: true },
|
|
137
|
+
*
|
|
138
|
+
* // Legacy Payload blocks (keep these!)
|
|
139
|
+
* { name: 'layout', type: 'blocks', blocks: [...] },
|
|
140
|
+
*
|
|
141
|
+
* // Add Puck fields for hybrid editing
|
|
142
|
+
* ...getPuckFields({
|
|
143
|
+
* includeSEO: false, // You have your own SEO fields
|
|
144
|
+
* includeConversion: true, // Include conversion tracking
|
|
145
|
+
* includeEditorVersion: true,
|
|
146
|
+
* }),
|
|
147
|
+
* ],
|
|
148
|
+
* }
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
export declare function getPuckFields(options?: GetPuckFieldsOptions): Field[];
|
|
152
|
+
export type { GetPuckFieldsOptions, ConversionTypeOption } from './types';
|
|
153
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAQ3D;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,KAO3B,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,GAAE,QAAQ,GAAG,MAAe,EACxC,OAAO,GAAE,OAAc,EACvB,qBAAqB,GAAE,MAAiB,GACvC,KAAK,CA6CP;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAA8C,CAAA;AAE/E;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,gBAAgB,EAAoB,EAC7C,OAAO,GAAE,OAAc,GACtB,KAAK,CAYP;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAA+B,CAAA;AAE7D;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAQ7B,CAAA;AAMD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,KA6D3B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,EAQ1D,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,0BAA0B,CACxC,eAAe,GAAE,oBAAoB,EAA6B,EAClE,OAAO,GAAE,OAAc,GACtB,KAAK,CA0CP;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAoC,CAAA;AAMvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,KAAK,EAAE,CA8CzE;AAGD,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA"}
|
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Puck Field Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides reusable field definitions for adding Puck support to existing collections.
|
|
5
|
+
* Use getPuckFields() for easy integration, or import individual fields for granular control.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // Option 1: Use getPuckFields() for recommended defaults
|
|
10
|
+
* import { getPuckFields } from '@delmaredigital/payload-puck'
|
|
11
|
+
*
|
|
12
|
+
* const Pages: CollectionConfig = {
|
|
13
|
+
* slug: 'pages',
|
|
14
|
+
* fields: [
|
|
15
|
+
* // Your existing fields...
|
|
16
|
+
* ...getPuckFields({ includeSEO: false }),
|
|
17
|
+
* ],
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* // Option 2: Import individual fields
|
|
21
|
+
* import { puckDataField, editorVersionField } from '@delmaredigital/payload-puck'
|
|
22
|
+
*
|
|
23
|
+
* const Pages: CollectionConfig = {
|
|
24
|
+
* slug: 'pages',
|
|
25
|
+
* fields: [
|
|
26
|
+
* // Your existing fields...
|
|
27
|
+
* puckDataField,
|
|
28
|
+
* editorVersionField,
|
|
29
|
+
* ],
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
import { DEFAULT_LAYOUTS } from '../../layouts/defaults';
|
|
34
|
+
import { layoutsToPayloadOptions } from '../../layouts/utils';
|
|
35
|
+
// =============================================================================
|
|
36
|
+
// Core Fields
|
|
37
|
+
// =============================================================================
|
|
38
|
+
/**
|
|
39
|
+
* Puck data field - stores the visual editor JSON data.
|
|
40
|
+
* This field is always hidden in the admin UI as it's managed via the visual editor.
|
|
41
|
+
*/
|
|
42
|
+
export const puckDataField = {
|
|
43
|
+
name: 'puckData',
|
|
44
|
+
type: 'json',
|
|
45
|
+
admin: {
|
|
46
|
+
hidden: true,
|
|
47
|
+
description: 'Puck editor data - managed via visual editor',
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Creates an editor version field with smart detection for hybrid setups.
|
|
52
|
+
*
|
|
53
|
+
* The field uses a beforeValidate hook to intelligently determine the editor version:
|
|
54
|
+
* - New pages: Default to 'puck' (or custom defaultValue)
|
|
55
|
+
* - Existing pages with legacy blocks but no puckData: Set to 'legacy'
|
|
56
|
+
* - Existing pages with puckData: Set to 'puck'
|
|
57
|
+
*
|
|
58
|
+
* This prevents existing legacy content from being incorrectly marked as 'puck'
|
|
59
|
+
* when the field is first added to a collection.
|
|
60
|
+
*
|
|
61
|
+
* @param defaultValue - The default editor version for NEW pages ('puck' or 'legacy')
|
|
62
|
+
* @param sidebar - Whether to position in the sidebar (default: true)
|
|
63
|
+
* @param legacyBlocksFieldName - Name of the legacy blocks field to check (default: 'layout')
|
|
64
|
+
*/
|
|
65
|
+
export function createEditorVersionField(defaultValue = 'puck', sidebar = true, legacyBlocksFieldName = 'layout') {
|
|
66
|
+
return {
|
|
67
|
+
name: 'editorVersion',
|
|
68
|
+
type: 'select',
|
|
69
|
+
// NO defaultValue here - we use the hook to intelligently detect the value
|
|
70
|
+
// This prevents migrations from blindly setting 'puck' on legacy pages
|
|
71
|
+
options: [
|
|
72
|
+
{ label: 'Legacy (Payload Blocks)', value: 'legacy' },
|
|
73
|
+
{ label: 'Puck Visual Editor', value: 'puck' },
|
|
74
|
+
],
|
|
75
|
+
admin: {
|
|
76
|
+
position: sidebar ? 'sidebar' : undefined,
|
|
77
|
+
description: 'Which editor was used to create this page',
|
|
78
|
+
},
|
|
79
|
+
hooks: {
|
|
80
|
+
beforeValidate: [
|
|
81
|
+
({ value, data, operation }) => {
|
|
82
|
+
// If value is explicitly set (and not null/undefined), keep it
|
|
83
|
+
if (value)
|
|
84
|
+
return value;
|
|
85
|
+
// Detect based on content - works for both new and existing documents
|
|
86
|
+
const legacyBlocks = data?.[legacyBlocksFieldName];
|
|
87
|
+
const hasLegacyBlocks = Array.isArray(legacyBlocks) && legacyBlocks.length > 0;
|
|
88
|
+
const puckData = data?.puckData;
|
|
89
|
+
const hasPuckData = puckData?.content && Array.isArray(puckData.content) && puckData.content.length > 0;
|
|
90
|
+
// If has legacy blocks but no puck data, it's a legacy page
|
|
91
|
+
if (hasLegacyBlocks && !hasPuckData) {
|
|
92
|
+
return 'legacy';
|
|
93
|
+
}
|
|
94
|
+
// If has puck data, it's a puck page
|
|
95
|
+
if (hasPuckData) {
|
|
96
|
+
return 'puck';
|
|
97
|
+
}
|
|
98
|
+
// For new documents with no content yet, use configured default
|
|
99
|
+
// For existing documents with no content, also use default
|
|
100
|
+
return defaultValue;
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Pre-configured editor version field with 'puck' as default.
|
|
108
|
+
* Use createEditorVersionField() for custom configuration.
|
|
109
|
+
*/
|
|
110
|
+
export const editorVersionField = createEditorVersionField('puck', true);
|
|
111
|
+
/**
|
|
112
|
+
* Creates a page layout field with custom layouts.
|
|
113
|
+
*
|
|
114
|
+
* @param layouts - Array of layout definitions (defaults to DEFAULT_LAYOUTS)
|
|
115
|
+
* @param sidebar - Whether to position in the sidebar (default: true)
|
|
116
|
+
*/
|
|
117
|
+
export function createPageLayoutField(layouts = DEFAULT_LAYOUTS, sidebar = true) {
|
|
118
|
+
return {
|
|
119
|
+
name: 'pageLayout',
|
|
120
|
+
type: 'select',
|
|
121
|
+
required: true,
|
|
122
|
+
defaultValue: 'default',
|
|
123
|
+
options: layoutsToPayloadOptions(layouts),
|
|
124
|
+
admin: {
|
|
125
|
+
position: sidebar ? 'sidebar' : undefined,
|
|
126
|
+
description: 'Overall page structure and layout style',
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Pre-configured page layout field with DEFAULT_LAYOUTS.
|
|
132
|
+
* Use createPageLayoutField() for custom layouts.
|
|
133
|
+
*/
|
|
134
|
+
export const pageLayoutField = createPageLayoutField();
|
|
135
|
+
/**
|
|
136
|
+
* Homepage flag field - marks a page as the site homepage.
|
|
137
|
+
*/
|
|
138
|
+
export const isHomepageField = {
|
|
139
|
+
name: 'isHomepage',
|
|
140
|
+
type: 'checkbox',
|
|
141
|
+
defaultValue: false,
|
|
142
|
+
admin: {
|
|
143
|
+
position: 'sidebar',
|
|
144
|
+
description: 'Mark this page as the homepage',
|
|
145
|
+
},
|
|
146
|
+
};
|
|
147
|
+
// =============================================================================
|
|
148
|
+
// Field Groups
|
|
149
|
+
// =============================================================================
|
|
150
|
+
/**
|
|
151
|
+
* SEO/Meta field group with all metadata fields.
|
|
152
|
+
* Uses the official @payloadcms/plugin-seo convention: meta.title, meta.description
|
|
153
|
+
*
|
|
154
|
+
* Includes: title, description, image, noindex, nofollow, excludeFromSitemap
|
|
155
|
+
*/
|
|
156
|
+
export const seoFieldGroup = {
|
|
157
|
+
name: 'meta',
|
|
158
|
+
type: 'group',
|
|
159
|
+
label: 'SEO',
|
|
160
|
+
admin: {
|
|
161
|
+
position: 'sidebar',
|
|
162
|
+
},
|
|
163
|
+
fields: [
|
|
164
|
+
{
|
|
165
|
+
name: 'title',
|
|
166
|
+
type: 'text',
|
|
167
|
+
label: 'Meta Title',
|
|
168
|
+
admin: {
|
|
169
|
+
description: 'Override the page title for search engines',
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
name: 'description',
|
|
174
|
+
type: 'textarea',
|
|
175
|
+
label: 'Meta Description',
|
|
176
|
+
admin: {
|
|
177
|
+
description: 'Description shown in search engine results',
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
name: 'image',
|
|
182
|
+
type: 'upload',
|
|
183
|
+
relationTo: 'media',
|
|
184
|
+
label: 'Open Graph Image',
|
|
185
|
+
admin: {
|
|
186
|
+
description: 'Image shown when sharing on social media',
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
name: 'noindex',
|
|
191
|
+
type: 'checkbox',
|
|
192
|
+
label: 'No Index',
|
|
193
|
+
defaultValue: false,
|
|
194
|
+
admin: {
|
|
195
|
+
description: 'Prevent search engines from indexing this page',
|
|
196
|
+
},
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
name: 'nofollow',
|
|
200
|
+
type: 'checkbox',
|
|
201
|
+
label: 'No Follow',
|
|
202
|
+
defaultValue: false,
|
|
203
|
+
admin: {
|
|
204
|
+
description: 'Prevent search engines from following links on this page',
|
|
205
|
+
},
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
name: 'excludeFromSitemap',
|
|
209
|
+
type: 'checkbox',
|
|
210
|
+
label: 'Exclude from Sitemap',
|
|
211
|
+
defaultValue: false,
|
|
212
|
+
admin: {
|
|
213
|
+
description: 'Exclude this page from the XML sitemap',
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
],
|
|
217
|
+
};
|
|
218
|
+
/**
|
|
219
|
+
* Default conversion type options
|
|
220
|
+
*/
|
|
221
|
+
export const DEFAULT_CONVERSION_TYPES = [
|
|
222
|
+
{ label: 'Lead', value: 'lead' },
|
|
223
|
+
{ label: 'Registration', value: 'registration' },
|
|
224
|
+
{ label: 'Purchase', value: 'purchase' },
|
|
225
|
+
{ label: 'Donation', value: 'donation' },
|
|
226
|
+
{ label: 'Newsletter Signup', value: 'newsletter' },
|
|
227
|
+
{ label: 'Contact Form', value: 'contact' },
|
|
228
|
+
{ label: 'Custom', value: 'custom' },
|
|
229
|
+
];
|
|
230
|
+
/**
|
|
231
|
+
* Creates a conversion tracking field group with custom options.
|
|
232
|
+
*
|
|
233
|
+
* @param conversionTypes - Custom conversion type options (defaults to DEFAULT_CONVERSION_TYPES)
|
|
234
|
+
* @param sidebar - Whether to position in the sidebar (default: true)
|
|
235
|
+
*
|
|
236
|
+
* @example
|
|
237
|
+
* ```typescript
|
|
238
|
+
* // Use default conversion types
|
|
239
|
+
* ...getPuckFields({ includeConversion: true })
|
|
240
|
+
*
|
|
241
|
+
* // Use custom conversion types
|
|
242
|
+
* ...getPuckFields({
|
|
243
|
+
* includeConversion: true,
|
|
244
|
+
* conversionTypeOptions: [
|
|
245
|
+
* { label: 'Registration', value: 'registration' },
|
|
246
|
+
* { label: 'Donation', value: 'donation' },
|
|
247
|
+
* { label: 'Course Start', value: 'course_start' },
|
|
248
|
+
* { label: 'Custom', value: 'custom' },
|
|
249
|
+
* ],
|
|
250
|
+
* })
|
|
251
|
+
* ```
|
|
252
|
+
*/
|
|
253
|
+
export function createConversionFieldGroup(conversionTypes = DEFAULT_CONVERSION_TYPES, sidebar = true) {
|
|
254
|
+
return {
|
|
255
|
+
name: 'conversionTracking',
|
|
256
|
+
type: 'group',
|
|
257
|
+
label: 'Conversion Tracking',
|
|
258
|
+
admin: {
|
|
259
|
+
position: sidebar ? 'sidebar' : undefined,
|
|
260
|
+
description: 'Configure conversion tracking for analytics',
|
|
261
|
+
},
|
|
262
|
+
fields: [
|
|
263
|
+
{
|
|
264
|
+
name: 'isConversionPage',
|
|
265
|
+
type: 'checkbox',
|
|
266
|
+
label: 'Is Conversion Page',
|
|
267
|
+
defaultValue: false,
|
|
268
|
+
admin: {
|
|
269
|
+
description: 'Check this if this page represents a completed conversion (e.g., thank you page)',
|
|
270
|
+
},
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
name: 'conversionType',
|
|
274
|
+
type: 'select',
|
|
275
|
+
label: 'Conversion Type',
|
|
276
|
+
options: conversionTypes,
|
|
277
|
+
admin: {
|
|
278
|
+
description: 'Type of conversion this page represents',
|
|
279
|
+
condition: (data, siblingData) => siblingData?.isConversionPage === true,
|
|
280
|
+
},
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
name: 'conversionValue',
|
|
284
|
+
type: 'number',
|
|
285
|
+
label: 'Conversion Value',
|
|
286
|
+
defaultValue: 0,
|
|
287
|
+
admin: {
|
|
288
|
+
description: 'Monetary value of this conversion (0 for non-monetary conversions)',
|
|
289
|
+
condition: (data, siblingData) => siblingData?.isConversionPage === true,
|
|
290
|
+
},
|
|
291
|
+
},
|
|
292
|
+
],
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Pre-configured conversion tracking field group with default options.
|
|
297
|
+
* Use createConversionFieldGroup() for custom conversion types.
|
|
298
|
+
*/
|
|
299
|
+
export const conversionFieldGroup = createConversionFieldGroup();
|
|
300
|
+
// =============================================================================
|
|
301
|
+
// Main Utility Function
|
|
302
|
+
// =============================================================================
|
|
303
|
+
/**
|
|
304
|
+
* Returns an array of Puck-related field definitions for hybrid collection integration.
|
|
305
|
+
*
|
|
306
|
+
* Use this when you have an existing collection with legacy Payload blocks and want
|
|
307
|
+
* to ADD Puck support without replacing your entire collection configuration.
|
|
308
|
+
*
|
|
309
|
+
* @param options - Configuration options for which fields to include
|
|
310
|
+
* @returns Array of Field definitions to spread into your collection's fields array
|
|
311
|
+
*
|
|
312
|
+
* @example
|
|
313
|
+
* ```typescript
|
|
314
|
+
* import { getPuckFields } from '@delmaredigital/payload-puck'
|
|
315
|
+
*
|
|
316
|
+
* export const Pages: CollectionConfig = {
|
|
317
|
+
* slug: 'pages',
|
|
318
|
+
* fields: [
|
|
319
|
+
* // Your existing fields
|
|
320
|
+
* { name: 'title', type: 'text', required: true },
|
|
321
|
+
* { name: 'slug', type: 'text', required: true },
|
|
322
|
+
*
|
|
323
|
+
* // Legacy Payload blocks (keep these!)
|
|
324
|
+
* { name: 'layout', type: 'blocks', blocks: [...] },
|
|
325
|
+
*
|
|
326
|
+
* // Add Puck fields for hybrid editing
|
|
327
|
+
* ...getPuckFields({
|
|
328
|
+
* includeSEO: false, // You have your own SEO fields
|
|
329
|
+
* includeConversion: true, // Include conversion tracking
|
|
330
|
+
* includeEditorVersion: true,
|
|
331
|
+
* }),
|
|
332
|
+
* ],
|
|
333
|
+
* }
|
|
334
|
+
* ```
|
|
335
|
+
*/
|
|
336
|
+
export function getPuckFields(options = {}) {
|
|
337
|
+
const { includeSEO = true, includeConversion = false, includeEditorVersion = true, includePageLayout = true, includeIsHomepage = false, layouts = DEFAULT_LAYOUTS, defaultEditorVersion = 'puck', legacyBlocksFieldName = 'layout', sidebarPosition = true, conversionTypeOptions, } = options;
|
|
338
|
+
const fields = [];
|
|
339
|
+
// Core puckData field (always included - this is essential for Puck)
|
|
340
|
+
fields.push(puckDataField);
|
|
341
|
+
// Editor version field (discriminator for hybrid rendering)
|
|
342
|
+
// Uses smart detection to preserve legacy pages when field is first added
|
|
343
|
+
if (includeEditorVersion) {
|
|
344
|
+
fields.push(createEditorVersionField(defaultEditorVersion, sidebarPosition, legacyBlocksFieldName));
|
|
345
|
+
}
|
|
346
|
+
// Page layout field
|
|
347
|
+
if (includePageLayout) {
|
|
348
|
+
fields.push(createPageLayoutField(layouts, sidebarPosition));
|
|
349
|
+
}
|
|
350
|
+
// Homepage flag
|
|
351
|
+
if (includeIsHomepage) {
|
|
352
|
+
fields.push(isHomepageField);
|
|
353
|
+
}
|
|
354
|
+
// SEO group
|
|
355
|
+
if (includeSEO) {
|
|
356
|
+
fields.push(seoFieldGroup);
|
|
357
|
+
}
|
|
358
|
+
// Conversion tracking group (with optional custom conversion types)
|
|
359
|
+
if (includeConversion) {
|
|
360
|
+
fields.push(createConversionFieldGroup(conversionTypeOptions, sidebarPosition));
|
|
361
|
+
}
|
|
362
|
+
return fields;
|
|
363
|
+
}
|
|
364
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugin/fields/index.ts"],"names":[],"mappings":"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"}
|