@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
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import { DEFAULT_LAYOUTS } from '../../layouts/defaults';
|
|
2
|
-
import { puckDataField, createEditorVersionField, createPageLayoutField, isHomepageField, seoFieldGroup, conversionFieldGroup
|
|
3
|
-
import { createIsHomepageUniqueHook } from '../hooks/isHomepageUnique';
|
|
1
|
+
import { DEFAULT_LAYOUTS } from '../../layouts/defaults.js';
|
|
2
|
+
import { puckDataField, createEditorVersionField, createPageLayoutField, isHomepageField, seoFieldGroup, conversionFieldGroup } from '../fields/index.js';
|
|
3
|
+
import { createIsHomepageUniqueHook } from '../hooks/isHomepageUnique.js';
|
|
4
4
|
/**
|
|
5
5
|
* Default access function - allows all
|
|
6
|
-
*/
|
|
7
|
-
const defaultAccess = () => true;
|
|
6
|
+
*/ const defaultAccess = ()=>true;
|
|
8
7
|
/**
|
|
9
8
|
* Generates a Pages collection configuration for Puck
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
const { collectionOverrides = {}, access = {}, layouts = DEFAULT_LAYOUTS, additionalFields = [], } = options;
|
|
9
|
+
*/ export function generatePagesCollection(slug, options) {
|
|
10
|
+
const { collectionOverrides = {}, access = {}, layouts = DEFAULT_LAYOUTS, additionalFields = [] } = options;
|
|
13
11
|
const baseFields = [
|
|
14
12
|
// Core Fields (title and slug with duplication hooks - unique to collection generation)
|
|
15
13
|
{
|
|
@@ -18,9 +16,8 @@ export function generatePagesCollection(slug, options) {
|
|
|
18
16
|
required: true,
|
|
19
17
|
hooks: {
|
|
20
18
|
beforeDuplicate: [
|
|
21
|
-
({ value })
|
|
22
|
-
if (!value)
|
|
23
|
-
return value;
|
|
19
|
+
({ value })=>{
|
|
20
|
+
if (!value) return value;
|
|
24
21
|
const copyMatch = value.match(/^(.+) \(Copy(?: (\d+))?\)$/);
|
|
25
22
|
if (copyMatch) {
|
|
26
23
|
const baseName = copyMatch[1];
|
|
@@ -28,9 +25,9 @@ export function generatePagesCollection(slug, options) {
|
|
|
28
25
|
return `${baseName} (Copy ${copyNum})`;
|
|
29
26
|
}
|
|
30
27
|
return `${value} (Copy)`;
|
|
31
|
-
}
|
|
32
|
-
]
|
|
33
|
-
}
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
34
31
|
},
|
|
35
32
|
{
|
|
36
33
|
name: 'slug',
|
|
@@ -40,26 +37,20 @@ export function generatePagesCollection(slug, options) {
|
|
|
40
37
|
index: true,
|
|
41
38
|
admin: {
|
|
42
39
|
position: 'sidebar',
|
|
43
|
-
description: 'URL path for this page (auto-generated from title)'
|
|
40
|
+
description: 'URL path for this page (auto-generated from title)'
|
|
44
41
|
},
|
|
45
42
|
hooks: {
|
|
46
43
|
beforeValidate: [
|
|
47
|
-
({ data, value })
|
|
44
|
+
({ data, value })=>{
|
|
48
45
|
if (data && !value && data.title) {
|
|
49
|
-
return data.title
|
|
50
|
-
.toLowerCase()
|
|
51
|
-
.replace(/[^\w\s-]/g, '')
|
|
52
|
-
.replace(/\s+/g, '-')
|
|
53
|
-
.replace(/-+/g, '-')
|
|
54
|
-
.trim();
|
|
46
|
+
return data.title.toLowerCase().replace(/[^\w\s-]/g, '').replace(/\s+/g, '-').replace(/-+/g, '-').trim();
|
|
55
47
|
}
|
|
56
48
|
return value;
|
|
57
|
-
}
|
|
49
|
+
}
|
|
58
50
|
],
|
|
59
51
|
beforeDuplicate: [
|
|
60
|
-
({ value })
|
|
61
|
-
if (!value)
|
|
62
|
-
return value;
|
|
52
|
+
({ value })=>{
|
|
53
|
+
if (!value) return value;
|
|
63
54
|
const copyMatch = value.match(/^(.+)-copy(?:-(\d+))?$/);
|
|
64
55
|
if (copyMatch) {
|
|
65
56
|
const baseName = copyMatch[1];
|
|
@@ -67,9 +58,9 @@ export function generatePagesCollection(slug, options) {
|
|
|
67
58
|
return `${baseName}-copy-${copyNum}`;
|
|
68
59
|
}
|
|
69
60
|
return `${value}-copy`;
|
|
70
|
-
}
|
|
71
|
-
]
|
|
72
|
-
}
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
}
|
|
73
64
|
},
|
|
74
65
|
// Page Layout
|
|
75
66
|
createPageLayoutField(layouts, true),
|
|
@@ -84,28 +75,33 @@ export function generatePagesCollection(slug, options) {
|
|
|
84
75
|
// Conversion Tracking Fields
|
|
85
76
|
conversionFieldGroup,
|
|
86
77
|
// Additional fields from options
|
|
87
|
-
...additionalFields
|
|
78
|
+
...additionalFields
|
|
88
79
|
];
|
|
89
80
|
return {
|
|
90
81
|
slug,
|
|
91
82
|
admin: {
|
|
92
83
|
useAsTitle: 'title',
|
|
93
84
|
group: 'Content',
|
|
94
|
-
defaultColumns: [
|
|
95
|
-
|
|
85
|
+
defaultColumns: [
|
|
86
|
+
'title',
|
|
87
|
+
'slug',
|
|
88
|
+
'_status',
|
|
89
|
+
'updatedAt'
|
|
90
|
+
],
|
|
91
|
+
...collectionOverrides.admin ?? {}
|
|
96
92
|
},
|
|
97
93
|
access: {
|
|
98
94
|
read: access.read ?? defaultAccess,
|
|
99
95
|
create: access.create ?? defaultAccess,
|
|
100
96
|
update: access.update ?? defaultAccess,
|
|
101
97
|
delete: access.delete ?? defaultAccess,
|
|
102
|
-
...
|
|
98
|
+
...collectionOverrides.access ?? {}
|
|
103
99
|
},
|
|
104
100
|
hooks: {
|
|
105
101
|
// Properly merge hook arrays - don't let spread operator overwrite
|
|
106
102
|
beforeChange: [
|
|
107
103
|
createIsHomepageUniqueHook(),
|
|
108
|
-
...
|
|
104
|
+
...collectionOverrides.hooks?.beforeChange ?? []
|
|
109
105
|
],
|
|
110
106
|
beforeValidate: collectionOverrides.hooks?.beforeValidate,
|
|
111
107
|
beforeDelete: collectionOverrides.hooks?.beforeDelete,
|
|
@@ -118,20 +114,27 @@ export function generatePagesCollection(slug, options) {
|
|
|
118
114
|
afterLogin: collectionOverrides.hooks?.afterLogin,
|
|
119
115
|
afterLogout: collectionOverrides.hooks?.afterLogout,
|
|
120
116
|
afterRefresh: collectionOverrides.hooks?.afterRefresh,
|
|
121
|
-
afterMe: collectionOverrides.hooks?.afterMe
|
|
117
|
+
afterMe: collectionOverrides.hooks?.afterMe
|
|
118
|
+
},
|
|
119
|
+
versions: typeof collectionOverrides.versions === 'object' ? {
|
|
120
|
+
drafts: true,
|
|
121
|
+
...collectionOverrides.versions
|
|
122
|
+
} : {
|
|
123
|
+
drafts: true
|
|
122
124
|
},
|
|
123
|
-
versions: typeof collectionOverrides.versions === 'object'
|
|
124
|
-
? { drafts: true, ...collectionOverrides.versions }
|
|
125
|
-
: { drafts: true },
|
|
126
125
|
fields: baseFields,
|
|
127
126
|
...collectionOverrides,
|
|
128
127
|
// Ensure fields aren't overwritten by collectionOverrides
|
|
129
|
-
...
|
|
130
|
-
fields: [
|
|
131
|
-
|
|
128
|
+
...collectionOverrides.fields && {
|
|
129
|
+
fields: [
|
|
130
|
+
...baseFields,
|
|
131
|
+
...collectionOverrides.fields
|
|
132
|
+
]
|
|
133
|
+
}
|
|
132
134
|
};
|
|
133
135
|
}
|
|
134
|
-
// Note: puckDataField is now exported from '../fields' for hybrid collection integration
|
|
136
|
+
// Note: puckDataField is now exported from '../fields/index.js' for hybrid collection integration
|
|
135
137
|
// Re-export for backwards compatibility
|
|
136
|
-
export { puckDataField } from '../fields';
|
|
138
|
+
export { puckDataField } from '../fields/index.js';
|
|
139
|
+
|
|
137
140
|
//# sourceMappingURL=Pages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/plugin/collections/Pages.ts"],"sourcesContent":["import type { Access, CollectionConfig, Field } from 'payload'\nimport type { PuckPluginOptions } from '../../types/index.js'\nimport { DEFAULT_LAYOUTS } from '../../layouts/defaults.js'\nimport { layoutsToPayloadOptions } from '../../layouts/utils.js'\nimport {\n puckDataField,\n createEditorVersionField,\n createPageLayoutField,\n isHomepageField,\n seoFieldGroup,\n conversionFieldGroup,\n} from '../fields/index.js'\nimport { createIsHomepageUniqueHook } from '../hooks/isHomepageUnique.js'\n\n/**\n * Default access function - allows all\n */\nconst defaultAccess: Access = () => true\n\n/**\n * Generates a Pages collection configuration for Puck\n */\nexport function generatePagesCollection(\n slug: string,\n options: PuckPluginOptions\n): CollectionConfig {\n const {\n collectionOverrides = {},\n access = {},\n layouts = DEFAULT_LAYOUTS,\n additionalFields = [],\n } = options\n\n const baseFields: Field[] = [\n // Core Fields (title and slug with duplication hooks - unique to collection generation)\n {\n name: 'title',\n type: 'text',\n required: true,\n hooks: {\n beforeDuplicate: [\n ({ value }) => {\n if (!value) return value\n const copyMatch = value.match(/^(.+) \\(Copy(?: (\\d+))?\\)$/)\n if (copyMatch) {\n const baseName = copyMatch[1]\n const copyNum = copyMatch[2] ? parseInt(copyMatch[2], 10) + 1 : 2\n return `${baseName} (Copy ${copyNum})`\n }\n return `${value} (Copy)`\n },\n ],\n },\n },\n {\n name: 'slug',\n type: 'text',\n required: true,\n unique: true,\n index: true,\n admin: {\n position: 'sidebar',\n description: 'URL path for this page (auto-generated from title)',\n },\n hooks: {\n beforeValidate: [\n ({ data, value }) => {\n if (data && !value && data.title) {\n return (data.title as string)\n .toLowerCase()\n .replace(/[^\\w\\s-]/g, '')\n .replace(/\\s+/g, '-')\n .replace(/-+/g, '-')\n .trim()\n }\n return value\n },\n ],\n beforeDuplicate: [\n ({ value }) => {\n if (!value) return value\n const copyMatch = value.match(/^(.+)-copy(?:-(\\d+))?$/)\n if (copyMatch) {\n const baseName = copyMatch[1]\n const copyNum = copyMatch[2] ? parseInt(copyMatch[2], 10) + 1 : 2\n return `${baseName}-copy-${copyNum}`\n }\n return `${value}-copy`\n },\n ],\n },\n },\n\n // Page Layout\n createPageLayoutField(layouts, true),\n\n // Editor Version\n createEditorVersionField('puck', true),\n\n // Homepage Flag\n isHomepageField,\n\n // Puck Data (hidden - managed via visual editor)\n puckDataField,\n\n // SEO Fields\n seoFieldGroup,\n\n // Conversion Tracking Fields\n conversionFieldGroup,\n\n // Additional fields from options\n ...additionalFields,\n ]\n\n return {\n slug,\n admin: {\n useAsTitle: 'title',\n group: 'Content',\n defaultColumns: ['title', 'slug', '_status', 'updatedAt'],\n ...(collectionOverrides.admin ?? {}),\n },\n access: {\n read: access.read ?? defaultAccess,\n create: access.create ?? defaultAccess,\n update: access.update ?? defaultAccess,\n delete: access.delete ?? defaultAccess,\n ...(collectionOverrides.access ?? {}),\n },\n hooks: {\n // Properly merge hook arrays - don't let spread operator overwrite\n beforeChange: [\n createIsHomepageUniqueHook(),\n ...(collectionOverrides.hooks?.beforeChange ?? []),\n ],\n beforeValidate: collectionOverrides.hooks?.beforeValidate,\n beforeDelete: collectionOverrides.hooks?.beforeDelete,\n beforeRead: collectionOverrides.hooks?.beforeRead,\n afterChange: collectionOverrides.hooks?.afterChange,\n afterDelete: collectionOverrides.hooks?.afterDelete,\n afterRead: collectionOverrides.hooks?.afterRead,\n afterOperation: collectionOverrides.hooks?.afterOperation,\n afterForgotPassword: collectionOverrides.hooks?.afterForgotPassword,\n afterLogin: collectionOverrides.hooks?.afterLogin,\n afterLogout: collectionOverrides.hooks?.afterLogout,\n afterRefresh: collectionOverrides.hooks?.afterRefresh,\n afterMe: collectionOverrides.hooks?.afterMe,\n },\n versions:\n typeof collectionOverrides.versions === 'object'\n ? { drafts: true, ...collectionOverrides.versions }\n : { drafts: true },\n fields: baseFields,\n ...collectionOverrides,\n // Ensure fields aren't overwritten by collectionOverrides\n ...(collectionOverrides.fields && {\n fields: [...baseFields, ...collectionOverrides.fields],\n }),\n }\n}\n\n// Note: puckDataField is now exported from '../fields/index.js' for hybrid collection integration\n// Re-export for backwards compatibility\nexport { puckDataField } from '../fields/index.js'\n"],"names":["DEFAULT_LAYOUTS","puckDataField","createEditorVersionField","createPageLayoutField","isHomepageField","seoFieldGroup","conversionFieldGroup","createIsHomepageUniqueHook","defaultAccess","generatePagesCollection","slug","options","collectionOverrides","access","layouts","additionalFields","baseFields","name","type","required","hooks","beforeDuplicate","value","copyMatch","match","baseName","copyNum","parseInt","unique","index","admin","position","description","beforeValidate","data","title","toLowerCase","replace","trim","useAsTitle","group","defaultColumns","read","create","update","delete","beforeChange","beforeDelete","beforeRead","afterChange","afterDelete","afterRead","afterOperation","afterForgotPassword","afterLogin","afterLogout","afterRefresh","afterMe","versions","drafts","fields"],"mappings":"AAEA,SAASA,eAAe,QAAQ,4BAA2B;AAE3D,SACEC,aAAa,EACbC,wBAAwB,EACxBC,qBAAqB,EACrBC,eAAe,EACfC,aAAa,EACbC,oBAAoB,QACf,qBAAoB;AAC3B,SAASC,0BAA0B,QAAQ,+BAA8B;AAEzE;;CAEC,GACD,MAAMC,gBAAwB,IAAM;AAEpC;;CAEC,GACD,OAAO,SAASC,wBACdC,IAAY,EACZC,OAA0B;IAE1B,MAAM,EACJC,sBAAsB,CAAC,CAAC,EACxBC,SAAS,CAAC,CAAC,EACXC,UAAUd,eAAe,EACzBe,mBAAmB,EAAE,EACtB,GAAGJ;IAEJ,MAAMK,aAAsB;QAC1B,wFAAwF;QACxF;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;YACVC,OAAO;gBACLC,iBAAiB;oBACf,CAAC,EAAEC,KAAK,EAAE;wBACR,IAAI,CAACA,OAAO,OAAOA;wBACnB,MAAMC,YAAYD,MAAME,KAAK,CAAC;wBAC9B,IAAID,WAAW;4BACb,MAAME,WAAWF,SAAS,CAAC,EAAE;4BAC7B,MAAMG,UAAUH,SAAS,CAAC,EAAE,GAAGI,SAASJ,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI;4BAChE,OAAO,GAAGE,SAAS,OAAO,EAAEC,QAAQ,CAAC,CAAC;wBACxC;wBACA,OAAO,GAAGJ,MAAM,OAAO,CAAC;oBAC1B;iBACD;YACH;QACF;QACA;YACEL,MAAM;YACNC,MAAM;YACNC,UAAU;YACVS,QAAQ;YACRC,OAAO;YACPC,OAAO;gBACLC,UAAU;gBACVC,aAAa;YACf;YACAZ,OAAO;gBACLa,gBAAgB;oBACd,CAAC,EAAEC,IAAI,EAAEZ,KAAK,EAAE;wBACd,IAAIY,QAAQ,CAACZ,SAASY,KAAKC,KAAK,EAAE;4BAChC,OAAO,AAACD,KAAKC,KAAK,CACfC,WAAW,GACXC,OAAO,CAAC,aAAa,IACrBA,OAAO,CAAC,QAAQ,KAChBA,OAAO,CAAC,OAAO,KACfC,IAAI;wBACT;wBACA,OAAOhB;oBACT;iBACD;gBACDD,iBAAiB;oBACf,CAAC,EAAEC,KAAK,EAAE;wBACR,IAAI,CAACA,OAAO,OAAOA;wBACnB,MAAMC,YAAYD,MAAME,KAAK,CAAC;wBAC9B,IAAID,WAAW;4BACb,MAAME,WAAWF,SAAS,CAAC,EAAE;4BAC7B,MAAMG,UAAUH,SAAS,CAAC,EAAE,GAAGI,SAASJ,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI;4BAChE,OAAO,GAAGE,SAAS,MAAM,EAAEC,SAAS;wBACtC;wBACA,OAAO,GAAGJ,MAAM,KAAK,CAAC;oBACxB;iBACD;YACH;QACF;QAEA,cAAc;QACdnB,sBAAsBW,SAAS;QAE/B,iBAAiB;QACjBZ,yBAAyB,QAAQ;QAEjC,gBAAgB;QAChBE;QAEA,iDAAiD;QACjDH;QAEA,aAAa;QACbI;QAEA,6BAA6B;QAC7BC;QAEA,iCAAiC;WAC9BS;KACJ;IAED,OAAO;QACLL;QACAoB,OAAO;YACLS,YAAY;YACZC,OAAO;YACPC,gBAAgB;gBAAC;gBAAS;gBAAQ;gBAAW;aAAY;YACzD,GAAI7B,oBAAoBkB,KAAK,IAAI,CAAC,CAAC;QACrC;QACAjB,QAAQ;YACN6B,MAAM7B,OAAO6B,IAAI,IAAIlC;YACrBmC,QAAQ9B,OAAO8B,MAAM,IAAInC;YACzBoC,QAAQ/B,OAAO+B,MAAM,IAAIpC;YACzBqC,QAAQhC,OAAOgC,MAAM,IAAIrC;YACzB,GAAII,oBAAoBC,MAAM,IAAI,CAAC,CAAC;QACtC;QACAO,OAAO;YACL,mEAAmE;YACnE0B,cAAc;gBACZvC;mBACIK,oBAAoBQ,KAAK,EAAE0B,gBAAgB,EAAE;aAClD;YACDb,gBAAgBrB,oBAAoBQ,KAAK,EAAEa;YAC3Cc,cAAcnC,oBAAoBQ,KAAK,EAAE2B;YACzCC,YAAYpC,oBAAoBQ,KAAK,EAAE4B;YACvCC,aAAarC,oBAAoBQ,KAAK,EAAE6B;YACxCC,aAAatC,oBAAoBQ,KAAK,EAAE8B;YACxCC,WAAWvC,oBAAoBQ,KAAK,EAAE+B;YACtCC,gBAAgBxC,oBAAoBQ,KAAK,EAAEgC;YAC3CC,qBAAqBzC,oBAAoBQ,KAAK,EAAEiC;YAChDC,YAAY1C,oBAAoBQ,KAAK,EAAEkC;YACvCC,aAAa3C,oBAAoBQ,KAAK,EAAEmC;YACxCC,cAAc5C,oBAAoBQ,KAAK,EAAEoC;YACzCC,SAAS7C,oBAAoBQ,KAAK,EAAEqC;QACtC;QACAC,UACE,OAAO9C,oBAAoB8C,QAAQ,KAAK,WACpC;YAAEC,QAAQ;YAAM,GAAG/C,oBAAoB8C,QAAQ;QAAC,IAChD;YAAEC,QAAQ;QAAK;QACrBC,QAAQ5C;QACR,GAAGJ,mBAAmB;QACtB,0DAA0D;QAC1D,GAAIA,oBAAoBgD,MAAM,IAAI;YAChCA,QAAQ;mBAAI5C;mBAAeJ,oBAAoBgD,MAAM;aAAC;QACxD,CAAC;IACH;AACF;AAEA,kGAAkG;AAClG,wCAAwC;AACxC,SAAS3D,aAAa,QAAQ,qBAAoB"}
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
* ```
|
|
32
32
|
*/
|
|
33
33
|
import type { CollectionConfig, Field } from 'payload';
|
|
34
|
-
import type { GetPuckFieldsOptions, GetPuckCollectionConfigOptions, ConversionTypeOption } from './types';
|
|
35
|
-
import type { LayoutDefinition } from '../../layouts/types';
|
|
34
|
+
import type { GetPuckFieldsOptions, GetPuckCollectionConfigOptions, ConversionTypeOption } from './types.js';
|
|
35
|
+
import type { LayoutDefinition } from '../../layouts/types.js';
|
|
36
36
|
/**
|
|
37
37
|
* Puck data field - stores the visual editor JSON data.
|
|
38
38
|
* This field is always hidden in the admin UI as it's managed via the visual editor.
|
|
@@ -189,5 +189,5 @@ export declare function getPuckCollectionConfig(options?: GetPuckCollectionConfi
|
|
|
189
189
|
fields: Field[];
|
|
190
190
|
hooks: CollectionConfig['hooks'];
|
|
191
191
|
};
|
|
192
|
-
export type { GetPuckFieldsOptions, GetPuckCollectionConfigOptions, ConversionTypeOption } from './types';
|
|
192
|
+
export type { GetPuckFieldsOptions, GetPuckCollectionConfigOptions, ConversionTypeOption } from './types.js';
|
|
193
193
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAE5G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAQ9D;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,KAO3B,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,GAAE,QAAQ,GAAG,MAAe,EACxC,OAAO,GAAE,OAAc,EACvB,qBAAqB,GAAE,MAAiB,GACvC,KAAK,CA6CP;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAA8C,CAAA;AAE/E;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,gBAAgB,EAAoB,EAC7C,OAAO,GAAE,OAAc,GACtB,KAAK,CAYP;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAA+B,CAAA;AAE7D;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAQ7B,CAAA;AAMD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,KA6D3B,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,oBAAoB,EAQ1D,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,0BAA0B,CACxC,eAAe,GAAE,oBAAoB,EAA6B,EAClE,OAAO,GAAE,OAAc,GACtB,KAAK,CA0CP;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAoC,CAAA;AAMvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,KAAK,EAAE,CA8CzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,8BAAmC,GAAG;IACrF,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;CACjC,CAiBA;AAGD,YAAY,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -29,24 +29,22 @@
|
|
|
29
29
|
* ],
|
|
30
30
|
* }
|
|
31
31
|
* ```
|
|
32
|
-
*/
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import { layoutsToPayloadOptions } from '../../layouts/utils';
|
|
32
|
+
*/ import { createIsHomepageUniqueHook } from '../hooks/isHomepageUnique.js';
|
|
33
|
+
import { DEFAULT_LAYOUTS } from '../../layouts/defaults.js';
|
|
34
|
+
import { layoutsToPayloadOptions } from '../../layouts/utils.js';
|
|
36
35
|
// =============================================================================
|
|
37
36
|
// Core Fields
|
|
38
37
|
// =============================================================================
|
|
39
38
|
/**
|
|
40
39
|
* Puck data field - stores the visual editor JSON data.
|
|
41
40
|
* This field is always hidden in the admin UI as it's managed via the visual editor.
|
|
42
|
-
*/
|
|
43
|
-
export const puckDataField = {
|
|
41
|
+
*/ export const puckDataField = {
|
|
44
42
|
name: 'puckData',
|
|
45
43
|
type: 'json',
|
|
46
44
|
admin: {
|
|
47
45
|
hidden: true,
|
|
48
|
-
description: 'Puck editor data - managed via visual editor'
|
|
49
|
-
}
|
|
46
|
+
description: 'Puck editor data - managed via visual editor'
|
|
47
|
+
}
|
|
50
48
|
};
|
|
51
49
|
/**
|
|
52
50
|
* Creates an editor version field with smart detection for hybrid setups.
|
|
@@ -62,27 +60,31 @@ export const puckDataField = {
|
|
|
62
60
|
* @param defaultValue - The default editor version for NEW pages ('puck' or 'legacy')
|
|
63
61
|
* @param sidebar - Whether to position in the sidebar (default: true)
|
|
64
62
|
* @param legacyBlocksFieldName - Name of the legacy blocks field to check (default: 'layout')
|
|
65
|
-
*/
|
|
66
|
-
export function createEditorVersionField(defaultValue = 'puck', sidebar = true, legacyBlocksFieldName = 'layout') {
|
|
63
|
+
*/ export function createEditorVersionField(defaultValue = 'puck', sidebar = true, legacyBlocksFieldName = 'layout') {
|
|
67
64
|
return {
|
|
68
65
|
name: 'editorVersion',
|
|
69
66
|
type: 'select',
|
|
70
67
|
// NO defaultValue here - we use the hook to intelligently detect the value
|
|
71
68
|
// This prevents migrations from blindly setting 'puck' on legacy pages
|
|
72
69
|
options: [
|
|
73
|
-
{
|
|
74
|
-
|
|
70
|
+
{
|
|
71
|
+
label: 'Legacy (Payload Blocks)',
|
|
72
|
+
value: 'legacy'
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
label: 'Puck Visual Editor',
|
|
76
|
+
value: 'puck'
|
|
77
|
+
}
|
|
75
78
|
],
|
|
76
79
|
admin: {
|
|
77
80
|
position: sidebar ? 'sidebar' : undefined,
|
|
78
|
-
description: 'Which editor was used to create this page'
|
|
81
|
+
description: 'Which editor was used to create this page'
|
|
79
82
|
},
|
|
80
83
|
hooks: {
|
|
81
84
|
beforeValidate: [
|
|
82
|
-
({ value, data, operation })
|
|
85
|
+
({ value, data, operation })=>{
|
|
83
86
|
// If value is explicitly set (and not null/undefined), keep it
|
|
84
|
-
if (value)
|
|
85
|
-
return value;
|
|
87
|
+
if (value) return value;
|
|
86
88
|
// Detect based on content - works for both new and existing documents
|
|
87
89
|
const legacyBlocks = data?.[legacyBlocksFieldName];
|
|
88
90
|
const hasLegacyBlocks = Array.isArray(legacyBlocks) && legacyBlocks.length > 0;
|
|
@@ -99,23 +101,21 @@ export function createEditorVersionField(defaultValue = 'puck', sidebar = true,
|
|
|
99
101
|
// For new documents with no content yet, use configured default
|
|
100
102
|
// For existing documents with no content, also use default
|
|
101
103
|
return defaultValue;
|
|
102
|
-
}
|
|
103
|
-
]
|
|
104
|
-
}
|
|
104
|
+
}
|
|
105
|
+
]
|
|
106
|
+
}
|
|
105
107
|
};
|
|
106
108
|
}
|
|
107
109
|
/**
|
|
108
110
|
* Pre-configured editor version field with 'puck' as default.
|
|
109
111
|
* Use createEditorVersionField() for custom configuration.
|
|
110
|
-
*/
|
|
111
|
-
export const editorVersionField = createEditorVersionField('puck', true);
|
|
112
|
+
*/ export const editorVersionField = createEditorVersionField('puck', true);
|
|
112
113
|
/**
|
|
113
114
|
* Creates a page layout field with custom layouts.
|
|
114
115
|
*
|
|
115
116
|
* @param layouts - Array of layout definitions (defaults to DEFAULT_LAYOUTS)
|
|
116
117
|
* @param sidebar - Whether to position in the sidebar (default: true)
|
|
117
|
-
*/
|
|
118
|
-
export function createPageLayoutField(layouts = DEFAULT_LAYOUTS, sidebar = true) {
|
|
118
|
+
*/ export function createPageLayoutField(layouts = DEFAULT_LAYOUTS, sidebar = true) {
|
|
119
119
|
return {
|
|
120
120
|
name: 'pageLayout',
|
|
121
121
|
type: 'select',
|
|
@@ -124,26 +124,24 @@ export function createPageLayoutField(layouts = DEFAULT_LAYOUTS, sidebar = true)
|
|
|
124
124
|
options: layoutsToPayloadOptions(layouts),
|
|
125
125
|
admin: {
|
|
126
126
|
position: sidebar ? 'sidebar' : undefined,
|
|
127
|
-
description: 'Overall page structure and layout style'
|
|
128
|
-
}
|
|
127
|
+
description: 'Overall page structure and layout style'
|
|
128
|
+
}
|
|
129
129
|
};
|
|
130
130
|
}
|
|
131
131
|
/**
|
|
132
132
|
* Pre-configured page layout field with DEFAULT_LAYOUTS.
|
|
133
133
|
* Use createPageLayoutField() for custom layouts.
|
|
134
|
-
*/
|
|
135
|
-
export const pageLayoutField = createPageLayoutField();
|
|
134
|
+
*/ export const pageLayoutField = createPageLayoutField();
|
|
136
135
|
/**
|
|
137
136
|
* Homepage flag field - marks a page as the site homepage.
|
|
138
|
-
*/
|
|
139
|
-
export const isHomepageField = {
|
|
137
|
+
*/ export const isHomepageField = {
|
|
140
138
|
name: 'isHomepage',
|
|
141
139
|
type: 'checkbox',
|
|
142
140
|
defaultValue: false,
|
|
143
141
|
admin: {
|
|
144
142
|
position: 'sidebar',
|
|
145
|
-
description: 'Mark this page as the homepage'
|
|
146
|
-
}
|
|
143
|
+
description: 'Mark this page as the homepage'
|
|
144
|
+
}
|
|
147
145
|
};
|
|
148
146
|
// =============================================================================
|
|
149
147
|
// Field Groups
|
|
@@ -153,13 +151,12 @@ export const isHomepageField = {
|
|
|
153
151
|
* Uses the official @payloadcms/plugin-seo convention: meta.title, meta.description
|
|
154
152
|
*
|
|
155
153
|
* Includes: title, description, image, noindex, nofollow, excludeFromSitemap
|
|
156
|
-
*/
|
|
157
|
-
export const seoFieldGroup = {
|
|
154
|
+
*/ export const seoFieldGroup = {
|
|
158
155
|
name: 'meta',
|
|
159
156
|
type: 'group',
|
|
160
157
|
label: 'SEO',
|
|
161
158
|
admin: {
|
|
162
|
-
position: 'sidebar'
|
|
159
|
+
position: 'sidebar'
|
|
163
160
|
},
|
|
164
161
|
fields: [
|
|
165
162
|
{
|
|
@@ -167,16 +164,16 @@ export const seoFieldGroup = {
|
|
|
167
164
|
type: 'text',
|
|
168
165
|
label: 'Meta Title',
|
|
169
166
|
admin: {
|
|
170
|
-
description: 'Override the page title for search engines'
|
|
171
|
-
}
|
|
167
|
+
description: 'Override the page title for search engines'
|
|
168
|
+
}
|
|
172
169
|
},
|
|
173
170
|
{
|
|
174
171
|
name: 'description',
|
|
175
172
|
type: 'textarea',
|
|
176
173
|
label: 'Meta Description',
|
|
177
174
|
admin: {
|
|
178
|
-
description: 'Description shown in search engine results'
|
|
179
|
-
}
|
|
175
|
+
description: 'Description shown in search engine results'
|
|
176
|
+
}
|
|
180
177
|
},
|
|
181
178
|
{
|
|
182
179
|
name: 'image',
|
|
@@ -184,8 +181,8 @@ export const seoFieldGroup = {
|
|
|
184
181
|
relationTo: 'media',
|
|
185
182
|
label: 'Open Graph Image',
|
|
186
183
|
admin: {
|
|
187
|
-
description: 'Image shown when sharing on social media'
|
|
188
|
-
}
|
|
184
|
+
description: 'Image shown when sharing on social media'
|
|
185
|
+
}
|
|
189
186
|
},
|
|
190
187
|
{
|
|
191
188
|
name: 'noindex',
|
|
@@ -193,8 +190,8 @@ export const seoFieldGroup = {
|
|
|
193
190
|
label: 'No Index',
|
|
194
191
|
defaultValue: false,
|
|
195
192
|
admin: {
|
|
196
|
-
description: 'Prevent search engines from indexing this page'
|
|
197
|
-
}
|
|
193
|
+
description: 'Prevent search engines from indexing this page'
|
|
194
|
+
}
|
|
198
195
|
},
|
|
199
196
|
{
|
|
200
197
|
name: 'nofollow',
|
|
@@ -202,8 +199,8 @@ export const seoFieldGroup = {
|
|
|
202
199
|
label: 'No Follow',
|
|
203
200
|
defaultValue: false,
|
|
204
201
|
admin: {
|
|
205
|
-
description: 'Prevent search engines from following links on this page'
|
|
206
|
-
}
|
|
202
|
+
description: 'Prevent search engines from following links on this page'
|
|
203
|
+
}
|
|
207
204
|
},
|
|
208
205
|
{
|
|
209
206
|
name: 'excludeFromSitemap',
|
|
@@ -211,22 +208,42 @@ export const seoFieldGroup = {
|
|
|
211
208
|
label: 'Exclude from Sitemap',
|
|
212
209
|
defaultValue: false,
|
|
213
210
|
admin: {
|
|
214
|
-
description: 'Exclude this page from the XML sitemap'
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
]
|
|
211
|
+
description: 'Exclude this page from the XML sitemap'
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
]
|
|
218
215
|
};
|
|
219
216
|
/**
|
|
220
217
|
* Default conversion type options
|
|
221
|
-
*/
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
{
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
218
|
+
*/ export const DEFAULT_CONVERSION_TYPES = [
|
|
219
|
+
{
|
|
220
|
+
label: 'Lead',
|
|
221
|
+
value: 'lead'
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
label: 'Registration',
|
|
225
|
+
value: 'registration'
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
label: 'Purchase',
|
|
229
|
+
value: 'purchase'
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
label: 'Donation',
|
|
233
|
+
value: 'donation'
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
label: 'Newsletter Signup',
|
|
237
|
+
value: 'newsletter'
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
label: 'Contact Form',
|
|
241
|
+
value: 'contact'
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
label: 'Custom',
|
|
245
|
+
value: 'custom'
|
|
246
|
+
}
|
|
230
247
|
];
|
|
231
248
|
/**
|
|
232
249
|
* Creates a conversion tracking field group with custom options.
|
|
@@ -250,15 +267,14 @@ export const DEFAULT_CONVERSION_TYPES = [
|
|
|
250
267
|
* ],
|
|
251
268
|
* })
|
|
252
269
|
* ```
|
|
253
|
-
*/
|
|
254
|
-
export function createConversionFieldGroup(conversionTypes = DEFAULT_CONVERSION_TYPES, sidebar = true) {
|
|
270
|
+
*/ export function createConversionFieldGroup(conversionTypes = DEFAULT_CONVERSION_TYPES, sidebar = true) {
|
|
255
271
|
return {
|
|
256
272
|
name: 'conversionTracking',
|
|
257
273
|
type: 'group',
|
|
258
274
|
label: 'Conversion Tracking',
|
|
259
275
|
admin: {
|
|
260
276
|
position: sidebar ? 'sidebar' : undefined,
|
|
261
|
-
description: 'Configure conversion tracking for analytics'
|
|
277
|
+
description: 'Configure conversion tracking for analytics'
|
|
262
278
|
},
|
|
263
279
|
fields: [
|
|
264
280
|
{
|
|
@@ -267,8 +283,8 @@ export function createConversionFieldGroup(conversionTypes = DEFAULT_CONVERSION_
|
|
|
267
283
|
label: 'Is Conversion Page',
|
|
268
284
|
defaultValue: false,
|
|
269
285
|
admin: {
|
|
270
|
-
description: 'Check this if this page represents a completed conversion (e.g., thank you page)'
|
|
271
|
-
}
|
|
286
|
+
description: 'Check this if this page represents a completed conversion (e.g., thank you page)'
|
|
287
|
+
}
|
|
272
288
|
},
|
|
273
289
|
{
|
|
274
290
|
name: 'conversionType',
|
|
@@ -277,8 +293,8 @@ export function createConversionFieldGroup(conversionTypes = DEFAULT_CONVERSION_
|
|
|
277
293
|
options: conversionTypes,
|
|
278
294
|
admin: {
|
|
279
295
|
description: 'Type of conversion this page represents',
|
|
280
|
-
condition: (data, siblingData)
|
|
281
|
-
}
|
|
296
|
+
condition: (data, siblingData)=>siblingData?.isConversionPage === true
|
|
297
|
+
}
|
|
282
298
|
},
|
|
283
299
|
{
|
|
284
300
|
name: 'conversionValue',
|
|
@@ -287,17 +303,16 @@ export function createConversionFieldGroup(conversionTypes = DEFAULT_CONVERSION_
|
|
|
287
303
|
defaultValue: 0,
|
|
288
304
|
admin: {
|
|
289
305
|
description: 'Monetary value of this conversion (0 for non-monetary conversions)',
|
|
290
|
-
condition: (data, siblingData)
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
]
|
|
306
|
+
condition: (data, siblingData)=>siblingData?.isConversionPage === true
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
]
|
|
294
310
|
};
|
|
295
311
|
}
|
|
296
312
|
/**
|
|
297
313
|
* Pre-configured conversion tracking field group with default options.
|
|
298
314
|
* Use createConversionFieldGroup() for custom conversion types.
|
|
299
|
-
*/
|
|
300
|
-
export const conversionFieldGroup = createConversionFieldGroup();
|
|
315
|
+
*/ export const conversionFieldGroup = createConversionFieldGroup();
|
|
301
316
|
// =============================================================================
|
|
302
317
|
// Main Utility Function
|
|
303
318
|
// =============================================================================
|
|
@@ -333,9 +348,8 @@ export const conversionFieldGroup = createConversionFieldGroup();
|
|
|
333
348
|
* ],
|
|
334
349
|
* }
|
|
335
350
|
* ```
|
|
336
|
-
*/
|
|
337
|
-
|
|
338
|
-
const { includeSEO = true, includeConversion = false, includeEditorVersion = true, includePageLayout = true, includeIsHomepage = false, layouts = DEFAULT_LAYOUTS, defaultEditorVersion = 'puck', legacyBlocksFieldName = 'layout', sidebarPosition = true, conversionTypeOptions, } = options;
|
|
351
|
+
*/ export function getPuckFields(options = {}) {
|
|
352
|
+
const { includeSEO = true, includeConversion = false, includeEditorVersion = true, includePageLayout = true, includeIsHomepage = false, layouts = DEFAULT_LAYOUTS, defaultEditorVersion = 'puck', legacyBlocksFieldName = 'layout', sidebarPosition = true, conversionTypeOptions } = options;
|
|
339
353
|
const fields = [];
|
|
340
354
|
// Core puckData field (always included - this is essential for Puck)
|
|
341
355
|
fields.push(puckDataField);
|
|
@@ -397,19 +411,27 @@ export function getPuckFields(options = {}) {
|
|
|
397
411
|
* ],
|
|
398
412
|
* }
|
|
399
413
|
* ```
|
|
400
|
-
*/
|
|
401
|
-
export function getPuckCollectionConfig(options = {}) {
|
|
414
|
+
*/ export function getPuckCollectionConfig(options = {}) {
|
|
402
415
|
const { includeHomepageHook = true, includeIsHomepage = false, ...fieldOptions } = options;
|
|
403
416
|
// Get the fields using the existing getPuckFields function
|
|
404
|
-
const fields = getPuckFields({
|
|
417
|
+
const fields = getPuckFields({
|
|
418
|
+
includeIsHomepage,
|
|
419
|
+
...fieldOptions
|
|
420
|
+
});
|
|
405
421
|
// Build hooks object
|
|
406
422
|
const hooks = {};
|
|
407
423
|
// Add isHomepage uniqueness hook if:
|
|
408
424
|
// - includeIsHomepage is true (the field is being added)
|
|
409
425
|
// - includeHomepageHook is not explicitly false
|
|
410
426
|
if (includeIsHomepage && includeHomepageHook !== false) {
|
|
411
|
-
hooks.beforeChange = [
|
|
427
|
+
hooks.beforeChange = [
|
|
428
|
+
createIsHomepageUniqueHook()
|
|
429
|
+
];
|
|
412
430
|
}
|
|
413
|
-
return {
|
|
431
|
+
return {
|
|
432
|
+
fields,
|
|
433
|
+
hooks
|
|
434
|
+
};
|
|
414
435
|
}
|
|
436
|
+
|
|
415
437
|
//# sourceMappingURL=index.js.map
|