@delmaredigital/payload-puck 0.2.0 → 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 +349 -1370
- 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 -216
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +15 -9262
- 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 -9462
- 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 -2119
- 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 -4625
- 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 -7704
- package/dist/fields/index.js.map +1 -0
- package/dist/fields/richtext-output.css +219 -0
- package/dist/{shared-X9UpCJKW.d.mts → fields/shared.d.ts} +111 -132
- 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 -2253
- 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 +51 -74
- 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 -219
- package/dist/components/index.mjs +0 -9216
- package/dist/config/config.editor.css +0 -339
- package/dist/config/config.editor.d.mts +0 -153
- package/dist/config/config.editor.mjs +0 -9445
- package/dist/config/index.d.mts +0 -68
- package/dist/config/index.mjs +0 -2099
- package/dist/editor/index.d.mts +0 -784
- package/dist/editor/index.mjs +0 -4592
- package/dist/fields/index.d.mts +0 -600
- package/dist/fields/index.mjs +0 -7588
- 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 -2231
- package/dist/shared-X9UpCJKW.d.ts +0 -548
- 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
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Puck Editor Page
|
|
3
|
-
*
|
|
4
|
-
* Copy this file to: app/(manage)/pages/[id]/edit/page.tsx
|
|
5
|
-
* (or your preferred route structure)
|
|
6
|
-
*
|
|
7
|
-
* Provides a visual page editor with:
|
|
8
|
-
* - Save draft / Publish functionality
|
|
9
|
-
* - Version history (if versions route exists)
|
|
10
|
-
* - Unsaved changes warning
|
|
11
|
-
* - Preview in new tab
|
|
12
|
-
* - Header/footer preview in editor
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
'use client'
|
|
16
|
-
|
|
17
|
-
import { useEffect, useState } from 'react'
|
|
18
|
-
import { useParams } from 'next/navigation'
|
|
19
|
-
import Link from 'next/link'
|
|
20
|
-
import { PuckEditor } from '@delmaredigital/payload-puck/editor'
|
|
21
|
-
import { editorConfig } from '@delmaredigital/payload-puck/config/editor'
|
|
22
|
-
import { DEFAULT_LAYOUTS } from '@delmaredigital/payload-puck/layouts'
|
|
23
|
-
// Import your custom layouts - create from examples/lib/puck-layouts.ts
|
|
24
|
-
// import { siteLayouts } from '@/lib/puck-layouts'
|
|
25
|
-
// Import your theme - create from examples/lib/puck-theme.ts
|
|
26
|
-
// import { puckTheme } from '@/lib/puck-theme'
|
|
27
|
-
import type { Data } from '@measured/puck'
|
|
28
|
-
|
|
29
|
-
interface PageData {
|
|
30
|
-
id: string
|
|
31
|
-
title: string
|
|
32
|
-
slug: string
|
|
33
|
-
puckData: Data
|
|
34
|
-
_status?: 'draft' | 'published'
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export default function EditPagePage() {
|
|
38
|
-
const params = useParams()
|
|
39
|
-
const pageId = params.id as string
|
|
40
|
-
|
|
41
|
-
const [page, setPage] = useState<PageData | null>(null)
|
|
42
|
-
const [loading, setLoading] = useState(true)
|
|
43
|
-
const [error, setError] = useState<string | null>(null)
|
|
44
|
-
|
|
45
|
-
useEffect(() => {
|
|
46
|
-
async function fetchPage() {
|
|
47
|
-
try {
|
|
48
|
-
setLoading(true)
|
|
49
|
-
const response = await fetch(`/api/puck/pages/${pageId}`)
|
|
50
|
-
|
|
51
|
-
if (!response.ok) {
|
|
52
|
-
const data = await response.json()
|
|
53
|
-
throw new Error(data.error || 'Failed to fetch page')
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const data = await response.json()
|
|
57
|
-
setPage(data.doc)
|
|
58
|
-
} catch (err) {
|
|
59
|
-
setError(err instanceof Error ? err.message : 'An error occurred')
|
|
60
|
-
} finally {
|
|
61
|
-
setLoading(false)
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if (pageId) {
|
|
66
|
-
fetchPage()
|
|
67
|
-
}
|
|
68
|
-
}, [pageId])
|
|
69
|
-
|
|
70
|
-
if (loading) {
|
|
71
|
-
return (
|
|
72
|
-
<div className="flex h-screen items-center justify-center">
|
|
73
|
-
<div className="text-center">
|
|
74
|
-
<div className="h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent mx-auto mb-4" />
|
|
75
|
-
<p className="text-muted-foreground">Loading page...</p>
|
|
76
|
-
</div>
|
|
77
|
-
</div>
|
|
78
|
-
)
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
if (error) {
|
|
82
|
-
return (
|
|
83
|
-
<div className="flex h-screen items-center justify-center">
|
|
84
|
-
<div className="text-center">
|
|
85
|
-
<p className="text-destructive mb-4">{error}</p>
|
|
86
|
-
<Link
|
|
87
|
-
href="/admin/collections/pages"
|
|
88
|
-
className="text-primary underline hover:no-underline"
|
|
89
|
-
>
|
|
90
|
-
Back to Pages
|
|
91
|
-
</Link>
|
|
92
|
-
</div>
|
|
93
|
-
</div>
|
|
94
|
-
)
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
if (!page) {
|
|
98
|
-
return (
|
|
99
|
-
<div className="flex h-screen items-center justify-center">
|
|
100
|
-
<div className="text-center">
|
|
101
|
-
<p className="text-muted-foreground mb-4">Page not found</p>
|
|
102
|
-
<Link
|
|
103
|
-
href="/admin/collections/pages"
|
|
104
|
-
className="text-primary underline hover:no-underline"
|
|
105
|
-
>
|
|
106
|
-
Back to Pages
|
|
107
|
-
</Link>
|
|
108
|
-
</div>
|
|
109
|
-
</div>
|
|
110
|
-
)
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// Default puck data if none exists
|
|
114
|
-
const initialData: Data = page.puckData || {
|
|
115
|
-
root: {
|
|
116
|
-
props: {
|
|
117
|
-
title: page.title || 'New Page',
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
content: [],
|
|
121
|
-
zones: {},
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
return (
|
|
125
|
-
<PuckEditor
|
|
126
|
-
pageId={page.id}
|
|
127
|
-
initialData={initialData}
|
|
128
|
-
config={editorConfig}
|
|
129
|
-
pageTitle={page.title}
|
|
130
|
-
pageSlug={page.slug}
|
|
131
|
-
apiEndpoint="/api/puck/pages"
|
|
132
|
-
backUrl={`/admin/collections/pages/${page.id}`}
|
|
133
|
-
previewUrl={(slug: string) => `/${slug}`}
|
|
134
|
-
initialStatus={page._status}
|
|
135
|
-
// Layouts control header/footer preview and editor backgrounds
|
|
136
|
-
// Use DEFAULT_LAYOUTS or create custom ones in lib/puck-layouts.ts
|
|
137
|
-
layouts={DEFAULT_LAYOUTS}
|
|
138
|
-
// Optional: Custom theme - uncomment after creating puck-theme.ts
|
|
139
|
-
// theme={puckTheme}
|
|
140
|
-
onSaveSuccess={(data: Data) => {
|
|
141
|
-
console.log('Page saved successfully:', data)
|
|
142
|
-
}}
|
|
143
|
-
onSaveError={(err: Error) => {
|
|
144
|
-
console.error('Failed to save page:', err)
|
|
145
|
-
}}
|
|
146
|
-
/>
|
|
147
|
-
)
|
|
148
|
-
}
|
|
@@ -1,368 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Custom Banner Component Example
|
|
3
|
-
*
|
|
4
|
-
* This example demonstrates how to create a custom Puck component that:
|
|
5
|
-
* - Uses proper TypeScript typing with ComponentConfig
|
|
6
|
-
* - Leverages custom fields from the payload-puck library
|
|
7
|
-
* - Integrates with the theme system for color presets
|
|
8
|
-
* - Provides sensible default props
|
|
9
|
-
* - Uses Tailwind CSS for styling
|
|
10
|
-
*
|
|
11
|
-
* Copy this file to your project and customize it to your needs.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
import type { ComponentConfig } from '@measured/puck'
|
|
15
|
-
|
|
16
|
-
// =============================================================================
|
|
17
|
-
// Imports from payload-puck
|
|
18
|
-
// =============================================================================
|
|
19
|
-
|
|
20
|
-
// Custom field creators - use these to add rich field experiences
|
|
21
|
-
import { createColorPickerField } from '@delmaredigital/payload-puck/fields'
|
|
22
|
-
import { createPaddingField } from '@delmaredigital/payload-puck/fields'
|
|
23
|
-
|
|
24
|
-
// Utility functions for converting field values to CSS
|
|
25
|
-
import {
|
|
26
|
-
colorValueToCSS,
|
|
27
|
-
paddingValueToCSS,
|
|
28
|
-
cn,
|
|
29
|
-
type ColorValue,
|
|
30
|
-
type PaddingValue,
|
|
31
|
-
} from '@delmaredigital/payload-puck/fields/shared'
|
|
32
|
-
|
|
33
|
-
// =============================================================================
|
|
34
|
-
// Component Props Interface
|
|
35
|
-
// =============================================================================
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Define your props interface for type safety.
|
|
39
|
-
* This ensures your component has proper TypeScript support throughout.
|
|
40
|
-
*/
|
|
41
|
-
export interface CustomBannerProps {
|
|
42
|
-
/** The type/severity of the banner - affects default styling */
|
|
43
|
-
variant: 'info' | 'success' | 'warning' | 'error'
|
|
44
|
-
/** Main banner title */
|
|
45
|
-
title: string
|
|
46
|
-
/** Optional longer message */
|
|
47
|
-
message: string
|
|
48
|
-
/** Whether to show an icon (based on variant) */
|
|
49
|
-
showIcon: boolean
|
|
50
|
-
/** Whether the banner can be dismissed (visual only in editor) */
|
|
51
|
-
dismissible: boolean
|
|
52
|
-
/** Custom background color - overrides variant default */
|
|
53
|
-
backgroundColor: ColorValue | null
|
|
54
|
-
/** Custom text color - overrides variant default */
|
|
55
|
-
textColor: ColorValue | null
|
|
56
|
-
/** Custom padding around the banner content */
|
|
57
|
-
padding: PaddingValue | null
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// =============================================================================
|
|
61
|
-
// Styling Maps
|
|
62
|
-
// =============================================================================
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Map variant names to default Tailwind classes.
|
|
66
|
-
* These are used when no custom colors are specified.
|
|
67
|
-
*/
|
|
68
|
-
const variantStyles: Record<string, { bg: string; text: string; border: string; icon: string }> = {
|
|
69
|
-
info: {
|
|
70
|
-
bg: 'bg-blue-50',
|
|
71
|
-
text: 'text-blue-800',
|
|
72
|
-
border: 'border-blue-200',
|
|
73
|
-
icon: 'text-blue-500',
|
|
74
|
-
},
|
|
75
|
-
success: {
|
|
76
|
-
bg: 'bg-green-50',
|
|
77
|
-
text: 'text-green-800',
|
|
78
|
-
border: 'border-green-200',
|
|
79
|
-
icon: 'text-green-500',
|
|
80
|
-
},
|
|
81
|
-
warning: {
|
|
82
|
-
bg: 'bg-amber-50',
|
|
83
|
-
text: 'text-amber-800',
|
|
84
|
-
border: 'border-amber-200',
|
|
85
|
-
icon: 'text-amber-500',
|
|
86
|
-
},
|
|
87
|
-
error: {
|
|
88
|
-
bg: 'bg-red-50',
|
|
89
|
-
text: 'text-red-800',
|
|
90
|
-
border: 'border-red-200',
|
|
91
|
-
icon: 'text-red-500',
|
|
92
|
-
},
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Simple SVG icons for each variant.
|
|
97
|
-
* In a real project, you might use an icon library like lucide-react or tabler-icons.
|
|
98
|
-
*/
|
|
99
|
-
const variantIcons: Record<string, React.ReactNode> = {
|
|
100
|
-
info: (
|
|
101
|
-
<svg className="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
|
102
|
-
<path
|
|
103
|
-
fillRule="evenodd"
|
|
104
|
-
d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z"
|
|
105
|
-
clipRule="evenodd"
|
|
106
|
-
/>
|
|
107
|
-
</svg>
|
|
108
|
-
),
|
|
109
|
-
success: (
|
|
110
|
-
<svg className="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
|
111
|
-
<path
|
|
112
|
-
fillRule="evenodd"
|
|
113
|
-
d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z"
|
|
114
|
-
clipRule="evenodd"
|
|
115
|
-
/>
|
|
116
|
-
</svg>
|
|
117
|
-
),
|
|
118
|
-
warning: (
|
|
119
|
-
<svg className="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
|
120
|
-
<path
|
|
121
|
-
fillRule="evenodd"
|
|
122
|
-
d="M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z"
|
|
123
|
-
clipRule="evenodd"
|
|
124
|
-
/>
|
|
125
|
-
</svg>
|
|
126
|
-
),
|
|
127
|
-
error: (
|
|
128
|
-
<svg className="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
|
129
|
-
<path
|
|
130
|
-
fillRule="evenodd"
|
|
131
|
-
d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z"
|
|
132
|
-
clipRule="evenodd"
|
|
133
|
-
/>
|
|
134
|
-
</svg>
|
|
135
|
-
),
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// =============================================================================
|
|
139
|
-
// Component Configuration
|
|
140
|
-
// =============================================================================
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* The Puck ComponentConfig defines:
|
|
144
|
-
* - label: Display name in the component picker
|
|
145
|
-
* - fields: The editable properties shown in the right sidebar
|
|
146
|
-
* - defaultProps: Initial values when the component is added
|
|
147
|
-
* - render: The React component that renders the output
|
|
148
|
-
*/
|
|
149
|
-
export const CustomBannerConfig: ComponentConfig<CustomBannerProps> = {
|
|
150
|
-
// Display name in Puck's component list
|
|
151
|
-
label: 'Banner',
|
|
152
|
-
|
|
153
|
-
// Field definitions - these appear in the Puck editor sidebar
|
|
154
|
-
fields: {
|
|
155
|
-
// Standard select field for variant
|
|
156
|
-
variant: {
|
|
157
|
-
type: 'select',
|
|
158
|
-
label: 'Variant',
|
|
159
|
-
options: [
|
|
160
|
-
{ label: 'Info', value: 'info' },
|
|
161
|
-
{ label: 'Success', value: 'success' },
|
|
162
|
-
{ label: 'Warning', value: 'warning' },
|
|
163
|
-
{ label: 'Error', value: 'error' },
|
|
164
|
-
],
|
|
165
|
-
},
|
|
166
|
-
|
|
167
|
-
// Standard text fields
|
|
168
|
-
title: {
|
|
169
|
-
type: 'text',
|
|
170
|
-
label: 'Title',
|
|
171
|
-
},
|
|
172
|
-
message: {
|
|
173
|
-
type: 'textarea',
|
|
174
|
-
label: 'Message',
|
|
175
|
-
},
|
|
176
|
-
|
|
177
|
-
// Radio buttons for boolean options
|
|
178
|
-
showIcon: {
|
|
179
|
-
type: 'radio',
|
|
180
|
-
label: 'Show Icon',
|
|
181
|
-
options: [
|
|
182
|
-
{ label: 'Yes', value: true },
|
|
183
|
-
{ label: 'No', value: false },
|
|
184
|
-
],
|
|
185
|
-
},
|
|
186
|
-
dismissible: {
|
|
187
|
-
type: 'radio',
|
|
188
|
-
label: 'Dismissible',
|
|
189
|
-
options: [
|
|
190
|
-
{ label: 'Yes', value: true },
|
|
191
|
-
{ label: 'No', value: false },
|
|
192
|
-
],
|
|
193
|
-
},
|
|
194
|
-
|
|
195
|
-
// Custom fields from payload-puck library
|
|
196
|
-
// These provide rich UI experiences for color picking and spacing
|
|
197
|
-
|
|
198
|
-
// ColorPickerField provides:
|
|
199
|
-
// - Color picker with visual preview
|
|
200
|
-
// - Hex input for precise values
|
|
201
|
-
// - Opacity slider (when showOpacity is true)
|
|
202
|
-
// - Preset color swatches from theme
|
|
203
|
-
backgroundColor: createColorPickerField({
|
|
204
|
-
label: 'Background Color',
|
|
205
|
-
showOpacity: true, // Enable opacity slider
|
|
206
|
-
// Optionally, provide custom presets instead of theme defaults:
|
|
207
|
-
// presets: [
|
|
208
|
-
// { hex: '#3b82f6', label: 'Blue' },
|
|
209
|
-
// { hex: '#10b981', label: 'Green' },
|
|
210
|
-
// ],
|
|
211
|
-
}),
|
|
212
|
-
|
|
213
|
-
textColor: createColorPickerField({
|
|
214
|
-
label: 'Text Color',
|
|
215
|
-
showOpacity: false, // Text usually doesn't need opacity
|
|
216
|
-
}),
|
|
217
|
-
|
|
218
|
-
// PaddingField provides:
|
|
219
|
-
// - 4-sided input for top/right/bottom/left
|
|
220
|
-
// - Link/unlink toggle to sync all sides
|
|
221
|
-
// - Unit selector (px, rem)
|
|
222
|
-
padding: createPaddingField({
|
|
223
|
-
label: 'Padding',
|
|
224
|
-
showUnits: true,
|
|
225
|
-
}),
|
|
226
|
-
},
|
|
227
|
-
|
|
228
|
-
// Default values when component is first added
|
|
229
|
-
defaultProps: {
|
|
230
|
-
variant: 'info',
|
|
231
|
-
title: 'Information',
|
|
232
|
-
message: 'This is an informational banner message.',
|
|
233
|
-
showIcon: true,
|
|
234
|
-
dismissible: false,
|
|
235
|
-
// null means "use variant defaults"
|
|
236
|
-
backgroundColor: null,
|
|
237
|
-
textColor: null,
|
|
238
|
-
// Default padding - can be null to use component defaults
|
|
239
|
-
padding: {
|
|
240
|
-
top: 16,
|
|
241
|
-
right: 16,
|
|
242
|
-
bottom: 16,
|
|
243
|
-
left: 16,
|
|
244
|
-
unit: 'px',
|
|
245
|
-
linked: true,
|
|
246
|
-
},
|
|
247
|
-
},
|
|
248
|
-
|
|
249
|
-
// The render function - receives props and returns JSX
|
|
250
|
-
render: ({
|
|
251
|
-
variant,
|
|
252
|
-
title,
|
|
253
|
-
message,
|
|
254
|
-
showIcon,
|
|
255
|
-
dismissible,
|
|
256
|
-
backgroundColor,
|
|
257
|
-
textColor,
|
|
258
|
-
padding,
|
|
259
|
-
}) => {
|
|
260
|
-
// Get default styles for the variant
|
|
261
|
-
const styles = variantStyles[variant] || variantStyles.info
|
|
262
|
-
|
|
263
|
-
// Build inline styles for custom colors and padding
|
|
264
|
-
const inlineStyles: React.CSSProperties = {}
|
|
265
|
-
|
|
266
|
-
// Convert custom color values to CSS
|
|
267
|
-
// colorValueToCSS returns undefined if the value is null/empty
|
|
268
|
-
const customBg = colorValueToCSS(backgroundColor)
|
|
269
|
-
const customText = colorValueToCSS(textColor)
|
|
270
|
-
const customPadding = paddingValueToCSS(padding)
|
|
271
|
-
|
|
272
|
-
if (customBg) {
|
|
273
|
-
inlineStyles.backgroundColor = customBg
|
|
274
|
-
}
|
|
275
|
-
if (customText) {
|
|
276
|
-
inlineStyles.color = customText
|
|
277
|
-
}
|
|
278
|
-
if (customPadding) {
|
|
279
|
-
inlineStyles.padding = customPadding
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
// Build class names - use custom colors or fall back to variant defaults
|
|
283
|
-
const bannerClasses = cn(
|
|
284
|
-
// Base styles
|
|
285
|
-
'relative rounded-lg border',
|
|
286
|
-
// Variant styles (only if no custom colors)
|
|
287
|
-
!customBg && styles.bg,
|
|
288
|
-
!customText && styles.text,
|
|
289
|
-
styles.border
|
|
290
|
-
)
|
|
291
|
-
|
|
292
|
-
const iconClasses = cn(
|
|
293
|
-
'flex-shrink-0',
|
|
294
|
-
// Icon inherits text color or uses variant default
|
|
295
|
-
!customText && styles.icon
|
|
296
|
-
)
|
|
297
|
-
|
|
298
|
-
return (
|
|
299
|
-
<div className={bannerClasses} style={inlineStyles} role="alert">
|
|
300
|
-
<div className="flex items-start gap-3">
|
|
301
|
-
{/* Icon */}
|
|
302
|
-
{showIcon && (
|
|
303
|
-
<span className={iconClasses}>{variantIcons[variant]}</span>
|
|
304
|
-
)}
|
|
305
|
-
|
|
306
|
-
{/* Content */}
|
|
307
|
-
<div className="flex-1 min-w-0">
|
|
308
|
-
{title && (
|
|
309
|
-
<h4 className="font-semibold text-sm">{title}</h4>
|
|
310
|
-
)}
|
|
311
|
-
{message && (
|
|
312
|
-
<p className={cn('text-sm', title && 'mt-1')}>{message}</p>
|
|
313
|
-
)}
|
|
314
|
-
</div>
|
|
315
|
-
|
|
316
|
-
{/* Dismiss button (visual only in this example) */}
|
|
317
|
-
{dismissible && (
|
|
318
|
-
<button
|
|
319
|
-
type="button"
|
|
320
|
-
className={cn(
|
|
321
|
-
'flex-shrink-0 p-1 rounded-md hover:bg-black/5 transition-colors',
|
|
322
|
-
!customText && styles.text
|
|
323
|
-
)}
|
|
324
|
-
aria-label="Dismiss"
|
|
325
|
-
>
|
|
326
|
-
<svg className="w-4 h-4" fill="currentColor" viewBox="0 0 20 20">
|
|
327
|
-
<path
|
|
328
|
-
fillRule="evenodd"
|
|
329
|
-
d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
|
|
330
|
-
clipRule="evenodd"
|
|
331
|
-
/>
|
|
332
|
-
</svg>
|
|
333
|
-
</button>
|
|
334
|
-
)}
|
|
335
|
-
</div>
|
|
336
|
-
</div>
|
|
337
|
-
)
|
|
338
|
-
},
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
// =============================================================================
|
|
342
|
-
// Export Notes
|
|
343
|
-
// =============================================================================
|
|
344
|
-
|
|
345
|
-
/**
|
|
346
|
-
* To use this component in your Puck configuration:
|
|
347
|
-
*
|
|
348
|
-
* 1. Import the config:
|
|
349
|
-
* import { CustomBannerConfig } from './components/CustomBanner'
|
|
350
|
-
*
|
|
351
|
-
* 2. Add to your Puck config using mergeConfigs:
|
|
352
|
-
* import { mergeConfigs, editorConfig } from '@delmaredigital/payload-puck/config'
|
|
353
|
-
*
|
|
354
|
-
* const myConfig = mergeConfigs({
|
|
355
|
-
* base: editorConfig,
|
|
356
|
-
* components: {
|
|
357
|
-
* Banner: CustomBannerConfig,
|
|
358
|
-
* },
|
|
359
|
-
* categories: {
|
|
360
|
-
* interactive: {
|
|
361
|
-
* title: 'Interactive',
|
|
362
|
-
* components: ['Banner'], // Add to existing category
|
|
363
|
-
* },
|
|
364
|
-
* },
|
|
365
|
-
* })
|
|
366
|
-
*
|
|
367
|
-
* See examples/config/custom-config.ts for a complete example.
|
|
368
|
-
*/
|