@delmaredigital/payload-puck 0.6.10 → 0.6.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -1
- package/dist/admin/EditWithPuckButton.d.ts +1 -1
- package/dist/admin/EditWithPuckButton.d.ts.map +1 -1
- package/dist/admin/EditWithPuckButton.js +65 -25
- package/dist/admin/EditWithPuckButton.js.map +1 -1
- package/dist/admin/EditWithPuckCell.js +43 -13
- package/dist/admin/EditWithPuckCell.js.map +1 -1
- package/dist/admin/PuckEditorView.d.ts +1 -1
- package/dist/admin/PuckEditorView.d.ts.map +1 -1
- package/dist/admin/PuckEditorView.js +118 -32
- package/dist/admin/PuckEditorView.js.map +1 -1
- package/dist/admin/client.d.ts +2 -2
- package/dist/admin/client.d.ts.map +1 -1
- package/dist/admin/client.js +4 -4
- package/dist/admin/client.js.map +1 -1
- package/dist/admin/generateAdminComponents.js +7 -7
- package/dist/admin/generateAdminComponents.js.map +1 -1
- package/dist/admin/index.d.ts +5 -5
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +3 -2
- package/dist/admin/index.js.map +1 -1
- package/dist/ai/collections/AiContext.js +56 -29
- package/dist/ai/collections/AiContext.js.map +1 -1
- package/dist/ai/collections/AiPrompts.js +24 -19
- package/dist/ai/collections/AiPrompts.js.map +1 -1
- package/dist/ai/createAiApiRoutes.js +28 -19
- package/dist/ai/createAiApiRoutes.js.map +1 -1
- package/dist/ai/createAiGenerate.js +7 -8
- package/dist/ai/createAiGenerate.js.map +1 -1
- package/dist/ai/createAiPlugin.js +7 -9
- package/dist/ai/createAiPlugin.js.map +1 -1
- package/dist/ai/hooks/useAiContext.js +50 -39
- package/dist/ai/hooks/useAiContext.js.map +1 -1
- package/dist/ai/hooks/useAiPrompts.js +33 -25
- package/dist/ai/hooks/useAiPrompts.js.map +1 -1
- package/dist/ai/index.js +9 -10
- package/dist/ai/index.js.map +1 -1
- package/dist/ai/plugins/ContextEditorPanel.d.ts +1 -1
- package/dist/ai/plugins/ContextEditorPanel.d.ts.map +1 -1
- package/dist/ai/plugins/ContextEditorPanel.js +399 -107
- package/dist/ai/plugins/ContextEditorPanel.js.map +1 -1
- package/dist/ai/plugins/PromptEditorPanel.d.ts +1 -1
- package/dist/ai/plugins/PromptEditorPanel.d.ts.map +1 -1
- package/dist/ai/plugins/PromptEditorPanel.js +237 -51
- package/dist/ai/plugins/PromptEditorPanel.js.map +1 -1
- package/dist/ai/plugins/contextEditorPlugin.js +12 -5
- package/dist/ai/plugins/contextEditorPlugin.js.map +1 -1
- package/dist/ai/plugins/promptApiRoutes.js +119 -50
- package/dist/ai/plugins/promptApiRoutes.js.map +1 -1
- package/dist/ai/plugins/promptEditorPlugin.js +12 -5
- package/dist/ai/plugins/promptEditorPlugin.js.map +1 -1
- package/dist/ai/presets/componentAiDefaults.js +108 -83
- package/dist/ai/presets/componentAiDefaults.js.map +1 -1
- package/dist/ai/presets/index.js +12 -18
- package/dist/ai/presets/index.js.map +1 -1
- package/dist/ai/presets/instructions/interactive.js +85 -75
- package/dist/ai/presets/instructions/interactive.js.map +1 -1
- package/dist/ai/presets/instructions/layout.js +122 -117
- package/dist/ai/presets/instructions/layout.js.map +1 -1
- package/dist/ai/presets/instructions/media.js +31 -29
- package/dist/ai/presets/instructions/media.js.map +1 -1
- package/dist/ai/presets/instructions/pagePatterns.js +4 -6
- package/dist/ai/presets/instructions/pagePatterns.js.map +1 -1
- package/dist/ai/presets/instructions/schemas.js +495 -137
- package/dist/ai/presets/instructions/schemas.js.map +1 -1
- package/dist/ai/presets/instructions/typography.js +38 -33
- package/dist/ai/presets/instructions/typography.js.map +1 -1
- package/dist/ai/tools/index.js +92 -55
- package/dist/ai/tools/index.js.map +1 -1
- package/dist/ai/types.js +7 -1
- package/dist/ai/types.js.map +1 -1
- package/dist/ai/utils/injectAiConfig.js +33 -40
- package/dist/ai/utils/injectAiConfig.js.map +1 -1
- package/dist/api/createPuckApiRoutes.d.ts +1 -1
- package/dist/api/createPuckApiRoutes.d.ts.map +1 -1
- package/dist/api/createPuckApiRoutes.js +123 -65
- package/dist/api/createPuckApiRoutes.js.map +1 -1
- package/dist/api/createPuckApiRoutesVersions.d.ts +1 -1
- package/dist/api/createPuckApiRoutesVersions.d.ts.map +1 -1
- package/dist/api/createPuckApiRoutesVersions.js +88 -37
- package/dist/api/createPuckApiRoutesVersions.js.map +1 -1
- package/dist/api/createPuckApiRoutesWithId.d.ts +1 -1
- package/dist/api/createPuckApiRoutesWithId.d.ts.map +1 -1
- package/dist/api/createPuckApiRoutesWithId.js +166 -72
- package/dist/api/createPuckApiRoutesWithId.js.map +1 -1
- package/dist/api/index.d.ts +5 -5
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +6 -6
- package/dist/api/index.js.map +1 -1
- package/dist/api/payload-config.d.js +15 -0
- package/dist/api/payload-config.d.js.map +1 -0
- package/dist/api/types.js +4 -1
- package/dist/api/types.js.map +1 -1
- package/dist/api/utils/mapRootProps.d.ts +1 -1
- package/dist/api/utils/mapRootProps.d.ts.map +1 -1
- package/dist/api/utils/mapRootProps.js +77 -44
- package/dist/api/utils/mapRootProps.js.map +1 -1
- package/dist/collections/Templates.js +24 -20
- package/dist/collections/Templates.js.map +1 -1
- package/dist/components/AccordionClient.d.ts +2 -2
- package/dist/components/AccordionClient.d.ts.map +1 -1
- package/dist/components/AccordionClient.js +81 -22
- package/dist/components/AccordionClient.js.map +1 -1
- package/dist/components/AnimatedWrapper.d.ts +2 -2
- package/dist/components/AnimatedWrapper.d.ts.map +1 -1
- package/dist/components/AnimatedWrapper.js +31 -16
- package/dist/components/AnimatedWrapper.js.map +1 -1
- package/dist/components/exports.js +2 -2
- package/dist/components/exports.js.map +1 -1
- package/dist/components/index.d.ts +5 -5
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +7 -7
- package/dist/components/index.js.map +1 -1
- package/dist/components/interactive/Accordion.d.ts +1 -1
- package/dist/components/interactive/Accordion.d.ts.map +1 -1
- package/dist/components/interactive/Accordion.js +149 -55
- package/dist/components/interactive/Accordion.js.map +1 -1
- package/dist/components/interactive/Accordion.server.d.ts +1 -1
- package/dist/components/interactive/Accordion.server.d.ts.map +1 -1
- package/dist/components/interactive/Accordion.server.js +25 -7
- package/dist/components/interactive/Accordion.server.js.map +1 -1
- package/dist/components/interactive/Button.d.ts +3 -3
- package/dist/components/interactive/Button.d.ts.map +1 -1
- package/dist/components/interactive/Button.js +89 -43
- package/dist/components/interactive/Button.js.map +1 -1
- package/dist/components/interactive/Button.server.d.ts +2 -2
- package/dist/components/interactive/Button.server.d.ts.map +1 -1
- package/dist/components/interactive/Button.server.js +40 -20
- package/dist/components/interactive/Button.server.js.map +1 -1
- package/dist/components/interactive/Card.d.ts +3 -3
- package/dist/components/interactive/Card.d.ts.map +1 -1
- package/dist/components/interactive/Card.js +131 -39
- package/dist/components/interactive/Card.js.map +1 -1
- package/dist/components/interactive/Card.server.d.ts +3 -3
- package/dist/components/interactive/Card.server.d.ts.map +1 -1
- package/dist/components/interactive/Card.server.js +72 -11
- package/dist/components/interactive/Card.server.js.map +1 -1
- package/dist/components/interactive/Divider.d.ts +1 -1
- package/dist/components/interactive/Divider.d.ts.map +1 -1
- package/dist/components/interactive/Divider.js +54 -26
- package/dist/components/interactive/Divider.js.map +1 -1
- package/dist/components/interactive/Divider.server.d.ts +1 -1
- package/dist/components/interactive/Divider.server.d.ts.map +1 -1
- package/dist/components/interactive/Divider.server.js +28 -12
- package/dist/components/interactive/Divider.server.js.map +1 -1
- package/dist/components/interactive/index.d.ts +4 -4
- package/dist/components/interactive/index.d.ts.map +1 -1
- package/dist/components/interactive/index.js +5 -5
- package/dist/components/interactive/index.js.map +1 -1
- package/dist/components/layout/Container.d.ts +1 -1
- package/dist/components/layout/Container.d.ts.map +1 -1
- package/dist/components/layout/Container.js +101 -47
- package/dist/components/layout/Container.js.map +1 -1
- package/dist/components/layout/Container.server.d.ts +1 -1
- package/dist/components/layout/Container.server.d.ts.map +1 -1
- package/dist/components/layout/Container.server.js +67 -19
- package/dist/components/layout/Container.server.js.map +1 -1
- package/dist/components/layout/Flex.d.ts +2 -2
- package/dist/components/layout/Flex.d.ts.map +1 -1
- package/dist/components/layout/Flex.js +124 -55
- package/dist/components/layout/Flex.js.map +1 -1
- package/dist/components/layout/Flex.server.d.ts +1 -1
- package/dist/components/layout/Flex.server.d.ts.map +1 -1
- package/dist/components/layout/Flex.server.js +50 -14
- package/dist/components/layout/Flex.server.js.map +1 -1
- package/dist/components/layout/Grid.d.ts +1 -1
- package/dist/components/layout/Grid.d.ts.map +1 -1
- package/dist/components/layout/Grid.js +93 -44
- package/dist/components/layout/Grid.js.map +1 -1
- package/dist/components/layout/Grid.server.d.ts +1 -1
- package/dist/components/layout/Grid.server.d.ts.map +1 -1
- package/dist/components/layout/Grid.server.js +56 -14
- package/dist/components/layout/Grid.server.js.map +1 -1
- package/dist/components/layout/Section.d.ts +1 -1
- package/dist/components/layout/Section.d.ts.map +1 -1
- package/dist/components/layout/Section.js +147 -64
- package/dist/components/layout/Section.js.map +1 -1
- package/dist/components/layout/Section.server.d.ts +1 -1
- package/dist/components/layout/Section.server.d.ts.map +1 -1
- package/dist/components/layout/Section.server.js +92 -28
- package/dist/components/layout/Section.server.js.map +1 -1
- package/dist/components/layout/Spacer.d.ts +1 -1
- package/dist/components/layout/Spacer.d.ts.map +1 -1
- package/dist/components/layout/Spacer.js +80 -30
- package/dist/components/layout/Spacer.js.map +1 -1
- package/dist/components/layout/Spacer.server.d.ts +1 -1
- package/dist/components/layout/Spacer.server.d.ts.map +1 -1
- package/dist/components/layout/Spacer.server.js +31 -9
- package/dist/components/layout/Spacer.server.js.map +1 -1
- package/dist/components/layout/Template.d.ts +1 -1
- package/dist/components/layout/Template.d.ts.map +1 -1
- package/dist/components/layout/Template.js +58 -30
- package/dist/components/layout/Template.js.map +1 -1
- package/dist/components/layout/Template.server.d.ts +1 -1
- package/dist/components/layout/Template.server.d.ts.map +1 -1
- package/dist/components/layout/Template.server.js +43 -11
- package/dist/components/layout/Template.server.js.map +1 -1
- package/dist/components/layout/index.d.ts +8 -8
- package/dist/components/layout/index.d.ts.map +1 -1
- package/dist/components/layout/index.js +8 -8
- package/dist/components/layout/index.js.map +1 -1
- package/dist/components/media/Image.d.ts +3 -3
- package/dist/components/media/Image.d.ts.map +1 -1
- package/dist/components/media/Image.js +122 -39
- package/dist/components/media/Image.js.map +1 -1
- package/dist/components/media/Image.server.d.ts +3 -3
- package/dist/components/media/Image.server.d.ts.map +1 -1
- package/dist/components/media/Image.server.js +76 -13
- package/dist/components/media/Image.server.js.map +1 -1
- package/dist/components/media/index.d.ts +1 -1
- package/dist/components/media/index.d.ts.map +1 -1
- package/dist/components/media/index.js +2 -2
- package/dist/components/media/index.js.map +1 -1
- package/dist/components/typography/Heading.d.ts +2 -2
- package/dist/components/typography/Heading.d.ts.map +1 -1
- package/dist/components/typography/Heading.js +45 -25
- package/dist/components/typography/Heading.js.map +1 -1
- package/dist/components/typography/Heading.server.d.ts +2 -2
- package/dist/components/typography/Heading.server.d.ts.map +1 -1
- package/dist/components/typography/Heading.server.js +16 -10
- package/dist/components/typography/Heading.server.js.map +1 -1
- package/dist/components/typography/RichText.editor.d.ts +1 -1
- package/dist/components/typography/RichText.editor.d.ts.map +1 -1
- package/dist/components/typography/RichText.editor.js +44 -19
- package/dist/components/typography/RichText.editor.js.map +1 -1
- package/dist/components/typography/RichText.server.d.ts +2 -2
- package/dist/components/typography/RichText.server.d.ts.map +1 -1
- package/dist/components/typography/RichText.server.js +33 -14
- package/dist/components/typography/RichText.server.js.map +1 -1
- package/dist/components/typography/Text.d.ts +2 -2
- package/dist/components/typography/Text.d.ts.map +1 -1
- package/dist/components/typography/Text.js +49 -23
- package/dist/components/typography/Text.js.map +1 -1
- package/dist/components/typography/Text.server.d.ts +2 -2
- package/dist/components/typography/Text.server.d.ts.map +1 -1
- package/dist/components/typography/Text.server.js +21 -8
- package/dist/components/typography/Text.server.js.map +1 -1
- package/dist/components/typography/index.d.ts +4 -4
- package/dist/components/typography/index.d.ts.map +1 -1
- package/dist/components/typography/index.js +5 -5
- package/dist/components/typography/index.js.map +1 -1
- package/dist/config/config.editor.d.ts +3 -3
- package/dist/config/config.editor.d.ts.map +1 -1
- package/dist/config/config.editor.js +119 -54
- package/dist/config/config.editor.js.map +1 -1
- package/dist/config/index.d.ts +4 -4
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +62 -35
- package/dist/config/index.js.map +1 -1
- package/dist/config/merge.d.ts +1 -1
- package/dist/config/merge.d.ts.map +1 -1
- package/dist/config/merge.js +23 -26
- package/dist/config/merge.js.map +1 -1
- package/dist/config/presets.d.ts +4 -4
- package/dist/config/presets.js +195 -75
- package/dist/config/presets.js.map +1 -1
- package/dist/config/types.js +6 -2
- package/dist/config/types.js.map +1 -1
- package/dist/editor/PuckEditor.d.ts +12 -4
- package/dist/editor/PuckEditor.d.ts.map +1 -1
- package/dist/editor/PuckEditor.js +168 -67
- package/dist/editor/PuckEditor.js.map +1 -1
- package/dist/editor/PuckEditorImpl.client.d.ts +4 -4
- package/dist/editor/PuckEditorImpl.client.d.ts.map +1 -1
- package/dist/editor/PuckEditorImpl.client.js +304 -152
- package/dist/editor/PuckEditorImpl.client.js.map +1 -1
- package/dist/editor/components/DarkModeStyles.js +11 -12
- package/dist/editor/components/DarkModeStyles.js.map +1 -1
- package/dist/editor/components/HeaderActions.js +308 -64
- package/dist/editor/components/HeaderActions.js.map +1 -1
- package/dist/editor/components/IframeWrapper.d.ts +1 -1
- package/dist/editor/components/IframeWrapper.d.ts.map +1 -1
- package/dist/editor/components/IframeWrapper.js +82 -58
- package/dist/editor/components/IframeWrapper.js.map +1 -1
- package/dist/editor/components/LoadingState.d.ts +1 -1
- package/dist/editor/components/LoadingState.d.ts.map +1 -1
- package/dist/editor/components/LoadingState.js +17 -3
- package/dist/editor/components/LoadingState.js.map +1 -1
- package/dist/editor/components/PreviewModal.js +234 -78
- package/dist/editor/components/PreviewModal.js.map +1 -1
- package/dist/editor/components/PreviewModeToggle.js +43 -15
- package/dist/editor/components/PreviewModeToggle.js.map +1 -1
- package/dist/editor/components/VersionHistory.js +219 -71
- package/dist/editor/components/VersionHistory.js.map +1 -1
- package/dist/editor/hooks/useDarkMode.js +36 -23
- package/dist/editor/hooks/useDarkMode.js.map +1 -1
- package/dist/editor/hooks/useUnsavedChanges.js +8 -8
- package/dist/editor/hooks/useUnsavedChanges.js.map +1 -1
- package/dist/editor/index.js +5 -6
- package/dist/editor/index.js.map +1 -1
- package/dist/editor/plugins/VersionHistoryPanel.js +236 -75
- package/dist/editor/plugins/VersionHistoryPanel.js.map +1 -1
- package/dist/editor/plugins/index.js +4 -4
- package/dist/editor/plugins/index.js.map +1 -1
- package/dist/editor/plugins/versionHistoryPlugin.js +10 -8
- package/dist/editor/plugins/versionHistoryPlugin.js.map +1 -1
- package/dist/editor/utils/detectPageTree.js +5 -5
- package/dist/editor/utils/detectPageTree.js.map +1 -1
- package/dist/editor/utils/index.js +1 -0
- package/dist/editor/utils/index.js.map +1 -1
- package/dist/editor/utils/injectPageTreeFields.js +13 -9
- package/dist/editor/utils/injectPageTreeFields.js.map +1 -1
- package/dist/endpoints/ai.js +58 -34
- package/dist/endpoints/ai.js.map +1 -1
- package/dist/endpoints/context.js +86 -40
- package/dist/endpoints/context.js.map +1 -1
- package/dist/endpoints/index.js +153 -76
- package/dist/endpoints/index.js.map +1 -1
- package/dist/endpoints/postcss.d.js +5 -0
- package/dist/endpoints/postcss.d.js.map +1 -0
- package/dist/endpoints/prompts.js +81 -39
- package/dist/endpoints/prompts.js.map +1 -1
- package/dist/endpoints/styles.js +34 -36
- package/dist/endpoints/styles.js.map +1 -1
- package/dist/exports/client.js +2 -2
- package/dist/exports/client.js.map +1 -1
- package/dist/exports/rsc.js +2 -2
- package/dist/exports/rsc.js.map +1 -1
- package/dist/fields/AlignmentField.d.ts +1 -1
- package/dist/fields/AlignmentField.d.ts.map +1 -1
- package/dist/fields/AlignmentField.js +93 -30
- package/dist/fields/AlignmentField.js.map +1 -1
- package/dist/fields/AnimationField.d.ts +2 -2
- package/dist/fields/AnimationField.d.ts.map +1 -1
- package/dist/fields/AnimationField.js +558 -84
- package/dist/fields/AnimationField.js.map +1 -1
- package/dist/fields/BackgroundField.d.ts +2 -2
- package/dist/fields/BackgroundField.d.ts.map +1 -1
- package/dist/fields/BackgroundField.js +754 -120
- package/dist/fields/BackgroundField.js.map +1 -1
- package/dist/fields/BorderField.d.ts +2 -2
- package/dist/fields/BorderField.d.ts.map +1 -1
- package/dist/fields/BorderField.js +275 -73
- package/dist/fields/BorderField.js.map +1 -1
- package/dist/fields/ColorPickerField.d.ts +2 -2
- package/dist/fields/ColorPickerField.d.ts.map +1 -1
- package/dist/fields/ColorPickerField.js +210 -68
- package/dist/fields/ColorPickerField.js.map +1 -1
- package/dist/fields/ContentAlignmentField.d.ts +1 -1
- package/dist/fields/ContentAlignmentField.d.ts.map +1 -1
- package/dist/fields/ContentAlignmentField.js +161 -75
- package/dist/fields/ContentAlignmentField.js.map +1 -1
- package/dist/fields/DimensionsField.d.ts +2 -2
- package/dist/fields/DimensionsField.d.ts.map +1 -1
- package/dist/fields/DimensionsField.js +575 -146
- package/dist/fields/DimensionsField.js.map +1 -1
- package/dist/fields/FlexAlignmentField.d.ts +2 -2
- package/dist/fields/FlexAlignmentField.d.ts.map +1 -1
- package/dist/fields/FlexAlignmentField.js +189 -51
- package/dist/fields/FlexAlignmentField.js.map +1 -1
- package/dist/fields/FolderPickerField.d.ts +8 -1
- package/dist/fields/FolderPickerField.d.ts.map +1 -1
- package/dist/fields/FolderPickerField.js +288 -75
- package/dist/fields/FolderPickerField.js.map +1 -1
- package/dist/fields/GradientEditor.d.ts +2 -2
- package/dist/fields/GradientEditor.d.ts.map +1 -1
- package/dist/fields/GradientEditor.js +462 -86
- package/dist/fields/GradientEditor.js.map +1 -1
- package/dist/fields/LockedField.d.ts +15 -2
- package/dist/fields/LockedField.d.ts.map +1 -1
- package/dist/fields/LockedField.js +180 -49
- package/dist/fields/LockedField.js.map +1 -1
- package/dist/fields/MarginField.d.ts +2 -2
- package/dist/fields/MarginField.d.ts.map +1 -1
- package/dist/fields/MarginField.js +144 -46
- package/dist/fields/MarginField.js.map +1 -1
- package/dist/fields/MediaField.d.ts +1 -1
- package/dist/fields/MediaField.d.ts.map +1 -1
- package/dist/fields/MediaField.js +688 -186
- package/dist/fields/MediaField.js.map +1 -1
- package/dist/fields/PaddingField.d.ts +2 -2
- package/dist/fields/PaddingField.d.ts.map +1 -1
- package/dist/fields/PaddingField.js +144 -46
- package/dist/fields/PaddingField.js.map +1 -1
- package/dist/fields/PageSegmentField.d.ts +15 -2
- package/dist/fields/PageSegmentField.d.ts.map +1 -1
- package/dist/fields/PageSegmentField.js +156 -54
- package/dist/fields/PageSegmentField.js.map +1 -1
- package/dist/fields/ResetField.d.ts +1 -1
- package/dist/fields/ResetField.d.ts.map +1 -1
- package/dist/fields/ResetField.js +59 -31
- package/dist/fields/ResetField.js.map +1 -1
- package/dist/fields/ResponsiveField.d.ts +1 -1
- package/dist/fields/ResponsiveField.d.ts.map +1 -1
- package/dist/fields/ResponsiveField.js +233 -90
- package/dist/fields/ResponsiveField.js.map +1 -1
- package/dist/fields/ResponsiveVisibilityField.d.ts +2 -2
- package/dist/fields/ResponsiveVisibilityField.d.ts.map +1 -1
- package/dist/fields/ResponsiveVisibilityField.js +119 -36
- package/dist/fields/ResponsiveVisibilityField.js.map +1 -1
- package/dist/fields/SizeField.d.ts +3 -3
- package/dist/fields/SizeField.d.ts.map +1 -1
- package/dist/fields/SizeField.js +226 -52
- package/dist/fields/SizeField.js.map +1 -1
- package/dist/fields/SlugPreviewField.d.ts +8 -1
- package/dist/fields/SlugPreviewField.d.ts.map +1 -1
- package/dist/fields/SlugPreviewField.js +65 -16
- package/dist/fields/SlugPreviewField.js.map +1 -1
- package/dist/fields/TemplateField.d.ts +1 -1
- package/dist/fields/TemplateField.d.ts.map +1 -1
- package/dist/fields/TemplateField.js +362 -120
- package/dist/fields/TemplateField.js.map +1 -1
- package/dist/fields/TransformField.d.ts +2 -2
- package/dist/fields/TransformField.d.ts.map +1 -1
- package/dist/fields/TransformField.js +517 -81
- package/dist/fields/TransformField.js.map +1 -1
- package/dist/fields/VerticalAlignmentField.d.ts +1 -1
- package/dist/fields/VerticalAlignmentField.d.ts.map +1 -1
- package/dist/fields/VerticalAlignmentField.js +93 -30
- package/dist/fields/VerticalAlignmentField.js.map +1 -1
- package/dist/fields/WidthField.d.ts +2 -2
- package/dist/fields/WidthField.d.ts.map +1 -1
- package/dist/fields/WidthField.js +278 -81
- package/dist/fields/WidthField.js.map +1 -1
- package/dist/fields/index.d.ts +41 -41
- package/dist/fields/index.d.ts.map +1 -1
- package/dist/fields/index.js +37 -43
- package/dist/fields/index.js.map +1 -1
- package/dist/fields/richtext/controls/ColorPickerControl.d.ts +13 -2
- package/dist/fields/richtext/controls/ColorPickerControl.d.ts.map +1 -1
- package/dist/fields/richtext/controls/ColorPickerControl.js +212 -47
- package/dist/fields/richtext/controls/ColorPickerControl.js.map +1 -1
- package/dist/fields/richtext/controls/DropdownPortal.d.ts +2 -2
- package/dist/fields/richtext/controls/DropdownPortal.d.ts.map +1 -1
- package/dist/fields/richtext/controls/DropdownPortal.js +36 -4
- package/dist/fields/richtext/controls/DropdownPortal.js.map +1 -1
- package/dist/fields/richtext/controls/FontSizeControl.d.ts +9 -1
- package/dist/fields/richtext/controls/FontSizeControl.d.ts.map +1 -1
- package/dist/fields/richtext/controls/FontSizeControl.js +109 -24
- package/dist/fields/richtext/controls/FontSizeControl.js.map +1 -1
- package/dist/fields/richtext/controls/HighlightControl.d.ts +12 -1
- package/dist/fields/richtext/controls/HighlightControl.d.ts.map +1 -1
- package/dist/fields/richtext/controls/HighlightControl.js +54 -17
- package/dist/fields/richtext/controls/HighlightControl.js.map +1 -1
- package/dist/fields/richtext/controls/index.d.ts +5 -5
- package/dist/fields/richtext/controls/index.d.ts.map +1 -1
- package/dist/fields/richtext/controls/index.js +8 -11
- package/dist/fields/richtext/controls/index.js.map +1 -1
- package/dist/fields/richtext/controls/shared.js +108 -63
- package/dist/fields/richtext/controls/shared.js.map +1 -1
- package/dist/fields/richtext/createRichTextField.d.ts +18 -4
- package/dist/fields/richtext/createRichTextField.d.ts.map +1 -1
- package/dist/fields/richtext/createRichTextField.js +113 -26
- package/dist/fields/richtext/createRichTextField.js.map +1 -1
- package/dist/fields/richtext/extensions/FontSize.js +26 -20
- package/dist/fields/richtext/extensions/FontSize.js.map +1 -1
- package/dist/fields/richtext/extensions/index.d.ts +1 -1
- package/dist/fields/richtext/extensions/index.d.ts.map +1 -1
- package/dist/fields/richtext/extensions/index.js +2 -2
- package/dist/fields/richtext/extensions/index.js.map +1 -1
- package/dist/fields/richtext/index.d.ts +6 -6
- package/dist/fields/richtext/index.d.ts.map +1 -1
- package/dist/fields/richtext/index.js +8 -8
- package/dist/fields/richtext/index.js.map +1 -1
- package/dist/fields/shared.d.ts +1 -1
- package/dist/fields/shared.d.ts.map +1 -1
- package/dist/fields/shared.js +915 -478
- package/dist/fields/shared.js.map +1 -1
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +3 -3
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useResponsiveStyles.d.ts +1 -1
- package/dist/hooks/useResponsiveStyles.d.ts.map +1 -1
- package/dist/hooks/useResponsiveStyles.js +36 -32
- package/dist/hooks/useResponsiveStyles.js.map +1 -1
- package/dist/hooks/useScrollAnimation.js +26 -24
- package/dist/hooks/useScrollAnimation.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/layouts/LayoutWrapper.d.ts +3 -3
- package/dist/layouts/LayoutWrapper.d.ts.map +1 -1
- package/dist/layouts/LayoutWrapper.js +115 -51
- package/dist/layouts/LayoutWrapper.js.map +1 -1
- package/dist/layouts/defaults.d.ts +1 -1
- package/dist/layouts/defaults.d.ts.map +1 -1
- package/dist/layouts/defaults.js +23 -31
- package/dist/layouts/defaults.js.map +1 -1
- package/dist/layouts/index.d.ts +4 -4
- package/dist/layouts/index.d.ts.map +1 -1
- package/dist/layouts/index.js +5 -4
- package/dist/layouts/index.js.map +1 -1
- package/dist/layouts/types.js +4 -2
- package/dist/layouts/types.js.map +1 -1
- package/dist/layouts/utils.d.ts +1 -1
- package/dist/layouts/utils.d.ts.map +1 -1
- package/dist/layouts/utils.js +32 -40
- package/dist/layouts/utils.js.map +1 -1
- package/dist/next/index.js +31 -34
- package/dist/next/index.js.map +1 -1
- package/dist/plugin/collections/Pages.d.ts +2 -2
- package/dist/plugin/collections/Pages.d.ts.map +1 -1
- package/dist/plugin/collections/Pages.js +46 -43
- package/dist/plugin/collections/Pages.js.map +1 -1
- package/dist/plugin/fields/index.d.ts +3 -3
- package/dist/plugin/fields/index.d.ts.map +1 -1
- package/dist/plugin/fields/index.js +100 -78
- package/dist/plugin/fields/index.js.map +1 -1
- package/dist/plugin/fields/types.d.ts +1 -1
- package/dist/plugin/fields/types.d.ts.map +1 -1
- package/dist/plugin/fields/types.js +26 -2
- package/dist/plugin/fields/types.js.map +1 -1
- package/dist/plugin/hooks/index.d.ts +1 -1
- package/dist/plugin/hooks/index.d.ts.map +1 -1
- package/dist/plugin/hooks/index.js +2 -2
- package/dist/plugin/hooks/index.js.map +1 -1
- package/dist/plugin/hooks/isHomepageUnique.js +28 -19
- package/dist/plugin/hooks/isHomepageUnique.js.map +1 -1
- package/dist/plugin/index.d.ts +8 -8
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +192 -188
- package/dist/plugin/index.js.map +1 -1
- package/dist/render/HybridPageRenderer.d.ts +2 -2
- package/dist/render/HybridPageRenderer.d.ts.map +1 -1
- package/dist/render/HybridPageRenderer.js +58 -10
- package/dist/render/HybridPageRenderer.js.map +1 -1
- package/dist/render/PageRenderer.d.ts +2 -2
- package/dist/render/PageRenderer.d.ts.map +1 -1
- package/dist/render/PageRenderer.js +31 -14
- package/dist/render/PageRenderer.js.map +1 -1
- package/dist/render/PuckEditor.client.d.ts +1 -1
- package/dist/render/PuckEditor.client.d.ts.map +1 -1
- package/dist/render/PuckEditor.client.js +33 -16
- package/dist/render/PuckEditor.client.js.map +1 -1
- package/dist/render/index.d.ts +5 -5
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/index.js +5 -6
- package/dist/render/index.js.map +1 -1
- package/dist/styles/puck-dark-mode.css +101 -0
- package/dist/theme/context.d.ts +2 -2
- package/dist/theme/context.d.ts.map +1 -1
- package/dist/theme/context.js +21 -18
- package/dist/theme/context.js.map +1 -1
- package/dist/theme/defaults.d.ts +1 -1
- package/dist/theme/defaults.d.ts.map +1 -1
- package/dist/theme/defaults.js +83 -37
- package/dist/theme/defaults.js.map +1 -1
- package/dist/theme/example.d.ts +1 -1
- package/dist/theme/example.d.ts.map +1 -1
- package/dist/theme/example.js +68 -30
- package/dist/theme/example.js.map +1 -1
- package/dist/theme/index.d.ts +5 -5
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +6 -5
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/types.js +6 -2
- package/dist/theme/types.js.map +1 -1
- package/dist/theme/utils.d.ts +1 -1
- package/dist/theme/utils.d.ts.map +1 -1
- package/dist/theme/utils.js +24 -25
- package/dist/theme/utils.js.map +1 -1
- package/dist/types/index.d.ts +42 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +13 -22
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/migration.d.ts +1 -1
- package/dist/utils/migration.d.ts.map +1 -1
- package/dist/utils/migration.js +43 -49
- package/dist/utils/migration.js.map +1 -1
- package/dist/utils/validation.d.ts +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +36 -43
- package/dist/utils/validation.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +2 -1
- package/dist/version.js.map +1 -1
- package/dist/views/PuckConfigContext.d.ts +1 -1
- package/dist/views/PuckConfigContext.d.ts.map +1 -1
- package/dist/views/PuckConfigContext.js +25 -10
- package/dist/views/PuckConfigContext.js.map +1 -1
- package/dist/views/PuckEditorView.d.ts +1 -1
- package/dist/views/PuckEditorView.d.ts.map +1 -1
- package/dist/views/PuckEditorView.js +137 -41
- package/dist/views/PuckEditorView.js.map +1 -1
- package/dist/views/index.js +2 -2
- package/dist/views/index.js.map +1 -1
- package/package.json +62 -42
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { useScrollAnimation } from '../hooks/useScrollAnimation';
|
|
4
|
-
import { getEntranceAnimationStyles, animationValueToCSS
|
|
3
|
+
import { useScrollAnimation } from '../hooks/useScrollAnimation.js';
|
|
4
|
+
import { getEntranceAnimationStyles, animationValueToCSS } from '../fields/shared.js';
|
|
5
5
|
/**
|
|
6
6
|
* Wraps children with scroll-triggered animation support.
|
|
7
7
|
*
|
|
@@ -11,25 +11,29 @@ import { getEntranceAnimationStyles, animationValueToCSS, } from '../fields/shar
|
|
|
11
11
|
* For custom animations: Applies CSS transition properties.
|
|
12
12
|
*
|
|
13
13
|
* If no animation is set, renders children without a wrapper div.
|
|
14
|
-
*/
|
|
15
|
-
export function AnimatedWrapper({ animation, children, className, style, as: Component = 'div', }) {
|
|
14
|
+
*/ export function AnimatedWrapper({ animation, children, className, style, as: Component = 'div' }) {
|
|
16
15
|
// Check if animation should be applied
|
|
17
|
-
const hasAnimation = animation && (
|
|
18
|
-
animation.mode === 'custom');
|
|
16
|
+
const hasAnimation = animation && (animation.mode === 'preset' && animation.entrance && animation.entrance !== 'none' || animation.mode === 'custom');
|
|
19
17
|
// If no animation, render children directly without wrapper
|
|
20
18
|
if (!hasAnimation) {
|
|
21
19
|
// If there's a className or style, we still need to wrap
|
|
22
20
|
if (className || style) {
|
|
23
|
-
return _jsx(Component, {
|
|
21
|
+
return /*#__PURE__*/ _jsx(Component, {
|
|
22
|
+
className: className,
|
|
23
|
+
style: style,
|
|
24
|
+
children: children
|
|
25
|
+
});
|
|
24
26
|
}
|
|
25
|
-
return _jsx(_Fragment, {
|
|
27
|
+
return /*#__PURE__*/ _jsx(_Fragment, {
|
|
28
|
+
children: children
|
|
29
|
+
});
|
|
26
30
|
}
|
|
27
31
|
// Use the scroll animation hook
|
|
28
32
|
const { ref, isInView } = useScrollAnimation({
|
|
29
33
|
triggerOnScroll: animation.triggerOnScroll ?? true,
|
|
30
34
|
threshold: animation.triggerThreshold ?? 0.1,
|
|
31
35
|
once: animation.triggerOnce ?? true,
|
|
32
|
-
rootMargin: animation.triggerMargin
|
|
36
|
+
rootMargin: animation.triggerMargin
|
|
33
37
|
});
|
|
34
38
|
// Handle preset entrance animations
|
|
35
39
|
if (animation.mode === 'preset') {
|
|
@@ -40,22 +44,33 @@ export function AnimatedWrapper({ animation, children, className, style, as: Com
|
|
|
40
44
|
const transitionProperties = [
|
|
41
45
|
`opacity ${duration}ms ${easing} ${delay}ms`,
|
|
42
46
|
`transform ${duration}ms ${easing} ${delay}ms`,
|
|
43
|
-
`filter ${duration}ms ${easing} ${delay}ms
|
|
47
|
+
`filter ${duration}ms ${easing} ${delay}ms`
|
|
44
48
|
].join(', ');
|
|
45
|
-
return
|
|
49
|
+
return /*#__PURE__*/ _jsx(Component, {
|
|
50
|
+
ref: ref,
|
|
51
|
+
className: className,
|
|
52
|
+
style: {
|
|
46
53
|
...style,
|
|
47
54
|
...animationStyles,
|
|
48
55
|
transition: transitionProperties,
|
|
49
|
-
transformOrigin: origin
|
|
50
|
-
},
|
|
56
|
+
transformOrigin: origin
|
|
57
|
+
},
|
|
58
|
+
children: children
|
|
59
|
+
});
|
|
51
60
|
}
|
|
52
61
|
// Handle custom transition mode
|
|
53
62
|
const customStyles = animationValueToCSS(animation);
|
|
54
|
-
return
|
|
63
|
+
return /*#__PURE__*/ _jsx(Component, {
|
|
64
|
+
ref: ref,
|
|
65
|
+
className: className,
|
|
66
|
+
style: {
|
|
55
67
|
...style,
|
|
56
68
|
...customStyles,
|
|
57
69
|
// Apply opacity for visibility-based transitions
|
|
58
|
-
opacity: isInView ? 1 : 0
|
|
59
|
-
},
|
|
70
|
+
opacity: isInView ? 1 : 0
|
|
71
|
+
},
|
|
72
|
+
children: children
|
|
73
|
+
});
|
|
60
74
|
}
|
|
75
|
+
|
|
61
76
|
//# sourceMappingURL=AnimatedWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/components/AnimatedWrapper.tsx"],"sourcesContent":["'use client'\n\n/**\n * AnimatedWrapper - Client component for scroll-triggered animations\n *\n * Wraps children with animation support using IntersectionObserver.\n * Handles both preset entrance animations and custom transitions.\n * Supports 27 animation presets with customizable intensity, easing, and origin.\n */\n\nimport type { ReactNode, CSSProperties, ElementType } from 'react'\nimport { useScrollAnimation } from '../hooks/useScrollAnimation.js'\nimport {\n getEntranceAnimationStyles,\n animationValueToCSS,\n type AnimationValue,\n} from '../fields/shared.js'\n\nexport interface AnimatedWrapperProps {\n /** Animation configuration from the component */\n animation: AnimationValue | null | undefined\n /** Child content to animate */\n children: ReactNode\n /** Additional CSS classes */\n className?: string\n /** Inline styles */\n style?: CSSProperties\n /** HTML element to render as (default: 'div') */\n as?: ElementType\n}\n\n/**\n * Wraps children with scroll-triggered animation support.\n *\n * For preset animations: Applies initial/animate inline styles\n * when element enters viewport.\n *\n * For custom animations: Applies CSS transition properties.\n *\n * If no animation is set, renders children without a wrapper div.\n */\nexport function AnimatedWrapper({\n animation,\n children,\n className,\n style,\n as: Component = 'div',\n}: AnimatedWrapperProps) {\n // Check if animation should be applied\n const hasAnimation = animation && (\n (animation.mode === 'preset' && animation.entrance && animation.entrance !== 'none') ||\n animation.mode === 'custom'\n )\n\n // If no animation, render children directly without wrapper\n if (!hasAnimation) {\n // If there's a className or style, we still need to wrap\n if (className || style) {\n return <Component className={className} style={style}>{children}</Component>\n }\n return <>{children}</>\n }\n\n // Use the scroll animation hook\n const { ref, isInView } = useScrollAnimation({\n triggerOnScroll: animation.triggerOnScroll ?? true,\n threshold: animation.triggerThreshold ?? 0.1,\n once: animation.triggerOnce ?? true,\n rootMargin: animation.triggerMargin,\n })\n\n // Handle preset entrance animations\n if (animation.mode === 'preset') {\n const { initial, animate, duration, delay, easing, origin } = getEntranceAnimationStyles(animation)\n\n // Apply initial or animate styles based on visibility\n const animationStyles = isInView ? animate : initial\n\n // Build transition string with all relevant properties\n const transitionProperties = [\n `opacity ${duration}ms ${easing} ${delay}ms`,\n `transform ${duration}ms ${easing} ${delay}ms`,\n `filter ${duration}ms ${easing} ${delay}ms`,\n ].join(', ')\n\n return (\n <Component\n ref={ref}\n className={className}\n style={{\n ...style,\n ...animationStyles,\n transition: transitionProperties,\n transformOrigin: origin,\n }}\n >\n {children}\n </Component>\n )\n }\n\n // Handle custom transition mode\n const customStyles = animationValueToCSS(animation)\n\n return (\n <Component\n ref={ref}\n className={className}\n style={{\n ...style,\n ...customStyles,\n // Apply opacity for visibility-based transitions\n opacity: isInView ? 1 : 0,\n }}\n >\n {children}\n </Component>\n )\n}\n"],"names":["useScrollAnimation","getEntranceAnimationStyles","animationValueToCSS","AnimatedWrapper","animation","children","className","style","as","Component","hasAnimation","mode","entrance","ref","isInView","triggerOnScroll","threshold","triggerThreshold","once","triggerOnce","rootMargin","triggerMargin","initial","animate","duration","delay","easing","origin","animationStyles","transitionProperties","join","transition","transformOrigin","customStyles","opacity"],"mappings":"AAAA;;AAWA,SAASA,kBAAkB,QAAQ,iCAAgC;AACnE,SACEC,0BAA0B,EAC1BC,mBAAmB,QAEd,sBAAqB;AAe5B;;;;;;;;;CASC,GACD,OAAO,SAASC,gBAAgB,EAC9BC,SAAS,EACTC,QAAQ,EACRC,SAAS,EACTC,KAAK,EACLC,IAAIC,YAAY,KAAK,EACA;IACrB,uCAAuC;IACvC,MAAMC,eAAeN,aACnB,CAAA,AAACA,UAAUO,IAAI,KAAK,YAAYP,UAAUQ,QAAQ,IAAIR,UAAUQ,QAAQ,KAAK,UAC7ER,UAAUO,IAAI,KAAK,QAAO;IAG5B,4DAA4D;IAC5D,IAAI,CAACD,cAAc;QACjB,yDAAyD;QACzD,IAAIJ,aAAaC,OAAO;YACtB,qBAAO,KAACE;gBAAUH,WAAWA;gBAAWC,OAAOA;0BAAQF;;QACzD;QACA,qBAAO;sBAAGA;;IACZ;IAEA,gCAAgC;IAChC,MAAM,EAAEQ,GAAG,EAAEC,QAAQ,EAAE,GAAGd,mBAAmB;QAC3Ce,iBAAiBX,UAAUW,eAAe,IAAI;QAC9CC,WAAWZ,UAAUa,gBAAgB,IAAI;QACzCC,MAAMd,UAAUe,WAAW,IAAI;QAC/BC,YAAYhB,UAAUiB,aAAa;IACrC;IAEA,oCAAoC;IACpC,IAAIjB,UAAUO,IAAI,KAAK,UAAU;QAC/B,MAAM,EAAEW,OAAO,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAG1B,2BAA2BG;QAEzF,sDAAsD;QACtD,MAAMwB,kBAAkBd,WAAWS,UAAUD;QAE7C,uDAAuD;QACvD,MAAMO,uBAAuB;YAC3B,CAAC,QAAQ,EAAEL,SAAS,GAAG,EAAEE,OAAO,CAAC,EAAED,MAAM,EAAE,CAAC;YAC5C,CAAC,UAAU,EAAED,SAAS,GAAG,EAAEE,OAAO,CAAC,EAAED,MAAM,EAAE,CAAC;YAC9C,CAAC,OAAO,EAAED,SAAS,GAAG,EAAEE,OAAO,CAAC,EAAED,MAAM,EAAE,CAAC;SAC5C,CAACK,IAAI,CAAC;QAEP,qBACE,KAACrB;YACCI,KAAKA;YACLP,WAAWA;YACXC,OAAO;gBACL,GAAGA,KAAK;gBACR,GAAGqB,eAAe;gBAClBG,YAAYF;gBACZG,iBAAiBL;YACnB;sBAECtB;;IAGP;IAEA,gCAAgC;IAChC,MAAM4B,eAAe/B,oBAAoBE;IAEzC,qBACE,KAACK;QACCI,KAAKA;QACLP,WAAWA;QACXC,OAAO;YACL,GAAGA,KAAK;YACR,GAAG0B,YAAY;YACf,iDAAiD;YACjDC,SAASpB,WAAW,IAAI;QAC1B;kBAECT;;AAGP"}
|
|
@@ -22,8 +22,7 @@
|
|
|
22
22
|
* // ...
|
|
23
23
|
* }
|
|
24
24
|
* ```
|
|
25
|
-
*/
|
|
26
|
-
// =============================================================================
|
|
25
|
+
*/ // =============================================================================
|
|
27
26
|
// Editor Component Configs (for Puck Editor)
|
|
28
27
|
// =============================================================================
|
|
29
28
|
// Layout components
|
|
@@ -72,4 +71,5 @@ export { AccordionConfig as AccordionServerConfig } from './interactive/Accordio
|
|
|
72
71
|
// Animation Components
|
|
73
72
|
// =============================================================================
|
|
74
73
|
export { AnimatedWrapper } from './AnimatedWrapper.js';
|
|
74
|
+
|
|
75
75
|
//# sourceMappingURL=exports.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/components/exports.ts"],"sourcesContent":["'use client'\n\n/**\n * Individual component config exports\n *\n * This module exports individual Puck component configurations so users can\n * cherry-pick components for their custom configs.\n *\n * @example\n * ```tsx\n * import {\n * SectionConfig,\n * HeadingConfig,\n * TextConfig,\n * } from '@delmaredigital/payload-puck/components'\n *\n * export const myConfig: Config = {\n * components: {\n * Section: SectionConfig,\n * Heading: HeadingConfig,\n * Text: TextConfig,\n * },\n * // ...\n * }\n * ```\n */\n\n// =============================================================================\n// Editor Component Configs (for Puck Editor)\n// =============================================================================\n\n// Layout components\nexport { ContainerConfig } from './layout/Container.js'\nexport { FlexConfig } from './layout/Flex.js'\nexport { GridConfig } from './layout/Grid.js'\nexport { SectionConfig } from './layout/Section.js'\nexport { SpacerConfig } from './layout/Spacer.js'\nexport { TemplateConfig } from './layout/Template.js'\n\n// Typography components\nexport { HeadingConfig } from './typography/Heading.js'\nexport { TextConfig } from './typography/Text.js'\nexport { RichTextEditorConfig } from './typography/RichText.editor.js'\nexport { RichTextConfig } from './typography/RichText.server.js'\n\n// Media components\nexport { ImageConfig } from './media/Image.js'\n\n// Interactive components\nexport { ButtonConfig } from './interactive/Button.js'\nexport { CardConfig } from './interactive/Card.js'\nexport { DividerConfig } from './interactive/Divider.js'\nexport { AccordionConfig } from './interactive/Accordion.js'\n\n// =============================================================================\n// Server Component Configs (for PageRenderer)\n// =============================================================================\n// These are SSR-safe variants without client-side interactivity.\n// Use these when building a custom baseConfig for PageRenderer.\n\n// Layout components (server)\nexport { ContainerConfig as ContainerServerConfig } from './layout/Container.server.js'\nexport { FlexConfig as FlexServerConfig } from './layout/Flex.server.js'\nexport { GridConfig as GridServerConfig } from './layout/Grid.server.js'\nexport { SectionConfig as SectionServerConfig } from './layout/Section.server.js'\nexport { SpacerConfig as SpacerServerConfig } from './layout/Spacer.server.js'\nexport { TemplateServerConfig } from './layout/Template.server.js'\n\n// Typography components (server)\nexport { HeadingConfig as HeadingServerConfig } from './typography/Heading.server.js'\nexport { TextConfig as TextServerConfig } from './typography/Text.server.js'\nexport { RichTextConfig as RichTextServerConfig } from './typography/RichText.server.js'\n\n// Media components (server)\nexport { ImageConfig as ImageServerConfig } from './media/Image.server.js'\n\n// Interactive components (server)\nexport { ButtonConfig as ButtonServerConfig } from './interactive/Button.server.js'\nexport { CardConfig as CardServerConfig } from './interactive/Card.server.js'\nexport { DividerConfig as DividerServerConfig } from './interactive/Divider.server.js'\nexport { AccordionConfig as AccordionServerConfig } from './interactive/Accordion.server.js'\n\n// =============================================================================\n// Animation Components\n// =============================================================================\n\nexport { AnimatedWrapper, type AnimatedWrapperProps } from './AnimatedWrapper.js'\n"],"names":["ContainerConfig","FlexConfig","GridConfig","SectionConfig","SpacerConfig","TemplateConfig","HeadingConfig","TextConfig","RichTextEditorConfig","RichTextConfig","ImageConfig","ButtonConfig","CardConfig","DividerConfig","AccordionConfig","ContainerServerConfig","FlexServerConfig","GridServerConfig","SectionServerConfig","SpacerServerConfig","TemplateServerConfig","HeadingServerConfig","TextServerConfig","RichTextServerConfig","ImageServerConfig","ButtonServerConfig","CardServerConfig","DividerServerConfig","AccordionServerConfig","AnimatedWrapper"],"mappings":"AAAA;AAEA;;;;;;;;;;;;;;;;;;;;;;;CAuBC,GAED,gFAAgF;AAChF,6CAA6C;AAC7C,gFAAgF;AAEhF,oBAAoB;AACpB,SAASA,eAAe,QAAQ,wBAAuB;AACvD,SAASC,UAAU,QAAQ,mBAAkB;AAC7C,SAASC,UAAU,QAAQ,mBAAkB;AAC7C,SAASC,aAAa,QAAQ,sBAAqB;AACnD,SAASC,YAAY,QAAQ,qBAAoB;AACjD,SAASC,cAAc,QAAQ,uBAAsB;AAErD,wBAAwB;AACxB,SAASC,aAAa,QAAQ,0BAAyB;AACvD,SAASC,UAAU,QAAQ,uBAAsB;AACjD,SAASC,oBAAoB,QAAQ,kCAAiC;AACtE,SAASC,cAAc,QAAQ,kCAAiC;AAEhE,mBAAmB;AACnB,SAASC,WAAW,QAAQ,mBAAkB;AAE9C,yBAAyB;AACzB,SAASC,YAAY,QAAQ,0BAAyB;AACtD,SAASC,UAAU,QAAQ,wBAAuB;AAClD,SAASC,aAAa,QAAQ,2BAA0B;AACxD,SAASC,eAAe,QAAQ,6BAA4B;AAE5D,gFAAgF;AAChF,8CAA8C;AAC9C,gFAAgF;AAChF,iEAAiE;AACjE,gEAAgE;AAEhE,6BAA6B;AAC7B,SAASd,mBAAmBe,qBAAqB,QAAQ,+BAA8B;AACvF,SAASd,cAAce,gBAAgB,QAAQ,0BAAyB;AACxE,SAASd,cAAce,gBAAgB,QAAQ,0BAAyB;AACxE,SAASd,iBAAiBe,mBAAmB,QAAQ,6BAA4B;AACjF,SAASd,gBAAgBe,kBAAkB,QAAQ,4BAA2B;AAC9E,SAASC,oBAAoB,QAAQ,8BAA6B;AAElE,iCAAiC;AACjC,SAASd,iBAAiBe,mBAAmB,QAAQ,iCAAgC;AACrF,SAASd,cAAce,gBAAgB,QAAQ,8BAA6B;AAC5E,SAASb,kBAAkBc,oBAAoB,QAAQ,kCAAiC;AAExF,4BAA4B;AAC5B,SAASb,eAAec,iBAAiB,QAAQ,0BAAyB;AAE1E,kCAAkC;AAClC,SAASb,gBAAgBc,kBAAkB,QAAQ,iCAAgC;AACnF,SAASb,cAAcc,gBAAgB,QAAQ,+BAA8B;AAC7E,SAASb,iBAAiBc,mBAAmB,QAAQ,kCAAiC;AACtF,SAASb,mBAAmBc,qBAAqB,QAAQ,oCAAmC;AAE5F,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF,SAASC,eAAe,QAAmC,uBAAsB"}
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* All component configs for the Puck visual page builder.
|
|
5
5
|
*/
|
|
6
|
-
export * from './layout';
|
|
7
|
-
export * from './typography';
|
|
8
|
-
export * from './media';
|
|
9
|
-
export * from './interactive';
|
|
10
|
-
export { AnimatedWrapper, type AnimatedWrapperProps } from './AnimatedWrapper';
|
|
6
|
+
export * from './layout/index.js';
|
|
7
|
+
export * from './typography/index.js';
|
|
8
|
+
export * from './media/index.js';
|
|
9
|
+
export * from './interactive/index.js';
|
|
10
|
+
export { AnimatedWrapper, type AnimatedWrapperProps } from './AnimatedWrapper.js';
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,mBAAmB,CAAA;AAGjC,cAAc,uBAAuB,CAAA;AAGrC,cAAc,kBAAkB,CAAA;AAGhC,cAAc,wBAAwB,CAAA;AAGtC,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAA"}
|
package/dist/components/index.js
CHANGED
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
* Puck Component Configurations
|
|
3
3
|
*
|
|
4
4
|
* All component configs for the Puck visual page builder.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
export * from './layout';
|
|
5
|
+
*/ // Layout Components
|
|
6
|
+
export * from './layout/index.js';
|
|
8
7
|
// Typography Components
|
|
9
|
-
export * from './typography';
|
|
8
|
+
export * from './typography/index.js';
|
|
10
9
|
// Media Components
|
|
11
|
-
export * from './media';
|
|
10
|
+
export * from './media/index.js';
|
|
12
11
|
// Interactive Components
|
|
13
|
-
export * from './interactive';
|
|
12
|
+
export * from './interactive/index.js';
|
|
14
13
|
// Animation
|
|
15
|
-
export { AnimatedWrapper } from './AnimatedWrapper';
|
|
14
|
+
export { AnimatedWrapper } from './AnimatedWrapper.js';
|
|
15
|
+
|
|
16
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/components/index.ts"],"sourcesContent":["/**\n * Puck Component Configurations\n *\n * All component configs for the Puck visual page builder.\n */\n\n// Layout Components\nexport * from './layout/index.js'\n\n// Typography Components\nexport * from './typography/index.js'\n\n// Media Components\nexport * from './media/index.js'\n\n// Interactive Components\nexport * from './interactive/index.js'\n\n// Animation\nexport { AnimatedWrapper, type AnimatedWrapperProps } from './AnimatedWrapper.js'\n"],"names":["AnimatedWrapper"],"mappings":"AAAA;;;;CAIC,GAED,oBAAoB;AACpB,cAAc,oBAAmB;AAEjC,wBAAwB;AACxB,cAAc,wBAAuB;AAErC,mBAAmB;AACnB,cAAc,mBAAkB;AAEhC,yBAAyB;AACzB,cAAc,yBAAwB;AAEtC,YAAY;AACZ,SAASA,eAAe,QAAmC,uBAAsB"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Supports custom margin for spacing control.
|
|
7
7
|
*/
|
|
8
8
|
import type { ComponentConfig } from '@puckeditor/core';
|
|
9
|
-
import { type PaddingValue, type DimensionsValue, type BackgroundValue, type AnimationValue, type TransformValue, type ColorValue } from '../../fields/shared';
|
|
9
|
+
import { type PaddingValue, type DimensionsValue, type BackgroundValue, type AnimationValue, type TransformValue, type ColorValue } from '../../fields/shared.js';
|
|
10
10
|
interface AccordionItemData {
|
|
11
11
|
title: string;
|
|
12
12
|
content: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Accordion.tsx"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAGvD,OAAO,EAQL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,
|
|
1
|
+
{"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Accordion.tsx"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAGvD,OAAO,EAQL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,wBAAwB,CAAA;AAW/B,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,OAAO,CAAA;CACrB;AA0KD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,iBAAiB,EAAE,CAAA;IAC1B,aAAa,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,UAAU,GAAG,IAAI,CAAA;IAC5B,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;IAClC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;IAClC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAA;CACnC;AAyBD,eAAO,MAAM,eAAe,EAAE,eA+D7B,CAAA"}
|
|
@@ -2,40 +2,69 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useState } from 'react';
|
|
4
4
|
import { ChevronDown } from 'lucide-react';
|
|
5
|
-
import { marginValueToCSS, paddingValueToCSS, dimensionsValueToCSS, backgroundValueToCSS, transformValueToCSS, colorValueToCSS, cn
|
|
6
|
-
import { AnimatedWrapper } from '../AnimatedWrapper';
|
|
7
|
-
import { createMarginField } from '../../fields/MarginField';
|
|
8
|
-
import { createPaddingField } from '../../fields/PaddingField';
|
|
9
|
-
import { createDimensionsField } from '../../fields/DimensionsField';
|
|
10
|
-
import { createResetField } from '../../fields/ResetField';
|
|
11
|
-
import { createBackgroundField } from '../../fields/BackgroundField';
|
|
12
|
-
import { createAnimationField } from '../../fields/AnimationField';
|
|
13
|
-
import { createTransformField } from '../../fields/TransformField';
|
|
14
|
-
import { createColorPickerField } from '../../fields/ColorPickerField';
|
|
5
|
+
import { marginValueToCSS, paddingValueToCSS, dimensionsValueToCSS, backgroundValueToCSS, transformValueToCSS, colorValueToCSS, cn } from '../../fields/shared.js';
|
|
6
|
+
import { AnimatedWrapper } from '../AnimatedWrapper.js';
|
|
7
|
+
import { createMarginField } from '../../fields/MarginField.js';
|
|
8
|
+
import { createPaddingField } from '../../fields/PaddingField.js';
|
|
9
|
+
import { createDimensionsField } from '../../fields/DimensionsField.js';
|
|
10
|
+
import { createResetField } from '../../fields/ResetField.js';
|
|
11
|
+
import { createBackgroundField } from '../../fields/BackgroundField.js';
|
|
12
|
+
import { createAnimationField } from '../../fields/AnimationField.js';
|
|
13
|
+
import { createTransformField } from '../../fields/TransformField.js';
|
|
14
|
+
import { createColorPickerField } from '../../fields/ColorPickerField.js';
|
|
15
15
|
// Accordion Item Component
|
|
16
|
-
function AccordionItem({ item, isOpen, onToggle, textColorCSS
|
|
17
|
-
const textStyle = textColorCSS ? {
|
|
18
|
-
|
|
16
|
+
function AccordionItem({ item, isOpen, onToggle, textColorCSS }) {
|
|
17
|
+
const textStyle = textColorCSS ? {
|
|
18
|
+
color: textColorCSS
|
|
19
|
+
} : {};
|
|
20
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
21
|
+
className: "border-b border-border last:border-b-0",
|
|
22
|
+
children: [
|
|
23
|
+
/*#__PURE__*/ _jsxs("button", {
|
|
24
|
+
type: "button",
|
|
25
|
+
onClick: onToggle,
|
|
26
|
+
className: "flex w-full items-center justify-between py-4 px-4 text-left font-medium transition-all hover:bg-muted/50 text-foreground",
|
|
27
|
+
style: textStyle,
|
|
28
|
+
children: [
|
|
29
|
+
/*#__PURE__*/ _jsx("span", {
|
|
30
|
+
children: item.title
|
|
31
|
+
}),
|
|
32
|
+
/*#__PURE__*/ _jsx(ChevronDown, {
|
|
33
|
+
className: cn('h-4 w-4 shrink-0 transition-transform duration-200', isOpen && 'rotate-180')
|
|
34
|
+
})
|
|
35
|
+
]
|
|
36
|
+
}),
|
|
37
|
+
/*#__PURE__*/ _jsx("div", {
|
|
38
|
+
className: cn('overflow-hidden transition-all duration-200', isOpen ? 'max-h-[1000px] opacity-100' : 'max-h-0 opacity-0'),
|
|
39
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
40
|
+
className: "px-4 pb-4 text-muted-foreground",
|
|
41
|
+
style: textColorCSS ? {
|
|
42
|
+
color: textColorCSS
|
|
43
|
+
} : undefined,
|
|
44
|
+
children: item.content
|
|
45
|
+
})
|
|
46
|
+
})
|
|
47
|
+
]
|
|
48
|
+
});
|
|
19
49
|
}
|
|
20
50
|
// Main Accordion Render Component
|
|
21
|
-
function AccordionRenderer({ items, allowMultiple, textColor, margin, background, dimensions, transform, animation, customPadding
|
|
51
|
+
function AccordionRenderer({ items, allowMultiple, textColor, margin, background, dimensions, transform, animation, customPadding }) {
|
|
22
52
|
// Initialize open states from defaultOpen values
|
|
23
|
-
const [openItems, setOpenItems] = useState(()
|
|
53
|
+
const [openItems, setOpenItems] = useState(()=>{
|
|
24
54
|
const initialOpen = new Set();
|
|
25
|
-
items?.forEach((item, index)
|
|
55
|
+
items?.forEach((item, index)=>{
|
|
26
56
|
if (item.defaultOpen) {
|
|
27
57
|
initialOpen.add(index);
|
|
28
58
|
}
|
|
29
59
|
});
|
|
30
60
|
return initialOpen;
|
|
31
61
|
});
|
|
32
|
-
const handleToggle = (index)
|
|
33
|
-
setOpenItems((prev)
|
|
62
|
+
const handleToggle = (index)=>{
|
|
63
|
+
setOpenItems((prev)=>{
|
|
34
64
|
const newSet = new Set(prev);
|
|
35
65
|
if (newSet.has(index)) {
|
|
36
66
|
newSet.delete(index);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
67
|
+
} else {
|
|
39
68
|
if (!allowMultiple) {
|
|
40
69
|
newSet.clear();
|
|
41
70
|
}
|
|
@@ -50,11 +79,9 @@ function AccordionRenderer({ items, allowMultiple, textColor, margin, background
|
|
|
50
79
|
const accordionClasses = 'rounded-lg border border-border overflow-hidden bg-card';
|
|
51
80
|
const backgroundStyles = backgroundValueToCSS(background);
|
|
52
81
|
// Only apply background styles if explicitly set, otherwise let bg-card handle it
|
|
53
|
-
const accordionStyle = backgroundStyles && Object.keys(backgroundStyles).length > 0
|
|
54
|
-
? backgroundStyles
|
|
55
|
-
: {};
|
|
82
|
+
const accordionStyle = backgroundStyles && Object.keys(backgroundStyles).length > 0 ? backgroundStyles : {};
|
|
56
83
|
const style = {
|
|
57
|
-
...dimensionsStyles
|
|
84
|
+
...dimensionsStyles
|
|
58
85
|
};
|
|
59
86
|
const marginCSS = marginValueToCSS(margin);
|
|
60
87
|
if (marginCSS) {
|
|
@@ -69,9 +96,37 @@ function AccordionRenderer({ items, allowMultiple, textColor, margin, background
|
|
|
69
96
|
Object.assign(style, transformStyles);
|
|
70
97
|
}
|
|
71
98
|
if (!items || items.length === 0) {
|
|
72
|
-
return
|
|
99
|
+
return /*#__PURE__*/ _jsx(AnimatedWrapper, {
|
|
100
|
+
animation: animation,
|
|
101
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
102
|
+
style: Object.keys(style).length > 0 ? style : undefined,
|
|
103
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
104
|
+
className: accordionClasses,
|
|
105
|
+
style: accordionStyle,
|
|
106
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
107
|
+
className: "p-4 text-center text-muted-foreground",
|
|
108
|
+
children: "No accordion items. Add items in the editor."
|
|
109
|
+
})
|
|
110
|
+
})
|
|
111
|
+
})
|
|
112
|
+
});
|
|
73
113
|
}
|
|
74
|
-
return
|
|
114
|
+
return /*#__PURE__*/ _jsx(AnimatedWrapper, {
|
|
115
|
+
animation: animation,
|
|
116
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
117
|
+
style: Object.keys(style).length > 0 ? style : undefined,
|
|
118
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
119
|
+
className: accordionClasses,
|
|
120
|
+
style: accordionStyle,
|
|
121
|
+
children: items.map((item, index)=>/*#__PURE__*/ _jsx(AccordionItem, {
|
|
122
|
+
item: item,
|
|
123
|
+
isOpen: openItems.has(index),
|
|
124
|
+
onToggle: ()=>handleToggle(index),
|
|
125
|
+
textColorCSS: textColorCSS
|
|
126
|
+
}, index))
|
|
127
|
+
})
|
|
128
|
+
})
|
|
129
|
+
});
|
|
75
130
|
}
|
|
76
131
|
// Default padding with standard horizontal spacing (replaces hardcoded px-4)
|
|
77
132
|
const DEFAULT_PADDING = {
|
|
@@ -80,20 +135,20 @@ const DEFAULT_PADDING = {
|
|
|
80
135
|
bottom: 0,
|
|
81
136
|
left: 16,
|
|
82
137
|
unit: 'px',
|
|
83
|
-
linked: false
|
|
138
|
+
linked: false
|
|
84
139
|
};
|
|
85
140
|
const defaultProps = {
|
|
86
141
|
items: [
|
|
87
142
|
{
|
|
88
143
|
title: 'What is this?',
|
|
89
144
|
content: 'This is an accordion component that can expand and collapse.',
|
|
90
|
-
defaultOpen: false
|
|
145
|
+
defaultOpen: false
|
|
91
146
|
},
|
|
92
147
|
{
|
|
93
148
|
title: 'How do I use it?',
|
|
94
149
|
content: 'Click on each item to expand or collapse it.',
|
|
95
|
-
defaultOpen: false
|
|
96
|
-
}
|
|
150
|
+
defaultOpen: false
|
|
151
|
+
}
|
|
97
152
|
],
|
|
98
153
|
allowMultiple: false,
|
|
99
154
|
textColor: null,
|
|
@@ -102,58 +157,97 @@ const defaultProps = {
|
|
|
102
157
|
dimensions: null,
|
|
103
158
|
transform: null,
|
|
104
159
|
animation: null,
|
|
105
|
-
customPadding: DEFAULT_PADDING
|
|
160
|
+
customPadding: DEFAULT_PADDING
|
|
106
161
|
};
|
|
107
162
|
export const AccordionConfig = {
|
|
108
163
|
label: 'Accordion',
|
|
109
164
|
fields: {
|
|
110
|
-
_reset: createResetField({
|
|
165
|
+
_reset: createResetField({
|
|
166
|
+
defaultProps
|
|
167
|
+
}),
|
|
111
168
|
items: {
|
|
112
169
|
type: 'array',
|
|
113
170
|
label: 'Items',
|
|
114
171
|
arrayFields: {
|
|
115
172
|
title: {
|
|
116
173
|
type: 'text',
|
|
117
|
-
label: 'Title'
|
|
174
|
+
label: 'Title'
|
|
118
175
|
},
|
|
119
176
|
content: {
|
|
120
177
|
type: 'textarea',
|
|
121
|
-
label: 'Content'
|
|
178
|
+
label: 'Content'
|
|
122
179
|
},
|
|
123
180
|
defaultOpen: {
|
|
124
181
|
type: 'radio',
|
|
125
182
|
label: 'Default Open',
|
|
126
183
|
options: [
|
|
127
|
-
{
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
184
|
+
{
|
|
185
|
+
label: 'Yes',
|
|
186
|
+
value: true
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
label: 'No',
|
|
190
|
+
value: false
|
|
191
|
+
}
|
|
192
|
+
]
|
|
193
|
+
}
|
|
131
194
|
},
|
|
132
|
-
defaultItemProps: (index)
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
getItemSummary: (item)
|
|
195
|
+
defaultItemProps: (index)=>({
|
|
196
|
+
title: `Accordion Item ${index + 1}`,
|
|
197
|
+
content: '',
|
|
198
|
+
defaultOpen: index === 0
|
|
199
|
+
}),
|
|
200
|
+
getItemSummary: (item)=>item.title || 'Untitled'
|
|
138
201
|
},
|
|
139
202
|
allowMultiple: {
|
|
140
203
|
type: 'radio',
|
|
141
204
|
label: 'Allow Multiple Open',
|
|
142
205
|
options: [
|
|
143
|
-
{
|
|
144
|
-
|
|
145
|
-
|
|
206
|
+
{
|
|
207
|
+
label: 'Yes',
|
|
208
|
+
value: true
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
label: 'No',
|
|
212
|
+
value: false
|
|
213
|
+
}
|
|
214
|
+
]
|
|
146
215
|
},
|
|
147
|
-
textColor: createColorPickerField({
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
216
|
+
textColor: createColorPickerField({
|
|
217
|
+
label: 'Text Color'
|
|
218
|
+
}),
|
|
219
|
+
background: createBackgroundField({
|
|
220
|
+
label: 'Background'
|
|
221
|
+
}),
|
|
222
|
+
dimensions: createDimensionsField({
|
|
223
|
+
label: 'Dimensions'
|
|
224
|
+
}),
|
|
225
|
+
transform: createTransformField({
|
|
226
|
+
label: 'Transform'
|
|
227
|
+
}),
|
|
228
|
+
animation: createAnimationField({
|
|
229
|
+
label: 'Animation'
|
|
230
|
+
}),
|
|
152
231
|
// Spacing (grouped at bottom)
|
|
153
|
-
margin: createMarginField({
|
|
154
|
-
|
|
232
|
+
margin: createMarginField({
|
|
233
|
+
label: 'Margin'
|
|
234
|
+
}),
|
|
235
|
+
customPadding: createPaddingField({
|
|
236
|
+
label: 'Padding'
|
|
237
|
+
})
|
|
155
238
|
},
|
|
156
239
|
defaultProps,
|
|
157
|
-
render: (props)
|
|
240
|
+
render: (props)=>/*#__PURE__*/ _jsx(AccordionRenderer, {
|
|
241
|
+
items: props.items,
|
|
242
|
+
allowMultiple: props.allowMultiple,
|
|
243
|
+
textColor: props.textColor,
|
|
244
|
+
margin: props.margin,
|
|
245
|
+
background: props.background,
|
|
246
|
+
dimensions: props.dimensions,
|
|
247
|
+
transform: props.transform,
|
|
248
|
+
animation: props.animation,
|
|
249
|
+
customPadding: props.customPadding
|
|
250
|
+
})
|
|
158
251
|
};
|
|
252
|
+
|
|
159
253
|
//# sourceMappingURL=Accordion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../../../src/components/interactive/Accordion.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/interactive/Accordion.tsx"],"sourcesContent":["'use client'\n\n/**\n * Accordion Component - Puck Configuration\n *\n * Expandable sections with collapsible content.\n * Uses plain HTML/CSS for the accordion behavior.\n * Supports custom margin for spacing control.\n */\n\nimport type { ComponentConfig } from '@puckeditor/core'\nimport { useState } from 'react'\nimport { ChevronDown } from 'lucide-react'\nimport {\n marginValueToCSS,\n paddingValueToCSS,\n dimensionsValueToCSS,\n backgroundValueToCSS,\n transformValueToCSS,\n colorValueToCSS,\n cn,\n type PaddingValue,\n type DimensionsValue,\n type BackgroundValue,\n type AnimationValue,\n type TransformValue,\n type ColorValue,\n} from '../../fields/shared.js'\nimport { AnimatedWrapper } from '../AnimatedWrapper.js'\nimport { createMarginField } from '../../fields/MarginField.js'\nimport { createPaddingField } from '../../fields/PaddingField.js'\nimport { createDimensionsField } from '../../fields/DimensionsField.js'\nimport { createResetField } from '../../fields/ResetField.js'\nimport { createBackgroundField } from '../../fields/BackgroundField.js'\nimport { createAnimationField } from '../../fields/AnimationField.js'\nimport { createTransformField } from '../../fields/TransformField.js'\nimport { createColorPickerField } from '../../fields/ColorPickerField.js'\n\ninterface AccordionItemData {\n title: string\n content: string\n defaultOpen: boolean\n}\n\ninterface AccordionRendererProps {\n items: AccordionItemData[]\n allowMultiple: boolean\n textColor: ColorValue | null\n margin: PaddingValue | null\n background: BackgroundValue | null\n dimensions: DimensionsValue | null\n transform: TransformValue | null\n animation: AnimationValue | null\n customPadding: PaddingValue | null\n}\n\n// Accordion Item Component\nfunction AccordionItem({\n item,\n isOpen,\n onToggle,\n textColorCSS,\n}: {\n item: AccordionItemData\n isOpen: boolean\n onToggle: () => void\n textColorCSS?: string\n}) {\n const textStyle: React.CSSProperties = textColorCSS ? { color: textColorCSS } : {}\n\n return (\n <div className=\"border-b border-border last:border-b-0\">\n <button\n type=\"button\"\n onClick={onToggle}\n className=\"flex w-full items-center justify-between py-4 px-4 text-left font-medium transition-all hover:bg-muted/50 text-foreground\"\n style={textStyle}\n >\n <span>{item.title}</span>\n <ChevronDown\n className={cn(\n 'h-4 w-4 shrink-0 transition-transform duration-200',\n isOpen && 'rotate-180'\n )}\n />\n </button>\n <div\n className={cn(\n 'overflow-hidden transition-all duration-200',\n isOpen ? 'max-h-[1000px] opacity-100' : 'max-h-0 opacity-0'\n )}\n >\n <div\n className=\"px-4 pb-4 text-muted-foreground\"\n style={textColorCSS ? { color: textColorCSS } : undefined}\n >\n {item.content}\n </div>\n </div>\n </div>\n )\n}\n\n// Main Accordion Render Component\nfunction AccordionRenderer({\n items,\n allowMultiple,\n textColor,\n margin,\n background,\n dimensions,\n transform,\n animation,\n customPadding,\n}: AccordionRendererProps) {\n // Initialize open states from defaultOpen values\n const [openItems, setOpenItems] = useState<Set<number>>(() => {\n const initialOpen = new Set<number>()\n items?.forEach((item, index) => {\n if (item.defaultOpen) {\n initialOpen.add(index)\n }\n })\n return initialOpen\n })\n\n const handleToggle = (index: number) => {\n setOpenItems((prev) => {\n const newSet = new Set(prev)\n if (newSet.has(index)) {\n newSet.delete(index)\n } else {\n if (!allowMultiple) {\n newSet.clear()\n }\n newSet.add(index)\n }\n return newSet\n })\n }\n\n const textColorCSS = colorValueToCSS(textColor)\n const dimensionsStyles = dimensionsValueToCSS(dimensions)\n\n // Theme-aware classes - uses CSS variables for colors\n const accordionClasses = 'rounded-lg border border-border overflow-hidden bg-card'\n\n const backgroundStyles = backgroundValueToCSS(background)\n // Only apply background styles if explicitly set, otherwise let bg-card handle it\n const accordionStyle: React.CSSProperties = backgroundStyles && Object.keys(backgroundStyles).length > 0\n ? backgroundStyles\n : {}\n\n const style: React.CSSProperties = {\n ...dimensionsStyles,\n }\n const marginCSS = marginValueToCSS(margin)\n if (marginCSS) {\n style.margin = marginCSS\n }\n const paddingCSS = paddingValueToCSS(customPadding)\n if (paddingCSS) {\n style.padding = paddingCSS\n }\n const transformStyles = transformValueToCSS(transform)\n if (transformStyles) {\n Object.assign(style, transformStyles)\n }\n\n if (!items || items.length === 0) {\n return (\n <AnimatedWrapper animation={animation}>\n <div style={Object.keys(style).length > 0 ? style : undefined}>\n <div className={accordionClasses} style={accordionStyle}>\n <div className=\"p-4 text-center text-muted-foreground\">\n No accordion items. Add items in the editor.\n </div>\n </div>\n </div>\n </AnimatedWrapper>\n )\n }\n\n return (\n <AnimatedWrapper animation={animation}>\n <div style={Object.keys(style).length > 0 ? style : undefined}>\n <div className={accordionClasses} style={accordionStyle}>\n {items.map((item, index) => (\n <AccordionItem\n key={index}\n item={item}\n isOpen={openItems.has(index)}\n onToggle={() => handleToggle(index)}\n textColorCSS={textColorCSS}\n />\n ))}\n </div>\n </div>\n </AnimatedWrapper>\n )\n}\n\n// Default padding with standard horizontal spacing (replaces hardcoded px-4)\nconst DEFAULT_PADDING: PaddingValue = {\n top: 0,\n right: 16,\n bottom: 0,\n left: 16,\n unit: 'px',\n linked: false,\n}\n\nexport interface AccordionProps {\n items: AccordionItemData[]\n allowMultiple: boolean\n textColor: ColorValue | null\n margin: PaddingValue | null\n background: BackgroundValue | null\n dimensions: DimensionsValue | null\n transform: TransformValue | null\n animation: AnimationValue | null\n customPadding: PaddingValue | null\n}\n\nconst defaultProps: AccordionProps = {\n items: [\n {\n title: 'What is this?',\n content: 'This is an accordion component that can expand and collapse.',\n defaultOpen: false,\n },\n {\n title: 'How do I use it?',\n content: 'Click on each item to expand or collapse it.',\n defaultOpen: false,\n },\n ],\n allowMultiple: false,\n textColor: null,\n margin: null,\n background: null,\n dimensions: null,\n transform: null,\n animation: null,\n customPadding: DEFAULT_PADDING, // Default 16px horizontal padding, visible in editor\n}\n\nexport const AccordionConfig: ComponentConfig = {\n label: 'Accordion',\n fields: {\n _reset: createResetField({ defaultProps }),\n items: {\n type: 'array',\n label: 'Items',\n arrayFields: {\n title: {\n type: 'text',\n label: 'Title',\n },\n content: {\n type: 'textarea',\n label: 'Content',\n },\n defaultOpen: {\n type: 'radio',\n label: 'Default Open',\n options: [\n { label: 'Yes', value: true },\n { label: 'No', value: false },\n ],\n },\n },\n defaultItemProps: (index: number) => ({\n title: `Accordion Item ${index + 1}`,\n content: '',\n defaultOpen: index === 0,\n }),\n getItemSummary: (item: AccordionItemData) => item.title || 'Untitled',\n },\n allowMultiple: {\n type: 'radio',\n label: 'Allow Multiple Open',\n options: [\n { label: 'Yes', value: true },\n { label: 'No', value: false },\n ],\n },\n textColor: createColorPickerField({ label: 'Text Color' }),\n background: createBackgroundField({ label: 'Background' }),\n dimensions: createDimensionsField({ label: 'Dimensions' }),\n transform: createTransformField({ label: 'Transform' }),\n animation: createAnimationField({ label: 'Animation' }),\n // Spacing (grouped at bottom)\n margin: createMarginField({ label: 'Margin' }),\n customPadding: createPaddingField({ label: 'Padding' }),\n },\n defaultProps,\n render: (props) => (\n <AccordionRenderer\n items={props.items}\n allowMultiple={props.allowMultiple}\n textColor={props.textColor}\n margin={props.margin}\n background={props.background}\n dimensions={props.dimensions}\n transform={props.transform}\n animation={props.animation}\n customPadding={props.customPadding}\n />\n ),\n}\n"],"names":["useState","ChevronDown","marginValueToCSS","paddingValueToCSS","dimensionsValueToCSS","backgroundValueToCSS","transformValueToCSS","colorValueToCSS","cn","AnimatedWrapper","createMarginField","createPaddingField","createDimensionsField","createResetField","createBackgroundField","createAnimationField","createTransformField","createColorPickerField","AccordionItem","item","isOpen","onToggle","textColorCSS","textStyle","color","div","className","button","type","onClick","style","span","title","undefined","content","AccordionRenderer","items","allowMultiple","textColor","margin","background","dimensions","transform","animation","customPadding","openItems","setOpenItems","initialOpen","Set","forEach","index","defaultOpen","add","handleToggle","prev","newSet","has","delete","clear","dimensionsStyles","accordionClasses","backgroundStyles","accordionStyle","Object","keys","length","marginCSS","paddingCSS","padding","transformStyles","assign","map","DEFAULT_PADDING","top","right","bottom","left","unit","linked","defaultProps","AccordionConfig","label","fields","_reset","arrayFields","options","value","defaultItemProps","getItemSummary","render","props"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* handles the interactive state.
|
|
8
8
|
*/
|
|
9
9
|
import type { ComponentConfig } from '@puckeditor/core';
|
|
10
|
-
import type { PaddingValue, DimensionsValue, BackgroundValue, AnimationValue, TransformValue, ColorValue } from '../../fields/shared';
|
|
10
|
+
import type { PaddingValue, DimensionsValue, BackgroundValue, AnimationValue, TransformValue, ColorValue } from '../../fields/shared.js';
|
|
11
11
|
interface AccordionItemData {
|
|
12
12
|
title: string;
|
|
13
13
|
content: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion.server.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Accordion.server.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,EACd,UAAU,EACX,MAAM,
|
|
1
|
+
{"version":3,"file":"Accordion.server.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Accordion.server.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,EACd,UAAU,EACX,MAAM,wBAAwB,CAAA;AAG/B,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,iBAAiB,EAAE,CAAA;IAC1B,aAAa,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,UAAU,GAAG,IAAI,CAAA;IAC5B,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;IAClC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;IAClC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAA;CACnC;AAyBD,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,cAAc,CAgB3D,CAAA"}
|