@delmaredigital/payload-puck 0.6.10 → 0.6.13
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 +79 -1
- package/dist/admin/EditWithPuckButton.d.ts +1 -1
- package/dist/admin/EditWithPuckButton.d.ts.map +1 -1
- package/dist/admin/EditWithPuckButton.js +65 -25
- package/dist/admin/EditWithPuckButton.js.map +1 -1
- package/dist/admin/EditWithPuckCell.js +43 -13
- package/dist/admin/EditWithPuckCell.js.map +1 -1
- package/dist/admin/PuckEditorView.d.ts +1 -1
- package/dist/admin/PuckEditorView.d.ts.map +1 -1
- package/dist/admin/PuckEditorView.js +118 -32
- package/dist/admin/PuckEditorView.js.map +1 -1
- package/dist/admin/client.d.ts +2 -2
- package/dist/admin/client.d.ts.map +1 -1
- package/dist/admin/client.js +4 -4
- package/dist/admin/client.js.map +1 -1
- package/dist/admin/generateAdminComponents.js +7 -7
- package/dist/admin/generateAdminComponents.js.map +1 -1
- package/dist/admin/index.d.ts +5 -5
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +3 -2
- package/dist/admin/index.js.map +1 -1
- package/dist/ai/collections/AiContext.js +56 -29
- package/dist/ai/collections/AiContext.js.map +1 -1
- package/dist/ai/collections/AiPrompts.js +24 -19
- package/dist/ai/collections/AiPrompts.js.map +1 -1
- package/dist/ai/createAiApiRoutes.js +28 -19
- package/dist/ai/createAiApiRoutes.js.map +1 -1
- package/dist/ai/createAiGenerate.js +7 -8
- package/dist/ai/createAiGenerate.js.map +1 -1
- package/dist/ai/createAiPlugin.js +7 -9
- package/dist/ai/createAiPlugin.js.map +1 -1
- package/dist/ai/hooks/useAiContext.js +50 -39
- package/dist/ai/hooks/useAiContext.js.map +1 -1
- package/dist/ai/hooks/useAiPrompts.js +33 -25
- package/dist/ai/hooks/useAiPrompts.js.map +1 -1
- package/dist/ai/index.js +9 -10
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/plugins/ContextEditorPanel.d.ts +1 -1
- package/dist/ai/plugins/ContextEditorPanel.d.ts.map +1 -1
- package/dist/ai/plugins/ContextEditorPanel.js +399 -107
- package/dist/ai/plugins/ContextEditorPanel.js.map +1 -1
- package/dist/ai/plugins/PromptEditorPanel.d.ts +1 -1
- package/dist/ai/plugins/PromptEditorPanel.d.ts.map +1 -1
- package/dist/ai/plugins/PromptEditorPanel.js +237 -51
- package/dist/ai/plugins/PromptEditorPanel.js.map +1 -1
- package/dist/ai/plugins/contextEditorPlugin.js +12 -5
- package/dist/ai/plugins/contextEditorPlugin.js.map +1 -1
- package/dist/ai/plugins/promptApiRoutes.js +119 -50
- package/dist/ai/plugins/promptApiRoutes.js.map +1 -1
- package/dist/ai/plugins/promptEditorPlugin.js +12 -5
- package/dist/ai/plugins/promptEditorPlugin.js.map +1 -1
- package/dist/ai/presets/componentAiDefaults.js +108 -83
- package/dist/ai/presets/componentAiDefaults.js.map +1 -1
- package/dist/ai/presets/index.js +12 -18
- package/dist/ai/presets/index.js.map +1 -1
- package/dist/ai/presets/instructions/interactive.js +85 -75
- package/dist/ai/presets/instructions/interactive.js.map +1 -1
- package/dist/ai/presets/instructions/layout.js +122 -117
- package/dist/ai/presets/instructions/layout.js.map +1 -1
- package/dist/ai/presets/instructions/media.js +31 -29
- package/dist/ai/presets/instructions/media.js.map +1 -1
- package/dist/ai/presets/instructions/pagePatterns.js +4 -6
- package/dist/ai/presets/instructions/pagePatterns.js.map +1 -1
- package/dist/ai/presets/instructions/schemas.js +495 -137
- package/dist/ai/presets/instructions/schemas.js.map +1 -1
- package/dist/ai/presets/instructions/typography.js +38 -33
- package/dist/ai/presets/instructions/typography.js.map +1 -1
- package/dist/ai/tools/index.js +92 -55
- package/dist/ai/tools/index.js.map +1 -1
- package/dist/ai/types.js +7 -1
- package/dist/ai/types.js.map +1 -1
- package/dist/ai/utils/injectAiConfig.js +33 -40
- package/dist/ai/utils/injectAiConfig.js.map +1 -1
- package/dist/api/createPuckApiRoutes.d.ts +1 -1
- package/dist/api/createPuckApiRoutes.d.ts.map +1 -1
- package/dist/api/createPuckApiRoutes.js +123 -65
- package/dist/api/createPuckApiRoutes.js.map +1 -1
- package/dist/api/createPuckApiRoutesVersions.d.ts +1 -1
- package/dist/api/createPuckApiRoutesVersions.d.ts.map +1 -1
- package/dist/api/createPuckApiRoutesVersions.js +88 -37
- package/dist/api/createPuckApiRoutesVersions.js.map +1 -1
- package/dist/api/createPuckApiRoutesWithId.d.ts +1 -1
- package/dist/api/createPuckApiRoutesWithId.d.ts.map +1 -1
- package/dist/api/createPuckApiRoutesWithId.js +166 -72
- package/dist/api/createPuckApiRoutesWithId.js.map +1 -1
- package/dist/api/index.d.ts +5 -5
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +6 -6
- package/dist/api/index.js.map +1 -1
- package/dist/api/payload-config.d.js +15 -0
- package/dist/api/payload-config.d.js.map +1 -0
- package/dist/api/types.js +4 -1
- package/dist/api/types.js.map +1 -1
- package/dist/api/utils/mapRootProps.d.ts +1 -1
- package/dist/api/utils/mapRootProps.d.ts.map +1 -1
- package/dist/api/utils/mapRootProps.js +77 -44
- package/dist/api/utils/mapRootProps.js.map +1 -1
- package/dist/collections/Templates.js +24 -20
- package/dist/collections/Templates.js.map +1 -1
- package/dist/components/AccordionClient.d.ts +2 -2
- package/dist/components/AccordionClient.d.ts.map +1 -1
- package/dist/components/AccordionClient.js +81 -22
- package/dist/components/AccordionClient.js.map +1 -1
- package/dist/components/AnimatedWrapper.d.ts +2 -2
- package/dist/components/AnimatedWrapper.d.ts.map +1 -1
- package/dist/components/AnimatedWrapper.js +31 -16
- package/dist/components/AnimatedWrapper.js.map +1 -1
- package/dist/components/exports.js +2 -2
- package/dist/components/exports.js.map +1 -1
- package/dist/components/index.d.ts +5 -5
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +7 -7
- package/dist/components/index.js.map +1 -1
- package/dist/components/interactive/Accordion.d.ts +1 -1
- package/dist/components/interactive/Accordion.d.ts.map +1 -1
- package/dist/components/interactive/Accordion.js +149 -55
- package/dist/components/interactive/Accordion.js.map +1 -1
- package/dist/components/interactive/Accordion.server.d.ts +1 -1
- package/dist/components/interactive/Accordion.server.d.ts.map +1 -1
- package/dist/components/interactive/Accordion.server.js +25 -7
- package/dist/components/interactive/Accordion.server.js.map +1 -1
- package/dist/components/interactive/Button.d.ts +3 -3
- package/dist/components/interactive/Button.d.ts.map +1 -1
- package/dist/components/interactive/Button.js +89 -43
- package/dist/components/interactive/Button.js.map +1 -1
- package/dist/components/interactive/Button.server.d.ts +2 -2
- package/dist/components/interactive/Button.server.d.ts.map +1 -1
- package/dist/components/interactive/Button.server.js +40 -20
- package/dist/components/interactive/Button.server.js.map +1 -1
- package/dist/components/interactive/Card.d.ts +3 -3
- package/dist/components/interactive/Card.d.ts.map +1 -1
- package/dist/components/interactive/Card.js +131 -39
- package/dist/components/interactive/Card.js.map +1 -1
- package/dist/components/interactive/Card.server.d.ts +3 -3
- package/dist/components/interactive/Card.server.d.ts.map +1 -1
- package/dist/components/interactive/Card.server.js +72 -11
- package/dist/components/interactive/Card.server.js.map +1 -1
- package/dist/components/interactive/Divider.d.ts +1 -1
- package/dist/components/interactive/Divider.d.ts.map +1 -1
- package/dist/components/interactive/Divider.js +54 -26
- package/dist/components/interactive/Divider.js.map +1 -1
- package/dist/components/interactive/Divider.server.d.ts +1 -1
- package/dist/components/interactive/Divider.server.d.ts.map +1 -1
- package/dist/components/interactive/Divider.server.js +28 -12
- package/dist/components/interactive/Divider.server.js.map +1 -1
- package/dist/components/interactive/index.d.ts +4 -4
- package/dist/components/interactive/index.d.ts.map +1 -1
- package/dist/components/interactive/index.js +5 -5
- package/dist/components/interactive/index.js.map +1 -1
- package/dist/components/layout/Container.d.ts +1 -1
- package/dist/components/layout/Container.d.ts.map +1 -1
- package/dist/components/layout/Container.js +101 -47
- package/dist/components/layout/Container.js.map +1 -1
- package/dist/components/layout/Container.server.d.ts +1 -1
- package/dist/components/layout/Container.server.d.ts.map +1 -1
- package/dist/components/layout/Container.server.js +67 -19
- package/dist/components/layout/Container.server.js.map +1 -1
- package/dist/components/layout/Flex.d.ts +2 -2
- package/dist/components/layout/Flex.d.ts.map +1 -1
- package/dist/components/layout/Flex.js +124 -55
- package/dist/components/layout/Flex.js.map +1 -1
- package/dist/components/layout/Flex.server.d.ts +1 -1
- package/dist/components/layout/Flex.server.d.ts.map +1 -1
- package/dist/components/layout/Flex.server.js +50 -14
- package/dist/components/layout/Flex.server.js.map +1 -1
- package/dist/components/layout/Grid.d.ts +1 -1
- package/dist/components/layout/Grid.d.ts.map +1 -1
- package/dist/components/layout/Grid.js +93 -44
- package/dist/components/layout/Grid.js.map +1 -1
- package/dist/components/layout/Grid.server.d.ts +1 -1
- package/dist/components/layout/Grid.server.d.ts.map +1 -1
- package/dist/components/layout/Grid.server.js +56 -14
- package/dist/components/layout/Grid.server.js.map +1 -1
- package/dist/components/layout/Section.d.ts +1 -1
- package/dist/components/layout/Section.d.ts.map +1 -1
- package/dist/components/layout/Section.js +147 -64
- package/dist/components/layout/Section.js.map +1 -1
- package/dist/components/layout/Section.server.d.ts +1 -1
- package/dist/components/layout/Section.server.d.ts.map +1 -1
- package/dist/components/layout/Section.server.js +92 -28
- package/dist/components/layout/Section.server.js.map +1 -1
- package/dist/components/layout/Spacer.d.ts +1 -1
- package/dist/components/layout/Spacer.d.ts.map +1 -1
- package/dist/components/layout/Spacer.js +80 -30
- package/dist/components/layout/Spacer.js.map +1 -1
- package/dist/components/layout/Spacer.server.d.ts +1 -1
- package/dist/components/layout/Spacer.server.d.ts.map +1 -1
- package/dist/components/layout/Spacer.server.js +31 -9
- package/dist/components/layout/Spacer.server.js.map +1 -1
- package/dist/components/layout/Template.d.ts +1 -1
- package/dist/components/layout/Template.d.ts.map +1 -1
- package/dist/components/layout/Template.js +58 -30
- package/dist/components/layout/Template.js.map +1 -1
- package/dist/components/layout/Template.server.d.ts +1 -1
- package/dist/components/layout/Template.server.d.ts.map +1 -1
- package/dist/components/layout/Template.server.js +43 -11
- package/dist/components/layout/Template.server.js.map +1 -1
- package/dist/components/layout/index.d.ts +8 -8
- package/dist/components/layout/index.d.ts.map +1 -1
- package/dist/components/layout/index.js +8 -8
- package/dist/components/layout/index.js.map +1 -1
- package/dist/components/media/Image.d.ts +3 -3
- package/dist/components/media/Image.d.ts.map +1 -1
- package/dist/components/media/Image.js +122 -39
- package/dist/components/media/Image.js.map +1 -1
- package/dist/components/media/Image.server.d.ts +3 -3
- package/dist/components/media/Image.server.d.ts.map +1 -1
- package/dist/components/media/Image.server.js +76 -13
- package/dist/components/media/Image.server.js.map +1 -1
- package/dist/components/media/index.d.ts +1 -1
- package/dist/components/media/index.d.ts.map +1 -1
- package/dist/components/media/index.js +2 -2
- package/dist/components/media/index.js.map +1 -1
- package/dist/components/typography/Heading.d.ts +2 -2
- package/dist/components/typography/Heading.d.ts.map +1 -1
- package/dist/components/typography/Heading.js +45 -25
- package/dist/components/typography/Heading.js.map +1 -1
- package/dist/components/typography/Heading.server.d.ts +2 -2
- package/dist/components/typography/Heading.server.d.ts.map +1 -1
- package/dist/components/typography/Heading.server.js +16 -10
- package/dist/components/typography/Heading.server.js.map +1 -1
- package/dist/components/typography/RichText.editor.d.ts +1 -1
- package/dist/components/typography/RichText.editor.d.ts.map +1 -1
- package/dist/components/typography/RichText.editor.js +44 -19
- package/dist/components/typography/RichText.editor.js.map +1 -1
- package/dist/components/typography/RichText.server.d.ts +2 -2
- package/dist/components/typography/RichText.server.d.ts.map +1 -1
- package/dist/components/typography/RichText.server.js +33 -14
- package/dist/components/typography/RichText.server.js.map +1 -1
- package/dist/components/typography/Text.d.ts +2 -2
- package/dist/components/typography/Text.d.ts.map +1 -1
- package/dist/components/typography/Text.js +49 -23
- package/dist/components/typography/Text.js.map +1 -1
- package/dist/components/typography/Text.server.d.ts +2 -2
- package/dist/components/typography/Text.server.d.ts.map +1 -1
- package/dist/components/typography/Text.server.js +21 -8
- package/dist/components/typography/Text.server.js.map +1 -1
- package/dist/components/typography/index.d.ts +4 -4
- package/dist/components/typography/index.d.ts.map +1 -1
- package/dist/components/typography/index.js +5 -5
- package/dist/components/typography/index.js.map +1 -1
- package/dist/config/config.editor.d.ts +3 -3
- package/dist/config/config.editor.d.ts.map +1 -1
- package/dist/config/config.editor.js +119 -54
- package/dist/config/config.editor.js.map +1 -1
- package/dist/config/index.d.ts +4 -4
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +62 -35
- package/dist/config/index.js.map +1 -1
- package/dist/config/merge.d.ts +1 -1
- package/dist/config/merge.d.ts.map +1 -1
- package/dist/config/merge.js +23 -26
- package/dist/config/merge.js.map +1 -1
- package/dist/config/presets.d.ts +4 -4
- package/dist/config/presets.js +195 -75
- package/dist/config/presets.js.map +1 -1
- package/dist/config/types.js +6 -2
- package/dist/config/types.js.map +1 -1
- package/dist/editor/PuckEditor.d.ts +12 -4
- package/dist/editor/PuckEditor.d.ts.map +1 -1
- package/dist/editor/PuckEditor.js +168 -67
- package/dist/editor/PuckEditor.js.map +1 -1
- package/dist/editor/PuckEditorImpl.client.d.ts +4 -4
- package/dist/editor/PuckEditorImpl.client.d.ts.map +1 -1
- package/dist/editor/PuckEditorImpl.client.js +304 -152
- package/dist/editor/PuckEditorImpl.client.js.map +1 -1
- package/dist/editor/components/DarkModeStyles.js +11 -12
- package/dist/editor/components/DarkModeStyles.js.map +1 -1
- package/dist/editor/components/HeaderActions.js +308 -64
- package/dist/editor/components/HeaderActions.js.map +1 -1
- package/dist/editor/components/IframeWrapper.d.ts +1 -1
- package/dist/editor/components/IframeWrapper.d.ts.map +1 -1
- package/dist/editor/components/IframeWrapper.js +82 -58
- package/dist/editor/components/IframeWrapper.js.map +1 -1
- package/dist/editor/components/LoadingState.d.ts +1 -1
- package/dist/editor/components/LoadingState.d.ts.map +1 -1
- package/dist/editor/components/LoadingState.js +17 -3
- package/dist/editor/components/LoadingState.js.map +1 -1
- package/dist/editor/components/PreviewModal.js +234 -78
- package/dist/editor/components/PreviewModal.js.map +1 -1
- package/dist/editor/components/PreviewModeToggle.js +43 -15
- package/dist/editor/components/PreviewModeToggle.js.map +1 -1
- package/dist/editor/components/VersionHistory.js +219 -71
- package/dist/editor/components/VersionHistory.js.map +1 -1
- package/dist/editor/hooks/useDarkMode.js +36 -23
- package/dist/editor/hooks/useDarkMode.js.map +1 -1
- package/dist/editor/hooks/useUnsavedChanges.js +8 -8
- package/dist/editor/hooks/useUnsavedChanges.js.map +1 -1
- package/dist/editor/index.js +5 -6
- package/dist/editor/index.js.map +1 -1
- package/dist/editor/plugins/VersionHistoryPanel.js +236 -75
- package/dist/editor/plugins/VersionHistoryPanel.js.map +1 -1
- package/dist/editor/plugins/index.js +4 -4
- package/dist/editor/plugins/index.js.map +1 -1
- package/dist/editor/plugins/versionHistoryPlugin.js +10 -8
- package/dist/editor/plugins/versionHistoryPlugin.js.map +1 -1
- package/dist/editor/utils/detectPageTree.js +5 -5
- package/dist/editor/utils/detectPageTree.js.map +1 -1
- package/dist/editor/utils/index.js +1 -0
- package/dist/editor/utils/index.js.map +1 -1
- package/dist/editor/utils/injectPageTreeFields.js +13 -9
- package/dist/editor/utils/injectPageTreeFields.js.map +1 -1
- package/dist/endpoints/ai.js +58 -34
- package/dist/endpoints/ai.js.map +1 -1
- package/dist/endpoints/context.js +86 -40
- package/dist/endpoints/context.js.map +1 -1
- package/dist/endpoints/index.js +153 -76
- package/dist/endpoints/index.js.map +1 -1
- package/dist/endpoints/postcss.d.js +5 -0
- package/dist/endpoints/postcss.d.js.map +1 -0
- package/dist/endpoints/prompts.js +81 -39
- package/dist/endpoints/prompts.js.map +1 -1
- package/dist/endpoints/styles.js +34 -36
- package/dist/endpoints/styles.js.map +1 -1
- package/dist/exports/client.js +2 -2
- package/dist/exports/client.js.map +1 -1
- package/dist/exports/rsc.js +2 -2
- package/dist/exports/rsc.js.map +1 -1
- package/dist/fields/AlignmentField.d.ts +1 -1
- package/dist/fields/AlignmentField.d.ts.map +1 -1
- package/dist/fields/AlignmentField.js +93 -30
- package/dist/fields/AlignmentField.js.map +1 -1
- package/dist/fields/AnimationField.d.ts +2 -2
- package/dist/fields/AnimationField.d.ts.map +1 -1
- package/dist/fields/AnimationField.js +558 -84
- package/dist/fields/AnimationField.js.map +1 -1
- package/dist/fields/BackgroundField.d.ts +2 -2
- package/dist/fields/BackgroundField.d.ts.map +1 -1
- package/dist/fields/BackgroundField.js +754 -120
- package/dist/fields/BackgroundField.js.map +1 -1
- package/dist/fields/BorderField.d.ts +2 -2
- package/dist/fields/BorderField.d.ts.map +1 -1
- package/dist/fields/BorderField.js +275 -73
- package/dist/fields/BorderField.js.map +1 -1
- package/dist/fields/ColorPickerField.d.ts +2 -2
- package/dist/fields/ColorPickerField.d.ts.map +1 -1
- package/dist/fields/ColorPickerField.js +210 -68
- package/dist/fields/ColorPickerField.js.map +1 -1
- package/dist/fields/ContentAlignmentField.d.ts +1 -1
- package/dist/fields/ContentAlignmentField.d.ts.map +1 -1
- package/dist/fields/ContentAlignmentField.js +161 -75
- package/dist/fields/ContentAlignmentField.js.map +1 -1
- package/dist/fields/DimensionsField.d.ts +2 -2
- package/dist/fields/DimensionsField.d.ts.map +1 -1
- package/dist/fields/DimensionsField.js +575 -146
- package/dist/fields/DimensionsField.js.map +1 -1
- package/dist/fields/FlexAlignmentField.d.ts +2 -2
- package/dist/fields/FlexAlignmentField.d.ts.map +1 -1
- package/dist/fields/FlexAlignmentField.js +189 -51
- package/dist/fields/FlexAlignmentField.js.map +1 -1
- package/dist/fields/FolderPickerField.d.ts +8 -1
- package/dist/fields/FolderPickerField.d.ts.map +1 -1
- package/dist/fields/FolderPickerField.js +288 -75
- package/dist/fields/FolderPickerField.js.map +1 -1
- package/dist/fields/GradientEditor.d.ts +2 -2
- package/dist/fields/GradientEditor.d.ts.map +1 -1
- package/dist/fields/GradientEditor.js +462 -86
- package/dist/fields/GradientEditor.js.map +1 -1
- package/dist/fields/LockedField.d.ts +15 -2
- package/dist/fields/LockedField.d.ts.map +1 -1
- package/dist/fields/LockedField.js +180 -49
- package/dist/fields/LockedField.js.map +1 -1
- package/dist/fields/MarginField.d.ts +2 -2
- package/dist/fields/MarginField.d.ts.map +1 -1
- package/dist/fields/MarginField.js +144 -46
- package/dist/fields/MarginField.js.map +1 -1
- package/dist/fields/MediaField.d.ts +1 -1
- package/dist/fields/MediaField.d.ts.map +1 -1
- package/dist/fields/MediaField.js +688 -186
- package/dist/fields/MediaField.js.map +1 -1
- package/dist/fields/PaddingField.d.ts +2 -2
- package/dist/fields/PaddingField.d.ts.map +1 -1
- package/dist/fields/PaddingField.js +144 -46
- package/dist/fields/PaddingField.js.map +1 -1
- package/dist/fields/PageSegmentField.d.ts +15 -2
- package/dist/fields/PageSegmentField.d.ts.map +1 -1
- package/dist/fields/PageSegmentField.js +156 -54
- package/dist/fields/PageSegmentField.js.map +1 -1
- package/dist/fields/ResetField.d.ts +1 -1
- package/dist/fields/ResetField.d.ts.map +1 -1
- package/dist/fields/ResetField.js +59 -31
- package/dist/fields/ResetField.js.map +1 -1
- package/dist/fields/ResponsiveField.d.ts +1 -1
- package/dist/fields/ResponsiveField.d.ts.map +1 -1
- package/dist/fields/ResponsiveField.js +233 -90
- package/dist/fields/ResponsiveField.js.map +1 -1
- package/dist/fields/ResponsiveVisibilityField.d.ts +2 -2
- package/dist/fields/ResponsiveVisibilityField.d.ts.map +1 -1
- package/dist/fields/ResponsiveVisibilityField.js +119 -36
- package/dist/fields/ResponsiveVisibilityField.js.map +1 -1
- package/dist/fields/SizeField.d.ts +3 -3
- package/dist/fields/SizeField.d.ts.map +1 -1
- package/dist/fields/SizeField.js +226 -52
- package/dist/fields/SizeField.js.map +1 -1
- package/dist/fields/SlugPreviewField.d.ts +8 -1
- package/dist/fields/SlugPreviewField.d.ts.map +1 -1
- package/dist/fields/SlugPreviewField.js +65 -16
- package/dist/fields/SlugPreviewField.js.map +1 -1
- package/dist/fields/TemplateField.d.ts +1 -1
- package/dist/fields/TemplateField.d.ts.map +1 -1
- package/dist/fields/TemplateField.js +362 -120
- package/dist/fields/TemplateField.js.map +1 -1
- package/dist/fields/TransformField.d.ts +2 -2
- package/dist/fields/TransformField.d.ts.map +1 -1
- package/dist/fields/TransformField.js +517 -81
- package/dist/fields/TransformField.js.map +1 -1
- package/dist/fields/VerticalAlignmentField.d.ts +1 -1
- package/dist/fields/VerticalAlignmentField.d.ts.map +1 -1
- package/dist/fields/VerticalAlignmentField.js +93 -30
- package/dist/fields/VerticalAlignmentField.js.map +1 -1
- package/dist/fields/WidthField.d.ts +2 -2
- package/dist/fields/WidthField.d.ts.map +1 -1
- package/dist/fields/WidthField.js +278 -81
- package/dist/fields/WidthField.js.map +1 -1
- package/dist/fields/index.d.ts +41 -41
- package/dist/fields/index.d.ts.map +1 -1
- package/dist/fields/index.js +37 -43
- package/dist/fields/index.js.map +1 -1
- package/dist/fields/richtext/controls/ColorPickerControl.d.ts +13 -2
- package/dist/fields/richtext/controls/ColorPickerControl.d.ts.map +1 -1
- package/dist/fields/richtext/controls/ColorPickerControl.js +212 -47
- package/dist/fields/richtext/controls/ColorPickerControl.js.map +1 -1
- package/dist/fields/richtext/controls/DropdownPortal.d.ts +2 -2
- package/dist/fields/richtext/controls/DropdownPortal.d.ts.map +1 -1
- package/dist/fields/richtext/controls/DropdownPortal.js +36 -4
- package/dist/fields/richtext/controls/DropdownPortal.js.map +1 -1
- package/dist/fields/richtext/controls/FontSizeControl.d.ts +9 -1
- package/dist/fields/richtext/controls/FontSizeControl.d.ts.map +1 -1
- package/dist/fields/richtext/controls/FontSizeControl.js +109 -24
- package/dist/fields/richtext/controls/FontSizeControl.js.map +1 -1
- package/dist/fields/richtext/controls/HighlightControl.d.ts +12 -1
- package/dist/fields/richtext/controls/HighlightControl.d.ts.map +1 -1
- package/dist/fields/richtext/controls/HighlightControl.js +54 -17
- package/dist/fields/richtext/controls/HighlightControl.js.map +1 -1
- package/dist/fields/richtext/controls/index.d.ts +5 -5
- package/dist/fields/richtext/controls/index.d.ts.map +1 -1
- package/dist/fields/richtext/controls/index.js +8 -11
- package/dist/fields/richtext/controls/index.js.map +1 -1
- package/dist/fields/richtext/controls/shared.js +108 -63
- package/dist/fields/richtext/controls/shared.js.map +1 -1
- package/dist/fields/richtext/createRichTextField.d.ts +18 -4
- package/dist/fields/richtext/createRichTextField.d.ts.map +1 -1
- package/dist/fields/richtext/createRichTextField.js +113 -26
- package/dist/fields/richtext/createRichTextField.js.map +1 -1
- package/dist/fields/richtext/extensions/FontSize.js +26 -20
- package/dist/fields/richtext/extensions/FontSize.js.map +1 -1
- package/dist/fields/richtext/extensions/index.d.ts +1 -1
- package/dist/fields/richtext/extensions/index.d.ts.map +1 -1
- package/dist/fields/richtext/extensions/index.js +2 -2
- package/dist/fields/richtext/extensions/index.js.map +1 -1
- package/dist/fields/richtext/index.d.ts +6 -6
- package/dist/fields/richtext/index.d.ts.map +1 -1
- package/dist/fields/richtext/index.js +8 -8
- package/dist/fields/richtext/index.js.map +1 -1
- package/dist/fields/shared.d.ts +1 -1
- package/dist/fields/shared.d.ts.map +1 -1
- package/dist/fields/shared.js +915 -478
- package/dist/fields/shared.js.map +1 -1
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +3 -3
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useResponsiveStyles.d.ts +1 -1
- package/dist/hooks/useResponsiveStyles.d.ts.map +1 -1
- package/dist/hooks/useResponsiveStyles.js +36 -32
- package/dist/hooks/useResponsiveStyles.js.map +1 -1
- package/dist/hooks/useScrollAnimation.js +26 -24
- package/dist/hooks/useScrollAnimation.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/layouts/LayoutWrapper.d.ts +3 -3
- package/dist/layouts/LayoutWrapper.d.ts.map +1 -1
- package/dist/layouts/LayoutWrapper.js +115 -51
- package/dist/layouts/LayoutWrapper.js.map +1 -1
- package/dist/layouts/defaults.d.ts +1 -1
- package/dist/layouts/defaults.d.ts.map +1 -1
- package/dist/layouts/defaults.js +23 -31
- package/dist/layouts/defaults.js.map +1 -1
- package/dist/layouts/index.d.ts +4 -4
- package/dist/layouts/index.d.ts.map +1 -1
- package/dist/layouts/index.js +5 -4
- package/dist/layouts/index.js.map +1 -1
- package/dist/layouts/types.js +4 -2
- package/dist/layouts/types.js.map +1 -1
- package/dist/layouts/utils.d.ts +1 -1
- package/dist/layouts/utils.d.ts.map +1 -1
- package/dist/layouts/utils.js +32 -40
- package/dist/layouts/utils.js.map +1 -1
- package/dist/next/index.js +31 -34
- package/dist/next/index.js.map +1 -1
- package/dist/plugin/collections/Pages.d.ts +2 -2
- package/dist/plugin/collections/Pages.d.ts.map +1 -1
- package/dist/plugin/collections/Pages.js +46 -43
- package/dist/plugin/collections/Pages.js.map +1 -1
- package/dist/plugin/fields/index.d.ts +3 -3
- package/dist/plugin/fields/index.d.ts.map +1 -1
- package/dist/plugin/fields/index.js +100 -78
- package/dist/plugin/fields/index.js.map +1 -1
- package/dist/plugin/fields/types.d.ts +1 -1
- package/dist/plugin/fields/types.d.ts.map +1 -1
- package/dist/plugin/fields/types.js +26 -2
- package/dist/plugin/fields/types.js.map +1 -1
- package/dist/plugin/hooks/index.d.ts +1 -1
- package/dist/plugin/hooks/index.d.ts.map +1 -1
- package/dist/plugin/hooks/index.js +2 -2
- package/dist/plugin/hooks/index.js.map +1 -1
- package/dist/plugin/hooks/isHomepageUnique.js +28 -19
- package/dist/plugin/hooks/isHomepageUnique.js.map +1 -1
- package/dist/plugin/index.d.ts +8 -8
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +192 -188
- package/dist/plugin/index.js.map +1 -1
- package/dist/render/HybridPageRenderer.d.ts +2 -2
- package/dist/render/HybridPageRenderer.d.ts.map +1 -1
- package/dist/render/HybridPageRenderer.js +58 -10
- package/dist/render/HybridPageRenderer.js.map +1 -1
- package/dist/render/PageRenderer.d.ts +2 -2
- package/dist/render/PageRenderer.d.ts.map +1 -1
- package/dist/render/PageRenderer.js +31 -14
- package/dist/render/PageRenderer.js.map +1 -1
- package/dist/render/PuckEditor.client.d.ts +1 -1
- package/dist/render/PuckEditor.client.d.ts.map +1 -1
- package/dist/render/PuckEditor.client.js +33 -16
- package/dist/render/PuckEditor.client.js.map +1 -1
- package/dist/render/index.d.ts +5 -5
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/index.js +5 -6
- package/dist/render/index.js.map +1 -1
- package/dist/styles/puck-dark-mode.css +101 -0
- package/dist/theme/context.d.ts +2 -2
- package/dist/theme/context.d.ts.map +1 -1
- package/dist/theme/context.js +21 -18
- package/dist/theme/context.js.map +1 -1
- package/dist/theme/defaults.d.ts +1 -1
- package/dist/theme/defaults.d.ts.map +1 -1
- package/dist/theme/defaults.js +83 -37
- package/dist/theme/defaults.js.map +1 -1
- package/dist/theme/example.d.ts +1 -1
- package/dist/theme/example.d.ts.map +1 -1
- package/dist/theme/example.js +68 -30
- package/dist/theme/example.js.map +1 -1
- package/dist/theme/index.d.ts +5 -5
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +6 -5
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/types.js +6 -2
- package/dist/theme/types.js.map +1 -1
- package/dist/theme/utils.d.ts +1 -1
- package/dist/theme/utils.d.ts.map +1 -1
- package/dist/theme/utils.js +24 -25
- package/dist/theme/utils.js.map +1 -1
- package/dist/types/index.d.ts +42 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +13 -22
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/migration.d.ts +1 -1
- package/dist/utils/migration.d.ts.map +1 -1
- package/dist/utils/migration.js +43 -49
- package/dist/utils/migration.js.map +1 -1
- package/dist/utils/validation.d.ts +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +36 -43
- package/dist/utils/validation.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +2 -1
- package/dist/version.js.map +1 -1
- package/dist/views/PuckConfigContext.d.ts +1 -1
- package/dist/views/PuckConfigContext.d.ts.map +1 -1
- package/dist/views/PuckConfigContext.js +25 -10
- package/dist/views/PuckConfigContext.js.map +1 -1
- package/dist/views/PuckEditorView.d.ts +1 -1
- package/dist/views/PuckEditorView.d.ts.map +1 -1
- package/dist/views/PuckEditorView.js +137 -41
- package/dist/views/PuckEditorView.js.map +1 -1
- package/dist/views/index.js +2 -2
- package/dist/views/index.js.map +1 -1
- package/package.json +62 -42
package/dist/plugin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/plugin/index.ts"],"sourcesContent":["import type { CollectionConfig, Config as PayloadConfig, Field, Plugin } from 'payload'\nimport type { PuckPluginOptions, PuckAdminConfig, PageTreeIntegrationOptions } from '../types/index.js'\nimport { generatePagesCollection } from './collections/Pages.js'\nimport { TemplatesCollection } from '../collections/Templates.js'\nimport { AiPromptsCollection } from '../ai/collections/AiPrompts.js'\nimport { AiContextCollection } from '../ai/collections/AiContext.js'\nimport { getPuckFields } from './fields/index.js'\nimport { createIsHomepageUniqueHook } from './hooks/isHomepageUnique.js'\nimport {\n createListHandler,\n createCreateHandler,\n createGetHandler,\n createUpdateHandler,\n createDeleteHandler,\n createVersionsHandler,\n createRestoreHandler,\n} from '../endpoints/index.js'\nimport { createStylesHandler, PUCK_STYLES_ENDPOINT } from '../endpoints/styles.js'\nimport { createAiEndpointHandler } from '../endpoints/ai.js'\nimport {\n createPromptsListHandler,\n createPromptsCreateHandler,\n createPromptsUpdateHandler,\n createPromptsDeleteHandler,\n} from '../endpoints/prompts.js'\nimport {\n createContextListHandler,\n createContextCreateHandler,\n createContextUpdateHandler,\n createContextDeleteHandler,\n} from '../endpoints/context.js'\n\n/**\n * Get all field names from a collection's fields array (including nested group fields and tabs)\n */\nfunction getExistingFieldNames(fields: Field[]): Set<string> {\n const names = new Set<string>()\n\n function addFieldNames(fieldsToCheck: Field[]) {\n for (const field of fieldsToCheck) {\n // Add the field name if it has one\n if ('name' in field && field.name) {\n names.add(field.name)\n }\n\n // Check nested fields in groups, rows, collapsibles, etc.\n if ('fields' in field && Array.isArray(field.fields)) {\n addFieldNames(field.fields)\n }\n\n // Check fields inside tabs\n if (field.type === 'tabs' && 'tabs' in field && Array.isArray(field.tabs)) {\n for (const tab of field.tabs) {\n if ('fields' in tab && Array.isArray(tab.fields)) {\n addFieldNames(tab.fields)\n }\n }\n }\n }\n }\n\n addFieldNames(fields)\n return names\n}\n\n/**\n * Filter out fields that already exist in the target collection\n */\nfunction filterExistingFields(fieldsToAdd: Field[], existingNames: Set<string>): Field[] {\n return fieldsToAdd.filter((field) => {\n if ('name' in field && field.name) {\n return !existingNames.has(field.name)\n }\n return true // Keep fields without names (like UI fields)\n })\n}\n\n/**\n * Generates the UI field configuration for the Edit with Puck button\n */\nfunction generatePuckEditField(\n collectionSlug: string,\n adminConfig: PuckAdminConfig = {}\n): Field {\n const {\n editorPathPattern = '/pages/{id}/edit',\n buttonLabel = 'Visual Editor',\n buttonPosition, // undefined = main area (default), 'sidebar' = sidebar\n } = adminConfig\n\n return {\n name: 'puckEdit',\n type: 'ui',\n admin: {\n // Only set position if explicitly specified (sidebar)\n // undefined means main form area in Payload\n ...(buttonPosition && { position: buttonPosition }),\n components: {\n Field: '@delmaredigital/payload-puck/admin/client#EditWithPuckButton',\n Cell: '@delmaredigital/payload-puck/admin/client#EditWithPuckCell',\n },\n custom: {\n collectionSlug,\n editorPathPattern,\n label: buttonLabel,\n },\n },\n }\n}\n\n/**\n * Creates a Payload plugin that integrates Puck visual page builder\n *\n * This plugin:\n * - Generates a Pages collection with puckData field\n * - Registers the Puck editor as an admin view at /admin/puck-editor/:collection/:id\n * - Adds an \"Edit with Puck\" button in the admin document view\n * - Optionally registers API endpoints for CRUD operations\n *\n * The Puck editor is fully integrated into Payload's admin UI.\n *\n * @example\n * ```typescript\n * import { createPuckPlugin } from '@delmaredigital/payload-puck/plugin'\n *\n * export default buildConfig({\n * plugins: [\n * createPuckPlugin({\n * pagesCollection: 'pages',\n * access: {\n * read: () => true,\n * create: ({ req }) => !!req.user,\n * update: ({ req }) => !!req.user,\n * delete: ({ req }) => req.user?.role === 'admin',\n * },\n * admin: {\n * buttonLabel: 'Visual Editor',\n * },\n * }),\n * ],\n * })\n * ```\n */\nexport function createPuckPlugin(options: PuckPluginOptions = {}): Plugin {\n const {\n pagesCollection = 'pages',\n autoGenerateCollection = true,\n admin: pluginAdminConfig = {},\n enableAdminView = true,\n adminViewPath = '/puck-editor',\n enableEndpoints = true,\n pageTreeIntegration, // No default - undefined means auto-detect\n editorStylesheet,\n editorStylesheetUrls = [],\n editorStylesheetCompiled,\n ai: aiConfig,\n previewUrl,\n } = options\n\n const { addEditButton = true } = pluginAdminConfig\n\n // Parse page-tree integration config\n // - undefined: auto-detect at runtime (null stored, view will check for pageSegment field)\n // - false: explicitly disabled (store false to prevent auto-detection)\n // - true: use defaults\n // - object: use custom field names\n let pageTreeConfig: PageTreeIntegrationOptions | false | null = null\n if (pageTreeIntegration === undefined) {\n // Not specified - store null to trigger auto-detection in the view\n pageTreeConfig = null\n } else if (pageTreeIntegration === false) {\n // Explicitly disabled - store false to prevent auto-detection\n pageTreeConfig = false\n } else if (pageTreeIntegration === true) {\n // Explicitly enabled with defaults\n pageTreeConfig = {\n folderSlug: 'payload-folders',\n segmentFieldName: 'pathSegment',\n pageSegmentFieldName: 'pageSegment',\n folderFieldName: 'folder',\n }\n } else {\n // Custom config object\n pageTreeConfig = {\n folderSlug: pageTreeIntegration.folderSlug ?? 'payload-folders',\n segmentFieldName: pageTreeIntegration.segmentFieldName ?? 'pathSegment',\n pageSegmentFieldName: pageTreeIntegration.pageSegmentFieldName ?? 'pageSegment',\n folderFieldName: pageTreeIntegration.folderFieldName ?? 'folder',\n }\n }\n\n return (incomingConfig: PayloadConfig): PayloadConfig => {\n // Generate Pages collection if auto-generate is enabled\n let collections = incomingConfig.collections || []\n\n // Always add the Templates collection if it doesn't exist\n const templatesCollectionExists = collections.some(\n (c) => c.slug === 'puck-templates'\n )\n if (!templatesCollectionExists) {\n collections = [...collections, TemplatesCollection]\n }\n\n // Add AI Prompts collection if AI is enabled with promptsCollection\n if (aiConfig?.enabled && aiConfig?.promptsCollection) {\n const aiPromptsExists = collections.some(\n (c) => c.slug === 'puck-ai-prompts'\n )\n if (!aiPromptsExists) {\n collections = [...collections, AiPromptsCollection]\n }\n }\n\n // Add AI Context collection if AI is enabled with contextCollection\n if (aiConfig?.enabled && aiConfig?.contextCollection) {\n const aiContextExists = collections.some(\n (c) => c.slug === 'puck-ai-context'\n )\n if (!aiContextExists) {\n collections = [...collections, AiContextCollection]\n }\n }\n\n if (autoGenerateCollection) {\n // Check if collection already exists\n const existingCollectionIndex = collections.findIndex(\n (c) => c.slug === pagesCollection\n )\n\n // Generate the edit button field if enabled\n const editButtonField = addEditButton\n ? [generatePuckEditField(pagesCollection, pluginAdminConfig)]\n : []\n\n if (existingCollectionIndex >= 0) {\n // Collection exists - only add Puck fields that don't already exist\n const existingCollection = collections[existingCollectionIndex]\n const existingFields = existingCollection.fields || []\n const existingFieldNames = getExistingFieldNames(existingFields)\n\n // Determine if isHomepage should be added\n const shouldAddIsHomepage = !existingFieldNames.has('isHomepage')\n\n // Get Puck-specific fields (not the full collection with title/slug)\n // This avoids duplicating fields the user may have already defined\n const puckFields = getPuckFields({\n includeSEO: !existingFieldNames.has('meta'),\n includeConversion: !existingFieldNames.has('conversionTracking'),\n includeEditorVersion: !existingFieldNames.has('editorVersion'),\n includePageLayout: !existingFieldNames.has('pageLayout'),\n includeIsHomepage: shouldAddIsHomepage,\n layouts: options.layouts,\n })\n\n // Filter out any remaining duplicates (e.g., puckData if user already has it)\n const fieldsToAdd = filterExistingFields(puckFields, existingFieldNames)\n\n // Only add edit button if puckEdit doesn't exist\n const editFieldsToAdd = existingFieldNames.has('puckEdit') ? [] : editButtonField\n\n // Merge hooks - add isHomepage uniqueness hook if we're adding the field\n const existingHooks = existingCollection.hooks || {}\n const mergedHooks = shouldAddIsHomepage\n ? {\n ...existingHooks,\n beforeChange: [\n createIsHomepageUniqueHook(),\n ...(existingHooks.beforeChange ?? []),\n ],\n }\n : existingHooks\n\n collections = [\n ...collections.slice(0, existingCollectionIndex),\n {\n ...existingCollection,\n // Ensure drafts are enabled for Puck\n versions:\n typeof existingCollection.versions === 'object'\n ? { drafts: true, ...existingCollection.versions }\n : existingCollection.versions ?? { drafts: true },\n hooks: mergedHooks,\n fields: [\n ...existingFields,\n ...fieldsToAdd,\n ...editFieldsToAdd,\n ],\n },\n ...collections.slice(existingCollectionIndex + 1),\n ]\n } else {\n // Add new collection with edit button field\n const generatedCollection = generatePagesCollection(pagesCollection, options)\n collections = [\n ...collections,\n {\n ...generatedCollection,\n fields: [...generatedCollection.fields, ...editButtonField],\n },\n ]\n }\n }\n\n // Build the admin config with view registration\n const payloadAdminConfig: PayloadConfig['admin'] = {\n ...incomingConfig.admin,\n }\n\n // Register the Puck editor admin view if enabled\n if (enableAdminView) {\n payloadAdminConfig.components = {\n ...payloadAdminConfig.components,\n views: {\n ...payloadAdminConfig.components?.views,\n puckEditor: {\n Component: '@delmaredigital/payload-puck/rsc#PuckEditorView',\n path: `${adminViewPath}/:segments*` as `/${string}`,\n },\n },\n }\n }\n\n // Register API endpoints if enabled\n const puckCollections = [pagesCollection]\n const endpointOptions = { collections: puckCollections }\n\n // Build styles endpoint URL list for PuckConfigProvider\n // In production, prefer the pre-compiled static CSS file if provided\n // In development, use runtime compilation endpoint for hot reload\n const isProduction = process.env.NODE_ENV === 'production'\n const useCompiledCss = isProduction && editorStylesheetCompiled\n\n const editorStylesheets: string[] = [\n ...(useCompiledCss\n ? [editorStylesheetCompiled]\n : editorStylesheet\n ? [PUCK_STYLES_ENDPOINT]\n : []),\n ...editorStylesheetUrls,\n ]\n\n const endpoints = enableEndpoints\n ? [\n ...(incomingConfig.endpoints || []),\n // Styles endpoint MUST be first - exact match before parameterized routes\n ...(editorStylesheet\n ? [\n {\n path: '/puck/styles',\n method: 'get' as const,\n handler: createStylesHandler(editorStylesheet),\n },\n ]\n : []),\n // AI endpoint (exact match, before parameterized routes)\n ...(aiConfig?.enabled\n ? [\n {\n path: '/puck/ai',\n method: 'post' as const,\n handler: createAiEndpointHandler({ context: aiConfig.context, tools: aiConfig.tools }),\n },\n ]\n : []),\n // AI Prompts CRUD endpoints (exact match, before parameterized routes)\n ...(aiConfig?.enabled && aiConfig?.promptsCollection\n ? [\n {\n path: '/puck/ai-prompts',\n method: 'get' as const,\n handler: createPromptsListHandler(),\n },\n {\n path: '/puck/ai-prompts',\n method: 'post' as const,\n handler: createPromptsCreateHandler(),\n },\n {\n path: '/puck/ai-prompts/:id',\n method: 'patch' as const,\n handler: createPromptsUpdateHandler(),\n },\n {\n path: '/puck/ai-prompts/:id',\n method: 'delete' as const,\n handler: createPromptsDeleteHandler(),\n },\n ]\n : []),\n // AI Context CRUD endpoints (exact match, before parameterized routes)\n ...(aiConfig?.enabled && aiConfig?.contextCollection\n ? [\n {\n path: '/puck/ai-context',\n method: 'get' as const,\n handler: createContextListHandler(),\n },\n {\n path: '/puck/ai-context',\n method: 'post' as const,\n handler: createContextCreateHandler(),\n },\n {\n path: '/puck/ai-context/:id',\n method: 'patch' as const,\n handler: createContextUpdateHandler(),\n },\n {\n path: '/puck/ai-context/:id',\n method: 'delete' as const,\n handler: createContextDeleteHandler(),\n },\n ]\n : []),\n // Collection endpoints (parameterized routes)\n {\n path: '/puck/:collection',\n method: 'get' as const,\n handler: createListHandler(endpointOptions),\n },\n {\n path: '/puck/:collection',\n method: 'post' as const,\n handler: createCreateHandler(endpointOptions),\n },\n {\n path: '/puck/:collection/:id',\n method: 'get' as const,\n handler: createGetHandler(endpointOptions),\n },\n {\n path: '/puck/:collection/:id',\n method: 'patch' as const,\n handler: createUpdateHandler(endpointOptions),\n },\n {\n path: '/puck/:collection/:id',\n method: 'delete' as const,\n handler: createDeleteHandler(endpointOptions),\n },\n {\n path: '/puck/:collection/:id/versions',\n method: 'get' as const,\n handler: createVersionsHandler(endpointOptions),\n },\n {\n path: '/puck/:collection/:id/restore',\n method: 'post' as const,\n handler: createRestoreHandler(endpointOptions),\n },\n ]\n : incomingConfig.endpoints || []\n\n return {\n ...incomingConfig,\n admin: payloadAdminConfig,\n collections,\n endpoints,\n // Store options in custom for the view to access\n custom: {\n ...incomingConfig.custom,\n puck: {\n collections: puckCollections,\n layouts: options.layouts,\n // Page-tree integration config (null if not enabled)\n pageTree: pageTreeConfig,\n // Editor stylesheets for iframe\n editorStylesheets: editorStylesheets.length > 0 ? editorStylesheets : undefined,\n // Preview URL configuration\n previewUrl,\n // AI configuration\n ai: aiConfig?.enabled\n ? {\n enabled: true,\n context: aiConfig.context,\n examplePrompts: aiConfig.examplePrompts,\n promptsCollection: aiConfig.promptsCollection,\n contextCollection: aiConfig.contextCollection,\n }\n : undefined,\n },\n },\n onInit: async (payload) => {\n // Call existing onInit if present\n if (incomingConfig.onInit) {\n await incomingConfig.onInit(payload)\n }\n },\n }\n }\n}\n\n// Re-export collection utilities\nexport { generatePagesCollection } from './collections/Pages.js'\nexport { TemplatesCollection } from '../collections/Templates.js'\n\n// Re-export field utilities for hybrid collection integration\nexport {\n getPuckFields,\n getPuckCollectionConfig,\n puckDataField,\n editorVersionField,\n createEditorVersionField,\n pageLayoutField,\n createPageLayoutField,\n isHomepageField,\n seoFieldGroup,\n conversionFieldGroup,\n} from './fields/index.js'\n\n// Export the edit button generator for hybrid collections\nexport { generatePuckEditField }\n\n// Export styles endpoint constant\nexport { PUCK_STYLES_ENDPOINT } from '../endpoints/styles.js'\n\n// Re-export hooks for hybrid collection integration\nexport {\n createIsHomepageUniqueHook,\n unsetHomepage,\n HomepageConflictError,\n} from './hooks/index.js'\nexport type { IsHomepageUniqueHookOptions } from './hooks/index.js'\n\n// Re-export types\nexport type { PuckPluginOptions, PuckAdminConfig } from '../types/index.js'\nexport type { GetPuckFieldsOptions, GetPuckCollectionConfigOptions } from './fields/types.js'\n"],"names":["generatePagesCollection","TemplatesCollection","AiPromptsCollection","AiContextCollection","getPuckFields","createIsHomepageUniqueHook","createListHandler","createCreateHandler","createGetHandler","createUpdateHandler","createDeleteHandler","createVersionsHandler","createRestoreHandler","createStylesHandler","PUCK_STYLES_ENDPOINT","createAiEndpointHandler","createPromptsListHandler","createPromptsCreateHandler","createPromptsUpdateHandler","createPromptsDeleteHandler","createContextListHandler","createContextCreateHandler","createContextUpdateHandler","createContextDeleteHandler","getExistingFieldNames","fields","names","Set","addFieldNames","fieldsToCheck","field","name","add","Array","isArray","type","tabs","tab","filterExistingFields","fieldsToAdd","existingNames","filter","has","generatePuckEditField","collectionSlug","adminConfig","editorPathPattern","buttonLabel","buttonPosition","admin","position","components","Field","Cell","custom","label","createPuckPlugin","options","pagesCollection","autoGenerateCollection","pluginAdminConfig","enableAdminView","adminViewPath","enableEndpoints","pageTreeIntegration","editorStylesheet","editorStylesheetUrls","editorStylesheetCompiled","ai","aiConfig","previewUrl","addEditButton","pageTreeConfig","undefined","folderSlug","segmentFieldName","pageSegmentFieldName","folderFieldName","incomingConfig","collections","templatesCollectionExists","some","c","slug","enabled","promptsCollection","aiPromptsExists","contextCollection","aiContextExists","existingCollectionIndex","findIndex","editButtonField","existingCollection","existingFields","existingFieldNames","shouldAddIsHomepage","puckFields","includeSEO","includeConversion","includeEditorVersion","includePageLayout","includeIsHomepage","layouts","editFieldsToAdd","existingHooks","hooks","mergedHooks","beforeChange","slice","versions","drafts","generatedCollection","payloadAdminConfig","views","puckEditor","Component","path","puckCollections","endpointOptions","isProduction","process","env","NODE_ENV","useCompiledCss","editorStylesheets","endpoints","method","handler","context","tools","puck","pageTree","length","examplePrompts","onInit","payload","getPuckCollectionConfig","puckDataField","editorVersionField","createEditorVersionField","pageLayoutField","createPageLayoutField","isHomepageField","seoFieldGroup","conversionFieldGroup","unsetHomepage","HomepageConflictError"],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
* ```
|
|
38
38
|
*/
|
|
39
39
|
import type { Data as PuckData } from '@puckeditor/core';
|
|
40
|
-
import { type PageRendererProps } from './PageRenderer';
|
|
40
|
+
import { type PageRendererProps } from './PageRenderer.js';
|
|
41
41
|
import type { ReactNode } from 'react';
|
|
42
42
|
/**
|
|
43
43
|
* Loose input type that accepts Payload's generic JSON field types.
|
|
@@ -111,7 +111,7 @@ export interface HybridPageRendererProps<TBlocks = unknown[]> extends Omit<PageR
|
|
|
111
111
|
* 2. If legacy blocks exist AND legacyRenderer is provided → render with legacyRenderer
|
|
112
112
|
* 3. Otherwise → render fallback
|
|
113
113
|
*/
|
|
114
|
-
export declare function HybridPageRenderer<TBlocks = unknown[]>({ page, legacyRenderer, legacyBlocksField, fallback, config, layouts, wrapper, className, }: HybridPageRendererProps<TBlocks>): import("react
|
|
114
|
+
export declare function HybridPageRenderer<TBlocks = unknown[]>({ page, legacyRenderer, legacyBlocksField, fallback, config, layouts, wrapper, className, }: HybridPageRendererProps<TBlocks>): import("react").JSX.Element;
|
|
115
115
|
/**
|
|
116
116
|
* Converts a loosely-typed page object (e.g., from Payload's generated types)
|
|
117
117
|
* to a properly typed `HybridPageData`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HybridPageRenderer.d.ts","sourceRoot":"","sources":["../../src/render/HybridPageRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EAAwB,IAAI,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC9E,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"HybridPageRenderer.d.ts","sourceRoot":"","sources":["../../src/render/HybridPageRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EAAwB,IAAI,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC9E,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IAEjC;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;IAE1B;;;OAGG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,uBAAuB,CAAC,OAAO,GAAG,OAAO,EAAE,CAC1D,SAAQ,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACvC;;OAEG;IACH,IAAI,EAAE,cAAc,CAAA;IAEpB;;;;;;;;;;;;;;;;;OAiBG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,SAAS,CAAA;IAE/C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAG,OAAO,EAAE,EAAE,EACtD,IAAI,EACJ,cAAc,EACd,iBAA4B,EAC5B,QAA0C,EAC1C,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,GACV,EAAE,uBAAuB,CAAC,OAAO,CAAC,+BA8BlC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,GAAG,cAAc,CAwB1E"}
|
|
@@ -1,5 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Hybrid Page Renderer
|
|
3
|
+
*
|
|
4
|
+
* Renders pages that can be either Puck-edited or legacy Payload block-based.
|
|
5
|
+
* For new projects using only Puck, legacyRenderer is optional.
|
|
6
|
+
*
|
|
7
|
+
* @example New project (Puck-only)
|
|
8
|
+
* ```tsx
|
|
9
|
+
* import { HybridPageRenderer } from '@delmaredigital/payload-puck/render'
|
|
10
|
+
* import { puckConfig } from '@/puck/config'
|
|
11
|
+
*
|
|
12
|
+
* export async function PageRenderer({ slug }) {
|
|
13
|
+
* const page = await fetchPage(slug)
|
|
14
|
+
* return <HybridPageRenderer page={page} config={puckConfig} />
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @example Migration (with legacy blocks)
|
|
19
|
+
* ```tsx
|
|
20
|
+
* import { HybridPageRenderer } from '@delmaredigital/payload-puck/render'
|
|
21
|
+
* import { puckConfig } from '@/puck/config'
|
|
22
|
+
* import { siteLayouts } from '@/lib/puck-layouts'
|
|
23
|
+
* import { BlockRenderer } from '@/components/blocks/BlockRenderer'
|
|
24
|
+
*
|
|
25
|
+
* export async function PageRenderer({ slug }) {
|
|
26
|
+
* const page = await fetchPage(slug)
|
|
27
|
+
*
|
|
28
|
+
* return (
|
|
29
|
+
* <HybridPageRenderer
|
|
30
|
+
* page={page}
|
|
31
|
+
* config={puckConfig}
|
|
32
|
+
* layouts={siteLayouts}
|
|
33
|
+
* legacyRenderer={(blocks) => <BlockRenderer blocks={blocks} />}
|
|
34
|
+
* />
|
|
35
|
+
* )
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*/ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
39
|
+
import { PageRenderer } from './PageRenderer.js';
|
|
3
40
|
/**
|
|
4
41
|
* Renders a page using either Puck or legacy Payload blocks
|
|
5
42
|
*
|
|
@@ -7,8 +44,9 @@ import { PageRenderer } from './PageRenderer';
|
|
|
7
44
|
* 1. If editorVersion is 'puck' AND puckData has content → render with PageRenderer
|
|
8
45
|
* 2. If legacy blocks exist AND legacyRenderer is provided → render with legacyRenderer
|
|
9
46
|
* 3. Otherwise → render fallback
|
|
10
|
-
*/
|
|
11
|
-
|
|
47
|
+
*/ export function HybridPageRenderer({ page, legacyRenderer, legacyBlocksField = 'layout', fallback = /*#__PURE__*/ _jsx("div", {
|
|
48
|
+
children: "No content available"
|
|
49
|
+
}), config, layouts, wrapper, className }) {
|
|
12
50
|
// Check for Puck content
|
|
13
51
|
const puckData = page.puckData;
|
|
14
52
|
const hasPuckContent = puckData?.content && Array.isArray(puckData.content) && puckData.content.length > 0;
|
|
@@ -17,14 +55,24 @@ export function HybridPageRenderer({ page, legacyRenderer, legacyBlocksField = '
|
|
|
17
55
|
const hasLegacyContent = Array.isArray(legacyBlocks) && legacyBlocks.length > 0;
|
|
18
56
|
// Render Puck pages
|
|
19
57
|
if (page.editorVersion === 'puck' && hasPuckContent) {
|
|
20
|
-
return
|
|
58
|
+
return /*#__PURE__*/ _jsx(PageRenderer, {
|
|
59
|
+
data: puckData,
|
|
60
|
+
config: config,
|
|
61
|
+
layouts: layouts,
|
|
62
|
+
wrapper: wrapper,
|
|
63
|
+
className: className
|
|
64
|
+
});
|
|
21
65
|
}
|
|
22
66
|
// Render legacy pages (only if legacyRenderer is provided)
|
|
23
67
|
if (hasLegacyContent && legacyRenderer) {
|
|
24
|
-
return _jsx(_Fragment, {
|
|
68
|
+
return /*#__PURE__*/ _jsx(_Fragment, {
|
|
69
|
+
children: legacyRenderer(legacyBlocks)
|
|
70
|
+
});
|
|
25
71
|
}
|
|
26
72
|
// Fallback for empty pages
|
|
27
|
-
return _jsx(_Fragment, {
|
|
73
|
+
return /*#__PURE__*/ _jsx(_Fragment, {
|
|
74
|
+
children: fallback
|
|
75
|
+
});
|
|
28
76
|
}
|
|
29
77
|
/**
|
|
30
78
|
* Converts a loosely-typed page object (e.g., from Payload's generated types)
|
|
@@ -50,8 +98,7 @@ export function HybridPageRenderer({ page, legacyRenderer, legacyBlocksField = '
|
|
|
50
98
|
* @param page - Page object with loosely-typed fields
|
|
51
99
|
* @returns Properly typed HybridPageData
|
|
52
100
|
* @throws Error if editorVersion is present but invalid
|
|
53
|
-
*/
|
|
54
|
-
export function toHybridPageData(page) {
|
|
101
|
+
*/ export function toHybridPageData(page) {
|
|
55
102
|
const { editorVersion, puckData, ...rest } = page;
|
|
56
103
|
// Validate editorVersion if present
|
|
57
104
|
if (editorVersion !== undefined && editorVersion !== null) {
|
|
@@ -68,7 +115,8 @@ export function toHybridPageData(page) {
|
|
|
68
115
|
return {
|
|
69
116
|
...rest,
|
|
70
117
|
editorVersion: editorVersion,
|
|
71
|
-
puckData: puckData
|
|
118
|
+
puckData: puckData
|
|
72
119
|
};
|
|
73
120
|
}
|
|
121
|
+
|
|
74
122
|
//# sourceMappingURL=HybridPageRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/render/HybridPageRenderer.tsx"],"sourcesContent":["/**\n * Hybrid Page Renderer\n *\n * Renders pages that can be either Puck-edited or legacy Payload block-based.\n * For new projects using only Puck, legacyRenderer is optional.\n *\n * @example New project (Puck-only)\n * ```tsx\n * import { HybridPageRenderer } from '@delmaredigital/payload-puck/render'\n * import { puckConfig } from '@/puck/config'\n *\n * export async function PageRenderer({ slug }) {\n * const page = await fetchPage(slug)\n * return <HybridPageRenderer page={page} config={puckConfig} />\n * }\n * ```\n *\n * @example Migration (with legacy blocks)\n * ```tsx\n * import { HybridPageRenderer } from '@delmaredigital/payload-puck/render'\n * import { puckConfig } from '@/puck/config'\n * import { siteLayouts } from '@/lib/puck-layouts'\n * import { BlockRenderer } from '@/components/blocks/BlockRenderer'\n *\n * export async function PageRenderer({ slug }) {\n * const page = await fetchPage(slug)\n *\n * return (\n * <HybridPageRenderer\n * page={page}\n * config={puckConfig}\n * layouts={siteLayouts}\n * legacyRenderer={(blocks) => <BlockRenderer blocks={blocks} />}\n * />\n * )\n * }\n * ```\n */\n\nimport type { Config as PuckConfig, Data as PuckData } from '@puckeditor/core'\nimport { PageRenderer, type PageRendererProps } from './PageRenderer.js'\nimport type { ReactNode } from 'react'\n\n/**\n * Loose input type that accepts Payload's generic JSON field types.\n * Use with `toHybridPageData()` to convert to `HybridPageData`.\n */\nexport interface HybridPageDataInput {\n editorVersion?: string | null\n puckData?: unknown\n [key: string]: unknown\n}\n\n/**\n * Page data shape for hybrid rendering\n */\nexport interface HybridPageData {\n /**\n * Which editor was used to create the page\n * - 'puck': Page was created/edited with Puck visual editor\n * - 'legacy': Page uses traditional Payload block fields\n */\n editorVersion?: 'legacy' | 'puck'\n\n /**\n * Puck editor data (for pages with editorVersion: 'puck')\n */\n puckData?: PuckData | null\n\n /**\n * Legacy blocks array (for pages with editorVersion: 'legacy')\n * The field name varies by project (e.g., 'layout', 'blocks', 'content')\n */\n [key: string]: unknown\n}\n\nexport interface HybridPageRendererProps<TBlocks = unknown[]>\n extends Omit<PageRendererProps, 'data'> {\n /**\n * Page document containing editorVersion, puckData, and optionally legacy blocks\n */\n page: HybridPageData\n\n /**\n * Render function for legacy Payload blocks.\n * Called when editorVersion is 'legacy' or when puckData is not available.\n *\n * Optional for new projects that will only have Puck pages. If not provided\n * and legacy blocks are encountered, the fallback will be rendered instead.\n *\n * Use the generic type parameter to get proper typing for your blocks:\n * @example\n * ```tsx\n * <HybridPageRenderer<NonNullable<Page['layout']>>\n * legacyRenderer={(blocks) => <RenderBlocks blocks={blocks} />}\n * />\n * ```\n *\n * @param blocks - The legacy blocks array from the page\n * @returns React node to render\n */\n legacyRenderer?: (blocks: TBlocks) => ReactNode\n\n /**\n * Name of the field containing legacy blocks\n * @default 'layout'\n */\n legacyBlocksField?: string\n\n /**\n * Fallback content when no content is available\n * @default <div>No content available</div>\n */\n fallback?: ReactNode\n}\n\n/**\n * Renders a page using either Puck or legacy Payload blocks\n *\n * Decision logic:\n * 1. If editorVersion is 'puck' AND puckData has content → render with PageRenderer\n * 2. If legacy blocks exist AND legacyRenderer is provided → render with legacyRenderer\n * 3. Otherwise → render fallback\n */\nexport function HybridPageRenderer<TBlocks = unknown[]>({\n page,\n legacyRenderer,\n legacyBlocksField = 'layout',\n fallback = <div>No content available</div>,\n config,\n layouts,\n wrapper,\n className,\n}: HybridPageRendererProps<TBlocks>) {\n // Check for Puck content\n const puckData = page.puckData as PuckData | null | undefined\n const hasPuckContent =\n puckData?.content && Array.isArray(puckData.content) && puckData.content.length > 0\n\n // Check for legacy content\n const legacyBlocks = page[legacyBlocksField] as TBlocks | undefined\n const hasLegacyContent = Array.isArray(legacyBlocks) && legacyBlocks.length > 0\n\n // Render Puck pages\n if (page.editorVersion === 'puck' && hasPuckContent) {\n return (\n <PageRenderer\n data={puckData as PuckData}\n config={config}\n layouts={layouts}\n wrapper={wrapper}\n className={className}\n />\n )\n }\n\n // Render legacy pages (only if legacyRenderer is provided)\n if (hasLegacyContent && legacyRenderer) {\n return <>{legacyRenderer(legacyBlocks as TBlocks)}</>\n }\n\n // Fallback for empty pages\n return <>{fallback}</>\n}\n\n/**\n * Converts a loosely-typed page object (e.g., from Payload's generated types)\n * to a properly typed `HybridPageData`.\n *\n * Use this when Payload's generated types for JSON fields are too generic\n * and don't match `HybridPageData`.\n *\n * @example\n * ```tsx\n * import { HybridPageRenderer, toHybridPageData } from '@delmaredigital/payload-puck/render'\n *\n * // page comes from Payload with generic JSON types\n * const page = await payload.findByID({ collection: 'pages', id })\n *\n * <HybridPageRenderer\n * page={toHybridPageData(page)}\n * config={config}\n * legacyRenderer={(blocks) => <BlockRenderer blocks={blocks} />}\n * />\n * ```\n *\n * @param page - Page object with loosely-typed fields\n * @returns Properly typed HybridPageData\n * @throws Error if editorVersion is present but invalid\n */\nexport function toHybridPageData(page: HybridPageDataInput): HybridPageData {\n const { editorVersion, puckData, ...rest } = page\n\n // Validate editorVersion if present\n if (editorVersion !== undefined && editorVersion !== null) {\n if (editorVersion !== 'legacy' && editorVersion !== 'puck') {\n throw new Error(\n `Invalid editorVersion: \"${editorVersion}\". Expected \"legacy\", \"puck\", or undefined.`\n )\n }\n }\n\n // Validate puckData shape if present (basic check)\n if (puckData !== undefined && puckData !== null) {\n if (typeof puckData !== 'object') {\n throw new Error(`Invalid puckData: expected object, got ${typeof puckData}`)\n }\n }\n\n return {\n ...rest,\n editorVersion: editorVersion as HybridPageData['editorVersion'],\n puckData: puckData as HybridPageData['puckData'],\n }\n}\n"],"names":["PageRenderer","HybridPageRenderer","page","legacyRenderer","legacyBlocksField","fallback","div","config","layouts","wrapper","className","puckData","hasPuckContent","content","Array","isArray","length","legacyBlocks","hasLegacyContent","editorVersion","data","toHybridPageData","rest","undefined","Error"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCC;AAGD,SAASA,YAAY,QAAgC,oBAAmB;AA4ExE;;;;;;;CAOC,GACD,OAAO,SAASC,mBAAwC,EACtDC,IAAI,EACJC,cAAc,EACdC,oBAAoB,QAAQ,EAC5BC,yBAAW,KAACC;cAAI;EAA0B,EAC1CC,MAAM,EACNC,OAAO,EACPC,OAAO,EACPC,SAAS,EACwB;IACjC,yBAAyB;IACzB,MAAMC,WAAWT,KAAKS,QAAQ;IAC9B,MAAMC,iBACJD,UAAUE,WAAWC,MAAMC,OAAO,CAACJ,SAASE,OAAO,KAAKF,SAASE,OAAO,CAACG,MAAM,GAAG;IAEpF,2BAA2B;IAC3B,MAAMC,eAAef,IAAI,CAACE,kBAAkB;IAC5C,MAAMc,mBAAmBJ,MAAMC,OAAO,CAACE,iBAAiBA,aAAaD,MAAM,GAAG;IAE9E,oBAAoB;IACpB,IAAId,KAAKiB,aAAa,KAAK,UAAUP,gBAAgB;QACnD,qBACE,KAACZ;YACCoB,MAAMT;YACNJ,QAAQA;YACRC,SAASA;YACTC,SAASA;YACTC,WAAWA;;IAGjB;IAEA,2DAA2D;IAC3D,IAAIQ,oBAAoBf,gBAAgB;QACtC,qBAAO;sBAAGA,eAAec;;IAC3B;IAEA,2BAA2B;IAC3B,qBAAO;kBAAGZ;;AACZ;AAEA;;;;;;;;;;;;;;;;;;;;;;;;CAwBC,GACD,OAAO,SAASgB,iBAAiBnB,IAAyB;IACxD,MAAM,EAAEiB,aAAa,EAAER,QAAQ,EAAE,GAAGW,MAAM,GAAGpB;IAE7C,oCAAoC;IACpC,IAAIiB,kBAAkBI,aAAaJ,kBAAkB,MAAM;QACzD,IAAIA,kBAAkB,YAAYA,kBAAkB,QAAQ;YAC1D,MAAM,IAAIK,MACR,CAAC,wBAAwB,EAAEL,cAAc,2CAA2C,CAAC;QAEzF;IACF;IAEA,mDAAmD;IACnD,IAAIR,aAAaY,aAAaZ,aAAa,MAAM;QAC/C,IAAI,OAAOA,aAAa,UAAU;YAChC,MAAM,IAAIa,MAAM,CAAC,uCAAuC,EAAE,OAAOb,UAAU;QAC7E;IACF;IAEA,OAAO;QACL,GAAGW,IAAI;QACPH,eAAeA;QACfR,UAAUA;IACZ;AACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Config as PuckConfig, Data as PuckData } from '@puckeditor/core';
|
|
2
|
-
import { type LayoutDefinition } from '../layouts';
|
|
2
|
+
import { type LayoutDefinition } from '../layouts/index.js';
|
|
3
3
|
export interface PageRendererProps {
|
|
4
4
|
/**
|
|
5
5
|
* Puck data to render
|
|
@@ -47,5 +47,5 @@ export interface PageRendererProps {
|
|
|
47
47
|
* }
|
|
48
48
|
* ```
|
|
49
49
|
*/
|
|
50
|
-
export declare function PageRenderer({ data, config, wrapper: Wrapper, className, layouts, }: PageRendererProps): import("react
|
|
50
|
+
export declare function PageRenderer({ data, config, wrapper: Wrapper, className, layouts, }: PageRendererProps): import("react").JSX.Element;
|
|
51
51
|
//# sourceMappingURL=PageRenderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageRenderer.d.ts","sourceRoot":"","sources":["../../src/render/PageRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE9E,OAAO,EAA6C,KAAK,gBAAgB,EAAsB,MAAM,
|
|
1
|
+
{"version":3,"file":"PageRenderer.d.ts","sourceRoot":"","sources":["../../src/render/PageRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE9E,OAAO,EAA6C,KAAK,gBAAgB,EAAsB,MAAM,qBAAqB,CAAA;AAG1H,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAA;IAEd;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,CAAA;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE,CAAC,CAAA;IAE5D;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;OAGG;IACH,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,MAAmB,EACnB,OAAO,EAAE,OAAO,EAChB,SAAS,EACT,OAAyB,GAC1B,EAAE,iBAAiB,+BAyDnB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Render } from '@puckeditor/core';
|
|
3
|
-
import { baseConfig } from '../config';
|
|
4
|
-
import { LayoutWrapper, getLayout, DEFAULT_LAYOUTS } from '../layouts';
|
|
3
|
+
import { baseConfig } from '../config/index.js';
|
|
4
|
+
import { LayoutWrapper, getLayout, DEFAULT_LAYOUTS } from '../layouts/index.js';
|
|
5
5
|
/**
|
|
6
6
|
* Renders a Puck page using the provided data and configuration
|
|
7
7
|
*
|
|
@@ -22,13 +22,20 @@ import { LayoutWrapper, getLayout, DEFAULT_LAYOUTS } from '../layouts';
|
|
|
22
22
|
* )
|
|
23
23
|
* }
|
|
24
24
|
* ```
|
|
25
|
-
*/
|
|
26
|
-
export function PageRenderer({ data, config = baseConfig, wrapper: Wrapper, className, layouts = DEFAULT_LAYOUTS, }) {
|
|
25
|
+
*/ export function PageRenderer({ data, config = baseConfig, wrapper: Wrapper, className, layouts = DEFAULT_LAYOUTS }) {
|
|
27
26
|
// Handle empty or invalid data
|
|
28
27
|
if (!data || !data.content) {
|
|
29
|
-
return
|
|
28
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
29
|
+
className: className,
|
|
30
|
+
children: /*#__PURE__*/ _jsx("p", {
|
|
31
|
+
children: "No content available"
|
|
32
|
+
})
|
|
33
|
+
});
|
|
30
34
|
}
|
|
31
|
-
const content = _jsx(Render, {
|
|
35
|
+
const content = /*#__PURE__*/ _jsx(Render, {
|
|
36
|
+
config: config,
|
|
37
|
+
data: data
|
|
38
|
+
});
|
|
32
39
|
// Extract root props for page-level settings
|
|
33
40
|
const rootProps = data.root?.props;
|
|
34
41
|
// Build page overrides from root props
|
|
@@ -36,26 +43,36 @@ export function PageRenderer({ data, config = baseConfig, wrapper: Wrapper, clas
|
|
|
36
43
|
showHeader: rootProps?.showHeader,
|
|
37
44
|
showFooter: rootProps?.showFooter,
|
|
38
45
|
background: rootProps?.pageBackground,
|
|
39
|
-
maxWidth: rootProps?.pageMaxWidth
|
|
46
|
+
maxWidth: rootProps?.pageMaxWidth
|
|
40
47
|
};
|
|
41
48
|
// Build the component tree
|
|
42
49
|
let result = content;
|
|
43
50
|
// Custom wrapper takes precedence
|
|
44
51
|
if (Wrapper) {
|
|
45
|
-
result = _jsx(Wrapper, {
|
|
46
|
-
|
|
47
|
-
|
|
52
|
+
result = /*#__PURE__*/ _jsx(Wrapper, {
|
|
53
|
+
children: result
|
|
54
|
+
});
|
|
55
|
+
} else {
|
|
48
56
|
// Apply layout from puck root props
|
|
49
57
|
const pageLayout = rootProps?.pageLayout;
|
|
50
58
|
const layout = pageLayout ? getLayout(layouts, pageLayout) : undefined;
|
|
51
59
|
if (layout) {
|
|
52
|
-
result =
|
|
53
|
-
|
|
54
|
-
|
|
60
|
+
result = /*#__PURE__*/ _jsx(LayoutWrapper, {
|
|
61
|
+
layout: layout,
|
|
62
|
+
className: className,
|
|
63
|
+
overrides: overrides,
|
|
64
|
+
children: result
|
|
65
|
+
});
|
|
66
|
+
} else if (className || overrides.background) {
|
|
55
67
|
// No layout but has background or className - use LayoutWrapper without layout
|
|
56
|
-
result =
|
|
68
|
+
result = /*#__PURE__*/ _jsx(LayoutWrapper, {
|
|
69
|
+
className: className,
|
|
70
|
+
overrides: overrides,
|
|
71
|
+
children: result
|
|
72
|
+
});
|
|
57
73
|
}
|
|
58
74
|
}
|
|
59
75
|
return result;
|
|
60
76
|
}
|
|
77
|
+
|
|
61
78
|
//# sourceMappingURL=PageRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/render/PageRenderer.tsx"],"sourcesContent":["import { Render } from '@puckeditor/core'\nimport type { Config as PuckConfig, Data as PuckData } from '@puckeditor/core'\nimport { baseConfig } from '../config/index.js'\nimport { LayoutWrapper, getLayout, DEFAULT_LAYOUTS, type LayoutDefinition, type PageOverrides } from '../layouts/index.js'\nimport type { BackgroundValue } from '../fields/shared.js'\n\nexport interface PageRendererProps {\n /**\n * Puck data to render\n */\n data: PuckData\n\n /**\n * Puck configuration to use\n * @default baseConfig\n */\n config?: PuckConfig\n\n /**\n * Optional wrapper component (takes precedence over layout)\n */\n wrapper?: React.ComponentType<{ children: React.ReactNode }>\n\n /**\n * Optional className for the wrapper\n */\n className?: string\n\n /**\n * Available layouts for this page\n * @default DEFAULT_LAYOUTS\n */\n layouts?: LayoutDefinition[]\n}\n\n/**\n * Renders a Puck page using the provided data and configuration\n *\n * @example\n * ```tsx\n * import { PageRenderer } from '@delmaredigital/payload-puck/render'\n * import { baseConfig } from '@delmaredigital/payload-puck/config'\n * import { ThemeProvider } from '@delmaredigital/payload-puck/theme'\n *\n * export default async function Page({ params }) {\n * const page = await getPage(params.slug)\n *\n * // Wrap with ThemeProvider if using theming\n * return (\n * <ThemeProvider theme={myTheme}>\n * <PageRenderer data={page.puckData} config={baseConfig} />\n * </ThemeProvider>\n * )\n * }\n * ```\n */\nexport function PageRenderer({\n data,\n config = baseConfig,\n wrapper: Wrapper,\n className,\n layouts = DEFAULT_LAYOUTS,\n}: PageRendererProps) {\n // Handle empty or invalid data\n if (!data || !data.content) {\n return (\n <div className={className}>\n <p>No content available</p>\n </div>\n )\n }\n\n const content = <Render config={config} data={data} />\n\n // Extract root props for page-level settings\n const rootProps = data.root?.props as {\n pageLayout?: string\n showHeader?: 'default' | 'show' | 'hide'\n showFooter?: 'default' | 'show' | 'hide'\n pageBackground?: BackgroundValue | null\n pageMaxWidth?: string\n } | undefined\n\n // Build page overrides from root props\n const overrides: PageOverrides = {\n showHeader: rootProps?.showHeader,\n showFooter: rootProps?.showFooter,\n background: rootProps?.pageBackground,\n maxWidth: rootProps?.pageMaxWidth,\n }\n\n // Build the component tree\n let result = content\n\n // Custom wrapper takes precedence\n if (Wrapper) {\n result = <Wrapper>{result}</Wrapper>\n } else {\n // Apply layout from puck root props\n const pageLayout = rootProps?.pageLayout\n const layout = pageLayout ? getLayout(layouts, pageLayout) : undefined\n\n if (layout) {\n result = (\n <LayoutWrapper layout={layout} className={className} overrides={overrides}>\n {result}\n </LayoutWrapper>\n )\n } else if (className || overrides.background) {\n // No layout but has background or className - use LayoutWrapper without layout\n result = (\n <LayoutWrapper className={className} overrides={overrides}>\n {result}\n </LayoutWrapper>\n )\n }\n }\n\n return result\n}\n"],"names":["Render","baseConfig","LayoutWrapper","getLayout","DEFAULT_LAYOUTS","PageRenderer","data","config","wrapper","Wrapper","className","layouts","content","div","p","rootProps","root","props","overrides","showHeader","showFooter","background","pageBackground","maxWidth","pageMaxWidth","result","pageLayout","layout","undefined"],"mappings":";AAAA,SAASA,MAAM,QAAQ,mBAAkB;AAEzC,SAASC,UAAU,QAAQ,qBAAoB;AAC/C,SAASC,aAAa,EAAEC,SAAS,EAAEC,eAAe,QAAmD,sBAAqB;AAgC1H;;;;;;;;;;;;;;;;;;;;CAoBC,GACD,OAAO,SAASC,aAAa,EAC3BC,IAAI,EACJC,SAASN,UAAU,EACnBO,SAASC,OAAO,EAChBC,SAAS,EACTC,UAAUP,eAAe,EACP;IAClB,+BAA+B;IAC/B,IAAI,CAACE,QAAQ,CAACA,KAAKM,OAAO,EAAE;QAC1B,qBACE,KAACC;YAAIH,WAAWA;sBACd,cAAA,KAACI;0BAAE;;;IAGT;IAEA,MAAMF,wBAAU,KAACZ;QAAOO,QAAQA;QAAQD,MAAMA;;IAE9C,6CAA6C;IAC7C,MAAMS,YAAYT,KAAKU,IAAI,EAAEC;IAQ7B,uCAAuC;IACvC,MAAMC,YAA2B;QAC/BC,YAAYJ,WAAWI;QACvBC,YAAYL,WAAWK;QACvBC,YAAYN,WAAWO;QACvBC,UAAUR,WAAWS;IACvB;IAEA,2BAA2B;IAC3B,IAAIC,SAASb;IAEb,kCAAkC;IAClC,IAAIH,SAAS;QACXgB,uBAAS,KAAChB;sBAASgB;;IACrB,OAAO;QACL,oCAAoC;QACpC,MAAMC,aAAaX,WAAWW;QAC9B,MAAMC,SAASD,aAAavB,UAAUQ,SAASe,cAAcE;QAE7D,IAAID,QAAQ;YACVF,uBACE,KAACvB;gBAAcyB,QAAQA;gBAAQjB,WAAWA;gBAAWQ,WAAWA;0BAC7DO;;QAGP,OAAO,IAAIf,aAAaQ,UAAUG,UAAU,EAAE;YAC5C,+EAA+E;YAC/EI,uBACE,KAACvB;gBAAcQ,WAAWA;gBAAWQ,WAAWA;0BAC7CO;;QAGP;IACF;IAEA,OAAOA;AACT"}
|
|
@@ -62,5 +62,5 @@ export interface PuckEditorProps {
|
|
|
62
62
|
* }
|
|
63
63
|
* ```
|
|
64
64
|
*/
|
|
65
|
-
export declare function PuckEditor({ config, initialData, onSave, onChange, publishUrl, headerActions, showPublishButton, }: PuckEditorProps): import("react
|
|
65
|
+
export declare function PuckEditor({ config, initialData, onSave, onChange, publishUrl, headerActions, showPublishButton, }: PuckEditorProps): import("react").JSX.Element;
|
|
66
66
|
//# sourceMappingURL=PuckEditor.client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PuckEditor.client.d.ts","sourceRoot":"","sources":["../../src/render/PuckEditor.client.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAQ,KAAK,MAAM,IAAI,UAAU,EAAE,KAAK,IAAI,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEzF,OAAO,2BAA2B,CAAA;AAElC,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,EAAE,UAAU,CAAA;IAElB;;OAEG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAA;IAEtB;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEjD;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;IAEnC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAE/B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,WAAW,EACX,MAAM,EACN,QAAQ,EACR,UAAU,EACV,aAAa,EACb,iBAAwB,GACzB,EAAE,eAAe
|
|
1
|
+
{"version":3,"file":"PuckEditor.client.d.ts","sourceRoot":"","sources":["../../src/render/PuckEditor.client.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAQ,KAAK,MAAM,IAAI,UAAU,EAAE,KAAK,IAAI,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEzF,OAAO,2BAA2B,CAAA;AAElC,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,EAAE,UAAU,CAAA;IAElB;;OAEG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAA;IAEtB;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEjD;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;IAEnC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAE/B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,WAAW,EACX,MAAM,EACN,QAAQ,EACR,UAAU,EACV,aAAa,EACb,iBAAwB,GACzB,EAAE,eAAe,+BAgDjB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsx as _jsx,
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { Puck } from '@puckeditor/core';
|
|
4
4
|
import { useCallback, useState } from 'react';
|
|
5
5
|
import '@puckeditor/core/puck.css';
|
|
@@ -33,34 +33,51 @@ import '@puckeditor/core/puck.css';
|
|
|
33
33
|
* )
|
|
34
34
|
* }
|
|
35
35
|
* ```
|
|
36
|
-
*/
|
|
37
|
-
export function PuckEditor({ config, initialData, onSave, onChange, publishUrl, headerActions, showPublishButton = true, }) {
|
|
36
|
+
*/ export function PuckEditor({ config, initialData, onSave, onChange, publishUrl, headerActions, showPublishButton = true }) {
|
|
38
37
|
const [isSaving, setIsSaving] = useState(false);
|
|
39
|
-
const handlePublish = useCallback(async (data)
|
|
40
|
-
if (!onSave)
|
|
41
|
-
return;
|
|
38
|
+
const handlePublish = useCallback(async (data)=>{
|
|
39
|
+
if (!onSave) return;
|
|
42
40
|
setIsSaving(true);
|
|
43
41
|
try {
|
|
44
42
|
await onSave(data);
|
|
45
43
|
if (publishUrl) {
|
|
46
44
|
window.location.href = publishUrl;
|
|
47
45
|
}
|
|
48
|
-
}
|
|
49
|
-
catch (error) {
|
|
46
|
+
} catch (error) {
|
|
50
47
|
console.error('Error saving page:', error);
|
|
51
|
-
}
|
|
52
|
-
finally {
|
|
48
|
+
} finally{
|
|
53
49
|
setIsSaving(false);
|
|
54
50
|
}
|
|
55
|
-
}, [
|
|
51
|
+
}, [
|
|
52
|
+
onSave,
|
|
53
|
+
publishUrl
|
|
54
|
+
]);
|
|
56
55
|
// Default empty data
|
|
57
56
|
const defaultData = {
|
|
58
|
-
root: {
|
|
57
|
+
root: {
|
|
58
|
+
props: {}
|
|
59
|
+
},
|
|
59
60
|
content: [],
|
|
60
|
-
zones: {}
|
|
61
|
+
zones: {}
|
|
61
62
|
};
|
|
62
|
-
return
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
return /*#__PURE__*/ _jsx(Puck, {
|
|
64
|
+
config: config,
|
|
65
|
+
data: initialData || defaultData,
|
|
66
|
+
onPublish: showPublishButton ? handlePublish : undefined,
|
|
67
|
+
onChange: onChange,
|
|
68
|
+
overrides: {
|
|
69
|
+
headerActions: ({ children })=>/*#__PURE__*/ _jsxs(_Fragment, {
|
|
70
|
+
children: [
|
|
71
|
+
isSaving && /*#__PURE__*/ _jsx("span", {
|
|
72
|
+
className: "text-sm text-gray-500 mr-4",
|
|
73
|
+
children: "Saving..."
|
|
74
|
+
}),
|
|
75
|
+
headerActions,
|
|
76
|
+
children
|
|
77
|
+
]
|
|
78
|
+
})
|
|
79
|
+
}
|
|
80
|
+
});
|
|
65
81
|
}
|
|
82
|
+
|
|
66
83
|
//# sourceMappingURL=PuckEditor.client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/render/PuckEditor.client.tsx"],"sourcesContent":["'use client'\n\nimport { Puck, type Config as PuckConfig, type Data as PuckData } from '@puckeditor/core'\nimport { useCallback, useState } from 'react'\nimport '@puckeditor/core/puck.css'\n\nexport interface PuckEditorProps {\n /**\n * Puck configuration with components and settings\n */\n config: PuckConfig\n\n /**\n * Initial Puck data to load\n */\n initialData?: PuckData\n\n /**\n * Callback when data is saved\n */\n onSave?: (data: PuckData) => void | Promise<void>\n\n /**\n * Callback when data changes\n */\n onChange?: (data: PuckData) => void\n\n /**\n * URL to redirect to after publishing\n */\n publishUrl?: string\n\n /**\n * Header actions to render in the editor header\n */\n headerActions?: React.ReactNode\n\n /**\n * Whether to show the publish button\n * @default true\n */\n showPublishButton?: boolean\n}\n\n/**\n * Client-side Puck visual editor component\n *\n * This component wraps the Puck editor for use in Next.js applications.\n * It must be used in a client component ('use client').\n *\n * @example\n * ```tsx\n * 'use client'\n *\n * import { PuckEditor } from '@delmaredigital/payload-puck/render'\n * import { editorConfig } from '@delmaredigital/payload-puck/config/editor'\n *\n * export function PageEditor({ page }) {\n * const handleSave = async (data) => {\n * await fetch(`/api/pages/${page.id}`, {\n * method: 'PATCH',\n * body: JSON.stringify({ puckData: data }),\n * })\n * }\n *\n * return (\n * <PuckEditor\n * config={editorConfig}\n * initialData={page.puckData}\n * onSave={handleSave}\n * />\n * )\n * }\n * ```\n */\nexport function PuckEditor({\n config,\n initialData,\n onSave,\n onChange,\n publishUrl,\n headerActions,\n showPublishButton = true,\n}: PuckEditorProps) {\n const [isSaving, setIsSaving] = useState(false)\n\n const handlePublish = useCallback(\n async (data: PuckData) => {\n if (!onSave) return\n\n setIsSaving(true)\n try {\n await onSave(data)\n if (publishUrl) {\n window.location.href = publishUrl\n }\n } catch (error) {\n console.error('Error saving page:', error)\n } finally {\n setIsSaving(false)\n }\n },\n [onSave, publishUrl]\n )\n\n // Default empty data\n const defaultData: PuckData = {\n root: { props: {} },\n content: [],\n zones: {},\n }\n\n return (\n <Puck\n config={config}\n data={initialData || defaultData}\n onPublish={showPublishButton ? handlePublish : undefined}\n onChange={onChange}\n overrides={{\n headerActions: ({ children }) => (\n <>\n {isSaving && (\n <span className=\"text-sm text-gray-500 mr-4\">Saving...</span>\n )}\n {headerActions}\n {children}\n </>\n ),\n }}\n />\n )\n}\n"],"names":["Puck","useCallback","useState","PuckEditor","config","initialData","onSave","onChange","publishUrl","headerActions","showPublishButton","isSaving","setIsSaving","handlePublish","data","window","location","href","error","console","defaultData","root","props","content","zones","onPublish","undefined","overrides","children","span","className"],"mappings":"AAAA;;AAEA,SAASA,IAAI,QAA0D,mBAAkB;AACzF,SAASC,WAAW,EAAEC,QAAQ,QAAQ,QAAO;AAC7C,OAAO,4BAA2B;AAwClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BC,GACD,OAAO,SAASC,WAAW,EACzBC,MAAM,EACNC,WAAW,EACXC,MAAM,EACNC,QAAQ,EACRC,UAAU,EACVC,aAAa,EACbC,oBAAoB,IAAI,EACR;IAChB,MAAM,CAACC,UAAUC,YAAY,GAAGV,SAAS;IAEzC,MAAMW,gBAAgBZ,YACpB,OAAOa;QACL,IAAI,CAACR,QAAQ;QAEbM,YAAY;QACZ,IAAI;YACF,MAAMN,OAAOQ;YACb,IAAIN,YAAY;gBACdO,OAAOC,QAAQ,CAACC,IAAI,GAAGT;YACzB;QACF,EAAE,OAAOU,OAAO;YACdC,QAAQD,KAAK,CAAC,sBAAsBA;QACtC,SAAU;YACRN,YAAY;QACd;IACF,GACA;QAACN;QAAQE;KAAW;IAGtB,qBAAqB;IACrB,MAAMY,cAAwB;QAC5BC,MAAM;YAAEC,OAAO,CAAC;QAAE;QAClBC,SAAS,EAAE;QACXC,OAAO,CAAC;IACV;IAEA,qBACE,KAACxB;QACCI,QAAQA;QACRU,MAAMT,eAAee;QACrBK,WAAWf,oBAAoBG,gBAAgBa;QAC/CnB,UAAUA;QACVoB,WAAW;YACTlB,eAAe,CAAC,EAAEmB,QAAQ,EAAE,iBAC1B;;wBACGjB,0BACC,KAACkB;4BAAKC,WAAU;sCAA6B;;wBAE9CrB;wBACAmB;;;QAGP;;AAGN"}
|
package/dist/render/index.d.ts
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* This module only exports server-safe components.
|
|
5
5
|
* For the client-side editor, use '@delmaredigital/payload-puck/editor'
|
|
6
6
|
*/
|
|
7
|
-
export { PageRenderer } from './PageRenderer';
|
|
8
|
-
export type { PageRendererProps } from './PageRenderer';
|
|
9
|
-
export { HybridPageRenderer, toHybridPageData } from './HybridPageRenderer';
|
|
10
|
-
export type { HybridPageRendererProps, HybridPageData, HybridPageDataInput, } from './HybridPageRenderer';
|
|
11
|
-
export { createRenderLayouts } from '../layouts/utils';
|
|
7
|
+
export { PageRenderer } from './PageRenderer.js';
|
|
8
|
+
export type { PageRendererProps } from './PageRenderer.js';
|
|
9
|
+
export { HybridPageRenderer, toHybridPageData } from './HybridPageRenderer.js';
|
|
10
|
+
export type { HybridPageRendererProps, HybridPageData, HybridPageDataInput, } from './HybridPageRenderer.js';
|
|
11
|
+
export { createRenderLayouts } from '../layouts/utils.js';
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/render/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/render/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC9E,YAAY,EACV,uBAAuB,EACvB,cAAc,EACd,mBAAmB,GACpB,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA"}
|
package/dist/render/index.js
CHANGED
|
@@ -3,11 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* This module only exports server-safe components.
|
|
5
5
|
* For the client-side editor, use '@delmaredigital/payload-puck/editor'
|
|
6
|
-
*/
|
|
7
|
-
export {
|
|
8
|
-
export { HybridPageRenderer, toHybridPageData } from './HybridPageRenderer';
|
|
6
|
+
*/ export { PageRenderer } from './PageRenderer.js';
|
|
7
|
+
export { HybridPageRenderer, toHybridPageData } from './HybridPageRenderer.js';
|
|
9
8
|
// Re-export createRenderLayouts for convenience (commonly used with renderers)
|
|
10
|
-
export { createRenderLayouts } from '../layouts/utils';
|
|
11
|
-
//
|
|
12
|
-
|
|
9
|
+
export { createRenderLayouts } from '../layouts/utils.js'; // Note: PuckEditor has been moved to '@delmaredigital/payload-puck/editor'
|
|
10
|
+
// to avoid RSC import issues with the client-only Puck component
|
|
11
|
+
|
|
13
12
|
//# sourceMappingURL=index.js.map
|
package/dist/render/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/render/index.ts"],"sourcesContent":["/**\n * Rendering components for Puck pages\n *\n * This module only exports server-safe components.\n * For the client-side editor, use '@delmaredigital/payload-puck/editor'\n */\n\nexport { PageRenderer } from './PageRenderer.js'\nexport type { PageRendererProps } from './PageRenderer.js'\n\nexport { HybridPageRenderer, toHybridPageData } from './HybridPageRenderer.js'\nexport type {\n HybridPageRendererProps,\n HybridPageData,\n HybridPageDataInput,\n} from './HybridPageRenderer.js'\n\n// Re-export createRenderLayouts for convenience (commonly used with renderers)\nexport { createRenderLayouts } from '../layouts/utils.js'\n\n// Note: PuckEditor has been moved to '@delmaredigital/payload-puck/editor'\n// to avoid RSC import issues with the client-only Puck component\n"],"names":["PageRenderer","HybridPageRenderer","toHybridPageData","createRenderLayouts"],"mappings":"AAAA;;;;;CAKC,GAED,SAASA,YAAY,QAAQ,oBAAmB;AAGhD,SAASC,kBAAkB,EAAEC,gBAAgB,QAAQ,0BAAyB;AAO9E,+EAA+E;AAC/E,SAASC,mBAAmB,QAAQ,sBAAqB,CAEzD,2EAA2E;CAC3E,iEAAiE"}
|