@delmaredigital/payload-puck 0.1.3 → 0.3.0
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 +293 -1237
- package/dist/admin/EditWithPuckButton.d.ts +74 -0
- package/dist/admin/EditWithPuckButton.d.ts.map +1 -0
- package/dist/admin/EditWithPuckButton.js +114 -0
- package/dist/admin/EditWithPuckButton.js.map +1 -0
- package/dist/admin/EditWithPuckCell.d.ts +43 -0
- package/dist/admin/EditWithPuckCell.d.ts.map +1 -0
- package/dist/admin/EditWithPuckCell.js +66 -0
- package/dist/admin/EditWithPuckCell.js.map +1 -0
- package/dist/admin/PuckEditorView.d.ts +85 -0
- package/dist/admin/PuckEditorView.d.ts.map +1 -0
- package/dist/admin/PuckEditorView.js +135 -0
- package/dist/admin/PuckEditorView.js.map +1 -0
- package/dist/admin/client.d.ts +8 -104
- package/dist/admin/client.d.ts.map +1 -0
- package/dist/admin/client.js +14 -176
- package/dist/admin/client.js.map +1 -0
- package/dist/admin/generateAdminComponents.d.ts +51 -0
- package/dist/admin/generateAdminComponents.d.ts.map +1 -0
- package/dist/admin/generateAdminComponents.js +42 -0
- package/dist/admin/generateAdminComponents.js.map +1 -0
- package/dist/admin/index.d.ts +14 -150
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +17 -30
- package/dist/admin/index.js.map +1 -0
- package/dist/api/createPuckApiRoutes.d.ts +31 -0
- package/dist/api/createPuckApiRoutes.d.ts.map +1 -0
- package/dist/api/createPuckApiRoutes.js +193 -0
- package/dist/api/createPuckApiRoutes.js.map +1 -0
- package/dist/api/createPuckApiRoutesVersions.d.ts +28 -0
- package/dist/api/createPuckApiRoutesVersions.d.ts.map +1 -0
- package/dist/api/createPuckApiRoutesVersions.js +144 -0
- package/dist/api/createPuckApiRoutesVersions.js.map +1 -0
- package/dist/api/createPuckApiRoutesWithId.d.ts +34 -0
- package/dist/api/createPuckApiRoutesWithId.d.ts.map +1 -0
- package/dist/api/createPuckApiRoutesWithId.js +251 -0
- package/dist/api/createPuckApiRoutesWithId.js.map +1 -0
- package/dist/api/index.d.ts +11 -431
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +40 -587
- package/dist/api/index.js.map +1 -0
- package/dist/api/types.d.ts +302 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +2 -0
- package/dist/api/types.js.map +1 -0
- package/dist/api/utils/mapRootProps.d.ts +76 -0
- package/dist/api/utils/mapRootProps.d.ts.map +1 -0
- package/dist/api/utils/mapRootProps.js +169 -0
- package/dist/api/utils/mapRootProps.js.map +1 -0
- package/dist/collections/Templates.d.ts +9 -0
- package/dist/collections/Templates.d.ts.map +1 -0
- package/dist/collections/Templates.js +62 -0
- package/dist/collections/Templates.js.map +1 -0
- package/dist/components/AccordionClient.d.ts +20 -0
- package/dist/components/AccordionClient.d.ts.map +1 -0
- package/dist/components/AccordionClient.js +67 -0
- package/dist/components/AccordionClient.js.map +1 -0
- package/dist/components/AnimatedWrapper.d.ts +33 -0
- package/dist/components/AnimatedWrapper.d.ts.map +1 -0
- package/dist/components/AnimatedWrapper.js +61 -0
- package/dist/components/AnimatedWrapper.js.map +1 -0
- package/dist/components/exports.d.ts +54 -0
- package/dist/components/exports.d.ts.map +1 -0
- package/dist/components/exports.js +71 -0
- package/dist/components/exports.js.map +1 -0
- package/dist/components/index.d.ts +8 -219
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +15 -9155
- package/dist/components/index.js.map +1 -0
- package/dist/components/interactive/Accordion.d.ts +28 -0
- package/dist/components/interactive/Accordion.d.ts.map +1 -0
- package/dist/components/interactive/Accordion.js +159 -0
- package/dist/components/interactive/Accordion.js.map +1 -0
- package/dist/components/interactive/Accordion.server.d.ts +29 -0
- package/dist/components/interactive/Accordion.server.d.ts.map +1 -0
- package/dist/components/interactive/Accordion.server.js +30 -0
- package/dist/components/interactive/Accordion.server.js.map +1 -0
- package/dist/components/interactive/Button.d.ts +26 -0
- package/dist/components/interactive/Button.d.ts.map +1 -0
- package/dist/components/interactive/Button.js +133 -0
- package/dist/components/interactive/Button.js.map +1 -0
- package/dist/components/interactive/Button.server.d.ts +28 -0
- package/dist/components/interactive/Button.server.d.ts.map +1 -0
- package/dist/components/interactive/Button.server.js +96 -0
- package/dist/components/interactive/Button.server.js.map +1 -0
- package/dist/components/interactive/Card.d.ts +27 -0
- package/dist/components/interactive/Card.d.ts.map +1 -0
- package/dist/components/interactive/Card.js +128 -0
- package/dist/components/interactive/Card.js.map +1 -0
- package/dist/components/interactive/Card.server.d.ts +29 -0
- package/dist/components/interactive/Card.server.d.ts.map +1 -0
- package/dist/components/interactive/Card.server.js +77 -0
- package/dist/components/interactive/Card.server.js.map +1 -0
- package/dist/components/interactive/Divider.d.ts +18 -0
- package/dist/components/interactive/Divider.d.ts.map +1 -0
- package/dist/components/interactive/Divider.js +68 -0
- package/dist/components/interactive/Divider.js.map +1 -0
- package/dist/components/interactive/Divider.server.d.ts +20 -0
- package/dist/components/interactive/Divider.server.d.ts.map +1 -0
- package/dist/components/interactive/Divider.server.js +50 -0
- package/dist/components/interactive/Divider.server.js.map +1 -0
- package/dist/components/interactive/index.d.ts +10 -0
- package/dist/components/interactive/index.d.ts.map +1 -0
- package/dist/components/interactive/index.js +10 -0
- package/dist/components/interactive/index.js.map +1 -0
- package/dist/components/layout/Container.d.ts +29 -0
- package/dist/components/layout/Container.d.ts.map +1 -0
- package/dist/components/layout/Container.js +166 -0
- package/dist/components/layout/Container.js.map +1 -0
- package/dist/components/layout/Container.server.d.ts +32 -0
- package/dist/components/layout/Container.server.d.ts.map +1 -0
- package/dist/components/layout/Container.server.js +105 -0
- package/dist/components/layout/Container.server.js.map +1 -0
- package/dist/components/layout/Flex.d.ts +36 -0
- package/dist/components/layout/Flex.d.ts.map +1 -0
- package/dist/components/layout/Flex.js +183 -0
- package/dist/components/layout/Flex.js.map +1 -0
- package/dist/components/layout/Flex.server.d.ts +36 -0
- package/dist/components/layout/Flex.server.d.ts.map +1 -0
- package/dist/components/layout/Flex.server.js +97 -0
- package/dist/components/layout/Flex.server.js.map +1 -0
- package/dist/components/layout/Grid.d.ts +31 -0
- package/dist/components/layout/Grid.d.ts.map +1 -0
- package/dist/components/layout/Grid.js +164 -0
- package/dist/components/layout/Grid.js.map +1 -0
- package/dist/components/layout/Grid.server.d.ts +32 -0
- package/dist/components/layout/Grid.server.d.ts.map +1 -0
- package/dist/components/layout/Grid.server.js +92 -0
- package/dist/components/layout/Grid.server.js.map +1 -0
- package/dist/components/layout/Section.d.ts +35 -0
- package/dist/components/layout/Section.d.ts.map +1 -0
- package/dist/components/layout/Section.js +212 -0
- package/dist/components/layout/Section.js.map +1 -0
- package/dist/components/layout/Section.server.d.ts +35 -0
- package/dist/components/layout/Section.server.d.ts.map +1 -0
- package/dist/components/layout/Section.server.js +144 -0
- package/dist/components/layout/Section.server.js.map +1 -0
- package/dist/components/layout/Spacer.d.ts +18 -0
- package/dist/components/layout/Spacer.d.ts.map +1 -0
- package/dist/components/layout/Spacer.js +99 -0
- package/dist/components/layout/Spacer.js.map +1 -0
- package/dist/components/layout/Spacer.server.d.ts +21 -0
- package/dist/components/layout/Spacer.server.d.ts.map +1 -0
- package/dist/components/layout/Spacer.server.js +61 -0
- package/dist/components/layout/Spacer.server.js.map +1 -0
- package/dist/components/layout/Template.d.ts +35 -0
- package/dist/components/layout/Template.d.ts.map +1 -0
- package/dist/components/layout/Template.js +124 -0
- package/dist/components/layout/Template.js.map +1 -0
- package/dist/components/layout/Template.server.d.ts +32 -0
- package/dist/components/layout/Template.server.d.ts.map +1 -0
- package/dist/components/layout/Template.server.js +75 -0
- package/dist/components/layout/Template.server.js.map +1 -0
- package/dist/components/layout/index.d.ts +14 -0
- package/dist/components/layout/index.d.ts.map +1 -0
- package/dist/components/layout/index.js +13 -0
- package/dist/components/layout/index.js.map +1 -0
- package/dist/components/media/Image.d.ts +30 -0
- package/dist/components/media/Image.d.ts.map +1 -0
- package/dist/components/media/Image.js +123 -0
- package/dist/components/media/Image.js.map +1 -0
- package/dist/components/media/Image.server.d.ts +28 -0
- package/dist/components/media/Image.server.d.ts.map +1 -0
- package/dist/components/media/Image.server.js +76 -0
- package/dist/components/media/Image.server.js.map +1 -0
- package/dist/components/media/index.d.ts +7 -0
- package/dist/components/media/index.d.ts.map +1 -0
- package/dist/components/media/index.js +7 -0
- package/dist/components/media/index.js.map +1 -0
- package/dist/components/typography/Heading.d.ts +21 -0
- package/dist/components/typography/Heading.d.ts.map +1 -0
- package/dist/components/typography/Heading.js +71 -0
- package/dist/components/typography/Heading.js.map +1 -0
- package/dist/components/typography/Heading.server.d.ts +21 -0
- package/dist/components/typography/Heading.server.d.ts.map +1 -0
- package/dist/components/typography/Heading.server.js +49 -0
- package/dist/components/typography/Heading.server.js.map +1 -0
- package/dist/components/typography/RichText.d.ts +20 -0
- package/dist/components/typography/RichText.d.ts.map +1 -0
- package/dist/components/typography/RichText.editor.d.ts +11 -0
- package/dist/components/typography/RichText.editor.d.ts.map +1 -0
- package/dist/components/typography/RichText.editor.js +67 -0
- package/dist/components/typography/RichText.editor.js.map +1 -0
- package/dist/components/typography/RichText.js +73 -0
- package/dist/components/typography/RichText.js.map +1 -0
- package/dist/components/typography/RichText.server.d.ts +22 -0
- package/dist/components/typography/RichText.server.d.ts.map +1 -0
- package/dist/components/typography/RichText.server.js +52 -0
- package/dist/components/typography/RichText.server.js.map +1 -0
- package/dist/components/typography/Text.d.ts +20 -0
- package/dist/components/typography/Text.d.ts.map +1 -0
- package/dist/components/typography/Text.js +61 -0
- package/dist/components/typography/Text.js.map +1 -0
- package/dist/components/typography/Text.server.d.ts +21 -0
- package/dist/components/typography/Text.server.d.ts.map +1 -0
- package/dist/components/typography/Text.server.js +39 -0
- package/dist/components/typography/Text.server.js.map +1 -0
- package/dist/components/typography/index.d.ts +10 -0
- package/dist/components/typography/index.d.ts.map +1 -0
- package/dist/components/typography/index.js +10 -0
- package/dist/components/typography/index.js.map +1 -0
- package/dist/config/config.editor.d.ts +15 -56
- package/dist/config/config.editor.d.ts.map +1 -0
- package/dist/config/config.editor.js +125 -9364
- package/dist/config/config.editor.js.map +1 -0
- package/dist/config/index.d.ts +7 -33
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +110 -2028
- package/dist/config/index.js.map +1 -0
- package/dist/config/merge.d.ts +23 -0
- package/dist/config/merge.d.ts.map +1 -0
- package/dist/config/merge.js +80 -0
- package/dist/config/merge.js.map +1 -0
- package/dist/config/presets.d.ts +342 -0
- package/dist/config/presets.d.ts.map +1 -0
- package/dist/config/presets.js +247 -0
- package/dist/config/presets.js.map +1 -0
- package/dist/editor/PuckEditor.client.d.ts +131 -0
- package/dist/editor/PuckEditor.client.d.ts.map +1 -0
- package/dist/editor/PuckEditor.client.js +42 -0
- package/dist/editor/PuckEditor.client.js.map +1 -0
- package/dist/editor/PuckEditorCore.client.d.ts +141 -0
- package/dist/editor/PuckEditorCore.client.d.ts.map +1 -0
- package/dist/editor/PuckEditorCore.client.js +306 -0
- package/dist/editor/PuckEditorCore.client.js.map +1 -0
- package/dist/editor/components/HeaderActions.d.ts +109 -0
- package/dist/editor/components/HeaderActions.d.ts.map +1 -0
- package/dist/editor/components/HeaderActions.js +254 -0
- package/dist/editor/components/HeaderActions.js.map +1 -0
- package/dist/editor/components/IframeWrapper.d.ts +77 -0
- package/dist/editor/components/IframeWrapper.d.ts.map +1 -0
- package/dist/editor/components/IframeWrapper.js +257 -0
- package/dist/editor/components/IframeWrapper.js.map +1 -0
- package/dist/editor/components/LoadingState.d.ts +14 -0
- package/dist/editor/components/LoadingState.d.ts.map +1 -0
- package/dist/editor/components/LoadingState.js +12 -0
- package/dist/editor/components/LoadingState.js.map +1 -0
- package/dist/editor/components/PreviewModal.d.ts +54 -0
- package/dist/editor/components/PreviewModal.d.ts.map +1 -0
- package/dist/editor/components/PreviewModal.js +298 -0
- package/dist/editor/components/PreviewModal.js.map +1 -0
- package/dist/editor/components/VersionHistory.d.ts +44 -0
- package/dist/editor/components/VersionHistory.d.ts.map +1 -0
- package/dist/editor/components/VersionHistory.js +308 -0
- package/dist/editor/components/VersionHistory.js.map +1 -0
- package/dist/editor/hooks/useUnsavedChanges.d.ts +27 -0
- package/dist/editor/hooks/useUnsavedChanges.d.ts.map +1 -0
- package/dist/editor/hooks/useUnsavedChanges.js +55 -0
- package/dist/editor/hooks/useUnsavedChanges.js.map +1 -0
- package/dist/editor/index.d.ts +16 -756
- package/dist/editor/index.d.ts.map +1 -0
- package/dist/editor/index.js +49 -4533
- package/dist/editor/index.js.map +1 -0
- package/dist/editor/plugins/index.d.ts +12 -0
- package/dist/editor/plugins/index.d.ts.map +1 -0
- package/dist/editor/plugins/index.js +12 -0
- package/dist/editor/plugins/index.js.map +1 -0
- package/dist/endpoints/index.d.ts +46 -0
- package/dist/endpoints/index.d.ts.map +1 -0
- package/dist/endpoints/index.js +204 -0
- package/dist/endpoints/index.js.map +1 -0
- package/dist/exports/client.d.ts +19 -0
- package/dist/exports/client.d.ts.map +1 -0
- package/dist/exports/client.js +21 -0
- package/dist/exports/client.js.map +1 -0
- package/dist/exports/rsc.d.ts +19 -0
- package/dist/exports/rsc.d.ts.map +1 -0
- package/dist/exports/rsc.js +19 -0
- package/dist/exports/rsc.js.map +1 -0
- package/dist/fields/AlignmentField.d.ts +36 -0
- package/dist/fields/AlignmentField.d.ts.map +1 -0
- package/dist/fields/AlignmentField.js +120 -0
- package/dist/fields/AlignmentField.js.map +1 -0
- package/dist/fields/AnimationField.d.ts +44 -0
- package/dist/fields/AnimationField.d.ts.map +1 -0
- package/dist/fields/AnimationField.js +329 -0
- package/dist/fields/AnimationField.js.map +1 -0
- package/dist/fields/BackgroundField.d.ts +40 -0
- package/dist/fields/BackgroundField.d.ts.map +1 -0
- package/dist/fields/BackgroundField.js +413 -0
- package/dist/fields/BackgroundField.js.map +1 -0
- package/dist/fields/BorderField.d.ts +29 -0
- package/dist/fields/BorderField.d.ts.map +1 -0
- package/dist/fields/BorderField.js +264 -0
- package/dist/fields/BorderField.js.map +1 -0
- package/dist/fields/ColorPickerField.d.ts +43 -0
- package/dist/fields/ColorPickerField.d.ts.map +1 -0
- package/dist/fields/ColorPickerField.js +285 -0
- package/dist/fields/ColorPickerField.js.map +1 -0
- package/dist/fields/DimensionsField.d.ts +43 -0
- package/dist/fields/DimensionsField.d.ts.map +1 -0
- package/dist/fields/DimensionsField.js +532 -0
- package/dist/fields/DimensionsField.js.map +1 -0
- package/dist/fields/FlexAlignmentField.d.ts +61 -0
- package/dist/fields/FlexAlignmentField.d.ts.map +1 -0
- package/dist/fields/FlexAlignmentField.js +166 -0
- package/dist/fields/FlexAlignmentField.js.map +1 -0
- package/dist/fields/FolderPickerField.d.ts +17 -0
- package/dist/fields/FolderPickerField.d.ts.map +1 -0
- package/dist/fields/FolderPickerField.js +282 -0
- package/dist/fields/FolderPickerField.js.map +1 -0
- package/dist/fields/GradientEditor.d.ts +22 -0
- package/dist/fields/GradientEditor.d.ts.map +1 -0
- package/dist/fields/GradientEditor.js +322 -0
- package/dist/fields/GradientEditor.js.map +1 -0
- package/dist/fields/LockedField.d.ts +67 -0
- package/dist/fields/LockedField.d.ts.map +1 -0
- package/dist/fields/LockedField.js +170 -0
- package/dist/fields/LockedField.js.map +1 -0
- package/dist/fields/MarginField.d.ts +31 -0
- package/dist/fields/MarginField.d.ts.map +1 -0
- package/dist/fields/MarginField.js +233 -0
- package/dist/fields/MarginField.js.map +1 -0
- package/dist/fields/MediaField.d.ts +33 -0
- package/dist/fields/MediaField.d.ts.map +1 -0
- package/dist/fields/MediaField.js +677 -0
- package/dist/fields/MediaField.js.map +1 -0
- package/dist/fields/PaddingField.d.ts +29 -0
- package/dist/fields/PaddingField.d.ts.map +1 -0
- package/dist/fields/PaddingField.js +232 -0
- package/dist/fields/PaddingField.js.map +1 -0
- package/dist/fields/PageSegmentField.d.ts +17 -0
- package/dist/fields/PageSegmentField.d.ts.map +1 -0
- package/dist/fields/PageSegmentField.js +92 -0
- package/dist/fields/PageSegmentField.js.map +1 -0
- package/dist/fields/ResetField.d.ts +27 -0
- package/dist/fields/ResetField.d.ts.map +1 -0
- package/dist/fields/ResetField.js +122 -0
- package/dist/fields/ResetField.js.map +1 -0
- package/dist/fields/ResponsiveField.d.ts +38 -0
- package/dist/fields/ResponsiveField.d.ts.map +1 -0
- package/dist/fields/ResponsiveField.js +275 -0
- package/dist/fields/ResponsiveField.js.map +1 -0
- package/dist/fields/ResponsiveVisibilityField.d.ts +34 -0
- package/dist/fields/ResponsiveVisibilityField.d.ts.map +1 -0
- package/dist/fields/ResponsiveVisibilityField.js +145 -0
- package/dist/fields/ResponsiveVisibilityField.js.map +1 -0
- package/dist/fields/SizeField.d.ts +54 -0
- package/dist/fields/SizeField.d.ts.map +1 -0
- package/dist/fields/SizeField.js +255 -0
- package/dist/fields/SizeField.js.map +1 -0
- package/dist/fields/SlugPreviewField.d.ts +16 -0
- package/dist/fields/SlugPreviewField.d.ts.map +1 -0
- package/dist/fields/SlugPreviewField.js +49 -0
- package/dist/fields/SlugPreviewField.js.map +1 -0
- package/dist/fields/TemplateField.d.ts +31 -0
- package/dist/fields/TemplateField.d.ts.map +1 -0
- package/dist/fields/TemplateField.js +428 -0
- package/dist/fields/TemplateField.js.map +1 -0
- package/dist/fields/TiptapField.d.ts +40 -0
- package/dist/fields/TiptapField.d.ts.map +1 -0
- package/dist/fields/TiptapField.js +857 -0
- package/dist/fields/TiptapField.js.map +1 -0
- package/dist/fields/TiptapModal.d.ts +10 -0
- package/dist/fields/TiptapModal.d.ts.map +1 -0
- package/dist/fields/TiptapModal.js +114 -0
- package/dist/fields/TiptapModal.js.map +1 -0
- package/dist/fields/TiptapModalField.d.ts +23 -0
- package/dist/fields/TiptapModalField.d.ts.map +1 -0
- package/dist/fields/TiptapModalField.js +55 -0
- package/dist/fields/TiptapModalField.js.map +1 -0
- package/dist/fields/TransformField.d.ts +31 -0
- package/dist/fields/TransformField.d.ts.map +1 -0
- package/dist/fields/TransformField.js +384 -0
- package/dist/fields/TransformField.js.map +1 -0
- package/dist/fields/VerticalAlignmentField.d.ts +35 -0
- package/dist/fields/VerticalAlignmentField.d.ts.map +1 -0
- package/dist/fields/VerticalAlignmentField.js +120 -0
- package/dist/fields/VerticalAlignmentField.js.map +1 -0
- package/dist/fields/WidthField.d.ts +28 -0
- package/dist/fields/WidthField.d.ts.map +1 -0
- package/dist/fields/WidthField.js +339 -0
- package/dist/fields/WidthField.js.map +1 -0
- package/dist/fields/index.d.ts +44 -559
- package/dist/fields/index.d.ts.map +1 -0
- package/dist/fields/index.js +91 -7685
- package/dist/fields/index.js.map +1 -0
- package/dist/fields/richtext-output.css +219 -0
- package/dist/{shared-DeNKN95N.d.mts → fields/shared.d.ts} +114 -133
- package/dist/fields/shared.d.ts.map +1 -0
- package/dist/fields/shared.js +1542 -0
- package/dist/fields/shared.js.map +1 -0
- package/dist/fields/{index.css → tiptap-styles.css} +75 -166
- package/dist/hooks/index.d.ts +8 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +8 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useResponsiveStyles.d.ts +51 -0
- package/dist/hooks/useResponsiveStyles.d.ts.map +1 -0
- package/dist/hooks/useResponsiveStyles.js +149 -0
- package/dist/hooks/useResponsiveStyles.js.map +1 -0
- package/dist/hooks/useScrollAnimation.d.ts +56 -0
- package/dist/hooks/useScrollAnimation.d.ts.map +1 -0
- package/dist/hooks/useScrollAnimation.js +116 -0
- package/dist/hooks/useScrollAnimation.js.map +1 -0
- package/dist/index.d.ts +66 -6
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +67 -568
- package/dist/index.js.map +1 -0
- package/dist/layouts/LayoutWrapper.d.ts +33 -0
- package/dist/layouts/LayoutWrapper.d.ts.map +1 -0
- package/dist/layouts/LayoutWrapper.js +112 -0
- package/dist/layouts/LayoutWrapper.js.map +1 -0
- package/dist/layouts/defaults.d.ts +40 -0
- package/dist/layouts/defaults.d.ts.map +1 -0
- package/dist/layouts/defaults.js +106 -0
- package/dist/layouts/defaults.js.map +1 -0
- package/dist/layouts/index.d.ts +27 -94
- package/dist/layouts/index.d.ts.map +1 -0
- package/dist/layouts/index.js +30 -393
- package/dist/layouts/index.js.map +1 -0
- package/dist/{types-D7D3rZ1J.d.ts → layouts/types.d.ts} +8 -11
- package/dist/layouts/types.d.ts.map +1 -0
- package/dist/layouts/types.js +7 -0
- package/dist/layouts/types.js.map +1 -0
- package/dist/layouts/utils.d.ts +42 -0
- package/dist/layouts/utils.d.ts.map +1 -0
- package/dist/layouts/utils.js +83 -0
- package/dist/layouts/utils.js.map +1 -0
- package/dist/plugin/collections/Pages.d.ts +8 -0
- package/dist/plugin/collections/Pages.d.ts.map +1 -0
- package/dist/plugin/collections/Pages.js +117 -0
- package/dist/plugin/collections/Pages.js.map +1 -0
- package/dist/plugin/fields/index.d.ts +153 -0
- package/dist/plugin/fields/index.d.ts.map +1 -0
- package/dist/plugin/fields/index.js +364 -0
- package/dist/plugin/fields/index.js.map +1 -0
- package/dist/plugin/fields/types.d.ts +108 -0
- package/dist/plugin/fields/types.d.ts.map +1 -0
- package/dist/plugin/fields/types.js +7 -0
- package/dist/plugin/fields/types.js.map +1 -0
- package/dist/plugin/index.d.ts +13 -255
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/plugin/index.js +276 -553
- package/dist/plugin/index.js.map +1 -0
- package/dist/render/HybridPageRenderer.d.ts +85 -0
- package/dist/render/HybridPageRenderer.d.ts.map +1 -0
- package/dist/render/HybridPageRenderer.js +29 -0
- package/dist/render/HybridPageRenderer.js.map +1 -0
- package/dist/render/PageRenderer.d.ts +51 -0
- package/dist/render/PageRenderer.d.ts.map +1 -0
- package/dist/render/PageRenderer.js +61 -0
- package/dist/render/PageRenderer.js.map +1 -0
- package/dist/render/PuckEditor.client.d.ts +66 -0
- package/dist/render/PuckEditor.client.d.ts.map +1 -0
- package/dist/render/PuckEditor.client.js +66 -0
- package/dist/render/PuckEditor.client.js.map +1 -0
- package/dist/render/index.d.ts +8 -106
- package/dist/render/index.d.ts.map +1 -0
- package/dist/render/index.js +10 -2162
- package/dist/render/index.js.map +1 -0
- package/dist/theme/context.d.ts +59 -0
- package/dist/theme/context.d.ts.map +1 -0
- package/dist/theme/context.js +73 -0
- package/dist/theme/context.js.map +1 -0
- package/dist/theme/defaults.d.ts +39 -0
- package/dist/theme/defaults.d.ts.map +1 -0
- package/dist/theme/defaults.js +72 -0
- package/dist/theme/defaults.js.map +1 -0
- package/dist/theme/example.d.ts +30 -0
- package/dist/theme/example.d.ts.map +1 -0
- package/dist/theme/example.js +89 -0
- package/dist/theme/example.js.map +1 -0
- package/dist/theme/index.d.ts +17 -140
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +34 -200
- package/dist/theme/index.js.map +1 -0
- package/dist/{types-_6MvjyKv.d.ts → theme/types.d.ts} +8 -9
- package/dist/theme/types.d.ts.map +1 -0
- package/dist/theme/types.js +9 -0
- package/dist/theme/types.js.map +1 -0
- package/dist/theme/utils.d.ts +30 -0
- package/dist/theme/utils.d.ts.map +1 -0
- package/dist/theme/utils.js +84 -0
- package/dist/theme/utils.js.map +1 -0
- package/dist/{index-CQu6SzDg.d.mts → types/index.d.ts} +120 -115
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/index.d.ts +23 -257
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +56 -425
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/{index.d.mts → migration.d.ts} +16 -112
- package/dist/utils/migration.d.ts.map +1 -0
- package/dist/utils/migration.js +309 -0
- package/dist/utils/migration.js.map +1 -0
- package/dist/utils/validation.d.ts +89 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +247 -0
- package/dist/utils/validation.js.map +1 -0
- package/dist/views/PuckConfigContext.d.ts +71 -0
- package/dist/views/PuckConfigContext.d.ts.map +1 -0
- package/dist/views/PuckConfigContext.js +45 -0
- package/dist/views/PuckConfigContext.js.map +1 -0
- package/dist/views/PuckEditorClient.d.ts +73 -0
- package/dist/views/PuckEditorClient.d.ts.map +1 -0
- package/dist/views/PuckEditorClient.js +130 -0
- package/dist/views/PuckEditorClient.js.map +1 -0
- package/dist/views/PuckEditorView.d.ts +19 -0
- package/dist/views/PuckEditorView.d.ts.map +1 -0
- package/dist/views/PuckEditorView.js +106 -0
- package/dist/views/PuckEditorView.js.map +1 -0
- package/dist/views/index.d.ts +10 -0
- package/dist/views/index.d.ts.map +1 -0
- package/dist/views/index.js +10 -0
- package/dist/views/index.js.map +1 -0
- package/package.json +50 -72
- package/dist/AccordionClient.d.mts +0 -24
- package/dist/AccordionClient.d.ts +0 -24
- package/dist/AccordionClient.js +0 -786
- package/dist/AccordionClient.mjs +0 -784
- package/dist/AnimatedWrapper.d.mts +0 -30
- package/dist/AnimatedWrapper.d.ts +0 -30
- package/dist/AnimatedWrapper.js +0 -379
- package/dist/AnimatedWrapper.mjs +0 -377
- package/dist/admin/client.d.mts +0 -108
- package/dist/admin/client.mjs +0 -173
- package/dist/admin/index.d.mts +0 -157
- package/dist/admin/index.mjs +0 -29
- package/dist/api/index.d.mts +0 -460
- package/dist/api/index.mjs +0 -578
- package/dist/components/index.css +0 -339
- package/dist/components/index.d.mts +0 -222
- package/dist/components/index.mjs +0 -9109
- package/dist/config/config.editor.css +0 -339
- package/dist/config/config.editor.d.mts +0 -153
- package/dist/config/config.editor.mjs +0 -9347
- package/dist/config/index.d.mts +0 -68
- package/dist/config/index.mjs +0 -2008
- package/dist/editor/index.d.mts +0 -784
- package/dist/editor/index.mjs +0 -4500
- package/dist/fields/index.d.mts +0 -600
- package/dist/fields/index.mjs +0 -7569
- package/dist/index-CoUQnyC3.d.ts +0 -327
- package/dist/index.d.mts +0 -6
- package/dist/index.mjs +0 -555
- package/dist/layouts/index.d.mts +0 -96
- package/dist/layouts/index.mjs +0 -378
- package/dist/plugin/index.d.mts +0 -289
- package/dist/plugin/index.mjs +0 -555
- package/dist/render/index.d.mts +0 -109
- package/dist/render/index.mjs +0 -2140
- package/dist/shared-DeNKN95N.d.ts +0 -546
- package/dist/theme/index.d.mts +0 -155
- package/dist/theme/index.mjs +0 -186
- package/dist/types-D7D3rZ1J.d.mts +0 -116
- package/dist/types-_6MvjyKv.d.mts +0 -104
- package/dist/utils/index.mjs +0 -412
- package/dist/utils-DaRs9t0J.d.mts +0 -85
- package/dist/utils-gAvt0Vhw.d.ts +0 -85
- package/examples/README.md +0 -247
- package/examples/api/puck/pages/[id]/route.ts +0 -64
- package/examples/api/puck/pages/[id]/versions/route.ts +0 -47
- package/examples/api/puck/pages/route.ts +0 -45
- package/examples/app/(frontend)/page.tsx +0 -94
- package/examples/app/(manage)/layout.tsx +0 -31
- package/examples/app/[...slug]/page.tsx +0 -101
- package/examples/app/pages/[id]/edit/page.tsx +0 -148
- package/examples/components/CustomBanner.tsx +0 -368
- package/examples/config/custom-config.ts +0 -223
- package/examples/config/payload.config.example.ts +0 -64
- package/examples/lib/puck-layouts.ts +0 -258
- package/examples/lib/puck-theme.ts +0 -94
- package/examples/styles/puck-theme.css +0 -171
package/dist/utils/index.js
CHANGED
|
@@ -1,426 +1,57 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
function transformRelationshipArray(relations) {
|
|
59
|
-
if (!relations || !Array.isArray(relations)) {
|
|
60
|
-
return void 0;
|
|
61
|
-
}
|
|
62
|
-
return relations.map((rel) => {
|
|
63
|
-
if (typeof rel === "number" || typeof rel === "string") {
|
|
64
|
-
return { id: rel, title: "" };
|
|
65
|
-
}
|
|
66
|
-
return {
|
|
67
|
-
id: rel.id,
|
|
68
|
-
title: rel.title || "",
|
|
69
|
-
slug: rel.slug
|
|
70
|
-
};
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
var RICH_TEXT_FIELDS = [
|
|
74
|
-
"headingRich",
|
|
75
|
-
"subheadingRich",
|
|
76
|
-
"textRich",
|
|
77
|
-
"content",
|
|
78
|
-
"leftContent",
|
|
79
|
-
"rightContent",
|
|
80
|
-
"bodyContent",
|
|
81
|
-
"description"
|
|
82
|
-
];
|
|
83
|
-
var MEDIA_FIELDS = [
|
|
84
|
-
"backgroundImage",
|
|
85
|
-
"image",
|
|
86
|
-
"rightImage",
|
|
87
|
-
"leftImage",
|
|
88
|
-
"profileImage",
|
|
89
|
-
"media",
|
|
90
|
-
"thumbnail",
|
|
91
|
-
"icon"
|
|
92
|
-
];
|
|
93
|
-
function transformBlockProps(block, options) {
|
|
94
|
-
const { blockType, id, blockName, ...restProps } = block;
|
|
95
|
-
const richTextFields = options?.richTextFields || RICH_TEXT_FIELDS;
|
|
96
|
-
const mediaFields = options?.mediaFields || MEDIA_FIELDS;
|
|
97
|
-
const customTransformers = options?.customTransformers || {};
|
|
98
|
-
const props = {
|
|
99
|
-
id: generatePuckId(id)
|
|
100
|
-
};
|
|
101
|
-
for (const [key, value] of Object.entries(restProps)) {
|
|
102
|
-
if (customTransformers[key]) {
|
|
103
|
-
props[key] = customTransformers[key](value);
|
|
104
|
-
continue;
|
|
105
|
-
}
|
|
106
|
-
if (richTextFields.includes(key)) {
|
|
107
|
-
props[key] = transformRichText(value);
|
|
108
|
-
continue;
|
|
109
|
-
}
|
|
110
|
-
if (mediaFields.includes(key)) {
|
|
111
|
-
props[key] = transformMediaReference(
|
|
112
|
-
value
|
|
113
|
-
);
|
|
114
|
-
continue;
|
|
115
|
-
}
|
|
116
|
-
if (Array.isArray(value)) {
|
|
117
|
-
props[key] = value.map((item) => {
|
|
118
|
-
if (typeof item === "object" && item !== null) {
|
|
119
|
-
const { id: itemId, ...itemRest } = item;
|
|
120
|
-
return {
|
|
121
|
-
...itemRest,
|
|
122
|
-
id: itemId || generatePuckId()
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
return item;
|
|
126
|
-
});
|
|
127
|
-
continue;
|
|
128
|
-
}
|
|
129
|
-
props[key] = value;
|
|
130
|
-
}
|
|
131
|
-
return props;
|
|
132
|
-
}
|
|
133
|
-
function migrateLegacyToPuck(page, options = {}) {
|
|
134
|
-
const {
|
|
135
|
-
blockTypeMap: customBlockTypeMap,
|
|
136
|
-
richTextFields,
|
|
137
|
-
mediaFields,
|
|
138
|
-
customTransformers,
|
|
139
|
-
skipUnknownBlocks = true,
|
|
140
|
-
onUnknownBlock
|
|
141
|
-
} = options;
|
|
142
|
-
const effectiveBlockTypeMap = {
|
|
143
|
-
...blockTypeMap,
|
|
144
|
-
...customBlockTypeMap
|
|
145
|
-
};
|
|
146
|
-
const rootProps = {
|
|
147
|
-
title: page.title,
|
|
148
|
-
pageLayout: page.pageLayout || "default"
|
|
149
|
-
};
|
|
150
|
-
const content = [];
|
|
151
|
-
if (page.layout && Array.isArray(page.layout)) {
|
|
152
|
-
for (const block of page.layout) {
|
|
153
|
-
const legacyBlock = block;
|
|
154
|
-
const puckType = effectiveBlockTypeMap[legacyBlock.blockType];
|
|
155
|
-
if (!puckType) {
|
|
156
|
-
if (onUnknownBlock) {
|
|
157
|
-
const customItem = onUnknownBlock(legacyBlock);
|
|
158
|
-
if (customItem) {
|
|
159
|
-
content.push(customItem);
|
|
160
|
-
}
|
|
161
|
-
continue;
|
|
162
|
-
}
|
|
163
|
-
if (skipUnknownBlocks) {
|
|
164
|
-
console.warn(
|
|
165
|
-
`[payload-puck] Unknown block type "${legacyBlock.blockType}" - skipping during migration`
|
|
166
|
-
);
|
|
167
|
-
continue;
|
|
168
|
-
}
|
|
169
|
-
throw new Error(
|
|
170
|
-
`Unknown block type "${legacyBlock.blockType}" encountered during migration`
|
|
171
|
-
);
|
|
172
|
-
}
|
|
173
|
-
const transformedProps = transformBlockProps(legacyBlock, {
|
|
174
|
-
richTextFields,
|
|
175
|
-
mediaFields,
|
|
176
|
-
customTransformers
|
|
177
|
-
});
|
|
178
|
-
const contentItem = {
|
|
179
|
-
type: puckType,
|
|
180
|
-
props: transformedProps
|
|
181
|
-
};
|
|
182
|
-
content.push(contentItem);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
const puckData = {
|
|
186
|
-
root: {
|
|
187
|
-
props: rootProps
|
|
188
|
-
},
|
|
189
|
-
content,
|
|
190
|
-
zones: {}
|
|
191
|
-
};
|
|
192
|
-
return puckData;
|
|
193
|
-
}
|
|
194
|
-
function getMigrationPreview(page, customBlockTypeMap) {
|
|
195
|
-
const warnings = [];
|
|
196
|
-
const blockTypes = [];
|
|
197
|
-
const unmappedBlockTypes = [];
|
|
198
|
-
const effectiveBlockTypeMap = {
|
|
199
|
-
...blockTypeMap,
|
|
200
|
-
...customBlockTypeMap
|
|
201
|
-
};
|
|
202
|
-
if (page.layout && Array.isArray(page.layout)) {
|
|
203
|
-
for (const block of page.layout) {
|
|
204
|
-
const legacyBlock = block;
|
|
205
|
-
const puckType = effectiveBlockTypeMap[legacyBlock.blockType];
|
|
206
|
-
if (puckType) {
|
|
207
|
-
blockTypes.push(puckType);
|
|
208
|
-
} else {
|
|
209
|
-
warnings.push(`Unknown block type: ${legacyBlock.blockType}`);
|
|
210
|
-
if (!unmappedBlockTypes.includes(legacyBlock.blockType)) {
|
|
211
|
-
unmappedBlockTypes.push(legacyBlock.blockType);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
return {
|
|
217
|
-
title: page.title,
|
|
218
|
-
slug: page.slug,
|
|
219
|
-
blockCount: page.layout?.length || 0,
|
|
220
|
-
blockTypes,
|
|
221
|
-
warnings,
|
|
222
|
-
unmappedBlockTypes
|
|
223
|
-
};
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
// src/utils/validation.ts
|
|
227
|
-
function isPuckData(data) {
|
|
228
|
-
if (!data || typeof data !== "object") {
|
|
229
|
-
return false;
|
|
230
|
-
}
|
|
231
|
-
const obj = data;
|
|
232
|
-
if (!obj.root || typeof obj.root !== "object") {
|
|
233
|
-
return false;
|
|
234
|
-
}
|
|
235
|
-
const root = obj.root;
|
|
236
|
-
if (!root.props || typeof root.props !== "object") {
|
|
237
|
-
return false;
|
|
238
|
-
}
|
|
239
|
-
if (!Array.isArray(obj.content)) {
|
|
240
|
-
return false;
|
|
241
|
-
}
|
|
242
|
-
for (const item of obj.content) {
|
|
243
|
-
if (!item || typeof item !== "object") {
|
|
244
|
-
return false;
|
|
245
|
-
}
|
|
246
|
-
const contentItem = item;
|
|
247
|
-
if (typeof contentItem.type !== "string") {
|
|
248
|
-
return false;
|
|
249
|
-
}
|
|
250
|
-
if (!contentItem.props || typeof contentItem.props !== "object") {
|
|
251
|
-
return false;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
if (obj.zones !== void 0 && typeof obj.zones !== "object") {
|
|
255
|
-
return false;
|
|
256
|
-
}
|
|
257
|
-
return true;
|
|
258
|
-
}
|
|
259
|
-
function isPuckRootProps(props) {
|
|
260
|
-
if (!props || typeof props !== "object") {
|
|
261
|
-
return false;
|
|
262
|
-
}
|
|
263
|
-
return true;
|
|
264
|
-
}
|
|
265
|
-
function validatePuckData(data, options = {}) {
|
|
266
|
-
const {
|
|
267
|
-
requireContentIds = true,
|
|
268
|
-
validateRoot = true,
|
|
269
|
-
requiredRootProps = ["title"],
|
|
270
|
-
allowedComponentTypes,
|
|
271
|
-
strictComponentTypes = false
|
|
272
|
-
} = options;
|
|
273
|
-
const errors = [];
|
|
274
|
-
const warnings = [];
|
|
275
|
-
if (!data || typeof data !== "object") {
|
|
276
|
-
errors.push("Data must be a non-null object");
|
|
277
|
-
return { valid: false, errors, warnings };
|
|
278
|
-
}
|
|
279
|
-
const obj = data;
|
|
280
|
-
if (!obj.root || typeof obj.root !== "object") {
|
|
281
|
-
errors.push("Missing or invalid root object");
|
|
282
|
-
} else if (validateRoot) {
|
|
283
|
-
const root = obj.root;
|
|
284
|
-
if (!root.props || typeof root.props !== "object") {
|
|
285
|
-
errors.push("Missing root.props object");
|
|
286
|
-
} else {
|
|
287
|
-
const rootProps = root.props;
|
|
288
|
-
for (const prop of requiredRootProps) {
|
|
289
|
-
if (rootProps[prop] === void 0 || rootProps[prop] === null) {
|
|
290
|
-
errors.push(`Missing required root prop: ${prop}`);
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
if (rootProps.pageLayout !== void 0) {
|
|
294
|
-
if (typeof rootProps.pageLayout !== "string") {
|
|
295
|
-
errors.push("root.props.pageLayout must be a string");
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
if (!Array.isArray(obj.content)) {
|
|
301
|
-
errors.push("content must be an array");
|
|
302
|
-
} else {
|
|
303
|
-
const seenIds = /* @__PURE__ */ new Set();
|
|
304
|
-
obj.content.forEach((item, index) => {
|
|
305
|
-
if (!item || typeof item !== "object") {
|
|
306
|
-
errors.push(`Content item at index ${index} is not an object`);
|
|
307
|
-
return;
|
|
308
|
-
}
|
|
309
|
-
const contentItem = item;
|
|
310
|
-
if (!contentItem.type || typeof contentItem.type !== "string") {
|
|
311
|
-
errors.push(`Content item at index ${index} missing or invalid type`);
|
|
312
|
-
} else if (allowedComponentTypes) {
|
|
313
|
-
if (!allowedComponentTypes.includes(contentItem.type)) {
|
|
314
|
-
const message = `Unknown component type "${contentItem.type}" at index ${index}`;
|
|
315
|
-
if (strictComponentTypes) {
|
|
316
|
-
errors.push(message);
|
|
317
|
-
} else {
|
|
318
|
-
warnings.push(message);
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
if (!contentItem.props || typeof contentItem.props !== "object") {
|
|
323
|
-
errors.push(`Content item at index ${index} missing props object`);
|
|
324
|
-
} else if (requireContentIds) {
|
|
325
|
-
const props = contentItem.props;
|
|
326
|
-
if (!props.id || typeof props.id !== "string") {
|
|
327
|
-
errors.push(`Content item at index ${index} missing or invalid props.id`);
|
|
328
|
-
} else {
|
|
329
|
-
if (seenIds.has(props.id)) {
|
|
330
|
-
warnings.push(
|
|
331
|
-
`Duplicate content item ID "${props.id}" at index ${index}`
|
|
332
|
-
);
|
|
333
|
-
}
|
|
334
|
-
seenIds.add(props.id);
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
});
|
|
338
|
-
}
|
|
339
|
-
if (obj.zones !== void 0) {
|
|
340
|
-
if (typeof obj.zones !== "object" || obj.zones === null) {
|
|
341
|
-
errors.push("zones must be an object");
|
|
342
|
-
} else {
|
|
343
|
-
const zones = obj.zones;
|
|
344
|
-
for (const [zoneName, zoneContent] of Object.entries(zones)) {
|
|
345
|
-
if (!Array.isArray(zoneContent)) {
|
|
346
|
-
errors.push(`Zone "${zoneName}" content must be an array`);
|
|
347
|
-
continue;
|
|
348
|
-
}
|
|
349
|
-
zoneContent.forEach((item, index) => {
|
|
350
|
-
if (!item || typeof item !== "object") {
|
|
351
|
-
errors.push(`Zone "${zoneName}" item at index ${index} is not an object`);
|
|
352
|
-
return;
|
|
353
|
-
}
|
|
354
|
-
const contentItem = item;
|
|
355
|
-
if (!contentItem.type || typeof contentItem.type !== "string") {
|
|
356
|
-
errors.push(
|
|
357
|
-
`Zone "${zoneName}" item at index ${index} missing or invalid type`
|
|
358
|
-
);
|
|
359
|
-
}
|
|
360
|
-
if (!contentItem.props || typeof contentItem.props !== "object") {
|
|
361
|
-
errors.push(
|
|
362
|
-
`Zone "${zoneName}" item at index ${index} missing props object`
|
|
363
|
-
);
|
|
364
|
-
} else if (requireContentIds) {
|
|
365
|
-
const props = contentItem.props;
|
|
366
|
-
if (!props.id || typeof props.id !== "string") {
|
|
367
|
-
errors.push(
|
|
368
|
-
`Zone "${zoneName}" item at index ${index} missing or invalid props.id`
|
|
369
|
-
);
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
});
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
return {
|
|
377
|
-
valid: errors.length === 0,
|
|
378
|
-
errors,
|
|
379
|
-
warnings
|
|
380
|
-
};
|
|
381
|
-
}
|
|
382
|
-
function assertPuckData(data, options) {
|
|
383
|
-
const result = validatePuckData(data, options);
|
|
384
|
-
if (!result.valid) {
|
|
385
|
-
throw new Error(
|
|
386
|
-
`Invalid Puck data: ${result.errors.join("; ")}`
|
|
387
|
-
);
|
|
388
|
-
}
|
|
389
|
-
return data;
|
|
390
|
-
}
|
|
391
|
-
function parsePuckDataJson(json, options) {
|
|
392
|
-
let parsed;
|
|
393
|
-
try {
|
|
394
|
-
parsed = JSON.parse(json);
|
|
395
|
-
} catch (e) {
|
|
396
|
-
return {
|
|
397
|
-
valid: false,
|
|
398
|
-
errors: [`Invalid JSON: ${e instanceof Error ? e.message : "Parse error"}`],
|
|
399
|
-
warnings: []
|
|
400
|
-
};
|
|
401
|
-
}
|
|
402
|
-
const result = validatePuckData(parsed, options);
|
|
403
|
-
if (result.valid) {
|
|
404
|
-
return {
|
|
405
|
-
...result,
|
|
406
|
-
data: parsed
|
|
407
|
-
};
|
|
408
|
-
}
|
|
409
|
-
return result;
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
exports.assertPuckData = assertPuckData;
|
|
413
|
-
exports.blockTypeMap = blockTypeMap;
|
|
414
|
-
exports.generatePuckId = generatePuckId;
|
|
415
|
-
exports.getMigrationPreview = getMigrationPreview;
|
|
416
|
-
exports.isPuckData = isPuckData;
|
|
417
|
-
exports.isPuckRootProps = isPuckRootProps;
|
|
418
|
-
exports.migrateLegacyToPuck = migrateLegacyToPuck;
|
|
419
|
-
exports.parsePuckDataJson = parsePuckDataJson;
|
|
420
|
-
exports.transformBlockProps = transformBlockProps;
|
|
421
|
-
exports.transformMediaReference = transformMediaReference;
|
|
422
|
-
exports.transformRelationshipArray = transformRelationshipArray;
|
|
423
|
-
exports.transformRichText = transformRichText;
|
|
424
|
-
exports.validatePuckData = validatePuckData;
|
|
425
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
/**
|
|
2
|
+
* Migration and Validation Utilities
|
|
3
|
+
*
|
|
4
|
+
* This module provides utilities for migrating legacy Payload CMS pages
|
|
5
|
+
* to Puck format and validating Puck data structures.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import {
|
|
10
|
+
* migrateLegacyToPuck,
|
|
11
|
+
* validatePuckData,
|
|
12
|
+
* getMigrationPreview,
|
|
13
|
+
* blockTypeMap,
|
|
14
|
+
* } from '@delmaredigital/payload-puck/utils'
|
|
15
|
+
*
|
|
16
|
+
* // Preview migration
|
|
17
|
+
* const preview = getMigrationPreview(legacyPage)
|
|
18
|
+
* console.log('Blocks to migrate:', preview.blockCount)
|
|
19
|
+
* console.log('Warnings:', preview.warnings)
|
|
20
|
+
*
|
|
21
|
+
* // Perform migration
|
|
22
|
+
* const puckData = migrateLegacyToPuck(legacyPage)
|
|
23
|
+
*
|
|
24
|
+
* // Validate result
|
|
25
|
+
* const validation = validatePuckData(puckData)
|
|
26
|
+
* if (validation.valid) {
|
|
27
|
+
* await payload.update({ collection: 'pages', id: pageId, data: { puckData } })
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
// =============================================================================
|
|
32
|
+
// Migration Exports
|
|
33
|
+
// =============================================================================
|
|
34
|
+
export {
|
|
35
|
+
// Main migration function
|
|
36
|
+
migrateLegacyToPuck,
|
|
37
|
+
// Preview function
|
|
38
|
+
getMigrationPreview,
|
|
39
|
+
// Block type mapping
|
|
40
|
+
blockTypeMap,
|
|
41
|
+
// ID generation
|
|
42
|
+
generatePuckId,
|
|
43
|
+
// Prop transformation utilities
|
|
44
|
+
transformBlockProps, transformMediaReference, transformRichText, transformRelationshipArray, } from './migration';
|
|
45
|
+
// =============================================================================
|
|
46
|
+
// Validation Exports
|
|
47
|
+
// =============================================================================
|
|
48
|
+
export {
|
|
49
|
+
// Main validation function
|
|
50
|
+
validatePuckData,
|
|
51
|
+
// Type guards
|
|
52
|
+
isPuckData, isPuckRootProps,
|
|
53
|
+
// Assertion helper
|
|
54
|
+
assertPuckData,
|
|
55
|
+
// JSON parsing helper
|
|
56
|
+
parsePuckDataJson, } from './validation';
|
|
426
57
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,OAAO;AACL,0BAA0B;AAC1B,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB,qBAAqB;AACrB,YAAY;AACZ,gBAAgB;AAChB,cAAc;AACd,gCAAgC;AAChC,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,0BAA0B,GAQ3B,MAAM,aAAa,CAAA;AAEpB,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,OAAO;AACL,2BAA2B;AAC3B,gBAAgB;AAChB,cAAc;AACd,UAAU,EACV,eAAe;AACf,mBAAmB;AACnB,cAAc;AACd,sBAAsB;AACtB,iBAAiB,GAIlB,MAAM,cAAc,CAAA"}
|
|
@@ -1,21 +1,15 @@
|
|
|
1
|
-
import { P as PuckPageData, M as MediaObject, a as PuckRootProps } from '../index-CQu6SzDg.mjs';
|
|
2
|
-
import 'payload';
|
|
3
|
-
import '@measured/puck';
|
|
4
|
-
import '../types-D7D3rZ1J.mjs';
|
|
5
|
-
import 'react';
|
|
6
|
-
|
|
7
1
|
/**
|
|
8
2
|
* Migration Utility for Converting Legacy Payload CMS Pages to Puck Format
|
|
9
3
|
*
|
|
10
4
|
* This utility converts legacy Payload CMS page block structures to the
|
|
11
5
|
* Puck visual editor format, enabling seamless migration of existing content.
|
|
12
6
|
*/
|
|
13
|
-
|
|
7
|
+
import type { PuckPageData, MediaObject } from '../types';
|
|
14
8
|
/**
|
|
15
9
|
* Legacy block from Payload CMS pages.
|
|
16
10
|
* Each block has a blockType discriminator and various props.
|
|
17
11
|
*/
|
|
18
|
-
interface LegacyBlock {
|
|
12
|
+
export interface LegacyBlock {
|
|
19
13
|
blockType: string;
|
|
20
14
|
id?: string | null;
|
|
21
15
|
blockName?: string | null;
|
|
@@ -25,7 +19,7 @@ interface LegacyBlock {
|
|
|
25
19
|
* Subset of Page type used for migration.
|
|
26
20
|
* Only includes fields relevant to content migration.
|
|
27
21
|
*/
|
|
28
|
-
interface LegacyPage {
|
|
22
|
+
export interface LegacyPage {
|
|
29
23
|
title: string;
|
|
30
24
|
slug: string;
|
|
31
25
|
pageLayout?: string;
|
|
@@ -35,7 +29,7 @@ interface LegacyPage {
|
|
|
35
29
|
/**
|
|
36
30
|
* Media reference in Puck format
|
|
37
31
|
*/
|
|
38
|
-
interface MediaReference {
|
|
32
|
+
export interface MediaReference {
|
|
39
33
|
id: string | number;
|
|
40
34
|
url?: string;
|
|
41
35
|
alt?: string;
|
|
@@ -45,7 +39,7 @@ interface MediaReference {
|
|
|
45
39
|
/**
|
|
46
40
|
* Puck content item structure
|
|
47
41
|
*/
|
|
48
|
-
interface PuckContentItem {
|
|
42
|
+
export interface PuckContentItem {
|
|
49
43
|
type: string;
|
|
50
44
|
props: {
|
|
51
45
|
id: string;
|
|
@@ -56,17 +50,17 @@ interface PuckContentItem {
|
|
|
56
50
|
* Maps legacy Payload block types (camelCase) to Puck component types (PascalCase).
|
|
57
51
|
* Extend this map to support additional custom block types.
|
|
58
52
|
*/
|
|
59
|
-
declare const blockTypeMap: Record<string, string>;
|
|
53
|
+
export declare const blockTypeMap: Record<string, string>;
|
|
60
54
|
/**
|
|
61
55
|
* Generates a unique ID for Puck content items.
|
|
62
56
|
* Uses a format compatible with Puck's internal ID scheme.
|
|
63
57
|
*/
|
|
64
|
-
declare function generatePuckId(legacyId?: string | null): string;
|
|
58
|
+
export declare function generatePuckId(legacyId?: string | null): string;
|
|
65
59
|
/**
|
|
66
60
|
* Transforms a Payload media reference (ID or Media object) to Puck MediaReference format.
|
|
67
61
|
* Handles both ID-only references and full Media objects.
|
|
68
62
|
*/
|
|
69
|
-
declare function transformMediaReference(media: string | number | {
|
|
63
|
+
export declare function transformMediaReference(media: string | number | {
|
|
70
64
|
id: string | number;
|
|
71
65
|
url?: string;
|
|
72
66
|
alt?: string;
|
|
@@ -77,11 +71,11 @@ declare function transformMediaReference(media: string | number | {
|
|
|
77
71
|
* Transforms Lexical rich text content to a serialized string format.
|
|
78
72
|
* Puck stores rich text as JSON strings for the custom editors.
|
|
79
73
|
*/
|
|
80
|
-
declare function transformRichText(richText: unknown): string | undefined;
|
|
74
|
+
export declare function transformRichText(richText: unknown): string | undefined;
|
|
81
75
|
/**
|
|
82
76
|
* Transforms an array of relationships to Puck format.
|
|
83
77
|
*/
|
|
84
|
-
declare function transformRelationshipArray<T extends {
|
|
78
|
+
export declare function transformRelationshipArray<T extends {
|
|
85
79
|
id: string | number;
|
|
86
80
|
title?: string;
|
|
87
81
|
slug?: string;
|
|
@@ -94,7 +88,7 @@ declare function transformRelationshipArray<T extends {
|
|
|
94
88
|
* Transform props for a specific block type.
|
|
95
89
|
* Handles any block-specific transformations needed.
|
|
96
90
|
*/
|
|
97
|
-
declare function transformBlockProps(block: LegacyBlock, options?: {
|
|
91
|
+
export declare function transformBlockProps(block: LegacyBlock, options?: {
|
|
98
92
|
richTextFields?: string[];
|
|
99
93
|
mediaFields?: string[];
|
|
100
94
|
customTransformers?: Record<string, (value: unknown) => unknown>;
|
|
@@ -102,7 +96,7 @@ declare function transformBlockProps(block: LegacyBlock, options?: {
|
|
|
102
96
|
/**
|
|
103
97
|
* Options for the migration function
|
|
104
98
|
*/
|
|
105
|
-
interface MigrateLegacyOptions {
|
|
99
|
+
export interface MigrateLegacyOptions {
|
|
106
100
|
/**
|
|
107
101
|
* Custom block type mapping to extend or override defaults
|
|
108
102
|
*/
|
|
@@ -153,11 +147,11 @@ interface MigrateLegacyOptions {
|
|
|
153
147
|
* })
|
|
154
148
|
* ```
|
|
155
149
|
*/
|
|
156
|
-
declare function migrateLegacyToPuck(page: LegacyPage, options?: MigrateLegacyOptions): PuckPageData;
|
|
150
|
+
export declare function migrateLegacyToPuck(page: LegacyPage, options?: MigrateLegacyOptions): PuckPageData;
|
|
157
151
|
/**
|
|
158
152
|
* Migration preview result
|
|
159
153
|
*/
|
|
160
|
-
interface MigrationPreview {
|
|
154
|
+
export interface MigrationPreview {
|
|
161
155
|
title: string;
|
|
162
156
|
slug: string;
|
|
163
157
|
blockCount: number;
|
|
@@ -173,95 +167,5 @@ interface MigrationPreview {
|
|
|
173
167
|
* @param customBlockTypeMap - Optional custom block type mapping
|
|
174
168
|
* @returns Preview information about the migration
|
|
175
169
|
*/
|
|
176
|
-
declare function getMigrationPreview(page: LegacyPage, customBlockTypeMap?: Record<string, string>): MigrationPreview;
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Puck Data Validation Utilities
|
|
180
|
-
*
|
|
181
|
-
* Provides validation functions for ensuring Puck data structures are well-formed.
|
|
182
|
-
*/
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* Result of a validation operation
|
|
186
|
-
*/
|
|
187
|
-
interface ValidationResult {
|
|
188
|
-
valid: boolean;
|
|
189
|
-
errors: string[];
|
|
190
|
-
warnings: string[];
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Options for validation
|
|
194
|
-
*/
|
|
195
|
-
interface ValidationOptions {
|
|
196
|
-
/**
|
|
197
|
-
* Whether to validate that all content items have IDs
|
|
198
|
-
* @default true
|
|
199
|
-
*/
|
|
200
|
-
requireContentIds?: boolean;
|
|
201
|
-
/**
|
|
202
|
-
* Whether to validate root props
|
|
203
|
-
* @default true
|
|
204
|
-
*/
|
|
205
|
-
validateRoot?: boolean;
|
|
206
|
-
/**
|
|
207
|
-
* Required root prop fields
|
|
208
|
-
* @default ['title']
|
|
209
|
-
*/
|
|
210
|
-
requiredRootProps?: string[];
|
|
211
|
-
/**
|
|
212
|
-
* Allowed component types (if specified, unknown types will be flagged)
|
|
213
|
-
*/
|
|
214
|
-
allowedComponentTypes?: string[];
|
|
215
|
-
/**
|
|
216
|
-
* Whether to treat unknown component types as errors (vs warnings)
|
|
217
|
-
* @default false
|
|
218
|
-
*/
|
|
219
|
-
strictComponentTypes?: boolean;
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Type guard to check if a value is a valid PuckPageData structure.
|
|
223
|
-
* Performs basic structural validation.
|
|
224
|
-
*/
|
|
225
|
-
declare function isPuckData(data: unknown): data is PuckPageData;
|
|
226
|
-
/**
|
|
227
|
-
* Type guard for PuckRootProps
|
|
228
|
-
*/
|
|
229
|
-
declare function isPuckRootProps(props: unknown): props is PuckRootProps;
|
|
230
|
-
/**
|
|
231
|
-
* Validates that a PuckPageData structure is well-formed.
|
|
232
|
-
* Useful for testing and debugging migration issues.
|
|
233
|
-
*
|
|
234
|
-
* @param data - The data to validate
|
|
235
|
-
* @param options - Validation options
|
|
236
|
-
* @returns Validation result with errors and warnings
|
|
237
|
-
*
|
|
238
|
-
* @example
|
|
239
|
-
* ```ts
|
|
240
|
-
* const result = validatePuckData(puckData)
|
|
241
|
-
* if (!result.valid) {
|
|
242
|
-
* console.error('Validation errors:', result.errors)
|
|
243
|
-
* }
|
|
244
|
-
* ```
|
|
245
|
-
*/
|
|
246
|
-
declare function validatePuckData(data: unknown, options?: ValidationOptions): ValidationResult;
|
|
247
|
-
/**
|
|
248
|
-
* Validates and returns typed PuckPageData, throwing if invalid.
|
|
249
|
-
*
|
|
250
|
-
* @param data - The data to validate
|
|
251
|
-
* @param options - Validation options
|
|
252
|
-
* @returns The validated PuckPageData
|
|
253
|
-
* @throws Error if validation fails
|
|
254
|
-
*/
|
|
255
|
-
declare function assertPuckData(data: unknown, options?: ValidationOptions): PuckPageData;
|
|
256
|
-
/**
|
|
257
|
-
* Safely parses JSON and validates as PuckPageData.
|
|
258
|
-
*
|
|
259
|
-
* @param json - JSON string to parse
|
|
260
|
-
* @param options - Validation options
|
|
261
|
-
* @returns Validation result with parsed data if valid
|
|
262
|
-
*/
|
|
263
|
-
declare function parsePuckDataJson(json: string, options?: ValidationOptions): ValidationResult & {
|
|
264
|
-
data?: PuckPageData;
|
|
265
|
-
};
|
|
266
|
-
|
|
267
|
-
export { type LegacyBlock, type LegacyPage, type MediaReference, type MigrateLegacyOptions, type MigrationPreview, type PuckContentItem, type ValidationOptions, type ValidationResult, assertPuckData, blockTypeMap, generatePuckId, getMigrationPreview, isPuckData, isPuckRootProps, migrateLegacyToPuck, parsePuckDataJson, transformBlockProps, transformMediaReference, transformRelationshipArray, transformRichText, validatePuckData };
|
|
170
|
+
export declare function getMigrationPreview(page: LegacyPage, customBlockTypeMap?: Record<string, string>): MigrationPreview;
|
|
171
|
+
//# sourceMappingURL=migration.d.ts.map
|