@delmaredigital/payload-puck 0.6.10 → 0.6.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -1
- package/dist/admin/EditWithPuckButton.d.ts +1 -1
- package/dist/admin/EditWithPuckButton.d.ts.map +1 -1
- package/dist/admin/EditWithPuckButton.js +65 -25
- package/dist/admin/EditWithPuckButton.js.map +1 -1
- package/dist/admin/EditWithPuckCell.js +43 -13
- package/dist/admin/EditWithPuckCell.js.map +1 -1
- package/dist/admin/PuckEditorView.d.ts +1 -1
- package/dist/admin/PuckEditorView.d.ts.map +1 -1
- package/dist/admin/PuckEditorView.js +118 -32
- package/dist/admin/PuckEditorView.js.map +1 -1
- package/dist/admin/client.d.ts +2 -2
- package/dist/admin/client.d.ts.map +1 -1
- package/dist/admin/client.js +4 -4
- package/dist/admin/client.js.map +1 -1
- package/dist/admin/generateAdminComponents.js +7 -7
- package/dist/admin/generateAdminComponents.js.map +1 -1
- package/dist/admin/index.d.ts +5 -5
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +3 -2
- package/dist/admin/index.js.map +1 -1
- package/dist/ai/collections/AiContext.js +56 -29
- package/dist/ai/collections/AiContext.js.map +1 -1
- package/dist/ai/collections/AiPrompts.js +24 -19
- package/dist/ai/collections/AiPrompts.js.map +1 -1
- package/dist/ai/createAiApiRoutes.js +28 -19
- package/dist/ai/createAiApiRoutes.js.map +1 -1
- package/dist/ai/createAiGenerate.js +7 -8
- package/dist/ai/createAiGenerate.js.map +1 -1
- package/dist/ai/createAiPlugin.js +7 -9
- package/dist/ai/createAiPlugin.js.map +1 -1
- package/dist/ai/hooks/useAiContext.js +50 -39
- package/dist/ai/hooks/useAiContext.js.map +1 -1
- package/dist/ai/hooks/useAiPrompts.js +33 -25
- package/dist/ai/hooks/useAiPrompts.js.map +1 -1
- package/dist/ai/index.js +9 -10
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/plugins/ContextEditorPanel.d.ts +1 -1
- package/dist/ai/plugins/ContextEditorPanel.d.ts.map +1 -1
- package/dist/ai/plugins/ContextEditorPanel.js +399 -107
- package/dist/ai/plugins/ContextEditorPanel.js.map +1 -1
- package/dist/ai/plugins/PromptEditorPanel.d.ts +1 -1
- package/dist/ai/plugins/PromptEditorPanel.d.ts.map +1 -1
- package/dist/ai/plugins/PromptEditorPanel.js +237 -51
- package/dist/ai/plugins/PromptEditorPanel.js.map +1 -1
- package/dist/ai/plugins/contextEditorPlugin.js +12 -5
- package/dist/ai/plugins/contextEditorPlugin.js.map +1 -1
- package/dist/ai/plugins/promptApiRoutes.js +119 -50
- package/dist/ai/plugins/promptApiRoutes.js.map +1 -1
- package/dist/ai/plugins/promptEditorPlugin.js +12 -5
- package/dist/ai/plugins/promptEditorPlugin.js.map +1 -1
- package/dist/ai/presets/componentAiDefaults.js +108 -83
- package/dist/ai/presets/componentAiDefaults.js.map +1 -1
- package/dist/ai/presets/index.js +12 -18
- package/dist/ai/presets/index.js.map +1 -1
- package/dist/ai/presets/instructions/interactive.js +85 -75
- package/dist/ai/presets/instructions/interactive.js.map +1 -1
- package/dist/ai/presets/instructions/layout.js +122 -117
- package/dist/ai/presets/instructions/layout.js.map +1 -1
- package/dist/ai/presets/instructions/media.js +31 -29
- package/dist/ai/presets/instructions/media.js.map +1 -1
- package/dist/ai/presets/instructions/pagePatterns.js +4 -6
- package/dist/ai/presets/instructions/pagePatterns.js.map +1 -1
- package/dist/ai/presets/instructions/schemas.js +495 -137
- package/dist/ai/presets/instructions/schemas.js.map +1 -1
- package/dist/ai/presets/instructions/typography.js +38 -33
- package/dist/ai/presets/instructions/typography.js.map +1 -1
- package/dist/ai/tools/index.js +92 -55
- package/dist/ai/tools/index.js.map +1 -1
- package/dist/ai/types.js +7 -1
- package/dist/ai/types.js.map +1 -1
- package/dist/ai/utils/injectAiConfig.js +33 -40
- package/dist/ai/utils/injectAiConfig.js.map +1 -1
- package/dist/api/createPuckApiRoutes.d.ts +1 -1
- package/dist/api/createPuckApiRoutes.d.ts.map +1 -1
- package/dist/api/createPuckApiRoutes.js +123 -65
- package/dist/api/createPuckApiRoutes.js.map +1 -1
- package/dist/api/createPuckApiRoutesVersions.d.ts +1 -1
- package/dist/api/createPuckApiRoutesVersions.d.ts.map +1 -1
- package/dist/api/createPuckApiRoutesVersions.js +88 -37
- package/dist/api/createPuckApiRoutesVersions.js.map +1 -1
- package/dist/api/createPuckApiRoutesWithId.d.ts +1 -1
- package/dist/api/createPuckApiRoutesWithId.d.ts.map +1 -1
- package/dist/api/createPuckApiRoutesWithId.js +166 -72
- package/dist/api/createPuckApiRoutesWithId.js.map +1 -1
- package/dist/api/index.d.ts +5 -5
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +6 -6
- package/dist/api/index.js.map +1 -1
- package/dist/api/payload-config.d.js +15 -0
- package/dist/api/payload-config.d.js.map +1 -0
- package/dist/api/types.js +4 -1
- package/dist/api/types.js.map +1 -1
- package/dist/api/utils/mapRootProps.d.ts +1 -1
- package/dist/api/utils/mapRootProps.d.ts.map +1 -1
- package/dist/api/utils/mapRootProps.js +77 -44
- package/dist/api/utils/mapRootProps.js.map +1 -1
- package/dist/collections/Templates.js +24 -20
- package/dist/collections/Templates.js.map +1 -1
- package/dist/components/AccordionClient.d.ts +2 -2
- package/dist/components/AccordionClient.d.ts.map +1 -1
- package/dist/components/AccordionClient.js +81 -22
- package/dist/components/AccordionClient.js.map +1 -1
- package/dist/components/AnimatedWrapper.d.ts +2 -2
- package/dist/components/AnimatedWrapper.d.ts.map +1 -1
- package/dist/components/AnimatedWrapper.js +31 -16
- package/dist/components/AnimatedWrapper.js.map +1 -1
- package/dist/components/exports.js +2 -2
- package/dist/components/exports.js.map +1 -1
- package/dist/components/index.d.ts +5 -5
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +7 -7
- package/dist/components/index.js.map +1 -1
- package/dist/components/interactive/Accordion.d.ts +1 -1
- package/dist/components/interactive/Accordion.d.ts.map +1 -1
- package/dist/components/interactive/Accordion.js +149 -55
- package/dist/components/interactive/Accordion.js.map +1 -1
- package/dist/components/interactive/Accordion.server.d.ts +1 -1
- package/dist/components/interactive/Accordion.server.d.ts.map +1 -1
- package/dist/components/interactive/Accordion.server.js +25 -7
- package/dist/components/interactive/Accordion.server.js.map +1 -1
- package/dist/components/interactive/Button.d.ts +3 -3
- package/dist/components/interactive/Button.d.ts.map +1 -1
- package/dist/components/interactive/Button.js +89 -43
- package/dist/components/interactive/Button.js.map +1 -1
- package/dist/components/interactive/Button.server.d.ts +2 -2
- package/dist/components/interactive/Button.server.d.ts.map +1 -1
- package/dist/components/interactive/Button.server.js +40 -20
- package/dist/components/interactive/Button.server.js.map +1 -1
- package/dist/components/interactive/Card.d.ts +3 -3
- package/dist/components/interactive/Card.d.ts.map +1 -1
- package/dist/components/interactive/Card.js +131 -39
- package/dist/components/interactive/Card.js.map +1 -1
- package/dist/components/interactive/Card.server.d.ts +3 -3
- package/dist/components/interactive/Card.server.d.ts.map +1 -1
- package/dist/components/interactive/Card.server.js +72 -11
- package/dist/components/interactive/Card.server.js.map +1 -1
- package/dist/components/interactive/Divider.d.ts +1 -1
- package/dist/components/interactive/Divider.d.ts.map +1 -1
- package/dist/components/interactive/Divider.js +54 -26
- package/dist/components/interactive/Divider.js.map +1 -1
- package/dist/components/interactive/Divider.server.d.ts +1 -1
- package/dist/components/interactive/Divider.server.d.ts.map +1 -1
- package/dist/components/interactive/Divider.server.js +28 -12
- package/dist/components/interactive/Divider.server.js.map +1 -1
- package/dist/components/interactive/index.d.ts +4 -4
- package/dist/components/interactive/index.d.ts.map +1 -1
- package/dist/components/interactive/index.js +5 -5
- package/dist/components/interactive/index.js.map +1 -1
- package/dist/components/layout/Container.d.ts +1 -1
- package/dist/components/layout/Container.d.ts.map +1 -1
- package/dist/components/layout/Container.js +101 -47
- package/dist/components/layout/Container.js.map +1 -1
- package/dist/components/layout/Container.server.d.ts +1 -1
- package/dist/components/layout/Container.server.d.ts.map +1 -1
- package/dist/components/layout/Container.server.js +67 -19
- package/dist/components/layout/Container.server.js.map +1 -1
- package/dist/components/layout/Flex.d.ts +2 -2
- package/dist/components/layout/Flex.d.ts.map +1 -1
- package/dist/components/layout/Flex.js +124 -55
- package/dist/components/layout/Flex.js.map +1 -1
- package/dist/components/layout/Flex.server.d.ts +1 -1
- package/dist/components/layout/Flex.server.d.ts.map +1 -1
- package/dist/components/layout/Flex.server.js +50 -14
- package/dist/components/layout/Flex.server.js.map +1 -1
- package/dist/components/layout/Grid.d.ts +1 -1
- package/dist/components/layout/Grid.d.ts.map +1 -1
- package/dist/components/layout/Grid.js +93 -44
- package/dist/components/layout/Grid.js.map +1 -1
- package/dist/components/layout/Grid.server.d.ts +1 -1
- package/dist/components/layout/Grid.server.d.ts.map +1 -1
- package/dist/components/layout/Grid.server.js +56 -14
- package/dist/components/layout/Grid.server.js.map +1 -1
- package/dist/components/layout/Section.d.ts +1 -1
- package/dist/components/layout/Section.d.ts.map +1 -1
- package/dist/components/layout/Section.js +147 -64
- package/dist/components/layout/Section.js.map +1 -1
- package/dist/components/layout/Section.server.d.ts +1 -1
- package/dist/components/layout/Section.server.d.ts.map +1 -1
- package/dist/components/layout/Section.server.js +92 -28
- package/dist/components/layout/Section.server.js.map +1 -1
- package/dist/components/layout/Spacer.d.ts +1 -1
- package/dist/components/layout/Spacer.d.ts.map +1 -1
- package/dist/components/layout/Spacer.js +80 -30
- package/dist/components/layout/Spacer.js.map +1 -1
- package/dist/components/layout/Spacer.server.d.ts +1 -1
- package/dist/components/layout/Spacer.server.d.ts.map +1 -1
- package/dist/components/layout/Spacer.server.js +31 -9
- package/dist/components/layout/Spacer.server.js.map +1 -1
- package/dist/components/layout/Template.d.ts +1 -1
- package/dist/components/layout/Template.d.ts.map +1 -1
- package/dist/components/layout/Template.js +58 -30
- package/dist/components/layout/Template.js.map +1 -1
- package/dist/components/layout/Template.server.d.ts +1 -1
- package/dist/components/layout/Template.server.d.ts.map +1 -1
- package/dist/components/layout/Template.server.js +43 -11
- package/dist/components/layout/Template.server.js.map +1 -1
- package/dist/components/layout/index.d.ts +8 -8
- package/dist/components/layout/index.d.ts.map +1 -1
- package/dist/components/layout/index.js +8 -8
- package/dist/components/layout/index.js.map +1 -1
- package/dist/components/media/Image.d.ts +3 -3
- package/dist/components/media/Image.d.ts.map +1 -1
- package/dist/components/media/Image.js +122 -39
- package/dist/components/media/Image.js.map +1 -1
- package/dist/components/media/Image.server.d.ts +3 -3
- package/dist/components/media/Image.server.d.ts.map +1 -1
- package/dist/components/media/Image.server.js +76 -13
- package/dist/components/media/Image.server.js.map +1 -1
- package/dist/components/media/index.d.ts +1 -1
- package/dist/components/media/index.d.ts.map +1 -1
- package/dist/components/media/index.js +2 -2
- package/dist/components/media/index.js.map +1 -1
- package/dist/components/typography/Heading.d.ts +2 -2
- package/dist/components/typography/Heading.d.ts.map +1 -1
- package/dist/components/typography/Heading.js +45 -25
- package/dist/components/typography/Heading.js.map +1 -1
- package/dist/components/typography/Heading.server.d.ts +2 -2
- package/dist/components/typography/Heading.server.d.ts.map +1 -1
- package/dist/components/typography/Heading.server.js +16 -10
- package/dist/components/typography/Heading.server.js.map +1 -1
- package/dist/components/typography/RichText.editor.d.ts +1 -1
- package/dist/components/typography/RichText.editor.d.ts.map +1 -1
- package/dist/components/typography/RichText.editor.js +44 -19
- package/dist/components/typography/RichText.editor.js.map +1 -1
- package/dist/components/typography/RichText.server.d.ts +2 -2
- package/dist/components/typography/RichText.server.d.ts.map +1 -1
- package/dist/components/typography/RichText.server.js +33 -14
- package/dist/components/typography/RichText.server.js.map +1 -1
- package/dist/components/typography/Text.d.ts +2 -2
- package/dist/components/typography/Text.d.ts.map +1 -1
- package/dist/components/typography/Text.js +49 -23
- package/dist/components/typography/Text.js.map +1 -1
- package/dist/components/typography/Text.server.d.ts +2 -2
- package/dist/components/typography/Text.server.d.ts.map +1 -1
- package/dist/components/typography/Text.server.js +21 -8
- package/dist/components/typography/Text.server.js.map +1 -1
- package/dist/components/typography/index.d.ts +4 -4
- package/dist/components/typography/index.d.ts.map +1 -1
- package/dist/components/typography/index.js +5 -5
- package/dist/components/typography/index.js.map +1 -1
- package/dist/config/config.editor.d.ts +3 -3
- package/dist/config/config.editor.d.ts.map +1 -1
- package/dist/config/config.editor.js +119 -54
- package/dist/config/config.editor.js.map +1 -1
- package/dist/config/index.d.ts +4 -4
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +62 -35
- package/dist/config/index.js.map +1 -1
- package/dist/config/merge.d.ts +1 -1
- package/dist/config/merge.d.ts.map +1 -1
- package/dist/config/merge.js +23 -26
- package/dist/config/merge.js.map +1 -1
- package/dist/config/presets.d.ts +4 -4
- package/dist/config/presets.js +195 -75
- package/dist/config/presets.js.map +1 -1
- package/dist/config/types.js +6 -2
- package/dist/config/types.js.map +1 -1
- package/dist/editor/PuckEditor.d.ts +12 -4
- package/dist/editor/PuckEditor.d.ts.map +1 -1
- package/dist/editor/PuckEditor.js +168 -67
- package/dist/editor/PuckEditor.js.map +1 -1
- package/dist/editor/PuckEditorImpl.client.d.ts +4 -4
- package/dist/editor/PuckEditorImpl.client.d.ts.map +1 -1
- package/dist/editor/PuckEditorImpl.client.js +304 -152
- package/dist/editor/PuckEditorImpl.client.js.map +1 -1
- package/dist/editor/components/DarkModeStyles.js +11 -12
- package/dist/editor/components/DarkModeStyles.js.map +1 -1
- package/dist/editor/components/HeaderActions.js +308 -64
- package/dist/editor/components/HeaderActions.js.map +1 -1
- package/dist/editor/components/IframeWrapper.d.ts +1 -1
- package/dist/editor/components/IframeWrapper.d.ts.map +1 -1
- package/dist/editor/components/IframeWrapper.js +82 -58
- package/dist/editor/components/IframeWrapper.js.map +1 -1
- package/dist/editor/components/LoadingState.d.ts +1 -1
- package/dist/editor/components/LoadingState.d.ts.map +1 -1
- package/dist/editor/components/LoadingState.js +17 -3
- package/dist/editor/components/LoadingState.js.map +1 -1
- package/dist/editor/components/PreviewModal.js +234 -78
- package/dist/editor/components/PreviewModal.js.map +1 -1
- package/dist/editor/components/PreviewModeToggle.js +43 -15
- package/dist/editor/components/PreviewModeToggle.js.map +1 -1
- package/dist/editor/components/VersionHistory.js +219 -71
- package/dist/editor/components/VersionHistory.js.map +1 -1
- package/dist/editor/hooks/useDarkMode.js +36 -23
- package/dist/editor/hooks/useDarkMode.js.map +1 -1
- package/dist/editor/hooks/useUnsavedChanges.js +8 -8
- package/dist/editor/hooks/useUnsavedChanges.js.map +1 -1
- package/dist/editor/index.js +5 -6
- package/dist/editor/index.js.map +1 -1
- package/dist/editor/plugins/VersionHistoryPanel.js +236 -75
- package/dist/editor/plugins/VersionHistoryPanel.js.map +1 -1
- package/dist/editor/plugins/index.js +4 -4
- package/dist/editor/plugins/index.js.map +1 -1
- package/dist/editor/plugins/versionHistoryPlugin.js +10 -8
- package/dist/editor/plugins/versionHistoryPlugin.js.map +1 -1
- package/dist/editor/utils/detectPageTree.js +5 -5
- package/dist/editor/utils/detectPageTree.js.map +1 -1
- package/dist/editor/utils/index.js +1 -0
- package/dist/editor/utils/index.js.map +1 -1
- package/dist/editor/utils/injectPageTreeFields.js +13 -9
- package/dist/editor/utils/injectPageTreeFields.js.map +1 -1
- package/dist/endpoints/ai.js +58 -34
- package/dist/endpoints/ai.js.map +1 -1
- package/dist/endpoints/context.js +86 -40
- package/dist/endpoints/context.js.map +1 -1
- package/dist/endpoints/index.js +153 -76
- package/dist/endpoints/index.js.map +1 -1
- package/dist/endpoints/postcss.d.js +5 -0
- package/dist/endpoints/postcss.d.js.map +1 -0
- package/dist/endpoints/prompts.js +81 -39
- package/dist/endpoints/prompts.js.map +1 -1
- package/dist/endpoints/styles.js +34 -36
- package/dist/endpoints/styles.js.map +1 -1
- package/dist/exports/client.js +2 -2
- package/dist/exports/client.js.map +1 -1
- package/dist/exports/rsc.js +2 -2
- package/dist/exports/rsc.js.map +1 -1
- package/dist/fields/AlignmentField.d.ts +1 -1
- package/dist/fields/AlignmentField.d.ts.map +1 -1
- package/dist/fields/AlignmentField.js +93 -30
- package/dist/fields/AlignmentField.js.map +1 -1
- package/dist/fields/AnimationField.d.ts +2 -2
- package/dist/fields/AnimationField.d.ts.map +1 -1
- package/dist/fields/AnimationField.js +558 -84
- package/dist/fields/AnimationField.js.map +1 -1
- package/dist/fields/BackgroundField.d.ts +2 -2
- package/dist/fields/BackgroundField.d.ts.map +1 -1
- package/dist/fields/BackgroundField.js +754 -120
- package/dist/fields/BackgroundField.js.map +1 -1
- package/dist/fields/BorderField.d.ts +2 -2
- package/dist/fields/BorderField.d.ts.map +1 -1
- package/dist/fields/BorderField.js +275 -73
- package/dist/fields/BorderField.js.map +1 -1
- package/dist/fields/ColorPickerField.d.ts +2 -2
- package/dist/fields/ColorPickerField.d.ts.map +1 -1
- package/dist/fields/ColorPickerField.js +210 -68
- package/dist/fields/ColorPickerField.js.map +1 -1
- package/dist/fields/ContentAlignmentField.d.ts +1 -1
- package/dist/fields/ContentAlignmentField.d.ts.map +1 -1
- package/dist/fields/ContentAlignmentField.js +161 -75
- package/dist/fields/ContentAlignmentField.js.map +1 -1
- package/dist/fields/DimensionsField.d.ts +2 -2
- package/dist/fields/DimensionsField.d.ts.map +1 -1
- package/dist/fields/DimensionsField.js +575 -146
- package/dist/fields/DimensionsField.js.map +1 -1
- package/dist/fields/FlexAlignmentField.d.ts +2 -2
- package/dist/fields/FlexAlignmentField.d.ts.map +1 -1
- package/dist/fields/FlexAlignmentField.js +189 -51
- package/dist/fields/FlexAlignmentField.js.map +1 -1
- package/dist/fields/FolderPickerField.d.ts +8 -1
- package/dist/fields/FolderPickerField.d.ts.map +1 -1
- package/dist/fields/FolderPickerField.js +288 -75
- package/dist/fields/FolderPickerField.js.map +1 -1
- package/dist/fields/GradientEditor.d.ts +2 -2
- package/dist/fields/GradientEditor.d.ts.map +1 -1
- package/dist/fields/GradientEditor.js +462 -86
- package/dist/fields/GradientEditor.js.map +1 -1
- package/dist/fields/LockedField.d.ts +15 -2
- package/dist/fields/LockedField.d.ts.map +1 -1
- package/dist/fields/LockedField.js +180 -49
- package/dist/fields/LockedField.js.map +1 -1
- package/dist/fields/MarginField.d.ts +2 -2
- package/dist/fields/MarginField.d.ts.map +1 -1
- package/dist/fields/MarginField.js +144 -46
- package/dist/fields/MarginField.js.map +1 -1
- package/dist/fields/MediaField.d.ts +1 -1
- package/dist/fields/MediaField.d.ts.map +1 -1
- package/dist/fields/MediaField.js +688 -186
- package/dist/fields/MediaField.js.map +1 -1
- package/dist/fields/PaddingField.d.ts +2 -2
- package/dist/fields/PaddingField.d.ts.map +1 -1
- package/dist/fields/PaddingField.js +144 -46
- package/dist/fields/PaddingField.js.map +1 -1
- package/dist/fields/PageSegmentField.d.ts +15 -2
- package/dist/fields/PageSegmentField.d.ts.map +1 -1
- package/dist/fields/PageSegmentField.js +156 -54
- package/dist/fields/PageSegmentField.js.map +1 -1
- package/dist/fields/ResetField.d.ts +1 -1
- package/dist/fields/ResetField.d.ts.map +1 -1
- package/dist/fields/ResetField.js +59 -31
- package/dist/fields/ResetField.js.map +1 -1
- package/dist/fields/ResponsiveField.d.ts +1 -1
- package/dist/fields/ResponsiveField.d.ts.map +1 -1
- package/dist/fields/ResponsiveField.js +233 -90
- package/dist/fields/ResponsiveField.js.map +1 -1
- package/dist/fields/ResponsiveVisibilityField.d.ts +2 -2
- package/dist/fields/ResponsiveVisibilityField.d.ts.map +1 -1
- package/dist/fields/ResponsiveVisibilityField.js +119 -36
- package/dist/fields/ResponsiveVisibilityField.js.map +1 -1
- package/dist/fields/SizeField.d.ts +3 -3
- package/dist/fields/SizeField.d.ts.map +1 -1
- package/dist/fields/SizeField.js +226 -52
- package/dist/fields/SizeField.js.map +1 -1
- package/dist/fields/SlugPreviewField.d.ts +8 -1
- package/dist/fields/SlugPreviewField.d.ts.map +1 -1
- package/dist/fields/SlugPreviewField.js +65 -16
- package/dist/fields/SlugPreviewField.js.map +1 -1
- package/dist/fields/TemplateField.d.ts +1 -1
- package/dist/fields/TemplateField.d.ts.map +1 -1
- package/dist/fields/TemplateField.js +362 -120
- package/dist/fields/TemplateField.js.map +1 -1
- package/dist/fields/TransformField.d.ts +2 -2
- package/dist/fields/TransformField.d.ts.map +1 -1
- package/dist/fields/TransformField.js +517 -81
- package/dist/fields/TransformField.js.map +1 -1
- package/dist/fields/VerticalAlignmentField.d.ts +1 -1
- package/dist/fields/VerticalAlignmentField.d.ts.map +1 -1
- package/dist/fields/VerticalAlignmentField.js +93 -30
- package/dist/fields/VerticalAlignmentField.js.map +1 -1
- package/dist/fields/WidthField.d.ts +2 -2
- package/dist/fields/WidthField.d.ts.map +1 -1
- package/dist/fields/WidthField.js +278 -81
- package/dist/fields/WidthField.js.map +1 -1
- package/dist/fields/index.d.ts +41 -41
- package/dist/fields/index.d.ts.map +1 -1
- package/dist/fields/index.js +37 -43
- package/dist/fields/index.js.map +1 -1
- package/dist/fields/richtext/controls/ColorPickerControl.d.ts +13 -2
- package/dist/fields/richtext/controls/ColorPickerControl.d.ts.map +1 -1
- package/dist/fields/richtext/controls/ColorPickerControl.js +212 -47
- package/dist/fields/richtext/controls/ColorPickerControl.js.map +1 -1
- package/dist/fields/richtext/controls/DropdownPortal.d.ts +2 -2
- package/dist/fields/richtext/controls/DropdownPortal.d.ts.map +1 -1
- package/dist/fields/richtext/controls/DropdownPortal.js +36 -4
- package/dist/fields/richtext/controls/DropdownPortal.js.map +1 -1
- package/dist/fields/richtext/controls/FontSizeControl.d.ts +9 -1
- package/dist/fields/richtext/controls/FontSizeControl.d.ts.map +1 -1
- package/dist/fields/richtext/controls/FontSizeControl.js +109 -24
- package/dist/fields/richtext/controls/FontSizeControl.js.map +1 -1
- package/dist/fields/richtext/controls/HighlightControl.d.ts +12 -1
- package/dist/fields/richtext/controls/HighlightControl.d.ts.map +1 -1
- package/dist/fields/richtext/controls/HighlightControl.js +54 -17
- package/dist/fields/richtext/controls/HighlightControl.js.map +1 -1
- package/dist/fields/richtext/controls/index.d.ts +5 -5
- package/dist/fields/richtext/controls/index.d.ts.map +1 -1
- package/dist/fields/richtext/controls/index.js +8 -11
- package/dist/fields/richtext/controls/index.js.map +1 -1
- package/dist/fields/richtext/controls/shared.js +108 -63
- package/dist/fields/richtext/controls/shared.js.map +1 -1
- package/dist/fields/richtext/createRichTextField.d.ts +18 -4
- package/dist/fields/richtext/createRichTextField.d.ts.map +1 -1
- package/dist/fields/richtext/createRichTextField.js +113 -26
- package/dist/fields/richtext/createRichTextField.js.map +1 -1
- package/dist/fields/richtext/extensions/FontSize.js +26 -20
- package/dist/fields/richtext/extensions/FontSize.js.map +1 -1
- package/dist/fields/richtext/extensions/index.d.ts +1 -1
- package/dist/fields/richtext/extensions/index.d.ts.map +1 -1
- package/dist/fields/richtext/extensions/index.js +2 -2
- package/dist/fields/richtext/extensions/index.js.map +1 -1
- package/dist/fields/richtext/index.d.ts +6 -6
- package/dist/fields/richtext/index.d.ts.map +1 -1
- package/dist/fields/richtext/index.js +8 -8
- package/dist/fields/richtext/index.js.map +1 -1
- package/dist/fields/shared.d.ts +1 -1
- package/dist/fields/shared.d.ts.map +1 -1
- package/dist/fields/shared.js +915 -478
- package/dist/fields/shared.js.map +1 -1
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +3 -3
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useResponsiveStyles.d.ts +1 -1
- package/dist/hooks/useResponsiveStyles.d.ts.map +1 -1
- package/dist/hooks/useResponsiveStyles.js +36 -32
- package/dist/hooks/useResponsiveStyles.js.map +1 -1
- package/dist/hooks/useScrollAnimation.js +26 -24
- package/dist/hooks/useScrollAnimation.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/layouts/LayoutWrapper.d.ts +3 -3
- package/dist/layouts/LayoutWrapper.d.ts.map +1 -1
- package/dist/layouts/LayoutWrapper.js +115 -51
- package/dist/layouts/LayoutWrapper.js.map +1 -1
- package/dist/layouts/defaults.d.ts +1 -1
- package/dist/layouts/defaults.d.ts.map +1 -1
- package/dist/layouts/defaults.js +23 -31
- package/dist/layouts/defaults.js.map +1 -1
- package/dist/layouts/index.d.ts +4 -4
- package/dist/layouts/index.d.ts.map +1 -1
- package/dist/layouts/index.js +5 -4
- package/dist/layouts/index.js.map +1 -1
- package/dist/layouts/types.js +4 -2
- package/dist/layouts/types.js.map +1 -1
- package/dist/layouts/utils.d.ts +1 -1
- package/dist/layouts/utils.d.ts.map +1 -1
- package/dist/layouts/utils.js +32 -40
- package/dist/layouts/utils.js.map +1 -1
- package/dist/next/index.js +31 -34
- package/dist/next/index.js.map +1 -1
- package/dist/plugin/collections/Pages.d.ts +2 -2
- package/dist/plugin/collections/Pages.d.ts.map +1 -1
- package/dist/plugin/collections/Pages.js +46 -43
- package/dist/plugin/collections/Pages.js.map +1 -1
- package/dist/plugin/fields/index.d.ts +3 -3
- package/dist/plugin/fields/index.d.ts.map +1 -1
- package/dist/plugin/fields/index.js +100 -78
- package/dist/plugin/fields/index.js.map +1 -1
- package/dist/plugin/fields/types.d.ts +1 -1
- package/dist/plugin/fields/types.d.ts.map +1 -1
- package/dist/plugin/fields/types.js +26 -2
- package/dist/plugin/fields/types.js.map +1 -1
- package/dist/plugin/hooks/index.d.ts +1 -1
- package/dist/plugin/hooks/index.d.ts.map +1 -1
- package/dist/plugin/hooks/index.js +2 -2
- package/dist/plugin/hooks/index.js.map +1 -1
- package/dist/plugin/hooks/isHomepageUnique.js +28 -19
- package/dist/plugin/hooks/isHomepageUnique.js.map +1 -1
- package/dist/plugin/index.d.ts +8 -8
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +192 -188
- package/dist/plugin/index.js.map +1 -1
- package/dist/render/HybridPageRenderer.d.ts +2 -2
- package/dist/render/HybridPageRenderer.d.ts.map +1 -1
- package/dist/render/HybridPageRenderer.js +58 -10
- package/dist/render/HybridPageRenderer.js.map +1 -1
- package/dist/render/PageRenderer.d.ts +2 -2
- package/dist/render/PageRenderer.d.ts.map +1 -1
- package/dist/render/PageRenderer.js +31 -14
- package/dist/render/PageRenderer.js.map +1 -1
- package/dist/render/PuckEditor.client.d.ts +1 -1
- package/dist/render/PuckEditor.client.d.ts.map +1 -1
- package/dist/render/PuckEditor.client.js +33 -16
- package/dist/render/PuckEditor.client.js.map +1 -1
- package/dist/render/index.d.ts +5 -5
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/index.js +5 -6
- package/dist/render/index.js.map +1 -1
- package/dist/styles/puck-dark-mode.css +101 -0
- package/dist/theme/context.d.ts +2 -2
- package/dist/theme/context.d.ts.map +1 -1
- package/dist/theme/context.js +21 -18
- package/dist/theme/context.js.map +1 -1
- package/dist/theme/defaults.d.ts +1 -1
- package/dist/theme/defaults.d.ts.map +1 -1
- package/dist/theme/defaults.js +83 -37
- package/dist/theme/defaults.js.map +1 -1
- package/dist/theme/example.d.ts +1 -1
- package/dist/theme/example.d.ts.map +1 -1
- package/dist/theme/example.js +68 -30
- package/dist/theme/example.js.map +1 -1
- package/dist/theme/index.d.ts +5 -5
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +6 -5
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/types.js +6 -2
- package/dist/theme/types.js.map +1 -1
- package/dist/theme/utils.d.ts +1 -1
- package/dist/theme/utils.d.ts.map +1 -1
- package/dist/theme/utils.js +24 -25
- package/dist/theme/utils.js.map +1 -1
- package/dist/types/index.d.ts +42 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +13 -22
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/migration.d.ts +1 -1
- package/dist/utils/migration.d.ts.map +1 -1
- package/dist/utils/migration.js +43 -49
- package/dist/utils/migration.js.map +1 -1
- package/dist/utils/validation.d.ts +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +36 -43
- package/dist/utils/validation.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +2 -1
- package/dist/version.js.map +1 -1
- package/dist/views/PuckConfigContext.d.ts +1 -1
- package/dist/views/PuckConfigContext.d.ts.map +1 -1
- package/dist/views/PuckConfigContext.js +25 -10
- package/dist/views/PuckConfigContext.js.map +1 -1
- package/dist/views/PuckEditorView.d.ts +1 -1
- package/dist/views/PuckEditorView.d.ts.map +1 -1
- package/dist/views/PuckEditorView.js +137 -41
- package/dist/views/PuckEditorView.js.map +1 -1
- package/dist/views/index.js +2 -2
- package/dist/views/index.js.map +1 -1
- package/package.json +62 -42
package/README.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
A PayloadCMS plugin for integrating [Puck](https://puckeditor.com) visual page builder. Build pages visually with drag-and-drop components while leveraging Payload's content management capabilities.
|
|
4
4
|
|
|
5
|
+
[](https://demo.delmaredigital.com)
|
|
6
|
+
[](https://github.com/delmaredigital/dd-starter)
|
|
7
|
+
[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fdelmaredigital%2Fdd-starter&project-name=my-payload-site&build-command=pnpm%20run%20ci&env=PAYLOAD_SECRET,BETTER_AUTH_SECRET&stores=%5B%7B%22type%22%3A%22integration%22%2C%22protocol%22%3A%22storage%22%2C%22productSlug%22%3A%22neon%22%2C%22integrationSlug%22%3A%22neon%22%7D%2C%7B%22type%22%3A%22blob%22%7D%5D)
|
|
8
|
+
|
|
5
9
|
---
|
|
6
10
|
|
|
7
11
|
## Table of Contents
|
|
@@ -20,6 +24,7 @@ A PayloadCMS plugin for integrating [Puck](https://puckeditor.com) visual page b
|
|
|
20
24
|
- [Page-Tree Integration](#page-tree-integration)
|
|
21
25
|
- [Hybrid Integration](#hybrid-integration)
|
|
22
26
|
- [AI Integration](#ai-integration)
|
|
27
|
+
- [Plugin Order](#plugin-order)
|
|
23
28
|
- [Advanced Configuration](#advanced-configuration)
|
|
24
29
|
- [License](#license)
|
|
25
30
|
|
|
@@ -959,6 +964,8 @@ function useDetectTheme() {
|
|
|
959
964
|
|
|
960
965
|
When `@delmaredigital/payload-page-tree` is detected, the plugin automatically adds folder management to the Puck sidebar.
|
|
961
966
|
|
|
967
|
+
> **⚠️ Plugin Order:** When using both plugins with `autoGenerateCollection: true`, Puck must run BEFORE page-tree. See [Plugin Order](#plugin-order).
|
|
968
|
+
|
|
962
969
|
### How It Works
|
|
963
970
|
|
|
964
971
|
The plugin checks if your collection has a `pageSegment` field (page-tree's signature). When detected:
|
|
@@ -1306,6 +1313,48 @@ import {
|
|
|
1306
1313
|
|
|
1307
1314
|
---
|
|
1308
1315
|
|
|
1316
|
+
## Plugin Order
|
|
1317
|
+
|
|
1318
|
+
When using `autoGenerateCollection: true` (the default) with `@delmaredigital/payload-page-tree`, **plugin order matters**.
|
|
1319
|
+
|
|
1320
|
+
### The Issue
|
|
1321
|
+
|
|
1322
|
+
The page-tree plugin validates configured collections when it initializes. If Puck hasn't created the collection yet, page-tree won't see it and will skip adding its fields (folder relationships, slug generation, etc.).
|
|
1323
|
+
|
|
1324
|
+
### Correct Order
|
|
1325
|
+
|
|
1326
|
+
```typescript
|
|
1327
|
+
// ✅ CORRECT: Puck creates the collection before page-tree runs
|
|
1328
|
+
export const plugins = [
|
|
1329
|
+
createPuckPlugin({ pagesCollection: 'pages' }), // Creates Pages first
|
|
1330
|
+
pageTreePlugin({ collections: ['pages'] }), // Now sees Pages
|
|
1331
|
+
]
|
|
1332
|
+
|
|
1333
|
+
// ❌ WRONG: page-tree runs before Pages exists
|
|
1334
|
+
export const plugins = [
|
|
1335
|
+
pageTreePlugin({ collections: ['pages'] }), // Pages doesn't exist!
|
|
1336
|
+
createPuckPlugin({ pagesCollection: 'pages' }), // Creates Pages too late
|
|
1337
|
+
]
|
|
1338
|
+
```
|
|
1339
|
+
|
|
1340
|
+
### When Order Doesn't Matter
|
|
1341
|
+
|
|
1342
|
+
If you define your collection manually (with `autoGenerateCollection: false`), order doesn't matter because the collection already exists in your config:
|
|
1343
|
+
|
|
1344
|
+
```typescript
|
|
1345
|
+
export default buildConfig({
|
|
1346
|
+
collections: [Pages], // Collection exists before plugins run
|
|
1347
|
+
plugins: [
|
|
1348
|
+
pageTreePlugin({ collections: ['pages'] }),
|
|
1349
|
+
createPuckPlugin({ pagesCollection: 'pages', autoGenerateCollection: false }),
|
|
1350
|
+
],
|
|
1351
|
+
})
|
|
1352
|
+
```
|
|
1353
|
+
|
|
1354
|
+
See also: [payload-page-tree Plugin Order documentation](https://github.com/delmaredigital/payload-page-tree#plugin-order-critical)
|
|
1355
|
+
|
|
1356
|
+
---
|
|
1357
|
+
|
|
1309
1358
|
## Advanced Configuration
|
|
1310
1359
|
|
|
1311
1360
|
### Plugin Options
|
|
@@ -1313,7 +1362,7 @@ import {
|
|
|
1313
1362
|
| Option | Default | Description |
|
|
1314
1363
|
|--------|---------|-------------|
|
|
1315
1364
|
| `pagesCollection` | `'pages'` | Collection slug to use for pages |
|
|
1316
|
-
| `autoGenerateCollection` | `true` | Create the collection if it doesn't exist, or add Puck fields to existing |
|
|
1365
|
+
| `autoGenerateCollection` | `true` | Create the collection if it doesn't exist, or add Puck fields to existing (see [Plugin Order](#plugin-order)) |
|
|
1317
1366
|
| `enableEndpoints` | `true` | Register API endpoints at `/api/puck/:collection` for the editor |
|
|
1318
1367
|
| `enableAdminView` | `true` | Register the Puck editor view in Payload admin |
|
|
1319
1368
|
| `adminViewPath` | `'/puck-editor'` | Path for the editor (full path: `/admin/puck-editor/:collection/:id`) |
|
|
@@ -1322,6 +1371,7 @@ import {
|
|
|
1322
1371
|
| `editorStylesheet` | `undefined` | Path to CSS file for editor iframe styling (e.g., `'src/app/globals.css'`) |
|
|
1323
1372
|
| `editorStylesheetCompiled` | `undefined` | Path to pre-compiled CSS for production (e.g., `'/puck-editor-styles.css'`) |
|
|
1324
1373
|
| `editorStylesheetUrls` | `[]` | Additional stylesheet URLs for the editor (e.g., Google Fonts) |
|
|
1374
|
+
| `previewUrl` | `undefined` | URL for "View" button - string or function receiving page data |
|
|
1325
1375
|
|
|
1326
1376
|
```typescript
|
|
1327
1377
|
createPuckPlugin({
|
|
@@ -1349,6 +1399,34 @@ createPuckPlugin({
|
|
|
1349
1399
|
})
|
|
1350
1400
|
```
|
|
1351
1401
|
|
|
1402
|
+
### Preview URL (View Button)
|
|
1403
|
+
|
|
1404
|
+
The "View" button in the editor opens the published page in a new tab. By default, it navigates to `/{slug}` (or `/` for homepage). Use the `previewUrl` option to customize this behavior.
|
|
1405
|
+
|
|
1406
|
+
```typescript
|
|
1407
|
+
// Simple static URL pattern
|
|
1408
|
+
createPuckPlugin({
|
|
1409
|
+
previewUrl: '/preview',
|
|
1410
|
+
})
|
|
1411
|
+
|
|
1412
|
+
// Dynamic prefix based on page data
|
|
1413
|
+
createPuckPlugin({
|
|
1414
|
+
previewUrl: (page) => `/${page.slug || ''}`,
|
|
1415
|
+
})
|
|
1416
|
+
|
|
1417
|
+
// Organization-scoped pages (multi-tenant)
|
|
1418
|
+
// The function receives the full page document with relationships populated
|
|
1419
|
+
createPuckPlugin({
|
|
1420
|
+
previewUrl: (page) => {
|
|
1421
|
+
const orgSlug = page.organization?.slug || 'default'
|
|
1422
|
+
// Return a function that handles homepage vs regular pages
|
|
1423
|
+
return (slug) => slug ? `/${orgSlug}/${slug}` : `/${orgSlug}`
|
|
1424
|
+
},
|
|
1425
|
+
})
|
|
1426
|
+
```
|
|
1427
|
+
|
|
1428
|
+
When `previewUrl` is a function, the page document is fetched with `depth: 1` so relationship fields (like `organization`) are populated with their full data.
|
|
1429
|
+
|
|
1352
1430
|
### Editor Stylesheet (Iframe Styling)
|
|
1353
1431
|
|
|
1354
1432
|
The Puck editor renders page content in an iframe. By default, this iframe doesn't have access to your frontend's CSS (Tailwind utilities, CSS variables, fonts). The `editorStylesheet` option solves this by compiling and serving your CSS.
|
|
@@ -69,6 +69,6 @@ export declare const EditWithPuckButton: UIFieldClientComponent;
|
|
|
69
69
|
export declare function EditWithPuckLink({ id, collectionSlug, editorPathPattern, label, iconOnly, }: EditWithPuckButtonProps & {
|
|
70
70
|
id: string;
|
|
71
71
|
adminRoute?: string;
|
|
72
|
-
}): import("react
|
|
72
|
+
}): import("react").JSX.Element;
|
|
73
73
|
export default EditWithPuckButton;
|
|
74
74
|
//# sourceMappingURL=EditWithPuckButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditWithPuckButton.d.ts","sourceRoot":"","sources":["../../src/admin/EditWithPuckButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAGrD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAwBD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,kBAAkB,EAAE,sBA4DhC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,EAAE,EACF,cAAwB,EACxB,iBAAiB,EACjB,KAAuB,EACvB,QAAgB,GACjB,EAAE,uBAAuB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE
|
|
1
|
+
{"version":3,"file":"EditWithPuckButton.d.ts","sourceRoot":"","sources":["../../src/admin/EditWithPuckButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAGrD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAwBD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,kBAAkB,EAAE,sBA4DhC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,EAAE,EACF,cAAwB,EACxB,iBAAiB,EACjB,KAAuB,EACvB,QAAgB,GACjB,EAAE,uBAAuB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,+BAkC/D;AAED,eAAe,kBAAkB,CAAA"}
|
|
@@ -3,9 +3,26 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { useDocumentInfo, useConfig } from '@payloadcms/ui';
|
|
4
4
|
/**
|
|
5
5
|
* Pencil/Edit icon component
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
*/ function PuckIcon({ size = 18 }) {
|
|
7
|
+
return /*#__PURE__*/ _jsxs("svg", {
|
|
8
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
9
|
+
width: size,
|
|
10
|
+
height: size,
|
|
11
|
+
viewBox: "0 0 24 24",
|
|
12
|
+
fill: "none",
|
|
13
|
+
stroke: "currentColor",
|
|
14
|
+
strokeWidth: "2",
|
|
15
|
+
strokeLinecap: "round",
|
|
16
|
+
strokeLinejoin: "round",
|
|
17
|
+
children: [
|
|
18
|
+
/*#__PURE__*/ _jsx("path", {
|
|
19
|
+
d: "M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"
|
|
20
|
+
}),
|
|
21
|
+
/*#__PURE__*/ _jsx("path", {
|
|
22
|
+
d: "M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z"
|
|
23
|
+
})
|
|
24
|
+
]
|
|
25
|
+
});
|
|
9
26
|
}
|
|
10
27
|
/**
|
|
11
28
|
* Edit with Puck button for use in Payload admin document edit views
|
|
@@ -30,8 +47,7 @@ function PuckIcon({ size = 18 }) {
|
|
|
30
47
|
* },
|
|
31
48
|
* }
|
|
32
49
|
* ```
|
|
33
|
-
*/
|
|
34
|
-
export const EditWithPuckButton = (props) => {
|
|
50
|
+
*/ export const EditWithPuckButton = (props)=>{
|
|
35
51
|
// Get document and config context from Payload
|
|
36
52
|
const { id, collectionSlug } = useDocumentInfo();
|
|
37
53
|
const { config } = useConfig();
|
|
@@ -46,18 +62,21 @@ export const EditWithPuckButton = (props) => {
|
|
|
46
62
|
let editorPath;
|
|
47
63
|
if (customProps?.editorPathPattern) {
|
|
48
64
|
// Custom pattern provided (for backwards compatibility)
|
|
49
|
-
editorPath = customProps.editorPathPattern
|
|
50
|
-
|
|
51
|
-
.replace('{collection}', collection);
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
65
|
+
editorPath = customProps.editorPathPattern.replace('{id}', String(id)).replace('{collection}', collection);
|
|
66
|
+
} else {
|
|
54
67
|
// Default: use admin view
|
|
55
68
|
editorPath = `${adminRoute}/puck-editor/${collection}/${id}`;
|
|
56
69
|
}
|
|
57
70
|
if (!id) {
|
|
58
71
|
return null;
|
|
59
72
|
}
|
|
60
|
-
return
|
|
73
|
+
return /*#__PURE__*/ _jsx("div", {
|
|
74
|
+
style: {
|
|
75
|
+
marginBottom: '1rem'
|
|
76
|
+
},
|
|
77
|
+
children: /*#__PURE__*/ _jsxs("a", {
|
|
78
|
+
href: editorPath,
|
|
79
|
+
style: {
|
|
61
80
|
display: 'inline-flex',
|
|
62
81
|
alignItems: 'center',
|
|
63
82
|
gap: '8px',
|
|
@@ -68,12 +87,23 @@ export const EditWithPuckButton = (props) => {
|
|
|
68
87
|
textDecoration: 'none',
|
|
69
88
|
fontSize: '14px',
|
|
70
89
|
fontWeight: 500,
|
|
71
|
-
transition: 'background-color 0.15s, opacity 0.15s'
|
|
72
|
-
},
|
|
90
|
+
transition: 'background-color 0.15s, opacity 0.15s'
|
|
91
|
+
},
|
|
92
|
+
onMouseEnter: (e)=>{
|
|
73
93
|
e.currentTarget.style.opacity = '0.9';
|
|
74
|
-
},
|
|
94
|
+
},
|
|
95
|
+
onMouseLeave: (e)=>{
|
|
75
96
|
e.currentTarget.style.opacity = '1';
|
|
76
|
-
},
|
|
97
|
+
},
|
|
98
|
+
title: iconOnly ? label : undefined,
|
|
99
|
+
children: [
|
|
100
|
+
/*#__PURE__*/ _jsx(PuckIcon, {
|
|
101
|
+
size: iconOnly ? 20 : 18
|
|
102
|
+
}),
|
|
103
|
+
!iconOnly && label
|
|
104
|
+
]
|
|
105
|
+
})
|
|
106
|
+
});
|
|
77
107
|
};
|
|
78
108
|
/**
|
|
79
109
|
* Standalone version of the button that doesn't rely on Payload context
|
|
@@ -86,13 +116,12 @@ export const EditWithPuckButton = (props) => {
|
|
|
86
116
|
* adminRoute="/admin"
|
|
87
117
|
* />
|
|
88
118
|
* ```
|
|
89
|
-
*/
|
|
90
|
-
export function EditWithPuckLink({ id, collectionSlug = 'pages', editorPathPattern, label = 'Visual Editor', iconOnly = false, }) {
|
|
119
|
+
*/ export function EditWithPuckLink({ id, collectionSlug = 'pages', editorPathPattern, label = 'Visual Editor', iconOnly = false }) {
|
|
91
120
|
// Build path - prefer admin view by default
|
|
92
|
-
const path = editorPathPattern
|
|
93
|
-
|
|
94
|
-
:
|
|
95
|
-
|
|
121
|
+
const path = editorPathPattern ? editorPathPattern.replace('{id}', id).replace('{collection}', collectionSlug) : `/admin/puck-editor/${collectionSlug}/${id}`;
|
|
122
|
+
return /*#__PURE__*/ _jsxs("a", {
|
|
123
|
+
href: path,
|
|
124
|
+
style: {
|
|
96
125
|
display: 'inline-flex',
|
|
97
126
|
alignItems: 'center',
|
|
98
127
|
gap: '8px',
|
|
@@ -103,12 +132,23 @@ export function EditWithPuckLink({ id, collectionSlug = 'pages', editorPathPatte
|
|
|
103
132
|
textDecoration: 'none',
|
|
104
133
|
fontSize: '14px',
|
|
105
134
|
fontWeight: 500,
|
|
106
|
-
transition: 'opacity 0.15s'
|
|
107
|
-
},
|
|
135
|
+
transition: 'opacity 0.15s'
|
|
136
|
+
},
|
|
137
|
+
onMouseEnter: (e)=>{
|
|
108
138
|
e.currentTarget.style.opacity = '0.9';
|
|
109
|
-
},
|
|
139
|
+
},
|
|
140
|
+
onMouseLeave: (e)=>{
|
|
110
141
|
e.currentTarget.style.opacity = '1';
|
|
111
|
-
},
|
|
142
|
+
},
|
|
143
|
+
title: iconOnly ? label : undefined,
|
|
144
|
+
children: [
|
|
145
|
+
/*#__PURE__*/ _jsx(PuckIcon, {
|
|
146
|
+
size: iconOnly ? 20 : 18
|
|
147
|
+
}),
|
|
148
|
+
!iconOnly && label
|
|
149
|
+
]
|
|
150
|
+
});
|
|
112
151
|
}
|
|
113
152
|
export default EditWithPuckButton;
|
|
153
|
+
|
|
114
154
|
//# sourceMappingURL=EditWithPuckButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/admin/EditWithPuckButton.tsx"],"sourcesContent":["'use client'\n\nimport type { UIFieldClientComponent } from 'payload'\nimport { useDocumentInfo, useConfig } from '@payloadcms/ui'\n\n/**\n * Props for EditWithPuckButton when used standalone\n */\nexport interface EditWithPuckButtonProps {\n /**\n * Document ID to edit\n */\n id?: string\n /**\n * Collection slug\n * @default 'pages'\n */\n collectionSlug?: string\n /**\n * Custom path pattern for the Puck editor\n * Use {id} as placeholder for the document ID, {collection} for collection slug\n * @default Uses admin view: '/admin/puck-editor/{collection}/{id}'\n */\n editorPathPattern?: string\n /**\n * Button label\n * @default 'Visual Editor'\n */\n label?: string\n /**\n * Whether to show as icon only\n * @default false\n */\n iconOnly?: boolean\n}\n\n/**\n * Pencil/Edit icon component\n */\nfunction PuckIcon({ size = 18 }: { size?: number }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\" />\n <path d=\"M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z\" />\n </svg>\n )\n}\n\n/**\n * Edit with Puck button for use in Payload admin document edit views\n *\n * Links to the Puck editor admin view. The editor is integrated directly\n * into Payload's admin UI.\n *\n * @example\n * ```tsx\n * // In your Payload collection config:\n * {\n * name: 'puckEdit',\n * type: 'ui',\n * admin: {\n * position: 'sidebar',\n * components: {\n * Field: '@delmaredigital/payload-puck/admin/client#EditWithPuckButton',\n * },\n * custom: {\n * label: 'Visual Editor',\n * },\n * },\n * }\n * ```\n */\nexport const EditWithPuckButton: UIFieldClientComponent = (props) => {\n // Get document and config context from Payload\n const { id, collectionSlug } = useDocumentInfo()\n const { config } = useConfig()\n\n // Extract custom props passed via field config\n const customProps = (props as any)?.field?.custom as EditWithPuckButtonProps | undefined\n const label = customProps?.label || 'Visual Editor'\n const iconOnly = customProps?.iconOnly || false\n const collection = customProps?.collectionSlug || collectionSlug || 'pages'\n\n // Get admin route from config\n const adminRoute = config.routes?.admin || '/admin'\n\n // Build editor URL - defaults to admin view\n let editorPath: string\n if (customProps?.editorPathPattern) {\n // Custom pattern provided (for backwards compatibility)\n editorPath = customProps.editorPathPattern\n .replace('{id}', String(id))\n .replace('{collection}', collection)\n } else {\n // Default: use admin view\n editorPath = `${adminRoute}/puck-editor/${collection}/${id}`\n }\n\n if (!id) {\n return null\n }\n\n return (\n <div style={{ marginBottom: '1rem' }}>\n <a\n href={editorPath}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: '8px',\n padding: iconOnly ? '8px' : '10px 16px',\n backgroundColor: 'var(--theme-success-500, #22c55e)',\n color: 'white',\n borderRadius: '6px',\n textDecoration: 'none',\n fontSize: '14px',\n fontWeight: 500,\n transition: 'background-color 0.15s, opacity 0.15s',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.opacity = '0.9'\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.opacity = '1'\n }}\n title={iconOnly ? label : undefined}\n >\n <PuckIcon size={iconOnly ? 20 : 18} />\n {!iconOnly && label}\n </a>\n </div>\n )\n}\n\n/**\n * Standalone version of the button that doesn't rely on Payload context\n *\n * @example\n * ```tsx\n * <EditWithPuckLink\n * id=\"123\"\n * collectionSlug=\"pages\"\n * adminRoute=\"/admin\"\n * />\n * ```\n */\nexport function EditWithPuckLink({\n id,\n collectionSlug = 'pages',\n editorPathPattern,\n label = 'Visual Editor',\n iconOnly = false,\n}: EditWithPuckButtonProps & { id: string; adminRoute?: string }) {\n // Build path - prefer admin view by default\n const path = editorPathPattern\n ? editorPathPattern.replace('{id}', id).replace('{collection}', collectionSlug)\n : `/admin/puck-editor/${collectionSlug}/${id}`\n\n return (\n <a\n href={path}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: '8px',\n padding: iconOnly ? '8px' : '10px 16px',\n backgroundColor: 'var(--theme-success-500, #22c55e)',\n color: 'white',\n borderRadius: '6px',\n textDecoration: 'none',\n fontSize: '14px',\n fontWeight: 500,\n transition: 'opacity 0.15s',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.opacity = '0.9'\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.opacity = '1'\n }}\n title={iconOnly ? label : undefined}\n >\n <PuckIcon size={iconOnly ? 20 : 18} />\n {!iconOnly && label}\n </a>\n )\n}\n\nexport default EditWithPuckButton\n"],"names":["useDocumentInfo","useConfig","PuckIcon","size","svg","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","path","d","EditWithPuckButton","props","id","collectionSlug","config","customProps","field","custom","label","iconOnly","collection","adminRoute","routes","admin","editorPath","editorPathPattern","replace","String","div","style","marginBottom","a","href","display","alignItems","gap","padding","backgroundColor","color","borderRadius","textDecoration","fontSize","fontWeight","transition","onMouseEnter","e","currentTarget","opacity","onMouseLeave","title","undefined","EditWithPuckLink"],"mappings":"AAAA;;AAGA,SAASA,eAAe,EAAEC,SAAS,QAAQ,iBAAgB;AAiC3D;;CAEC,GACD,SAASC,SAAS,EAAEC,OAAO,EAAE,EAAqB;IAChD,qBACE,MAACC;QACCC,OAAM;QACNC,OAAOH;QACPI,QAAQJ;QACRK,SAAQ;QACRC,MAAK;QACLC,QAAO;QACPC,aAAY;QACZC,eAAc;QACdC,gBAAe;;0BAEf,KAACC;gBAAKC,GAAE;;0BACR,KAACD;gBAAKC,GAAE;;;;AAGd;AAEA;;;;;;;;;;;;;;;;;;;;;;;CAuBC,GACD,OAAO,MAAMC,qBAA6C,CAACC;IACzD,+CAA+C;IAC/C,MAAM,EAAEC,EAAE,EAAEC,cAAc,EAAE,GAAGnB;IAC/B,MAAM,EAAEoB,MAAM,EAAE,GAAGnB;IAEnB,+CAA+C;IAC/C,MAAMoB,cAAeJ,OAAeK,OAAOC;IAC3C,MAAMC,QAAQH,aAAaG,SAAS;IACpC,MAAMC,WAAWJ,aAAaI,YAAY;IAC1C,MAAMC,aAAaL,aAAaF,kBAAkBA,kBAAkB;IAEpE,8BAA8B;IAC9B,MAAMQ,aAAaP,OAAOQ,MAAM,EAAEC,SAAS;IAE3C,4CAA4C;IAC5C,IAAIC;IACJ,IAAIT,aAAaU,mBAAmB;QAClC,wDAAwD;QACxDD,aAAaT,YAAYU,iBAAiB,CACvCC,OAAO,CAAC,QAAQC,OAAOf,KACvBc,OAAO,CAAC,gBAAgBN;IAC7B,OAAO;QACL,0BAA0B;QAC1BI,aAAa,GAAGH,WAAW,aAAa,EAAED,WAAW,CAAC,EAAER,IAAI;IAC9D;IAEA,IAAI,CAACA,IAAI;QACP,OAAO;IACT;IAEA,qBACE,KAACgB;QAAIC,OAAO;YAAEC,cAAc;QAAO;kBACjC,cAAA,MAACC;YACCC,MAAMR;YACNK,OAAO;gBACLI,SAAS;gBACTC,YAAY;gBACZC,KAAK;gBACLC,SAASjB,WAAW,QAAQ;gBAC5BkB,iBAAiB;gBACjBC,OAAO;gBACPC,cAAc;gBACdC,gBAAgB;gBAChBC,UAAU;gBACVC,YAAY;gBACZC,YAAY;YACd;YACAC,cAAc,CAACC;gBACbA,EAAEC,aAAa,CAACjB,KAAK,CAACkB,OAAO,GAAG;YAClC;YACAC,cAAc,CAACH;gBACbA,EAAEC,aAAa,CAACjB,KAAK,CAACkB,OAAO,GAAG;YAClC;YACAE,OAAO9B,WAAWD,QAAQgC;;8BAE1B,KAACtD;oBAASC,MAAMsB,WAAW,KAAK;;gBAC/B,CAACA,YAAYD;;;;AAItB,EAAC;AAED;;;;;;;;;;;CAWC,GACD,OAAO,SAASiC,iBAAiB,EAC/BvC,EAAE,EACFC,iBAAiB,OAAO,EACxBY,iBAAiB,EACjBP,QAAQ,eAAe,EACvBC,WAAW,KAAK,EAC8C;IAC9D,4CAA4C;IAC5C,MAAMX,OAAOiB,oBACTA,kBAAkBC,OAAO,CAAC,QAAQd,IAAIc,OAAO,CAAC,gBAAgBb,kBAC9D,CAAC,mBAAmB,EAAEA,eAAe,CAAC,EAAED,IAAI;IAEhD,qBACE,MAACmB;QACCC,MAAMxB;QACNqB,OAAO;YACLI,SAAS;YACTC,YAAY;YACZC,KAAK;YACLC,SAASjB,WAAW,QAAQ;YAC5BkB,iBAAiB;YACjBC,OAAO;YACPC,cAAc;YACdC,gBAAgB;YAChBC,UAAU;YACVC,YAAY;YACZC,YAAY;QACd;QACAC,cAAc,CAACC;YACbA,EAAEC,aAAa,CAACjB,KAAK,CAACkB,OAAO,GAAG;QAClC;QACAC,cAAc,CAACH;YACbA,EAAEC,aAAa,CAACjB,KAAK,CAACkB,OAAO,GAAG;QAClC;QACAE,OAAO9B,WAAWD,QAAQgC;;0BAE1B,KAACtD;gBAASC,MAAMsB,WAAW,KAAK;;YAC/B,CAACA,YAAYD;;;AAGpB;AAEA,eAAeR,mBAAkB"}
|
|
@@ -2,9 +2,26 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
/**
|
|
4
4
|
* Pencil/Edit icon component
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
*/ function PuckIcon({ size = 16 }) {
|
|
6
|
+
return /*#__PURE__*/ _jsxs("svg", {
|
|
7
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
8
|
+
width: size,
|
|
9
|
+
height: size,
|
|
10
|
+
viewBox: "0 0 24 24",
|
|
11
|
+
fill: "none",
|
|
12
|
+
stroke: "currentColor",
|
|
13
|
+
strokeWidth: "2",
|
|
14
|
+
strokeLinecap: "round",
|
|
15
|
+
strokeLinejoin: "round",
|
|
16
|
+
children: [
|
|
17
|
+
/*#__PURE__*/ _jsx("path", {
|
|
18
|
+
d: "M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"
|
|
19
|
+
}),
|
|
20
|
+
/*#__PURE__*/ _jsx("path", {
|
|
21
|
+
d: "M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z"
|
|
22
|
+
})
|
|
23
|
+
]
|
|
24
|
+
});
|
|
8
25
|
}
|
|
9
26
|
/**
|
|
10
27
|
* Custom cell component that renders an "Edit with Puck" button in list views
|
|
@@ -28,8 +45,7 @@ function PuckIcon({ size = 16 }) {
|
|
|
28
45
|
* },
|
|
29
46
|
* }
|
|
30
47
|
* ```
|
|
31
|
-
*/
|
|
32
|
-
export const EditWithPuckCell = ({ rowData, field, collectionSlug: contextCollectionSlug, }) => {
|
|
48
|
+
*/ export const EditWithPuckCell = ({ rowData, field, collectionSlug: contextCollectionSlug })=>{
|
|
33
49
|
// Get document ID from row data
|
|
34
50
|
const id = rowData?.id;
|
|
35
51
|
// Get custom config from field
|
|
@@ -39,10 +55,11 @@ export const EditWithPuckCell = ({ rowData, field, collectionSlug: contextCollec
|
|
|
39
55
|
return null;
|
|
40
56
|
}
|
|
41
57
|
// Build editor URL
|
|
42
|
-
const editorPath = customConfig?.editorPathPattern
|
|
43
|
-
|
|
44
|
-
:
|
|
45
|
-
|
|
58
|
+
const editorPath = customConfig?.editorPathPattern ? customConfig.editorPathPattern.replace('{id}', id).replace('{collectionSlug}', collectionSlug) : `/admin/puck/${collectionSlug}/${id}/edit`;
|
|
59
|
+
return /*#__PURE__*/ _jsxs("a", {
|
|
60
|
+
href: editorPath,
|
|
61
|
+
onClick: (e)=>e.stopPropagation(),
|
|
62
|
+
style: {
|
|
46
63
|
display: 'inline-flex',
|
|
47
64
|
alignItems: 'center',
|
|
48
65
|
justifyContent: 'center',
|
|
@@ -55,12 +72,25 @@ export const EditWithPuckCell = ({ rowData, field, collectionSlug: contextCollec
|
|
|
55
72
|
fontWeight: 500,
|
|
56
73
|
gap: '4px',
|
|
57
74
|
transition: 'background-color 0.2s',
|
|
58
|
-
whiteSpace: 'nowrap'
|
|
59
|
-
},
|
|
75
|
+
whiteSpace: 'nowrap'
|
|
76
|
+
},
|
|
77
|
+
onMouseEnter: (e)=>{
|
|
60
78
|
e.currentTarget.style.backgroundColor = '#1d4ed8';
|
|
61
|
-
},
|
|
79
|
+
},
|
|
80
|
+
onMouseLeave: (e)=>{
|
|
62
81
|
e.currentTarget.style.backgroundColor = '#2563eb';
|
|
63
|
-
},
|
|
82
|
+
},
|
|
83
|
+
title: "Visual Editor",
|
|
84
|
+
children: [
|
|
85
|
+
/*#__PURE__*/ _jsx(PuckIcon, {
|
|
86
|
+
size: 14
|
|
87
|
+
}),
|
|
88
|
+
/*#__PURE__*/ _jsx("span", {
|
|
89
|
+
children: "Visual Editor"
|
|
90
|
+
})
|
|
91
|
+
]
|
|
92
|
+
});
|
|
64
93
|
};
|
|
65
94
|
export default EditWithPuckCell;
|
|
95
|
+
|
|
66
96
|
//# sourceMappingURL=EditWithPuckCell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/admin/EditWithPuckCell.tsx"],"sourcesContent":["'use client'\n\nimport type { DefaultCellComponentProps } from 'payload'\n\n/**\n * Props for configuring the EditWithPuckCell component\n */\nexport interface EditWithPuckCellConfig {\n /**\n * Collection slug for building the editor URL\n * @default 'pages'\n */\n collectionSlug?: string\n /**\n * Custom editor path pattern\n * Use {id} as placeholder for the document ID\n * @default '/admin/puck/{collectionSlug}/{id}/edit'\n */\n editorPathPattern?: string\n}\n\n/**\n * Pencil/Edit icon component\n */\nfunction PuckIcon({ size = 16 }: { size?: number }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\" />\n <path d=\"M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z\" />\n </svg>\n )\n}\n\n/**\n * Custom cell component that renders an \"Edit with Puck\" button in list views\n *\n * Add this to a UI field in your collection to show the visual editor button\n * in the list view table.\n *\n * @example\n * ```ts\n * // In your collection config:\n * {\n * name: 'puckEdit',\n * type: 'ui',\n * admin: {\n * components: {\n * Cell: '@delmaredigital/payload-puck/admin#EditWithPuckCell',\n * },\n * custom: {\n * collectionSlug: 'pages',\n * },\n * },\n * }\n * ```\n */\nexport const EditWithPuckCell: React.FC<DefaultCellComponentProps> = ({\n rowData,\n field,\n collectionSlug: contextCollectionSlug,\n}) => {\n // Get document ID from row data\n const id = rowData?.id as string | undefined\n\n // Get custom config from field\n const customConfig = (field as any)?.custom as EditWithPuckCellConfig | undefined\n const collectionSlug = customConfig?.collectionSlug || contextCollectionSlug || 'pages'\n\n if (!id) {\n return null\n }\n\n // Build editor URL\n const editorPath = customConfig?.editorPathPattern\n ? customConfig.editorPathPattern.replace('{id}', id).replace('{collectionSlug}', collectionSlug)\n : `/admin/puck/${collectionSlug}/${id}/edit`\n\n return (\n <a\n href={editorPath}\n onClick={(e) => e.stopPropagation()}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '6px 10px',\n backgroundColor: '#2563eb',\n color: '#fff',\n borderRadius: '4px',\n textDecoration: 'none',\n fontSize: '12px',\n fontWeight: 500,\n gap: '4px',\n transition: 'background-color 0.2s',\n whiteSpace: 'nowrap',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#1d4ed8'\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = '#2563eb'\n }}\n title=\"Visual Editor\"\n >\n <PuckIcon size={14} />\n <span>Visual Editor</span>\n </a>\n )\n}\n\nexport default EditWithPuckCell\n"],"names":["PuckIcon","size","svg","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","path","d","EditWithPuckCell","rowData","field","collectionSlug","contextCollectionSlug","id","customConfig","custom","editorPath","editorPathPattern","replace","a","href","onClick","e","stopPropagation","style","display","alignItems","justifyContent","padding","backgroundColor","color","borderRadius","textDecoration","fontSize","fontWeight","gap","transition","whiteSpace","onMouseEnter","currentTarget","onMouseLeave","title","span"],"mappings":"AAAA;;AAqBA;;CAEC,GACD,SAASA,SAAS,EAAEC,OAAO,EAAE,EAAqB;IAChD,qBACE,MAACC;QACCC,OAAM;QACNC,OAAOH;QACPI,QAAQJ;QACRK,SAAQ;QACRC,MAAK;QACLC,QAAO;QACPC,aAAY;QACZC,eAAc;QACdC,gBAAe;;0BAEf,KAACC;gBAAKC,GAAE;;0BACR,KAACD;gBAAKC,GAAE;;;;AAGd;AAEA;;;;;;;;;;;;;;;;;;;;;;CAsBC,GACD,OAAO,MAAMC,mBAAwD,CAAC,EACpEC,OAAO,EACPC,KAAK,EACLC,gBAAgBC,qBAAqB,EACtC;IACC,gCAAgC;IAChC,MAAMC,KAAKJ,SAASI;IAEpB,+BAA+B;IAC/B,MAAMC,eAAgBJ,OAAeK;IACrC,MAAMJ,iBAAiBG,cAAcH,kBAAkBC,yBAAyB;IAEhF,IAAI,CAACC,IAAI;QACP,OAAO;IACT;IAEA,mBAAmB;IACnB,MAAMG,aAAaF,cAAcG,oBAC7BH,aAAaG,iBAAiB,CAACC,OAAO,CAAC,QAAQL,IAAIK,OAAO,CAAC,oBAAoBP,kBAC/E,CAAC,YAAY,EAAEA,eAAe,CAAC,EAAEE,GAAG,KAAK,CAAC;IAE9C,qBACE,MAACM;QACCC,MAAMJ;QACNK,SAAS,CAACC,IAAMA,EAAEC,eAAe;QACjCC,OAAO;YACLC,SAAS;YACTC,YAAY;YACZC,gBAAgB;YAChBC,SAAS;YACTC,iBAAiB;YACjBC,OAAO;YACPC,cAAc;YACdC,gBAAgB;YAChBC,UAAU;YACVC,YAAY;YACZC,KAAK;YACLC,YAAY;YACZC,YAAY;QACd;QACAC,cAAc,CAAChB;YACbA,EAAEiB,aAAa,CAACf,KAAK,CAACK,eAAe,GAAG;QAC1C;QACAW,cAAc,CAAClB;YACbA,EAAEiB,aAAa,CAACf,KAAK,CAACK,eAAe,GAAG;QAC1C;QACAY,OAAM;;0BAEN,KAAC/C;gBAASC,MAAM;;0BAChB,KAAC+C;0BAAK;;;;AAGZ,EAAC;AAED,eAAelC,iBAAgB"}
|
|
@@ -80,6 +80,6 @@ export interface PuckEditorViewProps {
|
|
|
80
80
|
* }
|
|
81
81
|
* ```
|
|
82
82
|
*/
|
|
83
|
-
export declare function PuckEditorView({ config, collectionSlug, apiBasePath, backUrl, previewUrl, layoutStyles, layoutKey, plugins, onSaveSuccess, onSaveError, }: PuckEditorViewProps): import("react
|
|
83
|
+
export declare function PuckEditorView({ config, collectionSlug, apiBasePath, backUrl, previewUrl, layoutStyles, layoutKey, plugins, onSaveSuccess, onSaveError, }: PuckEditorViewProps): import("react").JSX.Element;
|
|
84
84
|
export default PuckEditorView;
|
|
85
85
|
//# sourceMappingURL=PuckEditorView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PuckEditorView.d.ts","sourceRoot":"","sources":["../../src/admin/PuckEditorView.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,IAAI,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAExF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,MAAM,EAAE,UAAU,CAAA;IAClB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;IAChD;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACtE;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;IAC9B;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IACpC;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CACrC;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,cAAwB,EACxB,WAAyB,EACzB,OAAO,EACP,UAAU,EACV,YAAY,EACZ,SAAwB,EACxB,OAAO,EACP,aAAa,EACb,WAAW,GACZ,EAAE,mBAAmB
|
|
1
|
+
{"version":3,"file":"PuckEditorView.d.ts","sourceRoot":"","sources":["../../src/admin/PuckEditorView.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,IAAI,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAExF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,MAAM,EAAE,UAAU,CAAA;IAClB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;IAChD;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACtE;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,GAAG,KAAK,CAAA;IAC9B;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IACpC;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CACrC;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,cAAwB,EACxB,WAAyB,EACzB,OAAO,EACP,UAAU,EACV,YAAY,EACZ,SAAwB,EACxB,OAAO,EACP,aAAa,EACb,WAAW,GACZ,EAAE,mBAAmB,+BAkKrB;AAED,eAAe,cAAc,CAAA"}
|