@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,17 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Accordion Component - Server-safe Puck Configuration
|
|
3
|
+
*
|
|
4
|
+
* Expandable sections with collapsible content.
|
|
5
|
+
* This version contains only the render function and types - no fields.
|
|
6
|
+
* The render function returns a client component (AccordionClient) that
|
|
7
|
+
* handles the interactive state.
|
|
8
|
+
*/ import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
import { AccordionClient } from '../AccordionClient.js';
|
|
3
10
|
const defaultProps = {
|
|
4
11
|
items: [
|
|
5
12
|
{
|
|
6
13
|
title: 'What is this?',
|
|
7
14
|
content: 'This is an accordion component that can expand and collapse.',
|
|
8
|
-
defaultOpen: false
|
|
15
|
+
defaultOpen: false
|
|
9
16
|
},
|
|
10
17
|
{
|
|
11
18
|
title: 'How do I use it?',
|
|
12
19
|
content: 'Click on each item to expand or collapse it.',
|
|
13
|
-
defaultOpen: false
|
|
14
|
-
}
|
|
20
|
+
defaultOpen: false
|
|
21
|
+
}
|
|
15
22
|
],
|
|
16
23
|
allowMultiple: false,
|
|
17
24
|
textColor: null,
|
|
@@ -20,11 +27,22 @@ const defaultProps = {
|
|
|
20
27
|
dimensions: null,
|
|
21
28
|
transform: null,
|
|
22
29
|
animation: null,
|
|
23
|
-
customPadding: null
|
|
30
|
+
customPadding: null
|
|
24
31
|
};
|
|
25
32
|
export const AccordionConfig = {
|
|
26
33
|
label: 'Accordion',
|
|
27
34
|
defaultProps,
|
|
28
|
-
render: (props)
|
|
35
|
+
render: (props)=>/*#__PURE__*/ _jsx(AccordionClient, {
|
|
36
|
+
items: props.items,
|
|
37
|
+
allowMultiple: props.allowMultiple,
|
|
38
|
+
textColor: props.textColor,
|
|
39
|
+
margin: props.margin,
|
|
40
|
+
background: props.background,
|
|
41
|
+
dimensions: props.dimensions,
|
|
42
|
+
transform: props.transform,
|
|
43
|
+
animation: props.animation,
|
|
44
|
+
customPadding: props.customPadding
|
|
45
|
+
})
|
|
29
46
|
};
|
|
47
|
+
|
|
30
48
|
//# sourceMappingURL=Accordion.server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/interactive/Accordion.server.tsx"],"sourcesContent":["/**\n * Accordion Component - Server-safe Puck Configuration\n *\n * Expandable sections with collapsible content.\n * This version contains only the render function and types - no fields.\n * The render function returns a client component (AccordionClient) that\n * handles the interactive state.\n */\n\nimport type { ComponentConfig } from '@puckeditor/core'\nimport type {\n PaddingValue,\n DimensionsValue,\n BackgroundValue,\n AnimationValue,\n TransformValue,\n ColorValue,\n} from '../../fields/shared.js'\nimport { AccordionClient } from '../AccordionClient.js'\n\ninterface AccordionItemData {\n title: string\n content: string\n defaultOpen: boolean\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: null,\n}\n\nexport const AccordionConfig: ComponentConfig<AccordionProps> = {\n label: 'Accordion',\n defaultProps,\n render: (props) => (\n <AccordionClient\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":["AccordionClient","defaultProps","items","title","content","defaultOpen","allowMultiple","textColor","margin","background","dimensions","transform","animation","customPadding","AccordionConfig","label","render","props"],"mappings":"AAAA;;;;;;;CAOC;AAWD,SAASA,eAAe,QAAQ,wBAAuB;AAoBvD,MAAMC,eAA+B;IACnCC,OAAO;QACL;YACEC,OAAO;YACPC,SAAS;YACTC,aAAa;QACf;QACA;YACEF,OAAO;YACPC,SAAS;YACTC,aAAa;QACf;KACD;IACDC,eAAe;IACfC,WAAW;IACXC,QAAQ;IACRC,YAAY;IACZC,YAAY;IACZC,WAAW;IACXC,WAAW;IACXC,eAAe;AACjB;AAEA,OAAO,MAAMC,kBAAmD;IAC9DC,OAAO;IACPd;IACAe,QAAQ,CAACC,sBACP,KAACjB;YACCE,OAAOe,MAAMf,KAAK;YAClBI,eAAeW,MAAMX,aAAa;YAClCC,WAAWU,MAAMV,SAAS;YAC1BC,QAAQS,MAAMT,MAAM;YACpBC,YAAYQ,MAAMR,UAAU;YAC5BC,YAAYO,MAAMP,UAAU;YAC5BC,WAAWM,MAAMN,SAAS;YAC1BC,WAAWK,MAAML,SAAS;YAC1BC,eAAeI,MAAMJ,aAAa;;AAGxC,EAAC"}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* CTA button with customizable styling and link support.
|
|
5
5
|
*/
|
|
6
6
|
import type { ComponentConfig } from '@puckeditor/core';
|
|
7
|
-
import { type PaddingValue, type ColorValue, type BorderValue, type AnimationValue, type TransformValue } from '../../fields/shared';
|
|
8
|
-
import { type Alignment } from '../../fields/AlignmentField';
|
|
9
|
-
import { type SizeValue } from '../../fields/SizeField';
|
|
7
|
+
import { type PaddingValue, type ColorValue, type BorderValue, type AnimationValue, type TransformValue } from '../../fields/shared.js';
|
|
8
|
+
import { type Alignment } from '../../fields/AlignmentField.js';
|
|
9
|
+
import { type SizeValue } from '../../fields/SizeField.js';
|
|
10
10
|
export interface ButtonProps {
|
|
11
11
|
text: string;
|
|
12
12
|
link: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Button.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAQL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Button.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAQL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAA;AAM/B,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,gCAAgC,CAAA;AACrF,OAAO,EAAmD,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAU3G,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,qBAAqB,EAAE,UAAU,GAAG,IAAI,CAAA;IACxC,eAAe,EAAE,UAAU,GAAG,IAAI,CAAA;IAClC,YAAY,EAAE,WAAW,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAA;CACnC;AA8BD,eAAO,MAAM,YAAY,EAAE,eAqI1B,CAAA"}
|
|
@@ -1,25 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
1
|
+
/**
|
|
2
|
+
* Button Component - Puck Configuration
|
|
3
|
+
*
|
|
4
|
+
* CTA button with customizable styling and link support.
|
|
5
|
+
*/ import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
import { buttonVariantField, cn, marginValueToCSS, paddingValueToCSS, colorValueToCSS, borderValueToCSS, transformValueToCSS } from '../../fields/shared.js';
|
|
7
|
+
import { AnimatedWrapper } from '../AnimatedWrapper.js';
|
|
8
|
+
import { createMarginField } from '../../fields/MarginField.js';
|
|
9
|
+
import { createColorPickerField } from '../../fields/ColorPickerField.js';
|
|
10
|
+
import { createBorderField } from '../../fields/BorderField.js';
|
|
11
|
+
import { createPaddingField } from '../../fields/PaddingField.js';
|
|
12
|
+
import { createAlignmentField } from '../../fields/AlignmentField.js';
|
|
13
|
+
import { createSizeField, sizeValueToCSS, getSizeClasses } from '../../fields/SizeField.js';
|
|
14
|
+
import { createAnimationField } from '../../fields/AnimationField.js';
|
|
15
|
+
import { createTransformField } from '../../fields/TransformField.js';
|
|
16
|
+
import { createResetField } from '../../fields/ResetField.js';
|
|
17
|
+
import { DEFAULT_BUTTON_VARIANTS, DEFAULT_FOCUS_RING, getVariantClasses } from '../../theme/index.js';
|
|
14
18
|
const sizeStyles = {
|
|
15
19
|
sm: 'h-8 px-3 text-sm',
|
|
16
20
|
default: 'h-10 px-4',
|
|
17
|
-
lg: 'h-12 px-8 text-lg'
|
|
21
|
+
lg: 'h-12 px-8 text-lg'
|
|
18
22
|
};
|
|
19
23
|
const alignmentWrapperMap = {
|
|
20
24
|
left: 'text-left',
|
|
21
25
|
center: 'text-center',
|
|
22
|
-
right: 'text-right'
|
|
26
|
+
right: 'text-right'
|
|
23
27
|
};
|
|
24
28
|
const defaultProps = {
|
|
25
29
|
text: 'Click Me',
|
|
@@ -34,42 +38,70 @@ const defaultProps = {
|
|
|
34
38
|
alignment: null,
|
|
35
39
|
transform: null,
|
|
36
40
|
animation: null,
|
|
37
|
-
customPadding: null
|
|
41
|
+
customPadding: null
|
|
38
42
|
};
|
|
39
43
|
export const ButtonConfig = {
|
|
40
44
|
label: 'Button',
|
|
41
45
|
fields: {
|
|
42
|
-
_reset: createResetField({
|
|
46
|
+
_reset: createResetField({
|
|
47
|
+
defaultProps
|
|
48
|
+
}),
|
|
43
49
|
text: {
|
|
44
50
|
type: 'text',
|
|
45
|
-
label: 'Button Text'
|
|
51
|
+
label: 'Button Text'
|
|
46
52
|
},
|
|
47
53
|
link: {
|
|
48
54
|
type: 'text',
|
|
49
|
-
label: 'Link URL'
|
|
55
|
+
label: 'Link URL'
|
|
50
56
|
},
|
|
51
57
|
variant: buttonVariantField,
|
|
52
|
-
size: createSizeField({
|
|
58
|
+
size: createSizeField({
|
|
59
|
+
label: 'Size'
|
|
60
|
+
}),
|
|
53
61
|
openInNewTab: {
|
|
54
62
|
type: 'radio',
|
|
55
63
|
label: 'Open in New Tab',
|
|
56
64
|
options: [
|
|
57
|
-
{
|
|
58
|
-
|
|
59
|
-
|
|
65
|
+
{
|
|
66
|
+
label: 'No',
|
|
67
|
+
value: 'no'
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
label: 'Yes',
|
|
71
|
+
value: 'yes'
|
|
72
|
+
}
|
|
73
|
+
]
|
|
60
74
|
},
|
|
61
|
-
customBackgroundColor: createColorPickerField({
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
75
|
+
customBackgroundColor: createColorPickerField({
|
|
76
|
+
label: 'Custom Background',
|
|
77
|
+
showOpacity: true
|
|
78
|
+
}),
|
|
79
|
+
customTextColor: createColorPickerField({
|
|
80
|
+
label: 'Custom Text Color',
|
|
81
|
+
showOpacity: true
|
|
82
|
+
}),
|
|
83
|
+
customBorder: createBorderField({
|
|
84
|
+
label: 'Custom Border'
|
|
85
|
+
}),
|
|
86
|
+
alignment: createAlignmentField({
|
|
87
|
+
label: 'Alignment'
|
|
88
|
+
}),
|
|
89
|
+
transform: createTransformField({
|
|
90
|
+
label: 'Transform'
|
|
91
|
+
}),
|
|
92
|
+
animation: createAnimationField({
|
|
93
|
+
label: 'Animation'
|
|
94
|
+
}),
|
|
67
95
|
// Spacing (grouped at bottom)
|
|
68
|
-
margin: createMarginField({
|
|
69
|
-
|
|
96
|
+
margin: createMarginField({
|
|
97
|
+
label: 'Margin'
|
|
98
|
+
}),
|
|
99
|
+
customPadding: createPaddingField({
|
|
100
|
+
label: 'Padding'
|
|
101
|
+
})
|
|
70
102
|
},
|
|
71
103
|
defaultProps,
|
|
72
|
-
render: ({ text, link, variant, size, openInNewTab, alignment, margin, customBackgroundColor, customTextColor, customBorder, transform, animation, customPadding })
|
|
104
|
+
render: ({ text, link, variant, size, openInNewTab, alignment, margin, customBackgroundColor, customTextColor, customBorder, transform, animation, customPadding })=>{
|
|
73
105
|
// Determine if custom styles should override preset variant/size styles
|
|
74
106
|
const hasCustomBackground = customBackgroundColor?.hex;
|
|
75
107
|
const hasCustomTextColor = customTextColor?.hex;
|
|
@@ -80,14 +112,10 @@ export const ButtonConfig = {
|
|
|
80
112
|
// Get size classes for preset modes, or empty for custom mode
|
|
81
113
|
const sizeClasses = getSizeClasses(size, sizeStyles);
|
|
82
114
|
// Build button classes - exclude variant/size classes if custom styles are set
|
|
83
|
-
const buttonClasses = cn('inline-flex items-center justify-center font-medium transition-colors', `focus:outline-none focus:ring-2 focus:ring-offset-2 ${DEFAULT_FOCUS_RING}`, 'disabled:opacity-50 disabled:pointer-events-none',
|
|
84
|
-
// Only apply variant
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
hasCustomBackground && !hasCustomTextColor && 'hover:opacity-90',
|
|
88
|
-
// Only apply size classes if not using custom size or custom padding
|
|
89
|
-
!hasCustomPadding && !hasCustomSize && sizeClasses,
|
|
90
|
-
// Apply rounded-md unless custom border has radius
|
|
115
|
+
const buttonClasses = cn('inline-flex items-center justify-center font-medium transition-colors', `focus:outline-none focus:ring-2 focus:ring-offset-2 ${DEFAULT_FOCUS_RING}`, 'disabled:opacity-50 disabled:pointer-events-none', // Only apply variant styles if no custom background/text color
|
|
116
|
+
!hasCustomBackground && !hasCustomTextColor && variantClasses, // Only apply background portion of variant if no custom background
|
|
117
|
+
hasCustomBackground && !hasCustomTextColor && 'hover:opacity-90', // Only apply size classes if not using custom size or custom padding
|
|
118
|
+
!hasCustomPadding && !hasCustomSize && sizeClasses, // Apply rounded-md unless custom border has radius
|
|
91
119
|
!customBorder?.radius && 'rounded-md');
|
|
92
120
|
// Build inline styles for the button
|
|
93
121
|
const buttonStyle = {};
|
|
@@ -119,7 +147,19 @@ export const ButtonConfig = {
|
|
|
119
147
|
if (transformStyles) {
|
|
120
148
|
Object.assign(buttonStyle, transformStyles);
|
|
121
149
|
}
|
|
122
|
-
const buttonElement = link ?
|
|
150
|
+
const buttonElement = link ? /*#__PURE__*/ _jsx("a", {
|
|
151
|
+
href: link,
|
|
152
|
+
target: openInNewTab === 'yes' ? '_blank' : undefined,
|
|
153
|
+
rel: openInNewTab === 'yes' ? 'noopener noreferrer' : undefined,
|
|
154
|
+
className: buttonClasses,
|
|
155
|
+
style: buttonStyle,
|
|
156
|
+
children: text
|
|
157
|
+
}) : /*#__PURE__*/ _jsx("button", {
|
|
158
|
+
type: "button",
|
|
159
|
+
className: buttonClasses,
|
|
160
|
+
style: buttonStyle,
|
|
161
|
+
children: text
|
|
162
|
+
});
|
|
123
163
|
const wrapperStyle = {};
|
|
124
164
|
const marginCSS = marginValueToCSS(margin);
|
|
125
165
|
if (marginCSS) {
|
|
@@ -127,7 +167,13 @@ export const ButtonConfig = {
|
|
|
127
167
|
}
|
|
128
168
|
// Get alignment value, defaulting to 'left'
|
|
129
169
|
const alignmentValue = alignment ?? 'left';
|
|
130
|
-
return
|
|
131
|
-
|
|
170
|
+
return /*#__PURE__*/ _jsx(AnimatedWrapper, {
|
|
171
|
+
animation: animation,
|
|
172
|
+
className: alignmentWrapperMap[alignmentValue] || alignmentWrapperMap.left,
|
|
173
|
+
style: wrapperStyle,
|
|
174
|
+
children: buttonElement
|
|
175
|
+
});
|
|
176
|
+
}
|
|
132
177
|
};
|
|
178
|
+
|
|
133
179
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/interactive/Button.tsx"],"names":[],"mappings":";AAOA,OAAO,EACL,kBAAkB,EAClB,EAAE,EACF,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GAMpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAkB,MAAM,6BAA6B,CAAA;AAClF,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAkB,MAAM,wBAAwB,CAAA;AACxG,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,aAAa,CAAA;AAkBpB,MAAM,UAAU,GAA2B;IACzC,EAAE,EAAE,kBAAkB;IACtB,OAAO,EAAE,WAAW;IACpB,EAAE,EAAE,mBAAmB;CACxB,CAAA;AAED,MAAM,mBAAmB,GAA2B;IAClD,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,aAAa;IACrB,KAAK,EAAE,YAAY;CACpB,CAAA;AAED,MAAM,YAAY,GAAgB;IAChC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,IAAI;IACV,YAAY,EAAE,IAAI;IAClB,MAAM,EAAE,IAAI;IACZ,qBAAqB,EAAE,IAAI;IAC3B,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,aAAa,EAAE,IAAI;CACpB,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAoB;IAC3C,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE;QACN,MAAM,EAAE,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC;QAC1C,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,aAAa;SACrB;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,UAAU;SAClB;QACD,OAAO,EAAE,kBAAkB;QAC3B,IAAI,EAAE,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACxC,YAAY,EAAE;YACZ,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,iBAAiB;YACxB,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;gBAC5B,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;aAC/B;SACF;QACD,qBAAqB,EAAE,sBAAsB,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAChG,eAAe,EAAE,sBAAsB,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC1F,YAAY,EAAE,iBAAiB,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAC3D,SAAS,EAAE,oBAAoB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACvD,SAAS,EAAE,oBAAoB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACvD,SAAS,EAAE,oBAAoB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACvD,8BAA8B;QAC9B,MAAM,EAAE,iBAAiB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC9C,aAAa,EAAE,kBAAkB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;KACxD;IACD,YAAY;IACZ,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,qBAAqB,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,EAAE;QACpK,wEAAwE;QACxE,MAAM,mBAAmB,GAAG,qBAAqB,EAAE,GAAG,CAAA;QACtD,MAAM,kBAAkB,GAAG,eAAe,EAAE,GAAG,CAAA;QAC/C,MAAM,gBAAgB,GAAG,aAAa,CAAA;QACtC,MAAM,aAAa,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAA;QAE7C,yDAAyD;QACzD,MAAM,cAAc,GAAG,iBAAiB,CAAC,uBAAuB,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;QAErF,8DAA8D;QAC9D,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QAEpD,+EAA+E;QAC/E,MAAM,aAAa,GAAG,EAAE,CACtB,uEAAuE,EACvE,uDAAuD,kBAAkB,EAAE,EAC3E,kDAAkD;QAClD,+DAA+D;QAC/D,CAAC,mBAAmB,IAAI,CAAC,kBAAkB,IAAI,cAAc;QAC7D,mEAAmE;QACnE,mBAAmB,IAAI,CAAC,kBAAkB,IAAI,kBAAkB;QAChE,qEAAqE;QACrE,CAAC,gBAAgB,IAAI,CAAC,aAAa,IAAI,WAAW;QAClD,mDAAmD;QACnD,CAAC,YAAY,EAAE,MAAM,IAAI,YAAY,CACtC,CAAA;QAED,qCAAqC;QACrC,MAAM,WAAW,GAAwB,EAAE,CAAA;QAE3C,gCAAgC;QAChC,IAAI,mBAAmB,EAAE,CAAC;YACxB,WAAW,CAAC,eAAe,GAAG,eAAe,CAAC,qBAAqB,CAAC,CAAA;QACtE,CAAC;QAED,0BAA0B;QAC1B,IAAI,kBAAkB,EAAE,CAAC;YACvB,WAAW,CAAC,KAAK,GAAG,eAAe,CAAC,eAAe,CAAC,CAAA;QACtD,CAAC;QAED,sBAAsB;QACtB,MAAM,YAAY,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAA;QACnD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;QAC1C,CAAC;QAED,6CAA6C;QAC7C,MAAM,gBAAgB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;QAC7C,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAA;QAC9C,CAAC;QAED,uDAAuD;QACvD,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAA;QACnD,IAAI,UAAU,EAAE,CAAC;YACf,WAAW,CAAC,OAAO,GAAG,UAAU,CAAA;QAClC,CAAC;QAED,kBAAkB;QAClB,MAAM,eAAe,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAA;QACtD,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,CAAA;QAC7C,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAC3B,YACE,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACrD,GAAG,EAAE,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,EAC/D,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,WAAW,YAEjB,IAAI,GACH,CACL,CAAC,CAAC,CAAC,CACF,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,YAC/D,IAAI,GACE,CACV,CAAA;QAED,MAAM,YAAY,GAAwB,EAAE,CAAA;QAC5C,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAC1C,IAAI,SAAS,EAAE,CAAC;YACd,YAAY,CAAC,MAAM,GAAG,SAAS,CAAA;QACjC,CAAC;QAED,4CAA4C;QAC5C,MAAM,cAAc,GAAG,SAAS,IAAI,MAAM,CAAA;QAE1C,OAAO,CACL,KAAC,eAAe,IACd,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,mBAAmB,CAAC,cAAc,CAAC,IAAI,mBAAmB,CAAC,IAAI,EAC1E,KAAK,EAAE,YAAY,YAElB,aAAa,GACE,CACnB,CAAA;IACH,CAAC;CACF,CAAA"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/interactive/Button.tsx"],"sourcesContent":["/**\n * Button Component - Puck Configuration\n *\n * CTA button with customizable styling and link support.\n */\n\nimport type { ComponentConfig } from '@puckeditor/core'\nimport {\n buttonVariantField,\n cn,\n marginValueToCSS,\n paddingValueToCSS,\n colorValueToCSS,\n borderValueToCSS,\n transformValueToCSS,\n type PaddingValue,\n type ColorValue,\n type BorderValue,\n type AnimationValue,\n type TransformValue,\n} from '../../fields/shared.js'\nimport { AnimatedWrapper } from '../AnimatedWrapper.js'\nimport { createMarginField } from '../../fields/MarginField.js'\nimport { createColorPickerField } from '../../fields/ColorPickerField.js'\nimport { createBorderField } from '../../fields/BorderField.js'\nimport { createPaddingField } from '../../fields/PaddingField.js'\nimport { createAlignmentField, type Alignment } from '../../fields/AlignmentField.js'\nimport { createSizeField, sizeValueToCSS, getSizeClasses, type SizeValue } from '../../fields/SizeField.js'\nimport { createAnimationField } from '../../fields/AnimationField.js'\nimport { createTransformField } from '../../fields/TransformField.js'\nimport { createResetField } from '../../fields/ResetField.js'\nimport {\n DEFAULT_BUTTON_VARIANTS,\n DEFAULT_FOCUS_RING,\n getVariantClasses,\n} from '../../theme/index.js'\n\nexport interface ButtonProps {\n text: string\n link: string\n variant: string\n size: SizeValue | null\n openInNewTab: string\n margin: PaddingValue | null\n customBackgroundColor: ColorValue | null\n customTextColor: ColorValue | null\n customBorder: BorderValue | null\n alignment: Alignment | null\n transform: TransformValue | null\n animation: AnimationValue | null\n customPadding: PaddingValue | null\n}\n\nconst sizeStyles: Record<string, string> = {\n sm: 'h-8 px-3 text-sm',\n default: 'h-10 px-4',\n lg: 'h-12 px-8 text-lg',\n}\n\nconst alignmentWrapperMap: Record<string, string> = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n}\n\nconst defaultProps: ButtonProps = {\n text: 'Click Me',\n link: '',\n variant: 'default',\n size: null,\n openInNewTab: 'no',\n margin: null,\n customBackgroundColor: null,\n customTextColor: null,\n customBorder: null,\n alignment: null,\n transform: null,\n animation: null,\n customPadding: null,\n}\n\nexport const ButtonConfig: ComponentConfig = {\n label: 'Button',\n fields: {\n _reset: createResetField({ defaultProps }),\n text: {\n type: 'text',\n label: 'Button Text',\n },\n link: {\n type: 'text',\n label: 'Link URL',\n },\n variant: buttonVariantField,\n size: createSizeField({ label: 'Size' }),\n openInNewTab: {\n type: 'radio',\n label: 'Open in New Tab',\n options: [\n { label: 'No', value: 'no' },\n { label: 'Yes', value: 'yes' },\n ],\n },\n customBackgroundColor: createColorPickerField({ label: 'Custom Background', showOpacity: true }),\n customTextColor: createColorPickerField({ label: 'Custom Text Color', showOpacity: true }),\n customBorder: createBorderField({ label: 'Custom Border' }),\n alignment: createAlignmentField({ label: 'Alignment' }),\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: ({ text, link, variant, size, openInNewTab, alignment, margin, customBackgroundColor, customTextColor, customBorder, transform, animation, customPadding }) => {\n // Determine if custom styles should override preset variant/size styles\n const hasCustomBackground = customBackgroundColor?.hex\n const hasCustomTextColor = customTextColor?.hex\n const hasCustomPadding = customPadding\n const hasCustomSize = size?.mode === 'custom'\n\n // Get variant classes from defaults (SSR-safe, no hooks)\n const variantClasses = getVariantClasses(DEFAULT_BUTTON_VARIANTS, variant, 'default')\n\n // Get size classes for preset modes, or empty for custom mode\n const sizeClasses = getSizeClasses(size, sizeStyles)\n\n // Build button classes - exclude variant/size classes if custom styles are set\n const buttonClasses = cn(\n 'inline-flex items-center justify-center font-medium transition-colors',\n `focus:outline-none focus:ring-2 focus:ring-offset-2 ${DEFAULT_FOCUS_RING}`,\n 'disabled:opacity-50 disabled:pointer-events-none',\n // Only apply variant styles if no custom background/text color\n !hasCustomBackground && !hasCustomTextColor && variantClasses,\n // Only apply background portion of variant if no custom background\n hasCustomBackground && !hasCustomTextColor && 'hover:opacity-90',\n // Only apply size classes if not using custom size or custom padding\n !hasCustomPadding && !hasCustomSize && sizeClasses,\n // Apply rounded-md unless custom border has radius\n !customBorder?.radius && 'rounded-md'\n )\n\n // Build inline styles for the button\n const buttonStyle: React.CSSProperties = {}\n\n // Apply custom background color\n if (hasCustomBackground) {\n buttonStyle.backgroundColor = colorValueToCSS(customBackgroundColor)\n }\n\n // Apply custom text color\n if (hasCustomTextColor) {\n buttonStyle.color = colorValueToCSS(customTextColor)\n }\n\n // Apply custom border\n const borderStyles = borderValueToCSS(customBorder)\n if (borderStyles) {\n Object.assign(buttonStyle, borderStyles)\n }\n\n // Apply custom size (only if mode is custom)\n const customSizeStyles = sizeValueToCSS(size)\n if (customSizeStyles) {\n Object.assign(buttonStyle, customSizeStyles)\n }\n\n // Apply custom padding (overrides size padding if set)\n const paddingCSS = paddingValueToCSS(customPadding)\n if (paddingCSS) {\n buttonStyle.padding = paddingCSS\n }\n\n // Apply transform\n const transformStyles = transformValueToCSS(transform)\n if (transformStyles) {\n Object.assign(buttonStyle, transformStyles)\n }\n\n const buttonElement = link ? (\n <a\n href={link}\n target={openInNewTab === 'yes' ? '_blank' : undefined}\n rel={openInNewTab === 'yes' ? 'noopener noreferrer' : undefined}\n className={buttonClasses}\n style={buttonStyle}\n >\n {text}\n </a>\n ) : (\n <button type=\"button\" className={buttonClasses} style={buttonStyle}>\n {text}\n </button>\n )\n\n const wrapperStyle: React.CSSProperties = {}\n const marginCSS = marginValueToCSS(margin)\n if (marginCSS) {\n wrapperStyle.margin = marginCSS\n }\n\n // Get alignment value, defaulting to 'left'\n const alignmentValue = alignment ?? 'left'\n\n return (\n <AnimatedWrapper\n animation={animation}\n className={alignmentWrapperMap[alignmentValue] || alignmentWrapperMap.left}\n style={wrapperStyle}\n >\n {buttonElement}\n </AnimatedWrapper>\n )\n },\n}\n"],"names":["buttonVariantField","cn","marginValueToCSS","paddingValueToCSS","colorValueToCSS","borderValueToCSS","transformValueToCSS","AnimatedWrapper","createMarginField","createColorPickerField","createBorderField","createPaddingField","createAlignmentField","createSizeField","sizeValueToCSS","getSizeClasses","createAnimationField","createTransformField","createResetField","DEFAULT_BUTTON_VARIANTS","DEFAULT_FOCUS_RING","getVariantClasses","sizeStyles","sm","default","lg","alignmentWrapperMap","left","center","right","defaultProps","text","link","variant","size","openInNewTab","margin","customBackgroundColor","customTextColor","customBorder","alignment","transform","animation","customPadding","ButtonConfig","label","fields","_reset","type","options","value","showOpacity","render","hasCustomBackground","hex","hasCustomTextColor","hasCustomPadding","hasCustomSize","mode","variantClasses","sizeClasses","buttonClasses","radius","buttonStyle","backgroundColor","color","borderStyles","Object","assign","customSizeStyles","paddingCSS","padding","transformStyles","buttonElement","a","href","target","undefined","rel","className","style","button","wrapperStyle","marginCSS","alignmentValue"],"mappings":"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"}
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* Safe for use in server components.
|
|
7
7
|
*/
|
|
8
8
|
import type { ComponentConfig } from '@puckeditor/core';
|
|
9
|
-
import { type PaddingValue, type ColorValue, type BorderValue, type AnimationValue, type TransformValue, type SizeValue } from '../../fields/shared';
|
|
10
|
-
import type { Alignment } from '../../fields/AlignmentField';
|
|
9
|
+
import { type PaddingValue, type ColorValue, type BorderValue, type AnimationValue, type TransformValue, type SizeValue } from '../../fields/shared.js';
|
|
10
|
+
import type { Alignment } from '../../fields/AlignmentField.js';
|
|
11
11
|
export interface ButtonProps {
|
|
12
12
|
text: string;
|
|
13
13
|
link: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.server.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Button.server.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EASL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,
|
|
1
|
+
{"version":3,"file":"Button.server.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Button.server.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EASL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,wBAAwB,CAAA;AAE/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAI/D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,qBAAqB,EAAE,UAAU,GAAG,IAAI,CAAA;IACxC,eAAe,EAAE,UAAU,GAAG,IAAI,CAAA;IAClC,YAAY,EAAE,WAAW,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAA;CACnC;AA8BD,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,WAAW,CAuGrD,CAAA"}
|
|
@@ -1,17 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Button Component - Server-safe Puck Configuration
|
|
3
|
+
*
|
|
4
|
+
* CTA button with customizable styling and link support.
|
|
5
|
+
* This version contains only the render function and types - no fields.
|
|
6
|
+
* Safe for use in server components.
|
|
7
|
+
*/ import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
import { cn, marginValueToCSS, paddingValueToCSS, colorValueToCSS, borderValueToCSS, transformValueToCSS, sizeValueToCSS, getSizeClasses } from '../../fields/shared.js';
|
|
9
|
+
import { AnimatedWrapper } from '../AnimatedWrapper.js';
|
|
10
|
+
import { DEFAULT_BUTTON_VARIANTS, DEFAULT_FOCUS_RING } from '../../theme/defaults.js';
|
|
11
|
+
import { getVariantClasses } from '../../theme/utils.js';
|
|
6
12
|
const sizeStyles = {
|
|
7
13
|
sm: 'h-8 px-3 text-sm',
|
|
8
14
|
default: 'h-10 px-4',
|
|
9
|
-
lg: 'h-12 px-8 text-lg'
|
|
15
|
+
lg: 'h-12 px-8 text-lg'
|
|
10
16
|
};
|
|
11
17
|
const alignmentWrapperMap = {
|
|
12
18
|
left: 'text-left',
|
|
13
19
|
center: 'text-center',
|
|
14
|
-
right: 'text-right'
|
|
20
|
+
right: 'text-right'
|
|
15
21
|
};
|
|
16
22
|
const defaultProps = {
|
|
17
23
|
text: 'Click Me',
|
|
@@ -26,12 +32,12 @@ const defaultProps = {
|
|
|
26
32
|
alignment: null,
|
|
27
33
|
transform: null,
|
|
28
34
|
animation: null,
|
|
29
|
-
customPadding: null
|
|
35
|
+
customPadding: null
|
|
30
36
|
};
|
|
31
37
|
export const ButtonConfig = {
|
|
32
38
|
label: 'Button',
|
|
33
39
|
defaultProps,
|
|
34
|
-
render: ({ text, link, variant, size, openInNewTab, alignment, margin, customBackgroundColor, customTextColor, customBorder, transform, animation, customPadding })
|
|
40
|
+
render: ({ text, link, variant, size, openInNewTab, alignment, margin, customBackgroundColor, customTextColor, customBorder, transform, animation, customPadding })=>{
|
|
35
41
|
// Determine if custom styles should override preset variant/size styles
|
|
36
42
|
const hasCustomBackground = customBackgroundColor?.hex;
|
|
37
43
|
const hasCustomTextColor = customTextColor?.hex;
|
|
@@ -42,14 +48,10 @@ export const ButtonConfig = {
|
|
|
42
48
|
// Get size classes for preset modes, or empty for custom mode
|
|
43
49
|
const sizeClasses = getSizeClasses(size, sizeStyles);
|
|
44
50
|
// Build button classes - exclude variant/size classes if custom styles are set
|
|
45
|
-
const buttonClasses = cn('inline-flex items-center justify-center font-medium transition-colors', `focus:outline-none focus:ring-2 focus:ring-offset-2 ${DEFAULT_FOCUS_RING}`, 'disabled:opacity-50 disabled:pointer-events-none',
|
|
46
|
-
// Only apply variant
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
hasCustomBackground && !hasCustomTextColor && 'hover:opacity-90',
|
|
50
|
-
// Only apply size classes if not using custom size or custom padding
|
|
51
|
-
!hasCustomPadding && !hasCustomSize && sizeClasses,
|
|
52
|
-
// Apply rounded-md unless custom border has radius
|
|
51
|
+
const buttonClasses = cn('inline-flex items-center justify-center font-medium transition-colors', `focus:outline-none focus:ring-2 focus:ring-offset-2 ${DEFAULT_FOCUS_RING}`, 'disabled:opacity-50 disabled:pointer-events-none', // Only apply variant styles if no custom background/text color
|
|
52
|
+
!hasCustomBackground && !hasCustomTextColor && variantClasses, // Only apply background portion of variant if no custom background
|
|
53
|
+
hasCustomBackground && !hasCustomTextColor && 'hover:opacity-90', // Only apply size classes if not using custom size or custom padding
|
|
54
|
+
!hasCustomPadding && !hasCustomSize && sizeClasses, // Apply rounded-md unless custom border has radius
|
|
53
55
|
!customBorder?.radius && 'rounded-md');
|
|
54
56
|
// Build inline styles for the button
|
|
55
57
|
const buttonStyle = {};
|
|
@@ -81,7 +83,19 @@ export const ButtonConfig = {
|
|
|
81
83
|
if (transformStyles) {
|
|
82
84
|
Object.assign(buttonStyle, transformStyles);
|
|
83
85
|
}
|
|
84
|
-
const buttonElement = link ?
|
|
86
|
+
const buttonElement = link ? /*#__PURE__*/ _jsx("a", {
|
|
87
|
+
href: link,
|
|
88
|
+
target: openInNewTab === 'yes' ? '_blank' : undefined,
|
|
89
|
+
rel: openInNewTab === 'yes' ? 'noopener noreferrer' : undefined,
|
|
90
|
+
className: buttonClasses,
|
|
91
|
+
style: buttonStyle,
|
|
92
|
+
children: text
|
|
93
|
+
}) : /*#__PURE__*/ _jsx("button", {
|
|
94
|
+
type: "button",
|
|
95
|
+
className: buttonClasses,
|
|
96
|
+
style: buttonStyle,
|
|
97
|
+
children: text
|
|
98
|
+
});
|
|
85
99
|
const wrapperStyle = {};
|
|
86
100
|
const marginCSS = marginValueToCSS(margin);
|
|
87
101
|
if (marginCSS) {
|
|
@@ -89,7 +103,13 @@ export const ButtonConfig = {
|
|
|
89
103
|
}
|
|
90
104
|
// Get alignment value, defaulting to 'left'
|
|
91
105
|
const alignmentValue = alignment ?? 'left';
|
|
92
|
-
return
|
|
93
|
-
|
|
106
|
+
return /*#__PURE__*/ _jsx(AnimatedWrapper, {
|
|
107
|
+
animation: animation,
|
|
108
|
+
className: alignmentWrapperMap[alignmentValue] || alignmentWrapperMap.left,
|
|
109
|
+
style: wrapperStyle,
|
|
110
|
+
children: buttonElement
|
|
111
|
+
});
|
|
112
|
+
}
|
|
94
113
|
};
|
|
114
|
+
|
|
95
115
|
//# sourceMappingURL=Button.server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/components/interactive/Button.server.tsx"],"sourcesContent":["/**\n * Button Component - Server-safe Puck Configuration\n *\n * CTA button with customizable styling and link support.\n * This version contains only the render function and types - no fields.\n * Safe for use in server components.\n */\n\nimport type { ComponentConfig } from '@puckeditor/core'\nimport {\n cn,\n marginValueToCSS,\n paddingValueToCSS,\n colorValueToCSS,\n borderValueToCSS,\n transformValueToCSS,\n sizeValueToCSS,\n getSizeClasses,\n type PaddingValue,\n type ColorValue,\n type BorderValue,\n type AnimationValue,\n type TransformValue,\n type SizeValue,\n} from '../../fields/shared.js'\nimport { AnimatedWrapper } from '../AnimatedWrapper.js'\nimport type { Alignment } from '../../fields/AlignmentField.js'\nimport { DEFAULT_BUTTON_VARIANTS, DEFAULT_FOCUS_RING } from '../../theme/defaults.js'\nimport { getVariantClasses } from '../../theme/utils.js'\n\nexport interface ButtonProps {\n text: string\n link: string\n variant: string\n size: SizeValue | null\n openInNewTab: string\n margin: PaddingValue | null\n customBackgroundColor: ColorValue | null\n customTextColor: ColorValue | null\n customBorder: BorderValue | null\n alignment: Alignment | null\n transform: TransformValue | null\n animation: AnimationValue | null\n customPadding: PaddingValue | null\n}\n\nconst sizeStyles: Record<string, string> = {\n sm: 'h-8 px-3 text-sm',\n default: 'h-10 px-4',\n lg: 'h-12 px-8 text-lg',\n}\n\nconst alignmentWrapperMap: Record<string, string> = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n}\n\nconst defaultProps: ButtonProps = {\n text: 'Click Me',\n link: '',\n variant: 'default',\n size: null,\n openInNewTab: 'no',\n margin: null,\n customBackgroundColor: null,\n customTextColor: null,\n customBorder: null,\n alignment: null,\n transform: null,\n animation: null,\n customPadding: null,\n}\n\nexport const ButtonConfig: ComponentConfig<ButtonProps> = {\n label: 'Button',\n defaultProps,\n render: ({ text, link, variant, size, openInNewTab, alignment, margin, customBackgroundColor, customTextColor, customBorder, transform, animation, customPadding }) => {\n // Determine if custom styles should override preset variant/size styles\n const hasCustomBackground = customBackgroundColor?.hex\n const hasCustomTextColor = customTextColor?.hex\n const hasCustomPadding = customPadding\n const hasCustomSize = size?.mode === 'custom'\n\n // Get variant classes from defaults (SSR-safe, no hooks)\n const variantClasses = getVariantClasses(DEFAULT_BUTTON_VARIANTS, variant, 'default')\n\n // Get size classes for preset modes, or empty for custom mode\n const sizeClasses = getSizeClasses(size, sizeStyles)\n\n // Build button classes - exclude variant/size classes if custom styles are set\n const buttonClasses = cn(\n 'inline-flex items-center justify-center font-medium transition-colors',\n `focus:outline-none focus:ring-2 focus:ring-offset-2 ${DEFAULT_FOCUS_RING}`,\n 'disabled:opacity-50 disabled:pointer-events-none',\n // Only apply variant styles if no custom background/text color\n !hasCustomBackground && !hasCustomTextColor && variantClasses,\n // Only apply background portion of variant if no custom background\n hasCustomBackground && !hasCustomTextColor && 'hover:opacity-90',\n // Only apply size classes if not using custom size or custom padding\n !hasCustomPadding && !hasCustomSize && sizeClasses,\n // Apply rounded-md unless custom border has radius\n !customBorder?.radius && 'rounded-md'\n )\n\n // Build inline styles for the button\n const buttonStyle: React.CSSProperties = {}\n\n // Apply custom background color\n if (hasCustomBackground) {\n buttonStyle.backgroundColor = colorValueToCSS(customBackgroundColor)\n }\n\n // Apply custom text color\n if (hasCustomTextColor) {\n buttonStyle.color = colorValueToCSS(customTextColor)\n }\n\n // Apply custom border\n const borderStyles = borderValueToCSS(customBorder)\n if (borderStyles) {\n Object.assign(buttonStyle, borderStyles)\n }\n\n // Apply custom size (only if mode is custom)\n const customSizeStyles = sizeValueToCSS(size)\n if (customSizeStyles) {\n Object.assign(buttonStyle, customSizeStyles)\n }\n\n // Apply custom padding (overrides size padding if set)\n const paddingCSS = paddingValueToCSS(customPadding)\n if (paddingCSS) {\n buttonStyle.padding = paddingCSS\n }\n\n // Apply transform\n const transformStyles = transformValueToCSS(transform)\n if (transformStyles) {\n Object.assign(buttonStyle, transformStyles)\n }\n\n const buttonElement = link ? (\n <a\n href={link}\n target={openInNewTab === 'yes' ? '_blank' : undefined}\n rel={openInNewTab === 'yes' ? 'noopener noreferrer' : undefined}\n className={buttonClasses}\n style={buttonStyle}\n >\n {text}\n </a>\n ) : (\n <button type=\"button\" className={buttonClasses} style={buttonStyle}>\n {text}\n </button>\n )\n\n const wrapperStyle: React.CSSProperties = {}\n const marginCSS = marginValueToCSS(margin)\n if (marginCSS) {\n wrapperStyle.margin = marginCSS\n }\n\n // Get alignment value, defaulting to 'left'\n const alignmentValue = alignment ?? 'left'\n\n return (\n <AnimatedWrapper\n animation={animation}\n className={alignmentWrapperMap[alignmentValue] || alignmentWrapperMap.left}\n style={wrapperStyle}\n >\n {buttonElement}\n </AnimatedWrapper>\n )\n },\n}\n"],"names":["cn","marginValueToCSS","paddingValueToCSS","colorValueToCSS","borderValueToCSS","transformValueToCSS","sizeValueToCSS","getSizeClasses","AnimatedWrapper","DEFAULT_BUTTON_VARIANTS","DEFAULT_FOCUS_RING","getVariantClasses","sizeStyles","sm","default","lg","alignmentWrapperMap","left","center","right","defaultProps","text","link","variant","size","openInNewTab","margin","customBackgroundColor","customTextColor","customBorder","alignment","transform","animation","customPadding","ButtonConfig","label","render","hasCustomBackground","hex","hasCustomTextColor","hasCustomPadding","hasCustomSize","mode","variantClasses","sizeClasses","buttonClasses","radius","buttonStyle","backgroundColor","color","borderStyles","Object","assign","customSizeStyles","paddingCSS","padding","transformStyles","buttonElement","a","href","target","undefined","rel","className","style","button","type","wrapperStyle","marginCSS","alignmentValue"],"mappings":"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"}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* Content card with image, heading, and text.
|
|
5
5
|
*/
|
|
6
6
|
import type { ComponentConfig } from '@puckeditor/core';
|
|
7
|
-
import { type PaddingValue, type BackgroundValue, type BorderValue, type DimensionsValue, type AnimationValue, type TransformValue } from '../../fields/shared';
|
|
8
|
-
import { type Alignment } from '../../fields/AlignmentField';
|
|
9
|
-
import type { MediaReference } from '../../fields/MediaField';
|
|
7
|
+
import { type PaddingValue, type BackgroundValue, type BorderValue, type DimensionsValue, type AnimationValue, type TransformValue } from '../../fields/shared.js';
|
|
8
|
+
import { type Alignment } from '../../fields/AlignmentField.js';
|
|
9
|
+
import type { MediaReference } from '../../fields/MediaField.js';
|
|
10
10
|
export interface CardProps {
|
|
11
11
|
image: MediaReference | null;
|
|
12
12
|
heading: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Card.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAUL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,
|
|
1
|
+
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/components/interactive/Card.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAUL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAA;AAQ/B,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAGrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAYhE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,cAAc,GAAG,IAAI,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,OAAO,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;IAClC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;IAC1B,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;IAClC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAA;IAChC,cAAc,EAAE,YAAY,GAAG,IAAI,CAAA;CACpC;AAmBD,eAAO,MAAM,UAAU,EAAE,eAwJxB,CAAA"}
|