@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
|
@@ -28,8 +28,7 @@ import { useParams, useSearchParams } from 'next/navigation';
|
|
|
28
28
|
* )
|
|
29
29
|
* }
|
|
30
30
|
* ```
|
|
31
|
-
*/
|
|
32
|
-
export function PuckEditorView({ config, collectionSlug = 'pages', apiBasePath = '/api/puck', backUrl, previewUrl, layoutStyles, layoutKey = 'pageLayout', plugins, onSaveSuccess, onSaveError, }) {
|
|
31
|
+
*/ export function PuckEditorView({ config, collectionSlug = 'pages', apiBasePath = '/api/puck', backUrl, previewUrl, layoutStyles, layoutKey = 'pageLayout', plugins, onSaveSuccess, onSaveError }) {
|
|
33
32
|
const params = useParams();
|
|
34
33
|
const searchParams = useSearchParams();
|
|
35
34
|
// Get page ID from route params or search params
|
|
@@ -39,12 +38,12 @@ export function PuckEditorView({ config, collectionSlug = 'pages', apiBasePath =
|
|
|
39
38
|
const [error, setError] = useState(null);
|
|
40
39
|
const [PuckEditor, setPuckEditor] = useState(null);
|
|
41
40
|
// Dynamically import PuckEditor to avoid SSR issues
|
|
42
|
-
useEffect(()
|
|
43
|
-
import('../editor/PuckEditor').then((mod)
|
|
44
|
-
setPuckEditor(()
|
|
41
|
+
useEffect(()=>{
|
|
42
|
+
import('../editor/PuckEditor.js').then((mod)=>{
|
|
43
|
+
setPuckEditor(()=>mod.PuckEditor);
|
|
45
44
|
});
|
|
46
45
|
}, []);
|
|
47
|
-
useEffect(()
|
|
46
|
+
useEffect(()=>{
|
|
48
47
|
async function fetchPage() {
|
|
49
48
|
if (!pageId) {
|
|
50
49
|
setError('No page ID provided');
|
|
@@ -55,81 +54,168 @@ export function PuckEditorView({ config, collectionSlug = 'pages', apiBasePath =
|
|
|
55
54
|
setLoading(true);
|
|
56
55
|
const response = await fetch(`${apiBasePath}/${collectionSlug}/${pageId}`);
|
|
57
56
|
if (!response.ok) {
|
|
58
|
-
const data = await response.json().catch(()
|
|
57
|
+
const data = await response.json().catch(()=>({}));
|
|
59
58
|
throw new Error(data.error || `Failed to fetch page: ${response.status}`);
|
|
60
59
|
}
|
|
61
60
|
const data = await response.json();
|
|
62
61
|
setPage(data.doc);
|
|
63
|
-
}
|
|
64
|
-
catch (err) {
|
|
62
|
+
} catch (err) {
|
|
65
63
|
setError(err instanceof Error ? err.message : 'An error occurred');
|
|
66
|
-
}
|
|
67
|
-
finally {
|
|
64
|
+
} finally{
|
|
68
65
|
setLoading(false);
|
|
69
66
|
}
|
|
70
67
|
}
|
|
71
68
|
fetchPage();
|
|
72
|
-
}, [
|
|
69
|
+
}, [
|
|
70
|
+
pageId,
|
|
71
|
+
apiBasePath,
|
|
72
|
+
collectionSlug
|
|
73
|
+
]);
|
|
73
74
|
const computedBackUrl = backUrl || `/admin/collections/${collectionSlug}`;
|
|
74
75
|
if (loading || !PuckEditor) {
|
|
75
|
-
return
|
|
76
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
77
|
+
style: {
|
|
76
78
|
display: 'flex',
|
|
77
79
|
height: '100vh',
|
|
78
80
|
alignItems: 'center',
|
|
79
81
|
justifyContent: 'center',
|
|
80
82
|
backgroundColor: '#0f0f0f',
|
|
81
|
-
color: '#fff'
|
|
82
|
-
},
|
|
83
|
+
color: '#fff'
|
|
84
|
+
},
|
|
85
|
+
children: /*#__PURE__*/ _jsxs("div", {
|
|
86
|
+
style: {
|
|
87
|
+
textAlign: 'center'
|
|
88
|
+
},
|
|
89
|
+
children: [
|
|
90
|
+
/*#__PURE__*/ _jsx("div", {
|
|
91
|
+
style: {
|
|
83
92
|
width: '32px',
|
|
84
93
|
height: '32px',
|
|
85
94
|
border: '3px solid #333',
|
|
86
95
|
borderTopColor: '#fff',
|
|
87
96
|
borderRadius: '50%',
|
|
88
97
|
animation: 'spin 1s linear infinite',
|
|
89
|
-
margin: '0 auto 16px'
|
|
90
|
-
}
|
|
98
|
+
margin: '0 auto 16px'
|
|
99
|
+
}
|
|
100
|
+
}),
|
|
101
|
+
/*#__PURE__*/ _jsx("p", {
|
|
102
|
+
style: {
|
|
103
|
+
color: '#888'
|
|
104
|
+
},
|
|
105
|
+
children: "Loading editor..."
|
|
106
|
+
}),
|
|
107
|
+
/*#__PURE__*/ _jsx("style", {
|
|
108
|
+
children: `
|
|
91
109
|
@keyframes spin {
|
|
92
110
|
to { transform: rotate(360deg); }
|
|
93
111
|
}
|
|
94
|
-
`
|
|
112
|
+
`
|
|
113
|
+
})
|
|
114
|
+
]
|
|
115
|
+
})
|
|
116
|
+
});
|
|
95
117
|
}
|
|
96
118
|
if (error) {
|
|
97
|
-
return
|
|
119
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
120
|
+
style: {
|
|
98
121
|
display: 'flex',
|
|
99
122
|
height: '100vh',
|
|
100
123
|
alignItems: 'center',
|
|
101
124
|
justifyContent: 'center',
|
|
102
125
|
backgroundColor: '#0f0f0f',
|
|
103
|
-
color: '#fff'
|
|
104
|
-
},
|
|
126
|
+
color: '#fff'
|
|
127
|
+
},
|
|
128
|
+
children: /*#__PURE__*/ _jsxs("div", {
|
|
129
|
+
style: {
|
|
130
|
+
textAlign: 'center'
|
|
131
|
+
},
|
|
132
|
+
children: [
|
|
133
|
+
/*#__PURE__*/ _jsx("p", {
|
|
134
|
+
style: {
|
|
135
|
+
color: '#f87171',
|
|
136
|
+
marginBottom: '16px'
|
|
137
|
+
},
|
|
138
|
+
children: error
|
|
139
|
+
}),
|
|
140
|
+
/*#__PURE__*/ _jsxs("a", {
|
|
141
|
+
href: computedBackUrl,
|
|
142
|
+
style: {
|
|
105
143
|
color: '#60a5fa',
|
|
106
|
-
textDecoration: 'underline'
|
|
107
|
-
},
|
|
144
|
+
textDecoration: 'underline'
|
|
145
|
+
},
|
|
146
|
+
children: [
|
|
147
|
+
"Back to ",
|
|
148
|
+
collectionSlug
|
|
149
|
+
]
|
|
150
|
+
})
|
|
151
|
+
]
|
|
152
|
+
})
|
|
153
|
+
});
|
|
108
154
|
}
|
|
109
155
|
if (!page) {
|
|
110
|
-
return
|
|
156
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
157
|
+
style: {
|
|
111
158
|
display: 'flex',
|
|
112
159
|
height: '100vh',
|
|
113
160
|
alignItems: 'center',
|
|
114
161
|
justifyContent: 'center',
|
|
115
162
|
backgroundColor: '#0f0f0f',
|
|
116
|
-
color: '#fff'
|
|
117
|
-
},
|
|
163
|
+
color: '#fff'
|
|
164
|
+
},
|
|
165
|
+
children: /*#__PURE__*/ _jsxs("div", {
|
|
166
|
+
style: {
|
|
167
|
+
textAlign: 'center'
|
|
168
|
+
},
|
|
169
|
+
children: [
|
|
170
|
+
/*#__PURE__*/ _jsx("p", {
|
|
171
|
+
style: {
|
|
172
|
+
color: '#888',
|
|
173
|
+
marginBottom: '16px'
|
|
174
|
+
},
|
|
175
|
+
children: "Page not found"
|
|
176
|
+
}),
|
|
177
|
+
/*#__PURE__*/ _jsxs("a", {
|
|
178
|
+
href: computedBackUrl,
|
|
179
|
+
style: {
|
|
118
180
|
color: '#60a5fa',
|
|
119
|
-
textDecoration: 'underline'
|
|
120
|
-
},
|
|
181
|
+
textDecoration: 'underline'
|
|
182
|
+
},
|
|
183
|
+
children: [
|
|
184
|
+
"Back to ",
|
|
185
|
+
collectionSlug
|
|
186
|
+
]
|
|
187
|
+
})
|
|
188
|
+
]
|
|
189
|
+
})
|
|
190
|
+
});
|
|
121
191
|
}
|
|
122
192
|
// Default puck data if none exists
|
|
123
193
|
const initialData = page.puckData || {
|
|
124
194
|
root: {
|
|
125
195
|
props: {
|
|
126
|
-
title: page.title || 'New Page'
|
|
127
|
-
}
|
|
196
|
+
title: page.title || 'New Page'
|
|
197
|
+
}
|
|
128
198
|
},
|
|
129
199
|
content: [],
|
|
130
|
-
zones: {}
|
|
200
|
+
zones: {}
|
|
131
201
|
};
|
|
132
|
-
return
|
|
202
|
+
return /*#__PURE__*/ _jsx(PuckEditor, {
|
|
203
|
+
pageId: page.id,
|
|
204
|
+
initialData: initialData,
|
|
205
|
+
config: config,
|
|
206
|
+
pageTitle: page.title,
|
|
207
|
+
pageSlug: page.slug,
|
|
208
|
+
apiEndpoint: `${apiBasePath}/${collectionSlug}`,
|
|
209
|
+
backUrl: computedBackUrl,
|
|
210
|
+
previewUrl: previewUrl,
|
|
211
|
+
layoutStyles: layoutStyles,
|
|
212
|
+
layoutKey: layoutKey,
|
|
213
|
+
plugins: plugins,
|
|
214
|
+
onSaveSuccess: onSaveSuccess,
|
|
215
|
+
onSaveError: onSaveError,
|
|
216
|
+
initialStatus: page._status
|
|
217
|
+
});
|
|
133
218
|
}
|
|
134
219
|
export default PuckEditorView;
|
|
220
|
+
|
|
135
221
|
//# sourceMappingURL=PuckEditorView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PuckEditorView.js","sourceRoot":"","sources":["../../src/admin/PuckEditorView.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/admin/PuckEditorView.tsx"],"sourcesContent":["'use client'\n\nimport { useEffect, useState } from 'react'\nimport { useParams, useSearchParams } from 'next/navigation'\nimport type { Config as PuckConfig, Data, Plugin as PuckPlugin } from '@puckeditor/core'\n\n/**\n * Props for the PuckEditorView component\n */\nexport interface PuckEditorViewProps {\n /**\n * Puck configuration with components and settings\n */\n config: PuckConfig\n /**\n * Collection slug for API endpoints\n * @default 'pages'\n */\n collectionSlug?: string\n /**\n * Base API path for Puck operations\n * @default '/api/puck'\n */\n apiBasePath?: string\n /**\n * URL to navigate to when back button is clicked\n * Falls back to /admin/collections/{collectionSlug}\n */\n backUrl?: string\n /**\n * Preview URL or function to generate preview URL from slug\n */\n previewUrl?: string | ((slug: string) => string)\n /**\n * Layout styles for theme-aware preview\n */\n layoutStyles?: Record<string, { background: string; isDark: boolean }>\n /**\n * Key in root.props to read layout value from\n * @default 'pageLayout'\n */\n layoutKey?: string\n /**\n * Additional Puck plugins to use.\n * The headingAnalyzer plugin is included by default.\n * Set to `false` to disable all default plugins.\n */\n plugins?: PuckPlugin[] | false\n /**\n * Callback on successful save\n */\n onSaveSuccess?: (data: Data) => void\n /**\n * Callback on save error\n */\n onSaveError?: (error: Error) => void\n}\n\ninterface PageData {\n id: string\n title: string\n slug: string\n puckData: Data | null\n _status?: 'draft' | 'published'\n}\n\n/**\n * Ready-to-use Puck editor page component\n *\n * Use this in your own editor page route (e.g., /pages/[id]/edit).\n * It auto-fetches page data from the API and renders the PuckEditor.\n *\n * @example\n * ```tsx\n * // src/app/pages/[id]/edit/page.tsx\n * 'use client'\n *\n * import { PuckEditorView } from '@delmaredigital/payload-puck/editor'\n * import { editorConfig } from '@/puck/config'\n *\n * export default function PageEditor() {\n * return (\n * <PuckEditorView\n * config={editorConfig}\n * collectionSlug=\"pages\"\n * apiBasePath=\"/api/puck\"\n * backUrl=\"/admin/collections/pages\"\n * previewUrl={(slug) => `/${slug}`}\n * />\n * )\n * }\n * ```\n */\nexport function PuckEditorView({\n config,\n collectionSlug = 'pages',\n apiBasePath = '/api/puck',\n backUrl,\n previewUrl,\n layoutStyles,\n layoutKey = 'pageLayout',\n plugins,\n onSaveSuccess,\n onSaveError,\n}: PuckEditorViewProps) {\n const params = useParams()\n const searchParams = useSearchParams()\n\n // Get page ID from route params or search params\n const pageId = (params?.id as string) || searchParams?.get('id') || ''\n\n const [page, setPage] = useState<PageData | null>(null)\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState<string | null>(null)\n const [PuckEditor, setPuckEditor] = useState<React.ComponentType<any> | null>(null)\n\n // Dynamically import PuckEditor to avoid SSR issues\n useEffect(() => {\n import('../editor/PuckEditor.js').then((mod) => {\n setPuckEditor(() => mod.PuckEditor)\n })\n }, [])\n\n useEffect(() => {\n async function fetchPage() {\n if (!pageId) {\n setError('No page ID provided')\n setLoading(false)\n return\n }\n\n try {\n setLoading(true)\n const response = await fetch(`${apiBasePath}/${collectionSlug}/${pageId}`)\n\n if (!response.ok) {\n const data = await response.json().catch(() => ({}))\n throw new Error(data.error || `Failed to fetch page: ${response.status}`)\n }\n\n const data = await response.json()\n setPage(data.doc)\n } catch (err) {\n setError(err instanceof Error ? err.message : 'An error occurred')\n } finally {\n setLoading(false)\n }\n }\n\n fetchPage()\n }, [pageId, apiBasePath, collectionSlug])\n\n const computedBackUrl = backUrl || `/admin/collections/${collectionSlug}`\n\n if (loading || !PuckEditor) {\n return (\n <div style={{\n display: 'flex',\n height: '100vh',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: '#0f0f0f',\n color: '#fff',\n }}>\n <div style={{ textAlign: 'center' }}>\n <div style={{\n width: '32px',\n height: '32px',\n border: '3px solid #333',\n borderTopColor: '#fff',\n borderRadius: '50%',\n animation: 'spin 1s linear infinite',\n margin: '0 auto 16px',\n }} />\n <p style={{ color: '#888' }}>Loading editor...</p>\n <style>{`\n @keyframes spin {\n to { transform: rotate(360deg); }\n }\n `}</style>\n </div>\n </div>\n )\n }\n\n if (error) {\n return (\n <div style={{\n display: 'flex',\n height: '100vh',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: '#0f0f0f',\n color: '#fff',\n }}>\n <div style={{ textAlign: 'center' }}>\n <p style={{ color: '#f87171', marginBottom: '16px' }}>{error}</p>\n <a\n href={computedBackUrl}\n style={{\n color: '#60a5fa',\n textDecoration: 'underline',\n }}\n >\n Back to {collectionSlug}\n </a>\n </div>\n </div>\n )\n }\n\n if (!page) {\n return (\n <div style={{\n display: 'flex',\n height: '100vh',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: '#0f0f0f',\n color: '#fff',\n }}>\n <div style={{ textAlign: 'center' }}>\n <p style={{ color: '#888', marginBottom: '16px' }}>Page not found</p>\n <a\n href={computedBackUrl}\n style={{\n color: '#60a5fa',\n textDecoration: 'underline',\n }}\n >\n Back to {collectionSlug}\n </a>\n </div>\n </div>\n )\n }\n\n // Default puck data if none exists\n const initialData: Data = page.puckData || {\n root: {\n props: {\n title: page.title || 'New Page',\n },\n },\n content: [],\n zones: {},\n }\n\n return (\n <PuckEditor\n pageId={page.id}\n initialData={initialData}\n config={config}\n pageTitle={page.title}\n pageSlug={page.slug}\n apiEndpoint={`${apiBasePath}/${collectionSlug}`}\n backUrl={computedBackUrl}\n previewUrl={previewUrl}\n layoutStyles={layoutStyles}\n layoutKey={layoutKey}\n plugins={plugins}\n onSaveSuccess={onSaveSuccess}\n onSaveError={onSaveError}\n initialStatus={page._status}\n />\n )\n}\n\nexport default PuckEditorView\n"],"names":["useEffect","useState","useParams","useSearchParams","PuckEditorView","config","collectionSlug","apiBasePath","backUrl","previewUrl","layoutStyles","layoutKey","plugins","onSaveSuccess","onSaveError","params","searchParams","pageId","id","get","page","setPage","loading","setLoading","error","setError","PuckEditor","setPuckEditor","then","mod","fetchPage","response","fetch","ok","data","json","catch","Error","status","doc","err","message","computedBackUrl","div","style","display","height","alignItems","justifyContent","backgroundColor","color","textAlign","width","border","borderTopColor","borderRadius","animation","margin","p","marginBottom","a","href","textDecoration","initialData","puckData","root","props","title","content","zones","pageTitle","pageSlug","slug","apiEndpoint","initialStatus","_status"],"mappings":"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"}
|
package/dist/admin/client.d.ts
CHANGED
|
@@ -7,6 +7,6 @@
|
|
|
7
7
|
* NOTE: For PuckEditorView, import from '@delmaredigital/payload-puck/editor' instead.
|
|
8
8
|
* This separation is necessary to avoid RSC bundling issues with Puck.
|
|
9
9
|
*/
|
|
10
|
-
export { EditWithPuckButton, EditWithPuckLink, type EditWithPuckButtonProps, } from './EditWithPuckButton';
|
|
11
|
-
export { EditWithPuckCell, type EditWithPuckCellConfig } from './EditWithPuckCell';
|
|
10
|
+
export { EditWithPuckButton, EditWithPuckLink, type EditWithPuckButtonProps, } from './EditWithPuckButton.js';
|
|
11
|
+
export { EditWithPuckCell, type EditWithPuckCellConfig } from './EditWithPuckCell.js';
|
|
12
12
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/admin/client.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAGH,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,uBAAuB,GAC7B,MAAM,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/admin/client.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAGH,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAA"}
|
package/dist/admin/client.js
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
*
|
|
8
8
|
* NOTE: For PuckEditorView, import from '@delmaredigital/payload-puck/editor' instead.
|
|
9
9
|
* This separation is necessary to avoid RSC bundling issues with Puck.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
export { EditWithPuckButton, EditWithPuckLink, } from './EditWithPuckButton';
|
|
10
|
+
*/ // Button components for edit view
|
|
11
|
+
export { EditWithPuckButton, EditWithPuckLink } from './EditWithPuckButton.js';
|
|
13
12
|
// Cell component for list view
|
|
14
|
-
export { EditWithPuckCell } from './EditWithPuckCell';
|
|
13
|
+
export { EditWithPuckCell } from './EditWithPuckCell.js';
|
|
14
|
+
|
|
15
15
|
//# sourceMappingURL=client.js.map
|
package/dist/admin/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/admin/client.ts"],"sourcesContent":["'use client'\n\n/**\n * @delmaredigital/payload-puck/admin/client\n *\n * Client-side admin components for Payload CMS integration.\n * These are the Field/Cell components used by the plugin.\n *\n * NOTE: For PuckEditorView, import from '@delmaredigital/payload-puck/editor' instead.\n * This separation is necessary to avoid RSC bundling issues with Puck.\n */\n\n// Button components for edit view\nexport {\n EditWithPuckButton,\n EditWithPuckLink,\n type EditWithPuckButtonProps,\n} from './EditWithPuckButton.js'\n\n// Cell component for list view\nexport { EditWithPuckCell, type EditWithPuckCellConfig } from './EditWithPuckCell.js'\n"],"names":["EditWithPuckButton","EditWithPuckLink","EditWithPuckCell"],"mappings":"AAAA;AAEA;;;;;;;;CAQC,GAED,kCAAkC;AAClC,SACEA,kBAAkB,EAClBC,gBAAgB,QAEX,0BAAyB;AAEhC,+BAA+B;AAC/B,SAASC,gBAAgB,QAAqC,wBAAuB"}
|
|
@@ -19,9 +19,8 @@
|
|
|
19
19
|
* ],
|
|
20
20
|
* }
|
|
21
21
|
* ```
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
const { collectionSlug = 'pages', editorPathPattern = '/pages/{id}/edit', buttonLabel = 'Visual Editor', buttonPosition = 'sidebar', } = config;
|
|
22
|
+
*/ export function generatePuckEditField(config = {}) {
|
|
23
|
+
const { collectionSlug = 'pages', editorPathPattern = '/pages/{id}/edit', buttonLabel = 'Visual Editor', buttonPosition = 'sidebar' } = config;
|
|
25
24
|
return {
|
|
26
25
|
name: 'puckEdit',
|
|
27
26
|
type: 'ui',
|
|
@@ -29,14 +28,15 @@ export function generatePuckEditField(config = {}) {
|
|
|
29
28
|
position: buttonPosition,
|
|
30
29
|
components: {
|
|
31
30
|
Field: '@delmaredigital/payload-puck/admin/client#EditWithPuckButton',
|
|
32
|
-
Cell: '@delmaredigital/payload-puck/admin/client#EditWithPuckCell'
|
|
31
|
+
Cell: '@delmaredigital/payload-puck/admin/client#EditWithPuckCell'
|
|
33
32
|
},
|
|
34
33
|
custom: {
|
|
35
34
|
collectionSlug,
|
|
36
35
|
editorPathPattern,
|
|
37
|
-
label: buttonLabel
|
|
38
|
-
}
|
|
39
|
-
}
|
|
36
|
+
label: buttonLabel
|
|
37
|
+
}
|
|
38
|
+
}
|
|
40
39
|
};
|
|
41
40
|
}
|
|
41
|
+
|
|
42
42
|
//# sourceMappingURL=generateAdminComponents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/admin/generateAdminComponents.ts"],"sourcesContent":["import type { Field } from 'payload'\n\n/**\n * Configuration for generating the edit button field\n */\nexport interface AdminComponentsConfig {\n /**\n * Collection slug for the pages collection\n * @default 'pages'\n */\n collectionSlug?: string\n /**\n * URL pattern for the Puck editor page\n * Use {id} as placeholder for document ID\n * @default '/pages/{id}/edit'\n */\n editorPathPattern?: string\n /**\n * Button label text\n * @default 'Visual Editor'\n */\n buttonLabel?: string\n /**\n * Position of the edit button in admin\n * @default 'sidebar'\n */\n buttonPosition?: 'sidebar' | 'main'\n}\n\n/**\n * Generates the UI field configuration for the Edit with Puck button\n *\n * Use this if you want to manually add the edit button field to your\n * collection instead of using the plugin's auto-generation.\n *\n * @example\n * ```ts\n * import { generatePuckEditField } from '@delmaredigital/payload-puck/admin'\n *\n * const Pages: CollectionConfig = {\n * slug: 'pages',\n * fields: [\n * // ... other fields\n * generatePuckEditField({\n * editorPathPattern: '/pages/{id}/edit',\n * buttonLabel: 'Visual Editor',\n * }),\n * ],\n * }\n * ```\n */\nexport function generatePuckEditField(config: AdminComponentsConfig = {}): Field {\n const {\n collectionSlug = 'pages',\n editorPathPattern = '/pages/{id}/edit',\n buttonLabel = 'Visual Editor',\n buttonPosition = 'sidebar',\n } = config\n\n return {\n name: 'puckEdit',\n type: 'ui',\n admin: {\n 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"],"names":["generatePuckEditField","config","collectionSlug","editorPathPattern","buttonLabel","buttonPosition","name","type","admin","position","components","Field","Cell","custom","label"],"mappings":"AA6BA;;;;;;;;;;;;;;;;;;;;;CAqBC,GACD,OAAO,SAASA,sBAAsBC,SAAgC,CAAC,CAAC;IACtE,MAAM,EACJC,iBAAiB,OAAO,EACxBC,oBAAoB,kBAAkB,EACtCC,cAAc,eAAe,EAC7BC,iBAAiB,SAAS,EAC3B,GAAGJ;IAEJ,OAAO;QACLK,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,UAAUJ;YACVK,YAAY;gBACVC,OAAO;gBACPC,MAAM;YACR;YACAC,QAAQ;gBACNX;gBACAC;gBACAW,OAAOV;YACT;QACF;IACF;AACF"}
|
package/dist/admin/index.d.ts
CHANGED
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
* import { PuckEditorView } from '@delmaredigital/payload-puck/editor'
|
|
14
14
|
* ```
|
|
15
15
|
*/
|
|
16
|
-
export type { PuckEditorViewProps } from './PuckEditorView';
|
|
17
|
-
export type { EditWithPuckButtonProps } from './EditWithPuckButton';
|
|
18
|
-
export type { EditWithPuckCellConfig } from './EditWithPuckCell';
|
|
19
|
-
export type { AdminComponentsConfig } from './generateAdminComponents';
|
|
20
|
-
export { generatePuckEditField } from './generateAdminComponents';
|
|
16
|
+
export type { PuckEditorViewProps } from './PuckEditorView.js';
|
|
17
|
+
export type { EditWithPuckButtonProps } from './EditWithPuckButton.js';
|
|
18
|
+
export type { EditWithPuckCellConfig } from './EditWithPuckCell.js';
|
|
19
|
+
export type { AdminComponentsConfig } from './generateAdminComponents.js';
|
|
20
|
+
export { generatePuckEditField } from './generateAdminComponents.js';
|
|
21
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,YAAY,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACtE,YAAY,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACnE,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAGzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA"}
|
package/dist/admin/index.js
CHANGED
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
* ```ts
|
|
13
13
|
* import { PuckEditorView } from '@delmaredigital/payload-puck/editor'
|
|
14
14
|
* ```
|
|
15
|
-
*/
|
|
15
|
+
*/ // Re-export types only (safe for RSC)
|
|
16
16
|
// Helper for generating edit button field (safe for RSC)
|
|
17
|
-
export { generatePuckEditField } from './generateAdminComponents';
|
|
17
|
+
export { generatePuckEditField } from './generateAdminComponents.js';
|
|
18
|
+
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
package/dist/admin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/admin/index.ts"],"sourcesContent":["/**\n * @delmaredigital/payload-puck/admin\n *\n * Admin utilities and types for Payload CMS integration.\n *\n * NOTE: For the edit button components, import from '/admin/client':\n * ```ts\n * import { EditWithPuckButton } from '@delmaredigital/payload-puck/admin/client'\n * ```\n *\n * For the PuckEditorView component, import from '/editor':\n * ```ts\n * import { PuckEditorView } from '@delmaredigital/payload-puck/editor'\n * ```\n */\n\n// Re-export types only (safe for RSC)\nexport type { PuckEditorViewProps } from './PuckEditorView.js'\nexport type { EditWithPuckButtonProps } from './EditWithPuckButton.js'\nexport type { EditWithPuckCellConfig } from './EditWithPuckCell.js'\nexport type { AdminComponentsConfig } from './generateAdminComponents.js'\n\n// Helper for generating edit button field (safe for RSC)\nexport { generatePuckEditField } from './generateAdminComponents.js'\n"],"names":["generatePuckEditField"],"mappings":"AAAA;;;;;;;;;;;;;;CAcC,GAED,sCAAsC;AAMtC,yDAAyD;AACzD,SAASA,qBAAqB,QAAQ,+BAA8B"}
|
|
@@ -10,26 +10,31 @@
|
|
|
10
10
|
* - "Tone of Voice" - How to communicate
|
|
11
11
|
* - "Product Information" - What you sell/offer
|
|
12
12
|
* - "Industry Context" - Your market and audience
|
|
13
|
-
*/
|
|
14
|
-
export const AiContextCollection = {
|
|
13
|
+
*/ export const AiContextCollection = {
|
|
15
14
|
slug: 'puck-ai-context',
|
|
16
15
|
labels: {
|
|
17
16
|
singular: 'AI Context',
|
|
18
|
-
plural: 'AI Contexts'
|
|
17
|
+
plural: 'AI Contexts'
|
|
19
18
|
},
|
|
20
19
|
admin: {
|
|
21
20
|
group: 'Puck',
|
|
22
21
|
useAsTitle: 'name',
|
|
23
|
-
defaultColumns: [
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
defaultColumns: [
|
|
23
|
+
'name',
|
|
24
|
+
'category',
|
|
25
|
+
'enabled',
|
|
26
|
+
'order',
|
|
27
|
+
'updatedAt'
|
|
28
|
+
],
|
|
29
|
+
hidden: false,
|
|
30
|
+
description: 'Business context for AI page generation. Add entries for brand guidelines, tone of voice, product info, etc.'
|
|
26
31
|
},
|
|
27
32
|
access: {
|
|
28
33
|
// Default: authenticated users can manage context
|
|
29
|
-
read: ({ req })
|
|
30
|
-
create: ({ req })
|
|
31
|
-
update: ({ req })
|
|
32
|
-
delete: ({ req })
|
|
34
|
+
read: ({ req })=>Boolean(req.user),
|
|
35
|
+
create: ({ req })=>Boolean(req.user),
|
|
36
|
+
update: ({ req })=>Boolean(req.user),
|
|
37
|
+
delete: ({ req })=>Boolean(req.user)
|
|
33
38
|
},
|
|
34
39
|
fields: [
|
|
35
40
|
{
|
|
@@ -37,8 +42,8 @@ export const AiContextCollection = {
|
|
|
37
42
|
type: 'text',
|
|
38
43
|
required: true,
|
|
39
44
|
admin: {
|
|
40
|
-
description: 'Name for this context block (e.g., "Brand Guidelines", "Tone of Voice")'
|
|
41
|
-
}
|
|
45
|
+
description: 'Name for this context block (e.g., "Brand Guidelines", "Tone of Voice")'
|
|
46
|
+
}
|
|
42
47
|
},
|
|
43
48
|
{
|
|
44
49
|
name: 'content',
|
|
@@ -46,42 +51,64 @@ export const AiContextCollection = {
|
|
|
46
51
|
required: true,
|
|
47
52
|
admin: {
|
|
48
53
|
description: 'The context content in markdown format. Use headers (##) to organize, lists for guidelines, etc.',
|
|
49
|
-
rows: 12
|
|
50
|
-
}
|
|
54
|
+
rows: 12
|
|
55
|
+
}
|
|
51
56
|
},
|
|
52
57
|
{
|
|
53
58
|
name: 'category',
|
|
54
59
|
type: 'select',
|
|
55
60
|
options: [
|
|
56
|
-
{
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
{
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
{
|
|
62
|
+
label: 'Brand Guidelines',
|
|
63
|
+
value: 'brand'
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
label: 'Tone of Voice',
|
|
67
|
+
value: 'tone'
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
label: 'Product Information',
|
|
71
|
+
value: 'product'
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
label: 'Industry Context',
|
|
75
|
+
value: 'industry'
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
label: 'Technical Requirements',
|
|
79
|
+
value: 'technical'
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
label: 'Page Patterns',
|
|
83
|
+
value: 'patterns'
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
label: 'Other',
|
|
87
|
+
value: 'other'
|
|
88
|
+
}
|
|
63
89
|
],
|
|
64
90
|
admin: {
|
|
65
|
-
description: 'Category for organizing context blocks'
|
|
66
|
-
}
|
|
91
|
+
description: 'Category for organizing context blocks'
|
|
92
|
+
}
|
|
67
93
|
},
|
|
68
94
|
{
|
|
69
95
|
name: 'enabled',
|
|
70
96
|
type: 'checkbox',
|
|
71
97
|
defaultValue: true,
|
|
72
98
|
admin: {
|
|
73
|
-
description: 'Include this context in AI prompts. Uncheck to temporarily disable.'
|
|
74
|
-
}
|
|
99
|
+
description: 'Include this context in AI prompts. Uncheck to temporarily disable.'
|
|
100
|
+
}
|
|
75
101
|
},
|
|
76
102
|
{
|
|
77
103
|
name: 'order',
|
|
78
104
|
type: 'number',
|
|
79
105
|
defaultValue: 0,
|
|
80
106
|
admin: {
|
|
81
|
-
description: 'Order in the context (lower numbers appear earlier in the prompt)'
|
|
82
|
-
}
|
|
83
|
-
}
|
|
107
|
+
description: 'Order in the context (lower numbers appear earlier in the prompt)'
|
|
108
|
+
}
|
|
109
|
+
}
|
|
84
110
|
],
|
|
85
|
-
timestamps: true
|
|
111
|
+
timestamps: true
|
|
86
112
|
};
|
|
113
|
+
|
|
87
114
|
//# sourceMappingURL=AiContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/ai/collections/AiContext.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload'\n\n/**\n * AI Context Collection\n *\n * Stores business context entries for the AI chat interface.\n * These context entries are concatenated and sent to the AI system prompt\n * to help it understand your brand, tone, and requirements.\n *\n * @example Creating context entries in Payload admin:\n * - \"Brand Guidelines\" - Colors, fonts, brand voice\n * - \"Tone of Voice\" - How to communicate\n * - \"Product Information\" - What you sell/offer\n * - \"Industry Context\" - Your market and audience\n */\nexport const AiContextCollection: CollectionConfig = {\n slug: 'puck-ai-context',\n labels: {\n singular: 'AI Context',\n plural: 'AI Contexts',\n },\n admin: {\n group: 'Puck',\n useAsTitle: 'name',\n defaultColumns: ['name', 'category', 'enabled', 'order', 'updatedAt'],\n hidden: false, // Visible in admin for context management\n description:\n 'Business context for AI page generation. Add entries for brand guidelines, tone of voice, product info, etc.',\n },\n access: {\n // Default: authenticated users can manage context\n read: ({ req }) => Boolean(req.user),\n create: ({ req }) => Boolean(req.user),\n update: ({ req }) => Boolean(req.user),\n delete: ({ req }) => Boolean(req.user),\n },\n fields: [\n {\n name: 'name',\n type: 'text',\n required: true,\n admin: {\n description: 'Name for this context block (e.g., \"Brand Guidelines\", \"Tone of Voice\")',\n },\n },\n {\n name: 'content',\n type: 'textarea',\n required: true,\n admin: {\n description:\n 'The context content in markdown format. Use headers (##) to organize, lists for guidelines, etc.',\n rows: 12,\n },\n },\n {\n name: 'category',\n type: 'select',\n options: [\n { label: 'Brand Guidelines', value: 'brand' },\n { label: 'Tone of Voice', value: 'tone' },\n { label: 'Product Information', value: 'product' },\n { label: 'Industry Context', value: 'industry' },\n { label: 'Technical Requirements', value: 'technical' },\n { label: 'Page Patterns', value: 'patterns' },\n { label: 'Other', value: 'other' },\n ],\n admin: {\n description: 'Category for organizing context blocks',\n },\n },\n {\n name: 'enabled',\n type: 'checkbox',\n defaultValue: true,\n admin: {\n description: 'Include this context in AI prompts. Uncheck to temporarily disable.',\n },\n },\n {\n name: 'order',\n type: 'number',\n defaultValue: 0,\n admin: {\n description: 'Order in the context (lower numbers appear earlier in the prompt)',\n },\n },\n ],\n timestamps: true,\n}\n"],"names":["AiContextCollection","slug","labels","singular","plural","admin","group","useAsTitle","defaultColumns","hidden","description","access","read","req","Boolean","user","create","update","delete","fields","name","type","required","rows","options","label","value","defaultValue","timestamps"],"mappings":"AAEA;;;;;;;;;;;;CAYC,GACD,OAAO,MAAMA,sBAAwC;IACnDC,MAAM;IACNC,QAAQ;QACNC,UAAU;QACVC,QAAQ;IACV;IACAC,OAAO;QACLC,OAAO;QACPC,YAAY;QACZC,gBAAgB;YAAC;YAAQ;YAAY;YAAW;YAAS;SAAY;QACrEC,QAAQ;QACRC,aACE;IACJ;IACAC,QAAQ;QACN,kDAAkD;QAClDC,MAAM,CAAC,EAAEC,GAAG,EAAE,GAAKC,QAAQD,IAAIE,IAAI;QACnCC,QAAQ,CAAC,EAAEH,GAAG,EAAE,GAAKC,QAAQD,IAAIE,IAAI;QACrCE,QAAQ,CAAC,EAAEJ,GAAG,EAAE,GAAKC,QAAQD,IAAIE,IAAI;QACrCG,QAAQ,CAAC,EAAEL,GAAG,EAAE,GAAKC,QAAQD,IAAIE,IAAI;IACvC;IACAI,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;YACVjB,OAAO;gBACLK,aAAa;YACf;QACF;QACA;YACEU,MAAM;YACNC,MAAM;YACNC,UAAU;YACVjB,OAAO;gBACLK,aACE;gBACFa,MAAM;YACR;QACF;QACA;YACEH,MAAM;YACNC,MAAM;YACNG,SAAS;gBACP;oBAAEC,OAAO;oBAAoBC,OAAO;gBAAQ;gBAC5C;oBAAED,OAAO;oBAAiBC,OAAO;gBAAO;gBACxC;oBAAED,OAAO;oBAAuBC,OAAO;gBAAU;gBACjD;oBAAED,OAAO;oBAAoBC,OAAO;gBAAW;gBAC/C;oBAAED,OAAO;oBAA0BC,OAAO;gBAAY;gBACtD;oBAAED,OAAO;oBAAiBC,OAAO;gBAAW;gBAC5C;oBAAED,OAAO;oBAASC,OAAO;gBAAQ;aAClC;YACDrB,OAAO;gBACLK,aAAa;YACf;QACF;QACA;YACEU,MAAM;YACNC,MAAM;YACNM,cAAc;YACdtB,OAAO;gBACLK,aAAa;YACf;QACF;QACA;YACEU,MAAM;YACNC,MAAM;YACNM,cAAc;YACdtB,OAAO;gBACLK,aAAa;YACf;QACF;KACD;IACDkB,YAAY;AACd,EAAC"}
|
|
@@ -4,25 +4,29 @@
|
|
|
4
4
|
* Stores example prompts for the AI chat interface.
|
|
5
5
|
* These prompts are displayed in the Puck editor for users to quickly
|
|
6
6
|
* start common AI generation tasks.
|
|
7
|
-
*/
|
|
8
|
-
export const AiPromptsCollection = {
|
|
7
|
+
*/ export const AiPromptsCollection = {
|
|
9
8
|
slug: 'puck-ai-prompts',
|
|
10
9
|
labels: {
|
|
11
10
|
singular: 'AI Prompt',
|
|
12
|
-
plural: 'AI Prompts'
|
|
11
|
+
plural: 'AI Prompts'
|
|
13
12
|
},
|
|
14
13
|
admin: {
|
|
15
14
|
group: 'Puck',
|
|
16
15
|
useAsTitle: 'label',
|
|
17
|
-
defaultColumns: [
|
|
18
|
-
|
|
16
|
+
defaultColumns: [
|
|
17
|
+
'label',
|
|
18
|
+
'category',
|
|
19
|
+
'order',
|
|
20
|
+
'updatedAt'
|
|
21
|
+
],
|
|
22
|
+
hidden: false
|
|
19
23
|
},
|
|
20
24
|
access: {
|
|
21
25
|
// Default: authenticated users can manage prompts
|
|
22
|
-
read: ({ req })
|
|
23
|
-
create: ({ req })
|
|
24
|
-
update: ({ req })
|
|
25
|
-
delete: ({ req })
|
|
26
|
+
read: ({ req })=>Boolean(req.user),
|
|
27
|
+
create: ({ req })=>Boolean(req.user),
|
|
28
|
+
update: ({ req })=>Boolean(req.user),
|
|
29
|
+
delete: ({ req })=>Boolean(req.user)
|
|
26
30
|
},
|
|
27
31
|
fields: [
|
|
28
32
|
{
|
|
@@ -30,8 +34,8 @@ export const AiPromptsCollection = {
|
|
|
30
34
|
type: 'text',
|
|
31
35
|
required: true,
|
|
32
36
|
admin: {
|
|
33
|
-
description: 'Display label for the prompt (e.g., "Landing page")'
|
|
34
|
-
}
|
|
37
|
+
description: 'Display label for the prompt (e.g., "Landing page")'
|
|
38
|
+
}
|
|
35
39
|
},
|
|
36
40
|
{
|
|
37
41
|
name: 'prompt',
|
|
@@ -39,25 +43,26 @@ export const AiPromptsCollection = {
|
|
|
39
43
|
required: true,
|
|
40
44
|
admin: {
|
|
41
45
|
description: 'The actual prompt text sent to the AI',
|
|
42
|
-
rows: 4
|
|
43
|
-
}
|
|
46
|
+
rows: 4
|
|
47
|
+
}
|
|
44
48
|
},
|
|
45
49
|
{
|
|
46
50
|
name: 'category',
|
|
47
51
|
type: 'text',
|
|
48
52
|
admin: {
|
|
49
|
-
description: 'Optional category for grouping prompts (e.g., "Marketing", "Product")'
|
|
50
|
-
}
|
|
53
|
+
description: 'Optional category for grouping prompts (e.g., "Marketing", "Product")'
|
|
54
|
+
}
|
|
51
55
|
},
|
|
52
56
|
{
|
|
53
57
|
name: 'order',
|
|
54
58
|
type: 'number',
|
|
55
59
|
defaultValue: 0,
|
|
56
60
|
admin: {
|
|
57
|
-
description: 'Display order (lower numbers appear first)'
|
|
58
|
-
}
|
|
59
|
-
}
|
|
61
|
+
description: 'Display order (lower numbers appear first)'
|
|
62
|
+
}
|
|
63
|
+
}
|
|
60
64
|
],
|
|
61
|
-
timestamps: true
|
|
65
|
+
timestamps: true
|
|
62
66
|
};
|
|
67
|
+
|
|
63
68
|
//# sourceMappingURL=AiPrompts.js.map
|