@delmaredigital/payload-puck 0.2.0 → 0.3.1
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 +389 -1261
- 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 -216
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +15 -9262
- 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 -9462
- 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 -2119
- 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 -4625
- 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 -7704
- package/dist/fields/index.js.map +1 -0
- package/dist/fields/richtext-output.css +219 -0
- package/dist/{shared-X9UpCJKW.d.mts → fields/shared.d.ts} +111 -132
- 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 -2253
- 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 +51 -74
- 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 -219
- package/dist/components/index.mjs +0 -9216
- package/dist/config/config.editor.css +0 -339
- package/dist/config/config.editor.d.mts +0 -153
- package/dist/config/config.editor.mjs +0 -9445
- package/dist/config/index.d.mts +0 -68
- package/dist/config/index.mjs +0 -2099
- package/dist/editor/index.d.mts +0 -784
- package/dist/editor/index.mjs +0 -4592
- package/dist/fields/index.d.mts +0 -600
- package/dist/fields/index.mjs +0 -7588
- 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 -2231
- package/dist/shared-X9UpCJKW.d.ts +0 -548
- 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/dist/plugin/index.js
CHANGED
|
@@ -1,569 +1,292 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
16
|
-
var landingLayout = {
|
|
17
|
-
value: "landing",
|
|
18
|
-
label: "Landing",
|
|
19
|
-
description: "Full-width sections with no global container constraints",
|
|
20
|
-
classes: {
|
|
21
|
-
wrapper: "",
|
|
22
|
-
container: "",
|
|
23
|
-
content: ""
|
|
24
|
-
},
|
|
25
|
-
fullWidth: true
|
|
26
|
-
};
|
|
27
|
-
var fullWidthLayout = {
|
|
28
|
-
value: "full-width",
|
|
29
|
-
label: "Full Width",
|
|
30
|
-
description: "Content spans the full viewport width",
|
|
31
|
-
classes: {
|
|
32
|
-
wrapper: "w-full",
|
|
33
|
-
container: "w-full",
|
|
34
|
-
content: ""
|
|
35
|
-
},
|
|
36
|
-
maxWidth: "100%",
|
|
37
|
-
fullWidth: true
|
|
38
|
-
};
|
|
39
|
-
var DEFAULT_LAYOUTS = [
|
|
40
|
-
defaultLayout,
|
|
41
|
-
landingLayout,
|
|
42
|
-
fullWidthLayout
|
|
43
|
-
];
|
|
44
|
-
|
|
45
|
-
// src/layouts/utils.ts
|
|
46
|
-
function layoutsToPayloadOptions(layouts) {
|
|
47
|
-
return layouts.map(({ value, label }) => ({
|
|
48
|
-
label,
|
|
49
|
-
value
|
|
50
|
-
}));
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// src/plugin/fields/index.ts
|
|
54
|
-
var puckDataField = {
|
|
55
|
-
name: "puckData",
|
|
56
|
-
type: "json",
|
|
57
|
-
admin: {
|
|
58
|
-
hidden: true,
|
|
59
|
-
description: "Puck editor data - managed via visual editor"
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
function createEditorVersionField(defaultValue = "puck", sidebar = true, legacyBlocksFieldName = "layout") {
|
|
63
|
-
return {
|
|
64
|
-
name: "editorVersion",
|
|
65
|
-
type: "select",
|
|
66
|
-
// NO defaultValue here - we use the hook to intelligently detect the value
|
|
67
|
-
// This prevents migrations from blindly setting 'puck' on legacy pages
|
|
68
|
-
options: [
|
|
69
|
-
{ label: "Legacy (Payload Blocks)", value: "legacy" },
|
|
70
|
-
{ label: "Puck Visual Editor", value: "puck" }
|
|
71
|
-
],
|
|
72
|
-
admin: {
|
|
73
|
-
position: sidebar ? "sidebar" : void 0,
|
|
74
|
-
description: "Which editor was used to create this page"
|
|
75
|
-
},
|
|
76
|
-
hooks: {
|
|
77
|
-
beforeValidate: [
|
|
78
|
-
({ value, data, operation }) => {
|
|
79
|
-
if (value) return value;
|
|
80
|
-
const legacyBlocks = data?.[legacyBlocksFieldName];
|
|
81
|
-
const hasLegacyBlocks = Array.isArray(legacyBlocks) && legacyBlocks.length > 0;
|
|
82
|
-
const puckData = data?.puckData;
|
|
83
|
-
const hasPuckData = puckData?.content && Array.isArray(puckData.content) && puckData.content.length > 0;
|
|
84
|
-
if (hasLegacyBlocks && !hasPuckData) {
|
|
85
|
-
return "legacy";
|
|
86
|
-
}
|
|
87
|
-
if (hasPuckData) {
|
|
88
|
-
return "puck";
|
|
89
|
-
}
|
|
90
|
-
return defaultValue;
|
|
91
|
-
}
|
|
92
|
-
]
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
var editorVersionField = createEditorVersionField("puck", true);
|
|
97
|
-
function createPageLayoutField(layouts = DEFAULT_LAYOUTS, sidebar = true) {
|
|
98
|
-
return {
|
|
99
|
-
name: "pageLayout",
|
|
100
|
-
type: "select",
|
|
101
|
-
required: true,
|
|
102
|
-
defaultValue: "default",
|
|
103
|
-
options: layoutsToPayloadOptions(layouts),
|
|
104
|
-
admin: {
|
|
105
|
-
position: sidebar ? "sidebar" : void 0,
|
|
106
|
-
description: "Overall page structure and layout style"
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
var pageLayoutField = createPageLayoutField();
|
|
111
|
-
var isHomepageField = {
|
|
112
|
-
name: "isHomepage",
|
|
113
|
-
type: "checkbox",
|
|
114
|
-
defaultValue: false,
|
|
115
|
-
admin: {
|
|
116
|
-
position: "sidebar",
|
|
117
|
-
description: "Mark this page as the homepage"
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
var seoFieldGroup = {
|
|
121
|
-
name: "meta",
|
|
122
|
-
type: "group",
|
|
123
|
-
label: "SEO",
|
|
124
|
-
admin: {
|
|
125
|
-
position: "sidebar"
|
|
126
|
-
},
|
|
127
|
-
fields: [
|
|
128
|
-
{
|
|
129
|
-
name: "title",
|
|
130
|
-
type: "text",
|
|
131
|
-
label: "Meta Title",
|
|
132
|
-
admin: {
|
|
133
|
-
description: "Override the page title for search engines"
|
|
134
|
-
}
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
name: "description",
|
|
138
|
-
type: "textarea",
|
|
139
|
-
label: "Meta Description",
|
|
140
|
-
admin: {
|
|
141
|
-
description: "Description shown in search engine results"
|
|
142
|
-
}
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
name: "image",
|
|
146
|
-
type: "upload",
|
|
147
|
-
relationTo: "media",
|
|
148
|
-
label: "Open Graph Image",
|
|
149
|
-
admin: {
|
|
150
|
-
description: "Image shown when sharing on social media"
|
|
151
|
-
}
|
|
152
|
-
},
|
|
153
|
-
{
|
|
154
|
-
name: "noindex",
|
|
155
|
-
type: "checkbox",
|
|
156
|
-
label: "No Index",
|
|
157
|
-
defaultValue: false,
|
|
158
|
-
admin: {
|
|
159
|
-
description: "Prevent search engines from indexing this page"
|
|
160
|
-
}
|
|
161
|
-
},
|
|
162
|
-
{
|
|
163
|
-
name: "nofollow",
|
|
164
|
-
type: "checkbox",
|
|
165
|
-
label: "No Follow",
|
|
166
|
-
defaultValue: false,
|
|
167
|
-
admin: {
|
|
168
|
-
description: "Prevent search engines from following links on this page"
|
|
169
|
-
}
|
|
170
|
-
},
|
|
171
|
-
{
|
|
172
|
-
name: "excludeFromSitemap",
|
|
173
|
-
type: "checkbox",
|
|
174
|
-
label: "Exclude from Sitemap",
|
|
175
|
-
defaultValue: false,
|
|
176
|
-
admin: {
|
|
177
|
-
description: "Exclude this page from the XML sitemap"
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
]
|
|
181
|
-
};
|
|
182
|
-
var DEFAULT_CONVERSION_TYPES = [
|
|
183
|
-
{ label: "Lead", value: "lead" },
|
|
184
|
-
{ label: "Registration", value: "registration" },
|
|
185
|
-
{ label: "Purchase", value: "purchase" },
|
|
186
|
-
{ label: "Donation", value: "donation" },
|
|
187
|
-
{ label: "Newsletter Signup", value: "newsletter" },
|
|
188
|
-
{ label: "Contact Form", value: "contact" },
|
|
189
|
-
{ label: "Custom", value: "custom" }
|
|
190
|
-
];
|
|
191
|
-
function createConversionFieldGroup(conversionTypes = DEFAULT_CONVERSION_TYPES, sidebar = true) {
|
|
192
|
-
return {
|
|
193
|
-
name: "conversionTracking",
|
|
194
|
-
type: "group",
|
|
195
|
-
label: "Conversion Tracking",
|
|
196
|
-
admin: {
|
|
197
|
-
position: sidebar ? "sidebar" : void 0,
|
|
198
|
-
description: "Configure conversion tracking for analytics"
|
|
199
|
-
},
|
|
200
|
-
fields: [
|
|
201
|
-
{
|
|
202
|
-
name: "isConversionPage",
|
|
203
|
-
type: "checkbox",
|
|
204
|
-
label: "Is Conversion Page",
|
|
205
|
-
defaultValue: false,
|
|
206
|
-
admin: {
|
|
207
|
-
description: "Check this if this page represents a completed conversion (e.g., thank you page)"
|
|
208
|
-
}
|
|
209
|
-
},
|
|
210
|
-
{
|
|
211
|
-
name: "conversionType",
|
|
212
|
-
type: "select",
|
|
213
|
-
label: "Conversion Type",
|
|
214
|
-
options: conversionTypes,
|
|
215
|
-
admin: {
|
|
216
|
-
description: "Type of conversion this page represents",
|
|
217
|
-
condition: (data, siblingData) => siblingData?.isConversionPage === true
|
|
218
|
-
}
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
name: "conversionValue",
|
|
222
|
-
type: "number",
|
|
223
|
-
label: "Conversion Value",
|
|
224
|
-
defaultValue: 0,
|
|
225
|
-
admin: {
|
|
226
|
-
description: "Monetary value of this conversion (0 for non-monetary conversions)",
|
|
227
|
-
condition: (data, siblingData) => siblingData?.isConversionPage === true
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
]
|
|
231
|
-
};
|
|
232
|
-
}
|
|
233
|
-
var conversionFieldGroup = createConversionFieldGroup();
|
|
234
|
-
function getPuckFields(options = {}) {
|
|
235
|
-
const {
|
|
236
|
-
includeSEO = true,
|
|
237
|
-
includeConversion = false,
|
|
238
|
-
includeEditorVersion = true,
|
|
239
|
-
includePageLayout = true,
|
|
240
|
-
includeIsHomepage = false,
|
|
241
|
-
layouts = DEFAULT_LAYOUTS,
|
|
242
|
-
defaultEditorVersion = "puck",
|
|
243
|
-
legacyBlocksFieldName = "layout",
|
|
244
|
-
sidebarPosition = true,
|
|
245
|
-
conversionTypeOptions
|
|
246
|
-
} = options;
|
|
247
|
-
const fields = [];
|
|
248
|
-
fields.push(puckDataField);
|
|
249
|
-
if (includeEditorVersion) {
|
|
250
|
-
fields.push(createEditorVersionField(defaultEditorVersion, sidebarPosition, legacyBlocksFieldName));
|
|
251
|
-
}
|
|
252
|
-
if (includePageLayout) {
|
|
253
|
-
fields.push(createPageLayoutField(layouts, sidebarPosition));
|
|
254
|
-
}
|
|
255
|
-
if (includeIsHomepage) {
|
|
256
|
-
fields.push(isHomepageField);
|
|
257
|
-
}
|
|
258
|
-
if (includeSEO) {
|
|
259
|
-
fields.push(seoFieldGroup);
|
|
260
|
-
}
|
|
261
|
-
if (includeConversion) {
|
|
262
|
-
fields.push(createConversionFieldGroup(conversionTypeOptions, sidebarPosition));
|
|
263
|
-
}
|
|
264
|
-
return fields;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
// src/plugin/collections/Pages.ts
|
|
268
|
-
var defaultAccess = () => true;
|
|
269
|
-
function generatePagesCollection(slug, options) {
|
|
270
|
-
const {
|
|
271
|
-
collectionOverrides = {},
|
|
272
|
-
access = {},
|
|
273
|
-
layouts = DEFAULT_LAYOUTS,
|
|
274
|
-
additionalFields = []
|
|
275
|
-
} = options;
|
|
276
|
-
const baseFields = [
|
|
277
|
-
// Core Fields (title and slug with duplication hooks - unique to collection generation)
|
|
278
|
-
{
|
|
279
|
-
name: "title",
|
|
280
|
-
type: "text",
|
|
281
|
-
required: true,
|
|
282
|
-
hooks: {
|
|
283
|
-
beforeDuplicate: [
|
|
284
|
-
({ value }) => {
|
|
285
|
-
if (!value) return value;
|
|
286
|
-
const copyMatch = value.match(/^(.+) \(Copy(?: (\d+))?\)$/);
|
|
287
|
-
if (copyMatch) {
|
|
288
|
-
const baseName = copyMatch[1];
|
|
289
|
-
const copyNum = copyMatch[2] ? parseInt(copyMatch[2], 10) + 1 : 2;
|
|
290
|
-
return `${baseName} (Copy ${copyNum})`;
|
|
1
|
+
import { generatePagesCollection } from './collections/Pages';
|
|
2
|
+
import { TemplatesCollection } from '../collections/Templates';
|
|
3
|
+
import { getPuckFields } from './fields';
|
|
4
|
+
import { createListHandler, createCreateHandler, createGetHandler, createUpdateHandler, createDeleteHandler, createVersionsHandler, createRestoreHandler, } from '../endpoints/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* Get all field names from a collection's fields array (including nested group fields and tabs)
|
|
7
|
+
*/
|
|
8
|
+
function getExistingFieldNames(fields) {
|
|
9
|
+
const names = new Set();
|
|
10
|
+
function addFieldNames(fieldsToCheck) {
|
|
11
|
+
for (const field of fieldsToCheck) {
|
|
12
|
+
// Add the field name if it has one
|
|
13
|
+
if ('name' in field && field.name) {
|
|
14
|
+
names.add(field.name);
|
|
291
15
|
}
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
}
|
|
296
|
-
},
|
|
297
|
-
{
|
|
298
|
-
name: "slug",
|
|
299
|
-
type: "text",
|
|
300
|
-
required: true,
|
|
301
|
-
unique: true,
|
|
302
|
-
index: true,
|
|
303
|
-
admin: {
|
|
304
|
-
position: "sidebar",
|
|
305
|
-
description: "URL path for this page (auto-generated from title)"
|
|
306
|
-
},
|
|
307
|
-
hooks: {
|
|
308
|
-
beforeValidate: [
|
|
309
|
-
({ data, value }) => {
|
|
310
|
-
if (data && !value && data.title) {
|
|
311
|
-
return data.title.toLowerCase().replace(/[^\w\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-").trim();
|
|
16
|
+
// Check nested fields in groups, rows, collapsibles, etc.
|
|
17
|
+
if ('fields' in field && Array.isArray(field.fields)) {
|
|
18
|
+
addFieldNames(field.fields);
|
|
312
19
|
}
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
if (copyMatch) {
|
|
321
|
-
const baseName = copyMatch[1];
|
|
322
|
-
const copyNum = copyMatch[2] ? parseInt(copyMatch[2], 10) + 1 : 2;
|
|
323
|
-
return `${baseName}-copy-${copyNum}`;
|
|
20
|
+
// Check fields inside tabs
|
|
21
|
+
if (field.type === 'tabs' && 'tabs' in field && Array.isArray(field.tabs)) {
|
|
22
|
+
for (const tab of field.tabs) {
|
|
23
|
+
if ('fields' in tab && Array.isArray(tab.fields)) {
|
|
24
|
+
addFieldNames(tab.fields);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
324
27
|
}
|
|
325
|
-
return `${value}-copy`;
|
|
326
|
-
}
|
|
327
|
-
]
|
|
328
|
-
}
|
|
329
|
-
},
|
|
330
|
-
// Page Layout
|
|
331
|
-
createPageLayoutField(layouts, true),
|
|
332
|
-
// Editor Version
|
|
333
|
-
createEditorVersionField("puck", true),
|
|
334
|
-
// Homepage Flag
|
|
335
|
-
isHomepageField,
|
|
336
|
-
// Puck Data (hidden - managed via visual editor)
|
|
337
|
-
puckDataField,
|
|
338
|
-
// SEO Fields
|
|
339
|
-
seoFieldGroup,
|
|
340
|
-
// Conversion Tracking Fields
|
|
341
|
-
conversionFieldGroup,
|
|
342
|
-
// Additional fields from options
|
|
343
|
-
...additionalFields
|
|
344
|
-
];
|
|
345
|
-
return {
|
|
346
|
-
slug,
|
|
347
|
-
admin: {
|
|
348
|
-
useAsTitle: "title",
|
|
349
|
-
group: "Content",
|
|
350
|
-
defaultColumns: ["title", "slug", "_status", "updatedAt"],
|
|
351
|
-
...collectionOverrides.admin ?? {}
|
|
352
|
-
},
|
|
353
|
-
access: {
|
|
354
|
-
read: access.read ?? defaultAccess,
|
|
355
|
-
create: access.create ?? defaultAccess,
|
|
356
|
-
update: access.update ?? defaultAccess,
|
|
357
|
-
delete: access.delete ?? defaultAccess,
|
|
358
|
-
...collectionOverrides.access ?? {}
|
|
359
|
-
},
|
|
360
|
-
versions: typeof collectionOverrides.versions === "object" ? { drafts: true, ...collectionOverrides.versions } : { drafts: true },
|
|
361
|
-
fields: baseFields,
|
|
362
|
-
...collectionOverrides,
|
|
363
|
-
// Ensure fields aren't overwritten by collectionOverrides
|
|
364
|
-
...collectionOverrides.fields && {
|
|
365
|
-
fields: [...baseFields, ...collectionOverrides.fields]
|
|
366
|
-
}
|
|
367
|
-
};
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
// src/collections/Templates.ts
|
|
371
|
-
var TemplatesCollection = {
|
|
372
|
-
slug: "puck-templates",
|
|
373
|
-
admin: {
|
|
374
|
-
useAsTitle: "name",
|
|
375
|
-
group: "Puck",
|
|
376
|
-
defaultColumns: ["name", "category", "updatedAt"],
|
|
377
|
-
description: "Reusable component templates for the visual editor"
|
|
378
|
-
},
|
|
379
|
-
access: {
|
|
380
|
-
read: () => true,
|
|
381
|
-
create: ({ req }) => !!req.user,
|
|
382
|
-
update: ({ req }) => !!req.user,
|
|
383
|
-
delete: ({ req }) => !!req.user
|
|
384
|
-
},
|
|
385
|
-
fields: [
|
|
386
|
-
{
|
|
387
|
-
name: "name",
|
|
388
|
-
type: "text",
|
|
389
|
-
required: true,
|
|
390
|
-
admin: {
|
|
391
|
-
description: "A descriptive name for this template"
|
|
392
|
-
}
|
|
393
|
-
},
|
|
394
|
-
{
|
|
395
|
-
name: "description",
|
|
396
|
-
type: "textarea",
|
|
397
|
-
admin: {
|
|
398
|
-
description: "Optional description of what this template contains"
|
|
399
|
-
}
|
|
400
|
-
},
|
|
401
|
-
{
|
|
402
|
-
name: "category",
|
|
403
|
-
type: "text",
|
|
404
|
-
admin: {
|
|
405
|
-
description: 'Category for organizing templates (e.g., "Hero", "Footer", "CTA")'
|
|
406
|
-
}
|
|
407
|
-
},
|
|
408
|
-
{
|
|
409
|
-
name: "content",
|
|
410
|
-
type: "json",
|
|
411
|
-
required: true,
|
|
412
|
-
admin: {
|
|
413
|
-
description: "Serialized Puck component data"
|
|
414
|
-
}
|
|
415
|
-
},
|
|
416
|
-
{
|
|
417
|
-
name: "thumbnail",
|
|
418
|
-
type: "text",
|
|
419
|
-
admin: {
|
|
420
|
-
description: "Optional thumbnail URL for template preview"
|
|
421
|
-
}
|
|
422
|
-
}
|
|
423
|
-
],
|
|
424
|
-
timestamps: true
|
|
425
|
-
};
|
|
426
|
-
|
|
427
|
-
// src/plugin/index.ts
|
|
428
|
-
function getExistingFieldNames(fields) {
|
|
429
|
-
const names = /* @__PURE__ */ new Set();
|
|
430
|
-
function addFieldNames(fieldsToCheck) {
|
|
431
|
-
for (const field of fieldsToCheck) {
|
|
432
|
-
if ("name" in field && field.name) {
|
|
433
|
-
names.add(field.name);
|
|
434
|
-
}
|
|
435
|
-
if ("fields" in field && Array.isArray(field.fields)) {
|
|
436
|
-
addFieldNames(field.fields);
|
|
437
|
-
}
|
|
438
|
-
if (field.type === "tabs" && "tabs" in field && Array.isArray(field.tabs)) {
|
|
439
|
-
for (const tab of field.tabs) {
|
|
440
|
-
if ("fields" in tab && Array.isArray(tab.fields)) {
|
|
441
|
-
addFieldNames(tab.fields);
|
|
442
|
-
}
|
|
443
28
|
}
|
|
444
|
-
}
|
|
445
29
|
}
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
return names;
|
|
30
|
+
addFieldNames(fields);
|
|
31
|
+
return names;
|
|
449
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Filter out fields that already exist in the target collection
|
|
35
|
+
*/
|
|
450
36
|
function filterExistingFields(fieldsToAdd, existingNames) {
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
37
|
+
return fieldsToAdd.filter((field) => {
|
|
38
|
+
if ('name' in field && field.name) {
|
|
39
|
+
return !existingNames.has(field.name);
|
|
40
|
+
}
|
|
41
|
+
return true; // Keep fields without names (like UI fields)
|
|
42
|
+
});
|
|
457
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Generates the UI field configuration for the Edit with Puck button
|
|
46
|
+
*/
|
|
458
47
|
function generatePuckEditField(collectionSlug, adminConfig = {}) {
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
label: buttonLabel
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
};
|
|
48
|
+
const { editorPathPattern = '/pages/{id}/edit', buttonLabel = 'Edit with Puck', buttonPosition, // undefined = main area (default), 'sidebar' = sidebar
|
|
49
|
+
} = adminConfig;
|
|
50
|
+
return {
|
|
51
|
+
name: 'puckEdit',
|
|
52
|
+
type: 'ui',
|
|
53
|
+
admin: {
|
|
54
|
+
// Only set position if explicitly specified (sidebar)
|
|
55
|
+
// undefined means main form area in Payload
|
|
56
|
+
...(buttonPosition && { position: buttonPosition }),
|
|
57
|
+
components: {
|
|
58
|
+
Field: '@delmaredigital/payload-puck/admin/client#EditWithPuckButton',
|
|
59
|
+
Cell: '@delmaredigital/payload-puck/admin/client#EditWithPuckCell',
|
|
60
|
+
},
|
|
61
|
+
custom: {
|
|
62
|
+
collectionSlug,
|
|
63
|
+
editorPathPattern,
|
|
64
|
+
label: buttonLabel,
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
};
|
|
483
68
|
}
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
69
|
+
/**
|
|
70
|
+
* Creates a Payload plugin that integrates Puck visual page builder
|
|
71
|
+
*
|
|
72
|
+
* This plugin:
|
|
73
|
+
* - Generates a Pages collection with puckData field
|
|
74
|
+
* - Registers the Puck editor as an admin view at /admin/puck-editor/:collection/:id
|
|
75
|
+
* - Adds an "Edit with Puck" button in the admin document view
|
|
76
|
+
* - Optionally registers API endpoints for CRUD operations
|
|
77
|
+
*
|
|
78
|
+
* The Puck editor is fully integrated into Payload's admin UI.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* import { createPuckPlugin } from '@delmaredigital/payload-puck/plugin'
|
|
83
|
+
*
|
|
84
|
+
* export default buildConfig({
|
|
85
|
+
* plugins: [
|
|
86
|
+
* createPuckPlugin({
|
|
87
|
+
* pagesCollection: 'pages',
|
|
88
|
+
* access: {
|
|
89
|
+
* read: () => true,
|
|
90
|
+
* create: ({ req }) => !!req.user,
|
|
91
|
+
* update: ({ req }) => !!req.user,
|
|
92
|
+
* delete: ({ req }) => req.user?.role === 'admin',
|
|
93
|
+
* },
|
|
94
|
+
* admin: {
|
|
95
|
+
* buttonLabel: 'Visual Editor',
|
|
96
|
+
* },
|
|
97
|
+
* }),
|
|
98
|
+
* ],
|
|
99
|
+
* })
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
export function createPuckPlugin(options = {}) {
|
|
103
|
+
const { pagesCollection = 'pages', autoGenerateCollection = true, admin: pluginAdminConfig = {}, enableAdminView = true, adminViewPath = '/puck-editor', enableEndpoints = true, pageTreeIntegration, // No default - undefined means auto-detect
|
|
104
|
+
} = options;
|
|
105
|
+
const { addEditButton = true } = pluginAdminConfig;
|
|
106
|
+
// Parse page-tree integration config
|
|
107
|
+
// - undefined: auto-detect at runtime (null stored, view will check for pageSegment field)
|
|
108
|
+
// - false: explicitly disabled (store false to prevent auto-detection)
|
|
109
|
+
// - true: use defaults
|
|
110
|
+
// - object: use custom field names
|
|
111
|
+
let pageTreeConfig = null;
|
|
112
|
+
if (pageTreeIntegration === undefined) {
|
|
113
|
+
// Not specified - store null to trigger auto-detection in the view
|
|
114
|
+
pageTreeConfig = null;
|
|
498
115
|
}
|
|
499
|
-
if (
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
);
|
|
503
|
-
const editButtonField = addEditButton ? [generatePuckEditField(pagesCollection, adminConfig)] : [];
|
|
504
|
-
if (existingCollectionIndex >= 0) {
|
|
505
|
-
const existingCollection = collections[existingCollectionIndex];
|
|
506
|
-
const existingFields = existingCollection.fields || [];
|
|
507
|
-
const existingFieldNames = getExistingFieldNames(existingFields);
|
|
508
|
-
const puckFields = getPuckFields({
|
|
509
|
-
includeSEO: !existingFieldNames.has("meta"),
|
|
510
|
-
includeConversion: !existingFieldNames.has("conversionTracking"),
|
|
511
|
-
includeEditorVersion: !existingFieldNames.has("editorVersion"),
|
|
512
|
-
includePageLayout: !existingFieldNames.has("pageLayout"),
|
|
513
|
-
includeIsHomepage: !existingFieldNames.has("isHomepage"),
|
|
514
|
-
layouts: options.layouts
|
|
515
|
-
});
|
|
516
|
-
const fieldsToAdd = filterExistingFields(puckFields, existingFieldNames);
|
|
517
|
-
const editFieldsToAdd = existingFieldNames.has("puckEdit") ? [] : editButtonField;
|
|
518
|
-
collections = [
|
|
519
|
-
...collections.slice(0, existingCollectionIndex),
|
|
520
|
-
{
|
|
521
|
-
...existingCollection,
|
|
522
|
-
// Ensure drafts are enabled for Puck
|
|
523
|
-
versions: typeof existingCollection.versions === "object" ? { drafts: true, ...existingCollection.versions } : existingCollection.versions ?? { drafts: true },
|
|
524
|
-
fields: [
|
|
525
|
-
...existingFields,
|
|
526
|
-
...fieldsToAdd,
|
|
527
|
-
...editFieldsToAdd
|
|
528
|
-
]
|
|
529
|
-
},
|
|
530
|
-
...collections.slice(existingCollectionIndex + 1)
|
|
531
|
-
];
|
|
532
|
-
} else {
|
|
533
|
-
const generatedCollection = generatePagesCollection(pagesCollection, options);
|
|
534
|
-
collections = [
|
|
535
|
-
...collections,
|
|
536
|
-
{
|
|
537
|
-
...generatedCollection,
|
|
538
|
-
fields: [...generatedCollection.fields, ...editButtonField]
|
|
539
|
-
}
|
|
540
|
-
];
|
|
541
|
-
}
|
|
116
|
+
else if (pageTreeIntegration === false) {
|
|
117
|
+
// Explicitly disabled - store false to prevent auto-detection
|
|
118
|
+
pageTreeConfig = false;
|
|
542
119
|
}
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
120
|
+
else if (pageTreeIntegration === true) {
|
|
121
|
+
// Explicitly enabled with defaults
|
|
122
|
+
pageTreeConfig = {
|
|
123
|
+
folderSlug: 'payload-folders',
|
|
124
|
+
segmentFieldName: 'pathSegment',
|
|
125
|
+
pageSegmentFieldName: 'pageSegment',
|
|
126
|
+
folderFieldName: 'folder',
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
// Custom config object
|
|
131
|
+
pageTreeConfig = {
|
|
132
|
+
folderSlug: pageTreeIntegration.folderSlug ?? 'payload-folders',
|
|
133
|
+
segmentFieldName: pageTreeIntegration.segmentFieldName ?? 'pathSegment',
|
|
134
|
+
pageSegmentFieldName: pageTreeIntegration.pageSegmentFieldName ?? 'pageSegment',
|
|
135
|
+
folderFieldName: pageTreeIntegration.folderFieldName ?? 'folder',
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
return (incomingConfig) => {
|
|
139
|
+
// Generate Pages collection if auto-generate is enabled
|
|
140
|
+
let collections = incomingConfig.collections || [];
|
|
141
|
+
// Always add the Templates collection if it doesn't exist
|
|
142
|
+
const templatesCollectionExists = collections.some((c) => c.slug === 'puck-templates');
|
|
143
|
+
if (!templatesCollectionExists) {
|
|
144
|
+
collections = [...collections, TemplatesCollection];
|
|
145
|
+
}
|
|
146
|
+
if (autoGenerateCollection) {
|
|
147
|
+
// Check if collection already exists
|
|
148
|
+
const existingCollectionIndex = collections.findIndex((c) => c.slug === pagesCollection);
|
|
149
|
+
// Generate the edit button field if enabled
|
|
150
|
+
const editButtonField = addEditButton
|
|
151
|
+
? [generatePuckEditField(pagesCollection, pluginAdminConfig)]
|
|
152
|
+
: [];
|
|
153
|
+
if (existingCollectionIndex >= 0) {
|
|
154
|
+
// Collection exists - only add Puck fields that don't already exist
|
|
155
|
+
const existingCollection = collections[existingCollectionIndex];
|
|
156
|
+
const existingFields = existingCollection.fields || [];
|
|
157
|
+
const existingFieldNames = getExistingFieldNames(existingFields);
|
|
158
|
+
// Get Puck-specific fields (not the full collection with title/slug)
|
|
159
|
+
// This avoids duplicating fields the user may have already defined
|
|
160
|
+
const puckFields = getPuckFields({
|
|
161
|
+
includeSEO: !existingFieldNames.has('meta'),
|
|
162
|
+
includeConversion: !existingFieldNames.has('conversionTracking'),
|
|
163
|
+
includeEditorVersion: !existingFieldNames.has('editorVersion'),
|
|
164
|
+
includePageLayout: !existingFieldNames.has('pageLayout'),
|
|
165
|
+
includeIsHomepage: !existingFieldNames.has('isHomepage'),
|
|
166
|
+
layouts: options.layouts,
|
|
167
|
+
});
|
|
168
|
+
// Filter out any remaining duplicates (e.g., puckData if user already has it)
|
|
169
|
+
const fieldsToAdd = filterExistingFields(puckFields, existingFieldNames);
|
|
170
|
+
// Only add edit button if puckEdit doesn't exist
|
|
171
|
+
const editFieldsToAdd = existingFieldNames.has('puckEdit') ? [] : editButtonField;
|
|
172
|
+
collections = [
|
|
173
|
+
...collections.slice(0, existingCollectionIndex),
|
|
174
|
+
{
|
|
175
|
+
...existingCollection,
|
|
176
|
+
// Ensure drafts are enabled for Puck
|
|
177
|
+
versions: typeof existingCollection.versions === 'object'
|
|
178
|
+
? { drafts: true, ...existingCollection.versions }
|
|
179
|
+
: existingCollection.versions ?? { drafts: true },
|
|
180
|
+
fields: [
|
|
181
|
+
...existingFields,
|
|
182
|
+
...fieldsToAdd,
|
|
183
|
+
...editFieldsToAdd,
|
|
184
|
+
],
|
|
185
|
+
},
|
|
186
|
+
...collections.slice(existingCollectionIndex + 1),
|
|
187
|
+
];
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
// Add new collection with edit button field
|
|
191
|
+
const generatedCollection = generatePagesCollection(pagesCollection, options);
|
|
192
|
+
collections = [
|
|
193
|
+
...collections,
|
|
194
|
+
{
|
|
195
|
+
...generatedCollection,
|
|
196
|
+
fields: [...generatedCollection.fields, ...editButtonField],
|
|
197
|
+
},
|
|
198
|
+
];
|
|
199
|
+
}
|
|
549
200
|
}
|
|
550
|
-
|
|
201
|
+
// Build the admin config with view registration
|
|
202
|
+
const payloadAdminConfig = {
|
|
203
|
+
...incomingConfig.admin,
|
|
204
|
+
};
|
|
205
|
+
// Register the Puck editor admin view if enabled
|
|
206
|
+
if (enableAdminView) {
|
|
207
|
+
payloadAdminConfig.components = {
|
|
208
|
+
...payloadAdminConfig.components,
|
|
209
|
+
views: {
|
|
210
|
+
...payloadAdminConfig.components?.views,
|
|
211
|
+
puckEditor: {
|
|
212
|
+
Component: '@delmaredigital/payload-puck/rsc#PuckEditorView',
|
|
213
|
+
path: `${adminViewPath}/:segments*`,
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
// Register API endpoints if enabled
|
|
219
|
+
const puckCollections = [pagesCollection];
|
|
220
|
+
const endpointOptions = { collections: puckCollections };
|
|
221
|
+
const endpoints = enableEndpoints
|
|
222
|
+
? [
|
|
223
|
+
...(incomingConfig.endpoints || []),
|
|
224
|
+
{
|
|
225
|
+
path: '/puck/:collection',
|
|
226
|
+
method: 'get',
|
|
227
|
+
handler: createListHandler(endpointOptions),
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
path: '/puck/:collection',
|
|
231
|
+
method: 'post',
|
|
232
|
+
handler: createCreateHandler(endpointOptions),
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
path: '/puck/:collection/:id',
|
|
236
|
+
method: 'get',
|
|
237
|
+
handler: createGetHandler(endpointOptions),
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
path: '/puck/:collection/:id',
|
|
241
|
+
method: 'patch',
|
|
242
|
+
handler: createUpdateHandler(endpointOptions),
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
path: '/puck/:collection/:id',
|
|
246
|
+
method: 'delete',
|
|
247
|
+
handler: createDeleteHandler(endpointOptions),
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
path: '/puck/:collection/:id/versions',
|
|
251
|
+
method: 'get',
|
|
252
|
+
handler: createVersionsHandler(endpointOptions),
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
path: '/puck/:collection/:id/restore',
|
|
256
|
+
method: 'post',
|
|
257
|
+
handler: createRestoreHandler(endpointOptions),
|
|
258
|
+
},
|
|
259
|
+
]
|
|
260
|
+
: incomingConfig.endpoints || [];
|
|
261
|
+
return {
|
|
262
|
+
...incomingConfig,
|
|
263
|
+
admin: payloadAdminConfig,
|
|
264
|
+
collections,
|
|
265
|
+
endpoints,
|
|
266
|
+
// Store options in custom for the view to access
|
|
267
|
+
custom: {
|
|
268
|
+
...incomingConfig.custom,
|
|
269
|
+
puck: {
|
|
270
|
+
collections: puckCollections,
|
|
271
|
+
layouts: options.layouts,
|
|
272
|
+
// Page-tree integration config (null if not enabled)
|
|
273
|
+
pageTree: pageTreeConfig,
|
|
274
|
+
},
|
|
275
|
+
},
|
|
276
|
+
onInit: async (payload) => {
|
|
277
|
+
// Call existing onInit if present
|
|
278
|
+
if (incomingConfig.onInit) {
|
|
279
|
+
await incomingConfig.onInit(payload);
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
};
|
|
551
283
|
};
|
|
552
|
-
};
|
|
553
284
|
}
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
exports.generatePagesCollection = generatePagesCollection;
|
|
562
|
-
exports.generatePuckEditField = generatePuckEditField;
|
|
563
|
-
exports.getPuckFields = getPuckFields;
|
|
564
|
-
exports.isHomepageField = isHomepageField;
|
|
565
|
-
exports.pageLayoutField = pageLayoutField;
|
|
566
|
-
exports.puckDataField = puckDataField;
|
|
567
|
-
exports.seoFieldGroup = seoFieldGroup;
|
|
568
|
-
//# sourceMappingURL=index.js.map
|
|
285
|
+
// Re-export collection utilities
|
|
286
|
+
export { generatePagesCollection } from './collections/Pages';
|
|
287
|
+
export { TemplatesCollection } from '../collections/Templates';
|
|
288
|
+
// Re-export field utilities for hybrid collection integration
|
|
289
|
+
export { getPuckFields, puckDataField, editorVersionField, createEditorVersionField, pageLayoutField, createPageLayoutField, isHomepageField, seoFieldGroup, conversionFieldGroup, } from './fields';
|
|
290
|
+
// Export the edit button generator for hybrid collections
|
|
291
|
+
export { generatePuckEditField };
|
|
569
292
|
//# sourceMappingURL=index.js.map
|