@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PuckEditorImpl.client.js","sourceRoot":"","sources":["../../src/editor/PuckEditorImpl.client.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/editor/PuckEditorImpl.client.tsx"],"sourcesContent":["'use client'\n\nimport { useState, useCallback, useMemo, useRef, type ReactNode, createElement } from 'react'\nimport { useRouter } from 'next/navigation'\nimport { Puck, type Config as PuckConfig, type Data, type Plugin as PuckPlugin, type Overrides as PuckOverrides } from '@puckeditor/core'\nimport '@puckeditor/core/puck.css'\nimport headingAnalyzer from '@puckeditor/plugin-heading-analyzer'\nimport '@puckeditor/plugin-heading-analyzer/dist/index.css'\nimport { createAiPlugin } from '@puckeditor/plugin-ai'\nimport '@puckeditor/plugin-ai/styles.css'\nimport './ai-plugin-overrides.css'\n\nimport { Maximize2 } from 'lucide-react'\nimport { HeaderActions } from './components/HeaderActions.js'\nimport { IframeWrapper, type LayoutStyle } from './components/IframeWrapper.js'\nimport { PreviewModal } from './components/PreviewModal.js'\nimport { DarkModeStyles } from './components/DarkModeStyles.js'\nimport { useUnsavedChanges } from './hooks/useUnsavedChanges.js'\nimport { createVersionHistoryPlugin } from './plugins/versionHistoryPlugin.js'\nimport { ThemeProvider, type ThemeConfig } from '../theme/index.js'\nimport { usePuckConfig } from '../views/PuckConfigContext.js'\nimport type { LayoutDefinition } from '../layouts/index.js'\nimport type { AiExamplePrompt } from '../ai/types.js'\nimport { useAiPrompts } from '../ai/hooks/useAiPrompts.js'\n\n/**\n * Default viewports for responsive preview\n */\nconst DEFAULT_VIEWPORTS = [\n {\n width: 360,\n height: 'auto' as const,\n label: 'Mobile',\n icon: 'Smartphone' as const,\n },\n {\n width: 768,\n height: 'auto' as const,\n label: 'Tablet',\n icon: 'Tablet' as const,\n },\n {\n width: 1280,\n height: 'auto' as const,\n label: 'Desktop',\n icon: 'Monitor' as const,\n },\n {\n width: '100%' as const,\n height: 'auto' as const,\n label: 'Full Width',\n icon: createElement(Maximize2, { size: 16 }),\n },\n]\n\n/**\n * Extended Data type to include our root props\n */\ninterface PuckDataWithMeta extends Data {\n root: {\n props?: {\n title?: string\n slug?: string\n pageLayout?: string\n // Page-tree integration fields\n folder?: string | null\n pageSegment?: string\n // Homepage field\n isHomepage?: boolean\n [key: string]: unknown\n }\n }\n}\n\nexport interface PuckEditorImplProps {\n /**\n * Page ID for save operations\n */\n pageId: string\n /**\n * Initial Puck data to load\n */\n initialData: Data\n /**\n * Puck configuration with components and settings\n */\n config: PuckConfig\n /**\n * Page title for display\n */\n pageTitle: string\n /**\n * Page slug for preview URL\n */\n pageSlug: string\n /**\n * API endpoint for save operations\n * @default '/api/puck/pages'\n */\n apiEndpoint?: string\n /**\n * URL to navigate to when back button is clicked\n */\n backUrl?: string\n /**\n * Preview URL or function to generate preview URL from slug\n */\n previewUrl?: string | ((slug: string) => string)\n /**\n * Whether to enable viewport switching\n * @default true\n */\n enableViewports?: boolean\n /**\n * Additional Puck plugins to use.\n * The headingAnalyzer plugin is included by default.\n * Set to `false` to disable all default plugins.\n */\n plugins?: PuckPlugin[] | false\n /**\n * Layout definitions for the editor preview.\n * The editor reads header, footer, editorBackground, and editorDarkMode\n * from the layout definition matching the selected pageLayout.\n */\n layouts?: LayoutDefinition[]\n /**\n * Layout style configurations for theme-aware preview\n * @deprecated Use `layouts` prop instead. layoutStyles will be removed in a future version.\n */\n layoutStyles?: Record<string, LayoutStyle>\n /**\n * Key in root.props to read layout value from\n * @default 'pageLayout'\n */\n layoutKey?: string\n /**\n * Custom actions to render at the start of the header\n */\n headerActionsStart?: ReactNode\n /**\n * Custom actions to render at the end of the header\n */\n headerActionsEnd?: ReactNode\n /**\n * Puck overrides to merge with defaults\n */\n overrides?: Partial<PuckOverrides>\n /**\n * Callback on successful save\n */\n onSaveSuccess?: (data: Data) => void\n /**\n * Callback on save error\n */\n onSaveError?: (error: Error) => void\n /**\n * Callback when data changes\n */\n onChange?: (data: Data) => void\n /**\n * Initial document status from Payload (_status field)\n * Used to show draft/published badge in the header\n */\n initialStatus?: 'draft' | 'published'\n\n /**\n * Theme configuration for customizing component styles\n * When provided, components will use themed styles\n */\n theme?: ThemeConfig\n\n /**\n * Stylesheet URLs to inject into the editor iframe.\n * Merged with stylesheets from PuckConfigProvider context.\n */\n editorStylesheets?: string[]\n /**\n * Raw CSS to inject into the editor iframe.\n * Merged with CSS from PuckConfigProvider context.\n */\n editorCss?: string\n\n // AI integration props\n\n /**\n * Enable AI features in the editor.\n * When true, adds the AI chat plugin.\n * @default false\n */\n enableAi?: boolean\n\n /**\n * AI plugin configuration options.\n * Only used when enableAi is true.\n */\n aiOptions?: {\n host?: string\n examplePrompts?: AiExamplePrompt[]\n }\n\n /**\n * Whether the puck-ai-prompts collection is enabled.\n * When true, adds the prompt editor plugin to the plugin rail.\n * @default false\n */\n hasPromptsCollection?: boolean\n\n /**\n * Whether the puck-ai-context collection is enabled.\n * When true, adds the context editor plugin to the plugin rail.\n * @default false\n */\n hasContextCollection?: boolean\n\n /**\n * Enable experimental full screen canvas mode.\n * When enabled, the canvas takes up the full viewport with a floating viewport switcher.\n * @default false\n */\n experimentalFullScreenCanvas?: boolean\n\n // Dark mode props\n\n /**\n * Auto-detect dark mode from PayloadCMS admin.\n * When true (default), dark mode CSS is automatically injected when Payload is in dark mode.\n * Set to false to disable automatic dark mode detection.\n * @default true\n */\n autoDetectDarkMode?: boolean\n\n /**\n * Show the preview dark mode toggle near the viewport switcher.\n * Allows toggling the preview iframe between light/dark modes independently.\n * @default true\n */\n showPreviewDarkModeToggle?: boolean\n\n /**\n * Initial state for the preview dark mode toggle.\n * Only used when showPreviewDarkModeToggle is true.\n * @default false (light mode)\n */\n initialPreviewDarkMode?: boolean\n}\n\n/**\n * Full-featured Puck editor implementation\n *\n * Provides a complete editing experience with:\n * - Save draft and publish functionality\n * - Unsaved changes tracking with beforeunload warning\n * - Interactive/Edit mode toggle\n * - Theme-aware preview backgrounds\n * - Responsive viewport switching\n * - Custom header actions\n *\n * Internal implementation component - use PuckEditor instead.\n * @internal\n */\nexport function PuckEditorImpl({\n pageId,\n initialData,\n config,\n pageTitle,\n pageSlug,\n apiEndpoint = '/api/puck/pages',\n backUrl,\n previewUrl,\n enableViewports = true,\n plugins,\n layouts,\n layoutStyles,\n layoutKey = 'pageLayout',\n headerActionsStart,\n headerActionsEnd,\n overrides: customOverrides,\n onSaveSuccess,\n onSaveError,\n onChange: onChangeProp,\n initialStatus,\n theme,\n editorStylesheets: editorStylesheetsProp,\n editorCss: editorCssProp,\n enableAi = false,\n aiOptions,\n hasPromptsCollection = false,\n hasContextCollection = false,\n experimentalFullScreenCanvas = false,\n autoDetectDarkMode = true,\n showPreviewDarkModeToggle = true,\n initialPreviewDarkMode = false,\n}: PuckEditorImplProps) {\n const router = useRouter()\n const [isSaving, setIsSaving] = useState(false)\n const [lastSaved, setLastSaved] = useState<Date | null>(null)\n const [saveError, setSaveError] = useState<string | null>(null)\n const [documentStatus, setDocumentStatus] = useState<'draft' | 'published' | undefined>(initialStatus)\n // Track if document was ever published (initially or during this session)\n const [wasPublished, setWasPublished] = useState(initialStatus === 'published')\n const { hasUnsavedChanges, markClean, markDirty } = useUnsavedChanges()\n\n // Preview modal state\n const [isPreviewOpen, setIsPreviewOpen] = useState(false)\n\n // Preview dark mode state (for toggling dark/light in preview iframe)\n const [previewDarkMode, setPreviewDarkMode] = useState(initialPreviewDarkMode)\n\n // Inject slug into initial data if not present\n const dataWithSlug = useMemo<PuckDataWithMeta>(() => {\n const data = initialData as PuckDataWithMeta\n return {\n ...data,\n root: {\n ...data.root,\n props: {\n ...data.root?.props,\n slug: data.root?.props?.slug || pageSlug,\n },\n },\n }\n }, [initialData, pageSlug])\n\n // Use a ref to track latest data without causing re-renders\n const latestDataRef = useRef<PuckDataWithMeta>(dataWithSlug)\n\n // Get editor stylesheets from PuckConfigProvider context (as fallback)\n const { editorStylesheets: contextStylesheets, editorCss: contextCss } = usePuckConfig()\n\n // Props take precedence over context\n const baseStylesheets = editorStylesheetsProp || contextStylesheets\n const baseCss = editorCssProp || contextCss\n\n // Get current layout to merge layout-specific stylesheets\n const currentLayoutValue = dataWithSlug.root?.props?.pageLayout || 'default'\n const currentLayout = useMemo(() => {\n return layouts?.find((l) => l.value === currentLayoutValue)\n }, [layouts, currentLayoutValue])\n\n // Merge base stylesheets (props/context) + layout-specific settings\n const mergedEditorStylesheets = useMemo(() => {\n const fromBase = baseStylesheets || []\n const fromLayout = currentLayout?.editorStylesheets || []\n return [...fromBase, ...fromLayout]\n }, [baseStylesheets, currentLayout?.editorStylesheets])\n\n // Merge base CSS (props/context) + layout-specific settings\n const mergedEditorCss = useMemo(() => {\n const parts = [baseCss, currentLayout?.editorCss].filter(Boolean) as string[]\n return parts.length > 0 ? parts.join('\\n') : undefined\n }, [baseCss, currentLayout?.editorCss])\n\n // Helper to make save request with optional homepage swap\n const makeSaveRequest = useCallback(\n async (\n data: Data,\n options: { publish?: boolean; swapHomepage?: boolean } = {}\n ): Promise<Response> => {\n const typedData = data as PuckDataWithMeta\n return fetch(`${apiEndpoint}/${pageId}`, {\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n puckData: data,\n title: typedData.root?.props?.title || pageTitle,\n slug: typedData.root?.props?.slug || pageSlug,\n isHomepage: typedData.root?.props?.isHomepage,\n swapHomepage: options.swapHomepage,\n // Page-tree integration: include folder and pageSegment if present\n folder: typedData.root?.props?.folder,\n pageSegment: typedData.root?.props?.pageSegment,\n ...(options.publish ? { _status: 'published' } : { draft: true }),\n }),\n })\n },\n [apiEndpoint, pageId, pageTitle, pageSlug]\n )\n\n // Handle homepage conflict - prompt user to swap\n const handleHomepageConflict = useCallback(\n async (\n existingHomepage: { id: string; title: string; slug: string },\n data: Data,\n publish: boolean\n ): Promise<boolean> => {\n const confirmed = confirm(\n `\"${existingHomepage.title}\" (/${existingHomepage.slug}) is currently set as the homepage.\\n\\nDo you want to make this page the homepage instead?`\n )\n if (!confirmed) {\n return false\n }\n\n // Retry with swapHomepage flag\n const response = await makeSaveRequest(data, { publish, swapHomepage: true })\n if (!response.ok) {\n const errorData = await response.json()\n throw new Error(errorData.error || errorData.message || 'Failed to swap homepage')\n }\n return true\n },\n [makeSaveRequest]\n )\n\n // Handle save (as draft)\n const handleSave = useCallback(\n async (data: Data) => {\n setIsSaving(true)\n const typedData = data as PuckDataWithMeta\n try {\n const response = await makeSaveRequest(data, { publish: false })\n\n if (!response.ok) {\n const errorData = await response.json()\n\n // Check for homepage conflict error\n if (errorData.data?.existingHomepage) {\n const swapped = await handleHomepageConflict(\n errorData.data.existingHomepage,\n data,\n false\n )\n if (!swapped) {\n // User cancelled - don't show error, just return\n setIsSaving(false)\n return\n }\n // Successfully swapped - continue to success handling below\n } else {\n const errorMessage = errorData.error || errorData.message || 'Failed to save page'\n const err = new Error(errorMessage) as Error & { field?: string; details?: unknown }\n err.field = errorData.field\n err.details = errorData.details\n throw err\n }\n }\n\n setLastSaved(new Date())\n setSaveError(null) // Clear any previous error\n // After saving as draft, update status to draft (shows \"Unpublished Changes\" if was published)\n setDocumentStatus('draft')\n markClean()\n onSaveSuccess?.(data)\n } catch (error) {\n console.error('Error saving page:', error)\n setSaveError(error instanceof Error ? error.message : 'Unknown error')\n onSaveError?.(error instanceof Error ? error : new Error('Unknown error'))\n } finally {\n setIsSaving(false)\n }\n },\n [makeSaveRequest, handleHomepageConflict, markClean, onSaveSuccess, onSaveError]\n )\n\n // Handle publish\n const handlePublish = useCallback(\n async (data: Data) => {\n setIsSaving(true)\n const typedData = data as PuckDataWithMeta\n try {\n const response = await makeSaveRequest(data, { publish: true })\n\n if (!response.ok) {\n const errorData = await response.json()\n\n // Check for homepage conflict error\n if (errorData.data?.existingHomepage) {\n const swapped = await handleHomepageConflict(\n errorData.data.existingHomepage,\n data,\n true\n )\n if (!swapped) {\n // User cancelled - don't show error, just return\n setIsSaving(false)\n return\n }\n // Successfully swapped - continue to success handling below\n } else {\n const errorMessage = errorData.error || errorData.message || 'Failed to publish page'\n const err = new Error(errorMessage) as Error & { field?: string; details?: unknown }\n err.field = errorData.field\n err.details = errorData.details\n throw err\n }\n }\n\n setLastSaved(new Date())\n setSaveError(null) // Clear any previous error\n setDocumentStatus('published') // Update status after successful publish\n setWasPublished(true) // Mark as having been published\n markClean()\n onSaveSuccess?.(data)\n } catch (error) {\n console.error('Error publishing page:', error)\n setSaveError(error instanceof Error ? error.message : 'Unknown error')\n onSaveError?.(error instanceof Error ? error : new Error('Unknown error'))\n } finally {\n setIsSaving(false)\n }\n },\n [makeSaveRequest, handleHomepageConflict, markClean, onSaveSuccess, onSaveError]\n )\n\n // Handle unpublish (revert to draft)\n const handleUnpublish = useCallback(\n async () => {\n if (!confirm('This will unpublish the page and return it to draft status. Continue?')) {\n return\n }\n\n setIsSaving(true)\n try {\n const response = await fetch(`${apiEndpoint}/${pageId}`, {\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n _status: 'draft',\n }),\n })\n\n if (!response.ok) {\n const errorData = await response.json()\n const errorMessage = errorData.error || errorData.message || 'Failed to unpublish page'\n throw new Error(errorMessage)\n }\n\n setLastSaved(new Date())\n setSaveError(null)\n setDocumentStatus('draft')\n } catch (error) {\n console.error('Error unpublishing page:', error)\n setSaveError(error instanceof Error ? error.message : 'Unknown error')\n } finally {\n setIsSaving(false)\n }\n },\n [apiEndpoint, pageId]\n )\n\n // Handle data change\n const handleChange = useCallback(\n (data: Data) => {\n latestDataRef.current = data as PuckDataWithMeta\n markDirty()\n onChangeProp?.(data)\n },\n [markDirty, onChangeProp]\n )\n\n // Handle back navigation\n const handleBack = useCallback(() => {\n if (hasUnsavedChanges) {\n if (!confirm('You have unsaved changes. Are you sure you want to leave?')) {\n return\n }\n }\n if (backUrl) {\n router.push(backUrl)\n } else {\n router.back()\n }\n }, [hasUnsavedChanges, router, backUrl])\n\n // Handle preview (opens in new tab)\n const handlePreview = useCallback(() => {\n const rootProps = latestDataRef.current?.root?.props\n const currentSlug = rootProps?.slug || pageSlug\n const isHomepage = rootProps?.isHomepage === true\n let url: string\n if (typeof previewUrl === 'function') {\n // If homepage, pass '/' to the function, otherwise pass the slug\n url = previewUrl(isHomepage ? '' : currentSlug)\n } else if (previewUrl) {\n url = previewUrl\n } else {\n // If homepage, navigate to root, otherwise use slug\n url = isHomepage ? '/' : `/${currentSlug}`\n }\n window.open(url, '_blank')\n }, [pageSlug, previewUrl])\n\n // Handle opening preview modal\n const handleOpenPreview = useCallback(() => {\n setIsPreviewOpen(true)\n }, [])\n\n // Handle save from preview modal (returns Promise for navigation flow)\n const handleSaveFromPreview = useCallback(async () => {\n const data = latestDataRef.current\n setIsSaving(true)\n try {\n const response = await fetch(`${apiEndpoint}/${pageId}`, {\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n puckData: data,\n title: data?.root?.props?.title || pageTitle,\n slug: data?.root?.props?.slug || pageSlug,\n // Page-tree integration: include folder and pageSegment if present\n folder: data?.root?.props?.folder,\n pageSegment: data?.root?.props?.pageSegment,\n draft: true,\n }),\n })\n\n if (!response.ok) {\n const errorData = await response.json()\n const errorMessage = errorData.error || errorData.message || 'Failed to save page'\n throw new Error(errorMessage)\n }\n\n setLastSaved(new Date())\n setSaveError(null)\n setDocumentStatus('draft')\n markClean()\n onSaveSuccess?.(data)\n } catch (error) {\n console.error('Error saving page:', error)\n setSaveError(error instanceof Error ? error.message : 'Unknown error')\n onSaveError?.(error instanceof Error ? error : new Error('Unknown error'))\n throw error // Re-throw so preview modal knows save failed\n } finally {\n setIsSaving(false)\n }\n }, [apiEndpoint, pageId, pageTitle, pageSlug, markClean, onSaveSuccess, onSaveError])\n\n // Memoized overrides\n const overrides = useMemo<Partial<PuckOverrides>>(\n () => ({\n headerActions: ({ children }: { children: ReactNode }) => (\n <HeaderActions\n onBack={handleBack}\n onPreview={handlePreview}\n onSave={handleSave}\n onPublish={handlePublish}\n onUnpublish={handleUnpublish}\n onOpenPreview={handleOpenPreview}\n isSaving={isSaving}\n hasUnsavedChanges={hasUnsavedChanges}\n lastSaved={lastSaved}\n documentStatus={documentStatus}\n wasPublished={wasPublished}\n actionsStart={headerActionsStart}\n actionsEnd={headerActionsEnd}\n pageId={pageId}\n apiEndpoint={apiEndpoint}\n saveError={saveError}\n onDismissError={() => setSaveError(null)}\n showVersionHistory={false}\n showPreviewDarkModeToggle={showPreviewDarkModeToggle}\n previewDarkMode={previewDarkMode}\n onPreviewDarkModeChange={setPreviewDarkMode}\n >\n {children}\n </HeaderActions>\n ),\n // Always wrap iframe for richtext styles injection and theme-aware background\n iframe: ({ children, document }: { children: ReactNode; document?: Document }) => (\n <IframeWrapper\n document={document}\n layouts={layouts}\n layoutStyles={layoutStyles}\n layoutKey={layoutKey}\n editorStylesheets={mergedEditorStylesheets}\n editorCss={mergedEditorCss}\n previewDarkModeOverride={showPreviewDarkModeToggle ? previewDarkMode : undefined}\n >\n {children}\n </IframeWrapper>\n ),\n // Merge custom overrides\n ...customOverrides,\n }),\n [\n handleBack,\n handlePreview,\n handleSave,\n handlePublish,\n handleUnpublish,\n handleOpenPreview,\n isSaving,\n hasUnsavedChanges,\n lastSaved,\n saveError,\n documentStatus,\n wasPublished,\n headerActionsStart,\n headerActionsEnd,\n pageId,\n apiEndpoint,\n layouts,\n layoutStyles,\n layoutKey,\n customOverrides,\n mergedEditorStylesheets,\n mergedEditorCss,\n showPreviewDarkModeToggle,\n previewDarkMode,\n setPreviewDarkMode,\n ]\n )\n\n // Default plugins - headingAnalyzer is always included unless plugins is explicitly false\n const defaultPlugins: PuckPlugin[] = [headingAnalyzer]\n\n // Version history plugin for the plugin rail\n const versionHistoryPlugin = useMemo(() => {\n if (!pageId) return null\n return createVersionHistoryPlugin({\n pageId,\n apiEndpoint,\n onRestoreSuccess: markClean,\n })\n }, [pageId, apiEndpoint, markClean])\n\n // Fetch AI prompts client-side when prompts collection is enabled\n // This allows prompts to update in real-time when edited via the prompt editor panel\n const { prompts: clientPrompts, loading: promptsLoading } = useAiPrompts(\n '/api/puck/ai-prompts',\n enableAi && hasPromptsCollection\n )\n\n // Use refs to store the latest prompts so onClick handlers can access current values\n // without causing the plugin to be recreated (which would cause Puck to remount panels)\n const clientPromptsRef = useRef(clientPrompts)\n clientPromptsRef.current = clientPrompts\n const staticPromptsRef = useRef(aiOptions?.examplePrompts)\n staticPromptsRef.current = aiOptions?.examplePrompts\n\n // AI plugin - statically imported, only instantiated when enabled\n // IMPORTANT: We intentionally exclude clientPrompts and aiOptions.examplePrompts from deps\n // to prevent plugin recreation. The onClick handlers use refs to access current prompts.\n const aiPlugin = useMemo(() => {\n if (!enableAi) return null\n // Don't create plugin until prompts are loaded (when using prompts collection)\n if (hasPromptsCollection && promptsLoading) return null\n\n // Use client-fetched prompts when prompts collection is enabled,\n // otherwise fall back to static props from config\n // NOTE: We read from refs in onClick to get current values without causing re-renders\n const getPrompts = () => hasPromptsCollection\n ? (clientPromptsRef.current || [])\n : (staticPromptsRef.current || [])\n\n // Get initial prompts for labels (labels are stable, only prompts text might change)\n const initialPrompts = getPrompts()\n\n // Convert our { label, prompt } format to plugin's { label, onClick } format\n // The plugin expects onClick to send the message via window.__PUCK_AI.sendMessage\n const convertedPrompts = initialPrompts.map((item, index) => ({\n label: item.label,\n onClick: () => {\n // Access current prompts via ref to get latest values\n const currentPrompts = getPrompts()\n const currentPrompt = currentPrompts[index]?.prompt || item.prompt\n // Use Puck AI's global API to send the prompt as a user message\n // sendMessage accepts { text: string } as a simpler format\n if (typeof window !== 'undefined' && (window as any).__PUCK_AI?.sendMessage) {\n ;(window as any).__PUCK_AI.sendMessage({ text: currentPrompt })\n }\n },\n }))\n\n return createAiPlugin({\n host: aiOptions?.host || '/api/puck/ai',\n chat: {\n examplePrompts: convertedPrompts.length > 0 ? convertedPrompts : undefined,\n },\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps -- intentionally omit prompt arrays to prevent recreation\n }, [enableAi, hasPromptsCollection, promptsLoading, aiOptions?.host])\n\n // Prompt editor plugin - for managing AI prompts in the plugin rail\n const promptEditorPlugin = useMemo(() => {\n if (!enableAi || !hasPromptsCollection) return null\n\n try {\n // Dynamic require to avoid errors if module not available\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const { createPromptEditorPlugin } = require('../ai/plugins/promptEditorPlugin')\n return createPromptEditorPlugin({\n apiEndpoint: '/api/puck/ai-prompts',\n })\n } catch (e) {\n console.warn('[PuckEditor] Failed to load prompt editor plugin:', e)\n return null\n }\n }, [enableAi, hasPromptsCollection])\n\n // Context editor plugin - for managing AI context in the plugin rail\n const contextEditorPlugin = useMemo(() => {\n if (!enableAi || !hasContextCollection) return null\n\n try {\n // Dynamic require to avoid errors if module not available\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const { createContextEditorPlugin } = require('../ai/plugins/contextEditorPlugin')\n return createContextEditorPlugin({\n apiEndpoint: '/api/puck/ai-context',\n })\n } catch (e) {\n console.warn('[PuckEditor] Failed to load context editor plugin:', e)\n return null\n }\n }, [enableAi, hasContextCollection])\n\n const resolvedPlugins = useMemo(() => {\n if (plugins === false) return undefined\n const base = !plugins || plugins.length === 0 ? defaultPlugins : [...defaultPlugins, ...plugins]\n\n // Add version history plugin if available\n if (versionHistoryPlugin) {\n base.push(versionHistoryPlugin)\n }\n\n // Add AI plugin if enabled\n if (aiPlugin) {\n base.push(aiPlugin)\n }\n\n // Add prompt editor plugin if enabled\n if (promptEditorPlugin) {\n base.push(promptEditorPlugin)\n }\n\n // Add context editor plugin if enabled\n if (contextEditorPlugin) {\n base.push(contextEditorPlugin)\n }\n\n return base\n }, [plugins, versionHistoryPlugin, aiPlugin, promptEditorPlugin, contextEditorPlugin])\n\n const editorContent = (\n <>\n {/* Dark mode CSS injection - automatically detects PayloadCMS dark mode */}\n {autoDetectDarkMode && <DarkModeStyles />}\n <div className=\"h-screen\">\n <Puck\n config={config}\n data={dataWithSlug}\n onChange={handleChange}\n onPublish={handlePublish}\n headerTitle={`${pageTitle} /${pageSlug}`}\n plugins={resolvedPlugins}\n viewports={enableViewports ? DEFAULT_VIEWPORTS : undefined}\n overrides={overrides}\n iframe={{ waitForStyles: true }}\n _experimentalFullScreenCanvas={experimentalFullScreenCanvas}\n />\n </div>\n <PreviewModal\n isOpen={isPreviewOpen}\n onClose={() => setIsPreviewOpen(false)}\n data={latestDataRef.current}\n pageTitle={pageTitle}\n onOpenInNewTab={handlePreview}\n layouts={layouts}\n hasUnsavedChanges={hasUnsavedChanges}\n onSave={handleSaveFromPreview}\n isSaving={isSaving}\n editorStylesheets={mergedEditorStylesheets}\n editorCss={mergedEditorCss}\n config={config}\n />\n </>\n )\n\n // Wrap with ThemeProvider if theme is provided\n if (theme) {\n return <ThemeProvider theme={theme}>{editorContent}</ThemeProvider>\n }\n\n return editorContent\n}\n"],"names":["useState","useCallback","useMemo","useRef","createElement","useRouter","Puck","headingAnalyzer","createAiPlugin","Maximize2","HeaderActions","IframeWrapper","PreviewModal","DarkModeStyles","useUnsavedChanges","createVersionHistoryPlugin","ThemeProvider","usePuckConfig","useAiPrompts","DEFAULT_VIEWPORTS","width","height","label","icon","size","PuckEditorImpl","pageId","initialData","config","pageTitle","pageSlug","apiEndpoint","backUrl","previewUrl","enableViewports","plugins","layouts","layoutStyles","layoutKey","headerActionsStart","headerActionsEnd","overrides","customOverrides","onSaveSuccess","onSaveError","onChange","onChangeProp","initialStatus","theme","editorStylesheets","editorStylesheetsProp","editorCss","editorCssProp","enableAi","aiOptions","hasPromptsCollection","hasContextCollection","experimentalFullScreenCanvas","autoDetectDarkMode","showPreviewDarkModeToggle","initialPreviewDarkMode","router","isSaving","setIsSaving","lastSaved","setLastSaved","saveError","setSaveError","documentStatus","setDocumentStatus","wasPublished","setWasPublished","hasUnsavedChanges","markClean","markDirty","isPreviewOpen","setIsPreviewOpen","previewDarkMode","setPreviewDarkMode","dataWithSlug","data","root","props","slug","latestDataRef","contextStylesheets","contextCss","baseStylesheets","baseCss","currentLayoutValue","pageLayout","currentLayout","find","l","value","mergedEditorStylesheets","fromBase","fromLayout","mergedEditorCss","parts","filter","Boolean","length","join","undefined","makeSaveRequest","options","typedData","fetch","method","headers","body","JSON","stringify","puckData","title","isHomepage","swapHomepage","folder","pageSegment","publish","_status","draft","handleHomepageConflict","existingHomepage","confirmed","confirm","response","ok","errorData","json","Error","error","message","handleSave","swapped","errorMessage","err","field","details","Date","console","handlePublish","handleUnpublish","handleChange","current","handleBack","push","back","handlePreview","rootProps","currentSlug","url","window","open","handleOpenPreview","handleSaveFromPreview","headerActions","children","onBack","onPreview","onSave","onPublish","onUnpublish","onOpenPreview","actionsStart","actionsEnd","onDismissError","showVersionHistory","onPreviewDarkModeChange","iframe","document","previewDarkModeOverride","defaultPlugins","versionHistoryPlugin","onRestoreSuccess","prompts","clientPrompts","loading","promptsLoading","clientPromptsRef","staticPromptsRef","examplePrompts","aiPlugin","getPrompts","initialPrompts","convertedPrompts","map","item","index","onClick","currentPrompts","currentPrompt","prompt","__PUCK_AI","sendMessage","text","host","chat","promptEditorPlugin","createPromptEditorPlugin","require","e","warn","contextEditorPlugin","createContextEditorPlugin","resolvedPlugins","base","editorContent","div","className","headerTitle","viewports","waitForStyles","_experimentalFullScreenCanvas","isOpen","onClose","onOpenInNewTab"],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { useEffect } from 'react';
|
|
3
|
-
import { useDarkMode } from '../hooks/useDarkMode';
|
|
3
|
+
import { useDarkMode } from '../hooks/useDarkMode.js';
|
|
4
4
|
/**
|
|
5
5
|
* Dark mode CSS to inject. This contains all Puck color variable overrides.
|
|
6
6
|
* We inline this rather than importing a CSS file to avoid build complexity.
|
|
7
|
-
*/
|
|
8
|
-
const DARK_MODE_CSS = `
|
|
7
|
+
*/ const DARK_MODE_CSS = `
|
|
9
8
|
/**
|
|
10
9
|
* Puck Editor Dark Mode CSS Overrides
|
|
11
10
|
*
|
|
@@ -146,14 +145,12 @@ const STYLE_ID = 'puck-dark-mode-styles';
|
|
|
146
145
|
* )
|
|
147
146
|
* }
|
|
148
147
|
* ```
|
|
149
|
-
*/
|
|
150
|
-
export function DarkModeStyles({ forceEnabled }) {
|
|
148
|
+
*/ export function DarkModeStyles({ forceEnabled }) {
|
|
151
149
|
const { isDarkMode } = useDarkMode();
|
|
152
150
|
// Determine if we should inject styles
|
|
153
151
|
const shouldInject = forceEnabled ?? isDarkMode;
|
|
154
|
-
useEffect(()
|
|
155
|
-
if (typeof document === 'undefined')
|
|
156
|
-
return;
|
|
152
|
+
useEffect(()=>{
|
|
153
|
+
if (typeof document === 'undefined') return;
|
|
157
154
|
// Check if style element already exists
|
|
158
155
|
let styleElement = document.getElementById(STYLE_ID);
|
|
159
156
|
if (shouldInject) {
|
|
@@ -164,22 +161,24 @@ export function DarkModeStyles({ forceEnabled }) {
|
|
|
164
161
|
styleElement.textContent = DARK_MODE_CSS;
|
|
165
162
|
document.head.appendChild(styleElement);
|
|
166
163
|
}
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
164
|
+
} else {
|
|
169
165
|
// Remove styles if present
|
|
170
166
|
if (styleElement) {
|
|
171
167
|
styleElement.remove();
|
|
172
168
|
}
|
|
173
169
|
}
|
|
174
170
|
// Cleanup on unmount
|
|
175
|
-
return ()
|
|
171
|
+
return ()=>{
|
|
176
172
|
const el = document.getElementById(STYLE_ID);
|
|
177
173
|
if (el) {
|
|
178
174
|
el.remove();
|
|
179
175
|
}
|
|
180
176
|
};
|
|
181
|
-
}, [
|
|
177
|
+
}, [
|
|
178
|
+
shouldInject
|
|
179
|
+
]);
|
|
182
180
|
// This component doesn't render anything
|
|
183
181
|
return null;
|
|
184
182
|
}
|
|
183
|
+
|
|
185
184
|
//# sourceMappingURL=DarkModeStyles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/editor/components/DarkModeStyles.tsx"],"sourcesContent":["'use client'\n\nimport { useEffect } from 'react'\nimport { useDarkMode } from '../hooks/useDarkMode.js'\n\n/**\n * Dark mode CSS to inject. This contains all Puck color variable overrides.\n * We inline this rather than importing a CSS file to avoid build complexity.\n */\nconst DARK_MODE_CSS = `\n/**\n * Puck Editor Dark Mode CSS Overrides\n *\n * Puck's UI is always light-themed (no built-in dark mode).\n * When Payload CMS is in dark mode, we need to ensure Puck's\n * form inputs remain readable (dark text on light background).\n *\n * This CSS overrides PayloadCMS theme CSS variables within Puck UI\n * to force light-mode values, ensuring proper contrast.\n */\n\n/* Override PayloadCMS theme CSS variables to light-mode values within Puck UI */\n.dark [class*=\"Puck\"],\n.dark [class*=\"puck-\"],\n[data-theme=\"dark\"] [class*=\"Puck\"],\n[data-theme=\"dark\"] [class*=\"puck-\"] {\n /* Force light-mode PayloadCMS elevation values */\n --theme-elevation-0: rgb(255, 255, 255);\n --theme-elevation-50: rgb(245, 245, 245);\n --theme-elevation-100: rgb(235, 235, 235);\n --theme-elevation-150: rgb(221, 221, 221);\n --theme-elevation-200: rgb(208, 208, 208);\n --theme-elevation-250: rgb(195, 195, 195);\n --theme-elevation-300: rgb(181, 181, 181);\n --theme-elevation-350: rgb(168, 168, 168);\n --theme-elevation-400: rgb(154, 154, 154);\n --theme-elevation-450: rgb(141, 141, 141);\n --theme-elevation-500: rgb(128, 128, 128);\n --theme-elevation-550: rgb(114, 114, 114);\n --theme-elevation-600: rgb(101, 101, 101);\n --theme-elevation-650: rgb(87, 87, 87);\n --theme-elevation-700: rgb(74, 74, 74);\n --theme-elevation-750: rgb(60, 60, 60);\n --theme-elevation-800: rgb(47, 47, 47);\n --theme-elevation-850: rgb(34, 34, 34);\n --theme-elevation-900: rgb(20, 20, 20);\n --theme-elevation-950: rgb(7, 7, 7);\n --theme-elevation-1000: rgb(0, 0, 0);\n\n /* Force light-mode derived theme variables */\n --theme-bg: rgb(255, 255, 255);\n --theme-input-bg: rgb(255, 255, 255);\n --theme-text: rgb(47, 47, 47);\n\n /* Reset text color inheritance from Payload's dark mode */\n color: #1f2937;\n}\n\n/* Ensure form inputs have dark text */\n.dark [class*=\"Puck\"] input,\n.dark [class*=\"Puck\"] textarea,\n.dark [class*=\"Puck\"] select,\n.dark [class*=\"puck-\"] input,\n.dark [class*=\"puck-\"] textarea,\n.dark [class*=\"puck-\"] select,\n[data-theme=\"dark\"] [class*=\"Puck\"] input,\n[data-theme=\"dark\"] [class*=\"Puck\"] textarea,\n[data-theme=\"dark\"] [class*=\"Puck\"] select,\n[data-theme=\"dark\"] [class*=\"puck-\"] input,\n[data-theme=\"dark\"] [class*=\"puck-\"] textarea,\n[data-theme=\"dark\"] [class*=\"puck-\"] select {\n color: #1f2937 !important;\n background-color: #ffffff !important;\n}\n\n/* Ensure labels and text in Puck panels are dark */\n.dark [class*=\"Puck\"] label,\n.dark [class*=\"Puck\"] span,\n.dark [class*=\"Puck\"] p,\n.dark [class*=\"puck-\"] label,\n.dark [class*=\"puck-\"] span,\n.dark [class*=\"puck-\"] p,\n[data-theme=\"dark\"] [class*=\"Puck\"] label,\n[data-theme=\"dark\"] [class*=\"Puck\"] span,\n[data-theme=\"dark\"] [class*=\"Puck\"] p,\n[data-theme=\"dark\"] [class*=\"puck-\"] label,\n[data-theme=\"dark\"] [class*=\"puck-\"] span,\n[data-theme=\"dark\"] [class*=\"puck-\"] p {\n color: #1f2937;\n}\n\n/* Ensure buttons maintain proper styling */\n.dark [class*=\"Puck\"] button,\n.dark [class*=\"puck-\"] button,\n[data-theme=\"dark\"] [class*=\"Puck\"] button,\n[data-theme=\"dark\"] [class*=\"puck-\"] button {\n color: inherit;\n}\n\n/* Fix placeholder text */\n.dark [class*=\"Puck\"] input::placeholder,\n.dark [class*=\"Puck\"] textarea::placeholder,\n.dark [class*=\"puck-\"] input::placeholder,\n.dark [class*=\"puck-\"] textarea::placeholder,\n[data-theme=\"dark\"] [class*=\"Puck\"] input::placeholder,\n[data-theme=\"dark\"] [class*=\"Puck\"] textarea::placeholder,\n[data-theme=\"dark\"] [class*=\"puck-\"] input::placeholder,\n[data-theme=\"dark\"] [class*=\"puck-\"] textarea::placeholder {\n color: #9ca3af !important;\n}\n\n/* Ensure headings in Puck are visible */\n.dark [class*=\"Puck\"] h1,\n.dark [class*=\"Puck\"] h2,\n.dark [class*=\"Puck\"] h3,\n.dark [class*=\"Puck\"] h4,\n.dark [class*=\"puck-\"] h1,\n.dark [class*=\"puck-\"] h2,\n.dark [class*=\"puck-\"] h3,\n.dark [class*=\"puck-\"] h4,\n[data-theme=\"dark\"] [class*=\"Puck\"] h1,\n[data-theme=\"dark\"] [class*=\"Puck\"] h2,\n[data-theme=\"dark\"] [class*=\"Puck\"] h3,\n[data-theme=\"dark\"] [class*=\"Puck\"] h4,\n[data-theme=\"dark\"] [class*=\"puck-\"] h1,\n[data-theme=\"dark\"] [class*=\"puck-\"] h2,\n[data-theme=\"dark\"] [class*=\"puck-\"] h3,\n[data-theme=\"dark\"] [class*=\"puck-\"] h4 {\n color: #1f2937;\n}\n`.trim()\n\nconst STYLE_ID = 'puck-dark-mode-styles'\n\nexport interface DarkModeStylesProps {\n /**\n * Override automatic dark mode detection.\n * When true, always inject dark mode styles.\n * When false, never inject dark mode styles.\n * When undefined, use automatic detection.\n */\n forceEnabled?: boolean\n}\n\n/**\n * Injects dark mode CSS overrides for Puck when dark mode is detected.\n *\n * This component uses the useDarkMode hook to detect when PayloadCMS admin\n * is in dark mode (via .dark class) or when OS preference is dark mode.\n * It then injects/removes the CSS overrides accordingly.\n *\n * @example\n * ```tsx\n * function MyEditor() {\n * return (\n * <>\n * <DarkModeStyles />\n * <Puck ... />\n * </>\n * )\n * }\n * ```\n */\nexport function DarkModeStyles({ forceEnabled }: DarkModeStylesProps) {\n const { isDarkMode } = useDarkMode()\n\n // Determine if we should inject styles\n const shouldInject = forceEnabled ?? isDarkMode\n\n useEffect(() => {\n if (typeof document === 'undefined') return\n\n // Check if style element already exists\n let styleElement = document.getElementById(STYLE_ID) as HTMLStyleElement | null\n\n if (shouldInject) {\n // Inject styles if not already present\n if (!styleElement) {\n styleElement = document.createElement('style')\n styleElement.id = STYLE_ID\n styleElement.textContent = DARK_MODE_CSS\n document.head.appendChild(styleElement)\n }\n } else {\n // Remove styles if present\n if (styleElement) {\n styleElement.remove()\n }\n }\n\n // Cleanup on unmount\n return () => {\n const el = document.getElementById(STYLE_ID)\n if (el) {\n el.remove()\n }\n }\n }, [shouldInject])\n\n // This component doesn't render anything\n return null\n}\n"],"names":["useEffect","useDarkMode","DARK_MODE_CSS","trim","STYLE_ID","DarkModeStyles","forceEnabled","isDarkMode","shouldInject","document","styleElement","getElementById","createElement","id","textContent","head","appendChild","remove","el"],"mappings":"AAAA;AAEA,SAASA,SAAS,QAAQ,QAAO;AACjC,SAASC,WAAW,QAAQ,0BAAyB;AAErD;;;CAGC,GACD,MAAMC,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyHvB,CAAC,CAACC,IAAI;AAEN,MAAMC,WAAW;AAYjB;;;;;;;;;;;;;;;;;;CAkBC,GACD,OAAO,SAASC,eAAe,EAAEC,YAAY,EAAuB;IAClE,MAAM,EAAEC,UAAU,EAAE,GAAGN;IAEvB,uCAAuC;IACvC,MAAMO,eAAeF,gBAAgBC;IAErCP,UAAU;QACR,IAAI,OAAOS,aAAa,aAAa;QAErC,wCAAwC;QACxC,IAAIC,eAAeD,SAASE,cAAc,CAACP;QAE3C,IAAII,cAAc;YAChB,uCAAuC;YACvC,IAAI,CAACE,cAAc;gBACjBA,eAAeD,SAASG,aAAa,CAAC;gBACtCF,aAAaG,EAAE,GAAGT;gBAClBM,aAAaI,WAAW,GAAGZ;gBAC3BO,SAASM,IAAI,CAACC,WAAW,CAACN;YAC5B;QACF,OAAO;YACL,2BAA2B;YAC3B,IAAIA,cAAc;gBAChBA,aAAaO,MAAM;YACrB;QACF;QAEA,qBAAqB;QACrB,OAAO;YACL,MAAMC,KAAKT,SAASE,cAAc,CAACP;YACnC,IAAIc,IAAI;gBACNA,GAAGD,MAAM;YACX;QACF;IACF,GAAG;QAACT;KAAa;IAEjB,yCAAyC;IACzC,OAAO;AACT"}
|