@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":"PromptEditorPanel.js","sourceRoot":"","sources":["../../../src/ai/plugins/PromptEditorPanel.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/ai/plugins/PromptEditorPanel.tsx"],"sourcesContent":["'use client'\n\nimport { useState, useEffect, useCallback } from 'react'\nimport { Plus, Pencil, Trash2, GripVertical, Save, X } from 'lucide-react'\nimport type { AiPrompt, PromptEditorPluginOptions } from '../types.js'\nimport { dispatchPromptsUpdated } from '../hooks/useAiPrompts.js'\n\ninterface PromptEditorPanelProps extends PromptEditorPluginOptions {}\n\n/**\n * Panel component for managing AI prompts in the Puck editor sidebar\n */\nexport function PromptEditorPanel({\n apiEndpoint = '/api/puck/ai-prompts',\n canEdit = true,\n canCreate = true,\n canDelete = true,\n}: PromptEditorPanelProps) {\n const [prompts, setPrompts] = useState<AiPrompt[]>([])\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState<string | null>(null)\n const [editingPrompt, setEditingPrompt] = useState<Partial<AiPrompt> | null>(null)\n const [saving, setSaving] = useState(false)\n\n // Fetch prompts on mount\n const fetchPrompts = useCallback(async () => {\n try {\n setLoading(true)\n setError(null)\n const response = await fetch(apiEndpoint)\n\n if (!response.ok) {\n throw new Error('Failed to fetch prompts')\n }\n\n const data = await response.json()\n setPrompts(data.docs || [])\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to load prompts')\n } finally {\n setLoading(false)\n }\n }, [apiEndpoint])\n\n useEffect(() => {\n fetchPrompts()\n }, [fetchPrompts])\n\n // Save prompt (create or update)\n const handleSave = async () => {\n if (!editingPrompt) return\n\n try {\n setSaving(true)\n setError(null)\n\n const isNew = !editingPrompt.id\n const url = isNew ? apiEndpoint : `${apiEndpoint}/${editingPrompt.id}`\n const method = isNew ? 'POST' : 'PATCH'\n\n const response = await fetch(url, {\n method,\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n label: editingPrompt.label,\n prompt: editingPrompt.prompt,\n category: editingPrompt.category,\n order: editingPrompt.order,\n }),\n })\n\n if (!response.ok) {\n throw new Error('Failed to save prompt')\n }\n\n setEditingPrompt(null)\n await fetchPrompts()\n // Notify AI plugin to refresh its prompts\n dispatchPromptsUpdated()\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to save prompt')\n } finally {\n setSaving(false)\n }\n }\n\n // Delete prompt\n const handleDelete = async (id: string) => {\n if (!confirm('Are you sure you want to delete this prompt?')) return\n\n try {\n setError(null)\n const response = await fetch(`${apiEndpoint}/${id}`, {\n method: 'DELETE',\n })\n\n if (!response.ok) {\n throw new Error('Failed to delete prompt')\n }\n\n await fetchPrompts()\n // Notify AI plugin to refresh its prompts\n dispatchPromptsUpdated()\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to delete prompt')\n }\n }\n\n // Styles\n const styles = {\n container: {\n padding: '16px',\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '12px',\n height: '100%',\n overflowY: 'auto' as const,\n },\n header: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: '8px',\n },\n title: {\n fontSize: '14px',\n fontWeight: 600,\n color: 'var(--puck-color-grey-01)',\n margin: 0,\n },\n addButton: {\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n padding: '6px 12px',\n fontSize: '13px',\n fontWeight: 500,\n color: 'var(--puck-color-azure-04)',\n backgroundColor: 'var(--puck-color-azure-12)',\n border: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n },\n promptItem: {\n display: 'flex',\n alignItems: 'flex-start',\n gap: '8px',\n padding: '12px',\n backgroundColor: 'var(--puck-color-grey-12)',\n borderRadius: '6px',\n border: '1px solid var(--puck-color-grey-09)',\n },\n promptContent: {\n flex: 1,\n minWidth: 0,\n },\n promptLabel: {\n fontSize: '13px',\n fontWeight: 500,\n color: 'var(--puck-color-grey-02)',\n marginBottom: '4px',\n },\n promptText: {\n fontSize: '12px',\n color: 'var(--puck-color-grey-04)',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap' as const,\n },\n promptActions: {\n display: 'flex',\n gap: '4px',\n },\n iconButton: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '28px',\n height: '28px',\n padding: 0,\n backgroundColor: 'transparent',\n border: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n color: 'var(--puck-color-grey-05)',\n },\n form: {\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '12px',\n padding: '16px',\n backgroundColor: 'var(--puck-color-grey-11)',\n borderRadius: '6px',\n border: '1px solid var(--puck-color-grey-08)',\n },\n formField: {\n display: 'flex',\n flexDirection: 'column' as const,\n gap: '4px',\n },\n formLabel: {\n fontSize: '12px',\n fontWeight: 500,\n color: 'var(--puck-color-grey-03)',\n },\n formInput: {\n padding: '8px 12px',\n fontSize: '13px',\n backgroundColor: 'var(--puck-color-white)',\n border: '1px solid var(--puck-color-grey-08)',\n borderRadius: '4px',\n color: 'var(--puck-color-grey-02)',\n },\n formTextarea: {\n padding: '8px 12px',\n fontSize: '13px',\n backgroundColor: 'var(--puck-color-white)',\n border: '1px solid var(--puck-color-grey-08)',\n borderRadius: '4px',\n color: 'var(--puck-color-grey-02)',\n resize: 'vertical' as const,\n minHeight: '80px',\n },\n formActions: {\n display: 'flex',\n gap: '8px',\n justifyContent: 'flex-end',\n },\n saveButton: {\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n padding: '8px 16px',\n fontSize: '13px',\n fontWeight: 500,\n color: 'white',\n backgroundColor: 'var(--puck-color-azure-04)',\n border: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n },\n cancelButton: {\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n padding: '8px 16px',\n fontSize: '13px',\n fontWeight: 500,\n color: 'var(--puck-color-grey-04)',\n backgroundColor: 'var(--puck-color-grey-10)',\n border: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n },\n errorMessage: {\n padding: '12px',\n backgroundColor: 'var(--puck-color-red-11)',\n border: '1px solid var(--puck-color-red-08)',\n borderRadius: '4px',\n color: 'var(--puck-color-red-04)',\n fontSize: '13px',\n },\n emptyState: {\n textAlign: 'center' as const,\n padding: '24px',\n color: 'var(--puck-color-grey-05)',\n fontSize: '13px',\n },\n loading: {\n textAlign: 'center' as const,\n padding: '24px',\n color: 'var(--puck-color-grey-05)',\n fontSize: '13px',\n },\n }\n\n // Render loading state\n if (loading) {\n return (\n <div style={styles.container}>\n <div style={styles.loading}>Loading prompts...</div>\n </div>\n )\n }\n\n // Render edit form\n if (editingPrompt) {\n return (\n <div style={styles.container}>\n <div style={styles.form}>\n <div style={styles.formField}>\n <label style={styles.formLabel}>Label</label>\n <input\n type=\"text\"\n style={styles.formInput}\n value={editingPrompt.label || ''}\n onChange={(e) =>\n setEditingPrompt({ ...editingPrompt, label: e.target.value })\n }\n placeholder=\"e.g., Landing page\"\n />\n </div>\n <div style={styles.formField}>\n <label style={styles.formLabel}>Prompt</label>\n <textarea\n style={styles.formTextarea}\n value={editingPrompt.prompt || ''}\n onChange={(e) =>\n setEditingPrompt({ ...editingPrompt, prompt: e.target.value })\n }\n placeholder=\"e.g., Create a landing page about our product...\"\n />\n </div>\n <div style={styles.formField}>\n <label style={styles.formLabel}>Category (optional)</label>\n <input\n type=\"text\"\n style={styles.formInput}\n value={editingPrompt.category || ''}\n onChange={(e) =>\n setEditingPrompt({ ...editingPrompt, category: e.target.value })\n }\n placeholder=\"e.g., Marketing\"\n />\n </div>\n\n {error && <div style={styles.errorMessage}>{error}</div>}\n\n <div style={styles.formActions}>\n <button\n type=\"button\"\n style={styles.cancelButton}\n onClick={() => setEditingPrompt(null)}\n disabled={saving}\n >\n <X size={14} />\n Cancel\n </button>\n <button\n type=\"button\"\n style={styles.saveButton}\n onClick={handleSave}\n disabled={saving || !editingPrompt.label || !editingPrompt.prompt}\n >\n <Save size={14} />\n {saving ? 'Saving...' : 'Save'}\n </button>\n </div>\n </div>\n </div>\n )\n }\n\n // Render prompt list\n return (\n <div style={styles.container}>\n <div style={styles.header}>\n <h3 style={styles.title}>Example Prompts</h3>\n {canCreate && (\n <button\n type=\"button\"\n style={styles.addButton}\n onClick={() => setEditingPrompt({ label: '', prompt: '' })}\n >\n <Plus size={14} />\n Add\n </button>\n )}\n </div>\n\n {error && <div style={styles.errorMessage}>{error}</div>}\n\n {prompts.length === 0 ? (\n <div style={styles.emptyState}>\n No prompts yet.\n {canCreate && ' Click \"Add\" to create one.'}\n </div>\n ) : (\n prompts.map((prompt) => (\n <div key={prompt.id} style={styles.promptItem}>\n <GripVertical\n size={16}\n style={{ color: 'var(--puck-color-grey-07)', cursor: 'grab' }}\n />\n <div style={styles.promptContent}>\n <div style={styles.promptLabel}>{prompt.label}</div>\n <div style={styles.promptText}>{prompt.prompt}</div>\n </div>\n <div style={styles.promptActions}>\n {canEdit && (\n <button\n type=\"button\"\n style={styles.iconButton}\n onClick={() => setEditingPrompt(prompt)}\n title=\"Edit prompt\"\n >\n <Pencil size={14} />\n </button>\n )}\n {canDelete && (\n <button\n type=\"button\"\n style={styles.iconButton}\n onClick={() => handleDelete(prompt.id)}\n title=\"Delete prompt\"\n >\n <Trash2 size={14} />\n </button>\n )}\n </div>\n </div>\n ))\n )}\n </div>\n )\n}\n"],"names":["useState","useEffect","useCallback","Plus","Pencil","Trash2","GripVertical","Save","X","dispatchPromptsUpdated","PromptEditorPanel","apiEndpoint","canEdit","canCreate","canDelete","prompts","setPrompts","loading","setLoading","error","setError","editingPrompt","setEditingPrompt","saving","setSaving","fetchPrompts","response","fetch","ok","Error","data","json","docs","err","message","handleSave","isNew","id","url","method","headers","body","JSON","stringify","label","prompt","category","order","handleDelete","confirm","styles","container","padding","display","flexDirection","gap","height","overflowY","header","justifyContent","alignItems","marginBottom","title","fontSize","fontWeight","color","margin","addButton","backgroundColor","border","borderRadius","cursor","promptItem","promptContent","flex","minWidth","promptLabel","promptText","overflow","textOverflow","whiteSpace","promptActions","iconButton","width","form","formField","formLabel","formInput","formTextarea","resize","minHeight","formActions","saveButton","cancelButton","errorMessage","emptyState","textAlign","div","style","input","type","value","onChange","e","target","placeholder","textarea","button","onClick","disabled","size","h3","length","map"],"mappings":"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"}
|
|
@@ -27,14 +27,21 @@ import { ContextEditorPanel } from './ContextEditorPanel.js';
|
|
|
27
27
|
* canDelete: false, // Disable delete for non-admins
|
|
28
28
|
* })
|
|
29
29
|
* ```
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
const { apiEndpoint = '/api/puck/ai-context', canEdit = true, canCreate = true, canDelete = true, } = options;
|
|
30
|
+
*/ export function createContextEditorPlugin(options = {}) {
|
|
31
|
+
const { apiEndpoint = '/api/puck/ai-context', canEdit = true, canCreate = true, canDelete = true } = options;
|
|
33
32
|
return {
|
|
34
33
|
name: 'context-editor',
|
|
35
34
|
label: 'AI Context',
|
|
36
|
-
icon: _jsx(FileText, {
|
|
37
|
-
|
|
35
|
+
icon: /*#__PURE__*/ _jsx(FileText, {
|
|
36
|
+
size: 16
|
|
37
|
+
}),
|
|
38
|
+
render: ()=>/*#__PURE__*/ _jsx(ContextEditorPanel, {
|
|
39
|
+
apiEndpoint: apiEndpoint,
|
|
40
|
+
canEdit: canEdit,
|
|
41
|
+
canCreate: canCreate,
|
|
42
|
+
canDelete: canDelete
|
|
43
|
+
})
|
|
38
44
|
};
|
|
39
45
|
}
|
|
46
|
+
|
|
40
47
|
//# sourceMappingURL=contextEditorPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/ai/plugins/contextEditorPlugin.tsx"],"sourcesContent":["'use client'\n\nimport type { Plugin as PuckPlugin } from '@puckeditor/core'\nimport { FileText } from 'lucide-react'\nimport type { ContextEditorPluginOptions } from '../types.js'\nimport { ContextEditorPanel } from './ContextEditorPanel.js'\n\n/**\n * Creates a Puck plugin for managing AI context in the editor\n *\n * This plugin adds an \"AI Context\" panel to the Puck plugin rail where users\n * can view, create, edit, and delete business context entries without writing code.\n * Context entries are used by the AI to understand your brand, tone, and requirements.\n *\n * @example Basic usage\n * ```tsx\n * import { createContextEditorPlugin } from '@delmaredigital/payload-puck/ai'\n *\n * const contextEditorPlugin = createContextEditorPlugin()\n *\n * <PuckEditor plugins={[aiPlugin, contextEditorPlugin]} />\n * ```\n *\n * @example With custom options\n * ```tsx\n * const contextEditorPlugin = createContextEditorPlugin({\n * apiEndpoint: '/api/puck/ai-context',\n * canEdit: true,\n * canCreate: true,\n * canDelete: false, // Disable delete for non-admins\n * })\n * ```\n */\nexport function createContextEditorPlugin(\n options: ContextEditorPluginOptions = {}\n): PuckPlugin {\n const {\n apiEndpoint = '/api/puck/ai-context',\n canEdit = true,\n canCreate = true,\n canDelete = true,\n } = options\n\n return {\n name: 'context-editor',\n label: 'AI Context',\n icon: <FileText size={16} />,\n render: () => (\n <ContextEditorPanel\n apiEndpoint={apiEndpoint}\n canEdit={canEdit}\n canCreate={canCreate}\n canDelete={canDelete}\n />\n ),\n }\n}\n"],"names":["FileText","ContextEditorPanel","createContextEditorPlugin","options","apiEndpoint","canEdit","canCreate","canDelete","name","label","icon","size","render"],"mappings":"AAAA;;AAGA,SAASA,QAAQ,QAAQ,eAAc;AAEvC,SAASC,kBAAkB,QAAQ,0BAAyB;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;CAyBC,GACD,OAAO,SAASC,0BACdC,UAAsC,CAAC,CAAC;IAExC,MAAM,EACJC,cAAc,sBAAsB,EACpCC,UAAU,IAAI,EACdC,YAAY,IAAI,EAChBC,YAAY,IAAI,EACjB,GAAGJ;IAEJ,OAAO;QACLK,MAAM;QACNC,OAAO;QACPC,oBAAM,KAACV;YAASW,MAAM;;QACtBC,QAAQ,kBACN,KAACX;gBACCG,aAAaA;gBACbC,SAASA;gBACTC,WAAWA;gBACXC,WAAWA;;IAGjB;AACF"}
|
|
@@ -34,50 +34,69 @@ import { getPayload } from 'payload';
|
|
|
34
34
|
* export const PATCH = handlers.PATCH
|
|
35
35
|
* export const DELETE = handlers.DELETE
|
|
36
36
|
* ```
|
|
37
|
-
*/
|
|
38
|
-
export function createPromptApiRoutes(config) {
|
|
37
|
+
*/ export function createPromptApiRoutes(config) {
|
|
39
38
|
const { payloadConfig, auth, collection = 'puck-ai-prompts' } = config;
|
|
40
39
|
return {
|
|
41
|
-
GET: async (request)
|
|
40
|
+
GET: async (request)=>{
|
|
42
41
|
try {
|
|
43
42
|
// Authenticate
|
|
44
43
|
const authResult = await auth.authenticate(request);
|
|
45
44
|
if (!authResult.authenticated) {
|
|
46
|
-
return new Response(JSON.stringify({
|
|
45
|
+
return new Response(JSON.stringify({
|
|
46
|
+
error: 'Unauthorized'
|
|
47
|
+
}), {
|
|
47
48
|
status: 401,
|
|
48
|
-
headers: {
|
|
49
|
+
headers: {
|
|
50
|
+
'Content-Type': 'application/json'
|
|
51
|
+
}
|
|
49
52
|
});
|
|
50
53
|
}
|
|
51
54
|
// Get Payload instance
|
|
52
|
-
const payload = await getPayload({
|
|
55
|
+
const payload = await getPayload({
|
|
56
|
+
config: await payloadConfig
|
|
57
|
+
});
|
|
53
58
|
// Fetch prompts
|
|
54
59
|
const result = await payload.find({
|
|
55
60
|
collection,
|
|
56
61
|
sort: 'order',
|
|
57
|
-
limit: 100
|
|
62
|
+
limit: 100
|
|
58
63
|
});
|
|
59
64
|
return new Response(JSON.stringify(result), {
|
|
60
65
|
status: 200,
|
|
61
|
-
headers: {
|
|
66
|
+
headers: {
|
|
67
|
+
'Content-Type': 'application/json'
|
|
68
|
+
}
|
|
62
69
|
});
|
|
63
|
-
}
|
|
64
|
-
catch (error) {
|
|
70
|
+
} catch (error) {
|
|
65
71
|
console.error('[AI Prompts] Error fetching prompts:', error);
|
|
66
|
-
return new Response(JSON.stringify({
|
|
72
|
+
return new Response(JSON.stringify({
|
|
73
|
+
error: 'Failed to fetch prompts'
|
|
74
|
+
}), {
|
|
75
|
+
status: 500,
|
|
76
|
+
headers: {
|
|
77
|
+
'Content-Type': 'application/json'
|
|
78
|
+
}
|
|
79
|
+
});
|
|
67
80
|
}
|
|
68
81
|
},
|
|
69
|
-
POST: async (request)
|
|
82
|
+
POST: async (request)=>{
|
|
70
83
|
try {
|
|
71
84
|
// Authenticate
|
|
72
85
|
const authResult = await auth.authenticate(request);
|
|
73
86
|
if (!authResult.authenticated) {
|
|
74
|
-
return new Response(JSON.stringify({
|
|
87
|
+
return new Response(JSON.stringify({
|
|
88
|
+
error: 'Unauthorized'
|
|
89
|
+
}), {
|
|
75
90
|
status: 401,
|
|
76
|
-
headers: {
|
|
91
|
+
headers: {
|
|
92
|
+
'Content-Type': 'application/json'
|
|
93
|
+
}
|
|
77
94
|
});
|
|
78
95
|
}
|
|
79
96
|
// Get Payload instance
|
|
80
|
-
const payload = await getPayload({
|
|
97
|
+
const payload = await getPayload({
|
|
98
|
+
config: await payloadConfig
|
|
99
|
+
});
|
|
81
100
|
// Parse body
|
|
82
101
|
const body = await request.json();
|
|
83
102
|
// Create prompt
|
|
@@ -87,42 +106,57 @@ export function createPromptApiRoutes(config) {
|
|
|
87
106
|
label: body.label,
|
|
88
107
|
prompt: body.prompt,
|
|
89
108
|
category: body.category,
|
|
90
|
-
order: body.order ?? 0
|
|
91
|
-
}
|
|
109
|
+
order: body.order ?? 0
|
|
110
|
+
}
|
|
92
111
|
});
|
|
93
|
-
return new Response(JSON.stringify({
|
|
112
|
+
return new Response(JSON.stringify({
|
|
113
|
+
doc: result
|
|
114
|
+
}), {
|
|
94
115
|
status: 201,
|
|
95
|
-
headers: {
|
|
116
|
+
headers: {
|
|
117
|
+
'Content-Type': 'application/json'
|
|
118
|
+
}
|
|
96
119
|
});
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
120
|
+
} catch (error) {
|
|
99
121
|
console.error('[AI Prompts] Error creating prompt:', error);
|
|
100
|
-
return new Response(JSON.stringify({
|
|
122
|
+
return new Response(JSON.stringify({
|
|
123
|
+
error: 'Failed to create prompt'
|
|
124
|
+
}), {
|
|
125
|
+
status: 500,
|
|
126
|
+
headers: {
|
|
127
|
+
'Content-Type': 'application/json'
|
|
128
|
+
}
|
|
129
|
+
});
|
|
101
130
|
}
|
|
102
|
-
}
|
|
131
|
+
}
|
|
103
132
|
};
|
|
104
133
|
}
|
|
105
134
|
/**
|
|
106
135
|
* Creates API route handlers for /api/puck/ai-prompts/[id]
|
|
107
|
-
*/
|
|
108
|
-
export function createPromptApiRoutesWithId(config) {
|
|
136
|
+
*/ export function createPromptApiRoutesWithId(config) {
|
|
109
137
|
const { payloadConfig, auth, collection = 'puck-ai-prompts' } = config;
|
|
110
138
|
return {
|
|
111
|
-
PATCH: async (request, context)
|
|
139
|
+
PATCH: async (request, context)=>{
|
|
112
140
|
try {
|
|
113
141
|
// Authenticate
|
|
114
142
|
const authResult = await auth.authenticate(request);
|
|
115
143
|
if (!authResult.authenticated) {
|
|
116
|
-
return new Response(JSON.stringify({
|
|
144
|
+
return new Response(JSON.stringify({
|
|
145
|
+
error: 'Unauthorized'
|
|
146
|
+
}), {
|
|
117
147
|
status: 401,
|
|
118
|
-
headers: {
|
|
148
|
+
headers: {
|
|
149
|
+
'Content-Type': 'application/json'
|
|
150
|
+
}
|
|
119
151
|
});
|
|
120
152
|
}
|
|
121
153
|
// Get ID from params
|
|
122
154
|
const params = await context.params;
|
|
123
155
|
const id = params.id;
|
|
124
156
|
// Get Payload instance
|
|
125
|
-
const payload = await getPayload({
|
|
157
|
+
const payload = await getPayload({
|
|
158
|
+
config: await payloadConfig
|
|
159
|
+
});
|
|
126
160
|
// Parse body
|
|
127
161
|
const body = await request.json();
|
|
128
162
|
// Update prompt
|
|
@@ -130,52 +164,87 @@ export function createPromptApiRoutesWithId(config) {
|
|
|
130
164
|
collection,
|
|
131
165
|
id,
|
|
132
166
|
data: {
|
|
133
|
-
...
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
...
|
|
137
|
-
|
|
167
|
+
...body.label !== undefined && {
|
|
168
|
+
label: body.label
|
|
169
|
+
},
|
|
170
|
+
...body.prompt !== undefined && {
|
|
171
|
+
prompt: body.prompt
|
|
172
|
+
},
|
|
173
|
+
...body.category !== undefined && {
|
|
174
|
+
category: body.category
|
|
175
|
+
},
|
|
176
|
+
...body.order !== undefined && {
|
|
177
|
+
order: body.order
|
|
178
|
+
}
|
|
179
|
+
}
|
|
138
180
|
});
|
|
139
|
-
return new Response(JSON.stringify({
|
|
181
|
+
return new Response(JSON.stringify({
|
|
182
|
+
doc: result
|
|
183
|
+
}), {
|
|
140
184
|
status: 200,
|
|
141
|
-
headers: {
|
|
185
|
+
headers: {
|
|
186
|
+
'Content-Type': 'application/json'
|
|
187
|
+
}
|
|
142
188
|
});
|
|
143
|
-
}
|
|
144
|
-
catch (error) {
|
|
189
|
+
} catch (error) {
|
|
145
190
|
console.error('[AI Prompts] Error updating prompt:', error);
|
|
146
|
-
return new Response(JSON.stringify({
|
|
191
|
+
return new Response(JSON.stringify({
|
|
192
|
+
error: 'Failed to update prompt'
|
|
193
|
+
}), {
|
|
194
|
+
status: 500,
|
|
195
|
+
headers: {
|
|
196
|
+
'Content-Type': 'application/json'
|
|
197
|
+
}
|
|
198
|
+
});
|
|
147
199
|
}
|
|
148
200
|
},
|
|
149
|
-
DELETE: async (request, context)
|
|
201
|
+
DELETE: async (request, context)=>{
|
|
150
202
|
try {
|
|
151
203
|
// Authenticate
|
|
152
204
|
const authResult = await auth.authenticate(request);
|
|
153
205
|
if (!authResult.authenticated) {
|
|
154
|
-
return new Response(JSON.stringify({
|
|
206
|
+
return new Response(JSON.stringify({
|
|
207
|
+
error: 'Unauthorized'
|
|
208
|
+
}), {
|
|
155
209
|
status: 401,
|
|
156
|
-
headers: {
|
|
210
|
+
headers: {
|
|
211
|
+
'Content-Type': 'application/json'
|
|
212
|
+
}
|
|
157
213
|
});
|
|
158
214
|
}
|
|
159
215
|
// Get ID from params
|
|
160
216
|
const params = await context.params;
|
|
161
217
|
const id = params.id;
|
|
162
218
|
// Get Payload instance
|
|
163
|
-
const payload = await getPayload({
|
|
219
|
+
const payload = await getPayload({
|
|
220
|
+
config: await payloadConfig
|
|
221
|
+
});
|
|
164
222
|
// Delete prompt
|
|
165
223
|
await payload.delete({
|
|
166
224
|
collection,
|
|
167
|
-
id
|
|
225
|
+
id
|
|
168
226
|
});
|
|
169
|
-
return new Response(JSON.stringify({
|
|
227
|
+
return new Response(JSON.stringify({
|
|
228
|
+
success: true
|
|
229
|
+
}), {
|
|
170
230
|
status: 200,
|
|
171
|
-
headers: {
|
|
231
|
+
headers: {
|
|
232
|
+
'Content-Type': 'application/json'
|
|
233
|
+
}
|
|
172
234
|
});
|
|
173
|
-
}
|
|
174
|
-
catch (error) {
|
|
235
|
+
} catch (error) {
|
|
175
236
|
console.error('[AI Prompts] Error deleting prompt:', error);
|
|
176
|
-
return new Response(JSON.stringify({
|
|
237
|
+
return new Response(JSON.stringify({
|
|
238
|
+
error: 'Failed to delete prompt'
|
|
239
|
+
}), {
|
|
240
|
+
status: 500,
|
|
241
|
+
headers: {
|
|
242
|
+
'Content-Type': 'application/json'
|
|
243
|
+
}
|
|
244
|
+
});
|
|
177
245
|
}
|
|
178
|
-
}
|
|
246
|
+
}
|
|
179
247
|
};
|
|
180
248
|
}
|
|
249
|
+
|
|
181
250
|
//# sourceMappingURL=promptApiRoutes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promptApiRoutes.js","sourceRoot":"","sources":["../../../src/ai/plugins/promptApiRoutes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/ai/plugins/promptApiRoutes.ts"],"sourcesContent":["import type { NextRequest } from 'next/server'\nimport { getPayload } from 'payload'\nimport type { SanitizedConfig } from 'payload'\nimport type { PuckApiAuthHooks, RouteHandler, RouteHandlerWithId } from '../../api/types.js'\n\n/**\n * Configuration for AI prompts API routes\n */\nexport interface PromptApiRoutesConfig {\n /**\n * Payload configuration - import from @payload-config\n */\n payloadConfig: Promise<SanitizedConfig>\n /**\n * Authentication hooks\n */\n auth: PuckApiAuthHooks\n /**\n * Collection slug for prompts\n * @default 'puck-ai-prompts'\n */\n collection?: string\n}\n\n/**\n * Creates API route handlers for /api/puck/ai-prompts\n *\n * Provides CRUD operations for AI prompts stored in Payload.\n *\n * @example\n * ```typescript\n * // app/api/puck/ai-prompts/route.ts\n * import { createPromptApiRoutes } from '@delmaredigital/payload-puck/ai'\n * import config from '@payload-config'\n *\n * const handlers = createPromptApiRoutes({\n * payloadConfig: config,\n * auth: {\n * authenticate: async (request) => { ... },\n * },\n * })\n *\n * export const GET = handlers.GET\n * export const POST = handlers.POST\n * ```\n *\n * @example\n * ```typescript\n * // app/api/puck/ai-prompts/[id]/route.ts\n * import { createPromptApiRoutesWithId } from '@delmaredigital/payload-puck/ai'\n *\n * const handlers = createPromptApiRoutesWithId({\n * payloadConfig: config,\n * auth: { ... },\n * })\n *\n * export const PATCH = handlers.PATCH\n * export const DELETE = handlers.DELETE\n * ```\n */\nexport function createPromptApiRoutes(config: PromptApiRoutesConfig): {\n GET: RouteHandler\n POST: RouteHandler\n} {\n const { payloadConfig, auth, collection = 'puck-ai-prompts' } = config\n\n return {\n GET: async (request: NextRequest): Promise<Response> => {\n try {\n // Authenticate\n const authResult = await auth.authenticate(request)\n if (!authResult.authenticated) {\n return new Response(JSON.stringify({ error: 'Unauthorized' }), {\n status: 401,\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n // Get Payload instance\n const payload = await getPayload({ config: await payloadConfig })\n\n // Fetch prompts\n const result = await payload.find({\n collection,\n sort: 'order',\n limit: 100,\n })\n\n return new Response(JSON.stringify(result), {\n status: 200,\n headers: { 'Content-Type': 'application/json' },\n })\n } catch (error) {\n console.error('[AI Prompts] Error fetching prompts:', error)\n return new Response(\n JSON.stringify({ error: 'Failed to fetch prompts' }),\n { status: 500, headers: { 'Content-Type': 'application/json' } }\n )\n }\n },\n\n POST: async (request: NextRequest): Promise<Response> => {\n try {\n // Authenticate\n const authResult = await auth.authenticate(request)\n if (!authResult.authenticated) {\n return new Response(JSON.stringify({ error: 'Unauthorized' }), {\n status: 401,\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n // Get Payload instance\n const payload = await getPayload({ config: await payloadConfig })\n\n // Parse body\n const body = await request.json()\n\n // Create prompt\n const result = await payload.create({\n collection,\n data: {\n label: body.label,\n prompt: body.prompt,\n category: body.category,\n order: body.order ?? 0,\n },\n })\n\n return new Response(JSON.stringify({ doc: result }), {\n status: 201,\n headers: { 'Content-Type': 'application/json' },\n })\n } catch (error) {\n console.error('[AI Prompts] Error creating prompt:', error)\n return new Response(\n JSON.stringify({ error: 'Failed to create prompt' }),\n { status: 500, headers: { 'Content-Type': 'application/json' } }\n )\n }\n },\n }\n}\n\n/**\n * Creates API route handlers for /api/puck/ai-prompts/[id]\n */\nexport function createPromptApiRoutesWithId(config: PromptApiRoutesConfig): {\n PATCH: RouteHandlerWithId\n DELETE: RouteHandlerWithId\n} {\n const { payloadConfig, auth, collection = 'puck-ai-prompts' } = config\n\n return {\n PATCH: async (request: NextRequest, context): Promise<Response> => {\n try {\n // Authenticate\n const authResult = await auth.authenticate(request)\n if (!authResult.authenticated) {\n return new Response(JSON.stringify({ error: 'Unauthorized' }), {\n status: 401,\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n // Get ID from params\n const params = await context.params\n const id = params.id\n\n // Get Payload instance\n const payload = await getPayload({ config: await payloadConfig })\n\n // Parse body\n const body = await request.json()\n\n // Update prompt\n const result = await payload.update({\n collection,\n id,\n data: {\n ...(body.label !== undefined && { label: body.label }),\n ...(body.prompt !== undefined && { prompt: body.prompt }),\n ...(body.category !== undefined && { category: body.category }),\n ...(body.order !== undefined && { order: body.order }),\n },\n })\n\n return new Response(JSON.stringify({ doc: result }), {\n status: 200,\n headers: { 'Content-Type': 'application/json' },\n })\n } catch (error) {\n console.error('[AI Prompts] Error updating prompt:', error)\n return new Response(\n JSON.stringify({ error: 'Failed to update prompt' }),\n { status: 500, headers: { 'Content-Type': 'application/json' } }\n )\n }\n },\n\n DELETE: async (request: NextRequest, context): Promise<Response> => {\n try {\n // Authenticate\n const authResult = await auth.authenticate(request)\n if (!authResult.authenticated) {\n return new Response(JSON.stringify({ error: 'Unauthorized' }), {\n status: 401,\n headers: { 'Content-Type': 'application/json' },\n })\n }\n\n // Get ID from params\n const params = await context.params\n const id = params.id\n\n // Get Payload instance\n const payload = await getPayload({ config: await payloadConfig })\n\n // Delete prompt\n await payload.delete({\n collection,\n id,\n })\n\n return new Response(JSON.stringify({ success: true }), {\n status: 200,\n headers: { 'Content-Type': 'application/json' },\n })\n } catch (error) {\n console.error('[AI Prompts] Error deleting prompt:', error)\n return new Response(\n JSON.stringify({ error: 'Failed to delete prompt' }),\n { status: 500, headers: { 'Content-Type': 'application/json' } }\n )\n }\n },\n }\n}\n"],"names":["getPayload","createPromptApiRoutes","config","payloadConfig","auth","collection","GET","request","authResult","authenticate","authenticated","Response","JSON","stringify","error","status","headers","payload","result","find","sort","limit","console","POST","body","json","create","data","label","prompt","category","order","doc","createPromptApiRoutesWithId","PATCH","context","params","id","update","undefined","DELETE","delete","success"],"mappings":"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"}
|
|
@@ -26,14 +26,21 @@ import { PromptEditorPanel } from './PromptEditorPanel.js';
|
|
|
26
26
|
* canDelete: false, // Disable delete for non-admins
|
|
27
27
|
* })
|
|
28
28
|
* ```
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
const { apiEndpoint = '/api/puck/ai-prompts', canEdit = true, canCreate = true, canDelete = true, } = options;
|
|
29
|
+
*/ export function createPromptEditorPlugin(options = {}) {
|
|
30
|
+
const { apiEndpoint = '/api/puck/ai-prompts', canEdit = true, canCreate = true, canDelete = true } = options;
|
|
32
31
|
return {
|
|
33
32
|
name: 'prompt-editor',
|
|
34
33
|
label: 'AI Prompts',
|
|
35
|
-
icon: _jsx(Sparkles, {
|
|
36
|
-
|
|
34
|
+
icon: /*#__PURE__*/ _jsx(Sparkles, {
|
|
35
|
+
size: 16
|
|
36
|
+
}),
|
|
37
|
+
render: ()=>/*#__PURE__*/ _jsx(PromptEditorPanel, {
|
|
38
|
+
apiEndpoint: apiEndpoint,
|
|
39
|
+
canEdit: canEdit,
|
|
40
|
+
canCreate: canCreate,
|
|
41
|
+
canDelete: canDelete
|
|
42
|
+
})
|
|
37
43
|
};
|
|
38
44
|
}
|
|
45
|
+
|
|
39
46
|
//# sourceMappingURL=promptEditorPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../src/ai/plugins/promptEditorPlugin.tsx"],"sourcesContent":["'use client'\n\nimport type { Plugin as PuckPlugin } from '@puckeditor/core'\nimport { Sparkles } from 'lucide-react'\nimport type { PromptEditorPluginOptions } from '../types.js'\nimport { PromptEditorPanel } from './PromptEditorPanel.js'\n\n/**\n * Creates a Puck plugin for managing AI prompts in the editor\n *\n * This plugin adds an \"AI Prompts\" panel to the Puck plugin rail where users\n * can view, create, edit, and delete example prompts without writing code.\n *\n * @example Basic usage\n * ```tsx\n * import { createPromptEditorPlugin } from '@delmaredigital/payload-puck/ai'\n *\n * const promptEditorPlugin = createPromptEditorPlugin()\n *\n * <PuckEditor plugins={[aiPlugin, promptEditorPlugin]} />\n * ```\n *\n * @example With custom options\n * ```tsx\n * const promptEditorPlugin = createPromptEditorPlugin({\n * apiEndpoint: '/api/puck/ai-prompts',\n * canEdit: true,\n * canCreate: true,\n * canDelete: false, // Disable delete for non-admins\n * })\n * ```\n */\nexport function createPromptEditorPlugin(\n options: PromptEditorPluginOptions = {}\n): PuckPlugin {\n const {\n apiEndpoint = '/api/puck/ai-prompts',\n canEdit = true,\n canCreate = true,\n canDelete = true,\n } = options\n\n return {\n name: 'prompt-editor',\n label: 'AI Prompts',\n icon: <Sparkles size={16} />,\n render: () => (\n <PromptEditorPanel\n apiEndpoint={apiEndpoint}\n canEdit={canEdit}\n canCreate={canCreate}\n canDelete={canDelete}\n />\n ),\n }\n}\n"],"names":["Sparkles","PromptEditorPanel","createPromptEditorPlugin","options","apiEndpoint","canEdit","canCreate","canDelete","name","label","icon","size","render"],"mappings":"AAAA;;AAGA,SAASA,QAAQ,QAAQ,eAAc;AAEvC,SAASC,iBAAiB,QAAQ,yBAAwB;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;CAwBC,GACD,OAAO,SAASC,yBACdC,UAAqC,CAAC,CAAC;IAEvC,MAAM,EACJC,cAAc,sBAAsB,EACpCC,UAAU,IAAI,EACdC,YAAY,IAAI,EAChBC,YAAY,IAAI,EACjB,GAAGJ;IAEJ,OAAO;QACLK,MAAM;QACNC,OAAO;QACPC,oBAAM,KAACV;YAASW,MAAM;;QACtBC,QAAQ,kBACN,KAACX;gBACCG,aAAaA;gBACbC,SAASA;gBACTC,WAAWA;gBACXC,WAAWA;;IAGjB;AACF"}
|