@delmaredigital/payload-puck 0.4.0 → 0.6.1
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 +429 -17
- package/dist/admin/PuckEditorView.d.ts +1 -1
- package/dist/admin/PuckEditorView.d.ts.map +1 -1
- package/dist/ai/collections/AiContext.d.ts +16 -0
- package/dist/ai/collections/AiContext.d.ts.map +1 -0
- package/dist/ai/collections/AiContext.js +87 -0
- package/dist/ai/collections/AiContext.js.map +1 -0
- package/dist/ai/collections/AiPrompts.d.ts +10 -0
- package/dist/ai/collections/AiPrompts.d.ts.map +1 -0
- package/dist/ai/collections/AiPrompts.js +63 -0
- package/dist/ai/collections/AiPrompts.js.map +1 -0
- package/dist/ai/createAiApiRoutes.d.ts +40 -0
- package/dist/ai/createAiApiRoutes.d.ts.map +1 -0
- package/dist/ai/createAiApiRoutes.js +106 -0
- package/dist/ai/createAiApiRoutes.js.map +1 -0
- package/dist/ai/createAiGenerate.d.ts +65 -0
- package/dist/ai/createAiGenerate.d.ts.map +1 -0
- package/dist/ai/createAiGenerate.js +106 -0
- package/dist/ai/createAiGenerate.js.map +1 -0
- package/dist/ai/createAiPlugin.d.ts +39 -0
- package/dist/ai/createAiPlugin.d.ts.map +1 -0
- package/dist/ai/createAiPlugin.js +61 -0
- package/dist/ai/createAiPlugin.js.map +1 -0
- package/dist/ai/hooks/useAiContext.d.ts +63 -0
- package/dist/ai/hooks/useAiContext.d.ts.map +1 -0
- package/dist/ai/hooks/useAiContext.js +146 -0
- package/dist/ai/hooks/useAiContext.js.map +1 -0
- package/dist/ai/hooks/useAiPrompts.d.ts +25 -0
- package/dist/ai/hooks/useAiPrompts.d.ts.map +1 -0
- package/dist/ai/hooks/useAiPrompts.js +74 -0
- package/dist/ai/hooks/useAiPrompts.js.map +1 -0
- package/dist/ai/index.d.ts +51 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +69 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/plugins/ContextEditorPanel.d.ts +9 -0
- package/dist/ai/plugins/ContextEditorPanel.d.ts.map +1 -0
- package/dist/ai/plugins/ContextEditorPanel.js +399 -0
- package/dist/ai/plugins/ContextEditorPanel.js.map +1 -0
- package/dist/ai/plugins/PromptEditorPanel.d.ts +9 -0
- package/dist/ai/plugins/PromptEditorPanel.d.ts.map +1 -0
- package/dist/ai/plugins/PromptEditorPanel.js +270 -0
- package/dist/ai/plugins/PromptEditorPanel.js.map +1 -0
- package/dist/ai/plugins/contextEditorPlugin.d.ts +30 -0
- package/dist/ai/plugins/contextEditorPlugin.d.ts.map +1 -0
- package/dist/ai/plugins/contextEditorPlugin.js +40 -0
- package/dist/ai/plugins/contextEditorPlugin.js.map +1 -0
- package/dist/ai/plugins/promptApiRoutes.d.ts +68 -0
- package/dist/ai/plugins/promptApiRoutes.d.ts.map +1 -0
- package/dist/ai/plugins/promptApiRoutes.js +181 -0
- package/dist/ai/plugins/promptApiRoutes.js.map +1 -0
- package/dist/ai/plugins/promptEditorPlugin.d.ts +29 -0
- package/dist/ai/plugins/promptEditorPlugin.d.ts.map +1 -0
- package/dist/ai/plugins/promptEditorPlugin.js +39 -0
- package/dist/ai/plugins/promptEditorPlugin.js.map +1 -0
- package/dist/ai/presets/componentAiDefaults.d.ts +40 -0
- package/dist/ai/presets/componentAiDefaults.d.ts.map +1 -0
- package/dist/ai/presets/componentAiDefaults.js +239 -0
- package/dist/ai/presets/componentAiDefaults.js.map +1 -0
- package/dist/ai/presets/index.d.ts +94 -0
- package/dist/ai/presets/index.d.ts.map +1 -0
- package/dist/ai/presets/index.js +110 -0
- package/dist/ai/presets/index.js.map +1 -0
- package/dist/ai/presets/instructions/interactive.d.ts +15 -0
- package/dist/ai/presets/instructions/interactive.d.ts.map +1 -0
- package/dist/ai/presets/instructions/interactive.js +334 -0
- package/dist/ai/presets/instructions/interactive.js.map +1 -0
- package/dist/ai/presets/instructions/layout.d.ts +16 -0
- package/dist/ai/presets/instructions/layout.d.ts.map +1 -0
- package/dist/ai/presets/instructions/layout.js +486 -0
- package/dist/ai/presets/instructions/layout.js.map +1 -0
- package/dist/ai/presets/instructions/media.d.ts +15 -0
- package/dist/ai/presets/instructions/media.d.ts.map +1 -0
- package/dist/ai/presets/instructions/media.js +136 -0
- package/dist/ai/presets/instructions/media.js.map +1 -0
- package/dist/ai/presets/instructions/pagePatterns.d.ts +20 -0
- package/dist/ai/presets/instructions/pagePatterns.d.ts.map +1 -0
- package/dist/ai/presets/instructions/pagePatterns.js +290 -0
- package/dist/ai/presets/instructions/pagePatterns.js.map +1 -0
- package/dist/ai/presets/instructions/schemas.d.ts +1247 -0
- package/dist/ai/presets/instructions/schemas.d.ts.map +1 -0
- package/dist/ai/presets/instructions/schemas.js +240 -0
- package/dist/ai/presets/instructions/schemas.js.map +1 -0
- package/dist/ai/presets/instructions/typography.d.ts +16 -0
- package/dist/ai/presets/instructions/typography.d.ts.map +1 -0
- package/dist/ai/presets/instructions/typography.js +192 -0
- package/dist/ai/presets/instructions/typography.js.map +1 -0
- package/dist/ai/tools/index.d.ts +116 -0
- package/dist/ai/tools/index.d.ts.map +1 -0
- package/dist/ai/tools/index.js +214 -0
- package/dist/ai/tools/index.js.map +1 -0
- package/dist/ai/types.d.ts +507 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +2 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/ai/utils/injectAiConfig.d.ts +67 -0
- package/dist/ai/utils/injectAiConfig.d.ts.map +1 -0
- package/dist/ai/utils/injectAiConfig.js +216 -0
- package/dist/ai/utils/injectAiConfig.js.map +1 -0
- package/dist/api/createPuckApiRoutesWithId.d.ts.map +1 -1
- package/dist/api/createPuckApiRoutesWithId.js +12 -5
- package/dist/api/createPuckApiRoutesWithId.js.map +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +1 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/types.d.ts +1 -1
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/utils/mapRootProps.d.ts +19 -0
- package/dist/api/utils/mapRootProps.d.ts.map +1 -1
- package/dist/api/utils/mapRootProps.js +33 -0
- package/dist/api/utils/mapRootProps.js.map +1 -1
- package/dist/components/exports.d.ts +2 -1
- package/dist/components/exports.d.ts.map +1 -1
- package/dist/components/exports.js +5 -1
- package/dist/components/exports.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 +4 -4
- 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/Button.d.ts +1 -1
- package/dist/components/interactive/Button.d.ts.map +1 -1
- package/dist/components/interactive/Button.server.d.ts +2 -3
- package/dist/components/interactive/Button.server.d.ts.map +1 -1
- package/dist/components/interactive/Button.server.js +1 -2
- package/dist/components/interactive/Button.server.js.map +1 -1
- package/dist/components/interactive/Card.d.ts +1 -1
- package/dist/components/interactive/Card.d.ts.map +1 -1
- package/dist/components/interactive/Card.server.d.ts +1 -1
- package/dist/components/interactive/Card.server.d.ts.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.server.d.ts +1 -1
- package/dist/components/interactive/Divider.server.d.ts.map +1 -1
- package/dist/components/layout/Container.d.ts +3 -1
- package/dist/components/layout/Container.d.ts.map +1 -1
- package/dist/components/layout/Container.js +16 -2
- package/dist/components/layout/Container.js.map +1 -1
- package/dist/components/layout/Container.server.d.ts +3 -1
- package/dist/components/layout/Container.server.d.ts.map +1 -1
- package/dist/components/layout/Container.server.js +5 -2
- package/dist/components/layout/Container.server.js.map +1 -1
- package/dist/components/layout/Flex.d.ts +3 -1
- package/dist/components/layout/Flex.d.ts.map +1 -1
- package/dist/components/layout/Flex.js +18 -2
- package/dist/components/layout/Flex.js.map +1 -1
- package/dist/components/layout/Flex.server.d.ts +3 -1
- package/dist/components/layout/Flex.server.d.ts.map +1 -1
- package/dist/components/layout/Flex.server.js +5 -2
- package/dist/components/layout/Flex.server.js.map +1 -1
- package/dist/components/layout/Grid.d.ts +3 -1
- package/dist/components/layout/Grid.d.ts.map +1 -1
- package/dist/components/layout/Grid.js +15 -2
- package/dist/components/layout/Grid.js.map +1 -1
- package/dist/components/layout/Grid.server.d.ts +3 -1
- package/dist/components/layout/Grid.server.d.ts.map +1 -1
- package/dist/components/layout/Grid.server.js +5 -2
- package/dist/components/layout/Grid.server.js.map +1 -1
- package/dist/components/layout/Section.d.ts +3 -1
- package/dist/components/layout/Section.d.ts.map +1 -1
- package/dist/components/layout/Section.js +32 -5
- package/dist/components/layout/Section.js.map +1 -1
- package/dist/components/layout/Section.server.d.ts +3 -1
- package/dist/components/layout/Section.server.d.ts.map +1 -1
- package/dist/components/layout/Section.server.js +16 -4
- 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.server.d.ts +1 -1
- package/dist/components/layout/Spacer.server.d.ts.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.server.d.ts +1 -1
- package/dist/components/layout/Template.server.d.ts.map +1 -1
- package/dist/components/media/Image.d.ts +1 -1
- package/dist/components/media/Image.d.ts.map +1 -1
- package/dist/components/media/Image.server.d.ts +1 -1
- package/dist/components/media/Image.server.d.ts.map +1 -1
- package/dist/components/typography/Heading.d.ts +1 -1
- package/dist/components/typography/Heading.d.ts.map +1 -1
- package/dist/components/typography/Heading.server.d.ts +1 -1
- package/dist/components/typography/Heading.server.d.ts.map +1 -1
- package/dist/components/typography/RichText.editor.d.ts +15 -2
- package/dist/components/typography/RichText.editor.d.ts.map +1 -1
- package/dist/components/typography/RichText.editor.js +18 -11
- package/dist/components/typography/RichText.editor.js.map +1 -1
- package/dist/components/typography/RichText.server.d.ts +3 -2
- package/dist/components/typography/RichText.server.d.ts.map +1 -1
- package/dist/components/typography/RichText.server.js +10 -5
- package/dist/components/typography/RichText.server.js.map +1 -1
- package/dist/components/typography/Text.d.ts +1 -1
- package/dist/components/typography/Text.d.ts.map +1 -1
- package/dist/components/typography/Text.server.d.ts +1 -1
- package/dist/components/typography/Text.server.d.ts.map +1 -1
- package/dist/components/typography/index.d.ts +1 -1
- package/dist/components/typography/index.d.ts.map +1 -1
- package/dist/components/typography/index.js +1 -1
- package/dist/components/typography/index.js.map +1 -1
- package/dist/config/config.editor.d.ts +4 -4
- package/dist/config/config.editor.d.ts.map +1 -1
- package/dist/config/index.d.ts +2 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/merge.d.ts +1 -1
- package/dist/config/merge.d.ts.map +1 -1
- package/dist/config/presets.d.ts +15 -15
- package/dist/config/presets.d.ts.map +1 -1
- package/dist/config/presets.js +2 -2
- package/dist/config/presets.js.map +1 -1
- package/dist/config/types.d.ts +111 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +8 -0
- package/dist/config/types.js.map +1 -0
- package/dist/editor/PuckEditor.d.ts +88 -2
- package/dist/editor/PuckEditor.d.ts.map +1 -1
- package/dist/editor/PuckEditor.js +41 -13
- package/dist/editor/PuckEditor.js.map +1 -1
- package/dist/editor/PuckEditorImpl.client.d.ts +49 -4
- package/dist/editor/PuckEditorImpl.client.d.ts.map +1 -1
- package/dist/editor/PuckEditorImpl.client.js +191 -14
- package/dist/editor/PuckEditorImpl.client.js.map +1 -1
- package/dist/editor/ai-plugin-overrides.css +20 -0
- package/dist/editor/components/HeaderActions.d.ts +7 -2
- package/dist/editor/components/HeaderActions.d.ts.map +1 -1
- package/dist/editor/components/HeaderActions.js +16 -3
- package/dist/editor/components/HeaderActions.js.map +1 -1
- package/dist/editor/components/IframeWrapper.d.ts +13 -0
- package/dist/editor/components/IframeWrapper.d.ts.map +1 -1
- package/dist/editor/components/IframeWrapper.js +60 -4
- package/dist/editor/components/IframeWrapper.js.map +1 -1
- package/dist/editor/components/PreviewModal.d.ts +9 -1
- package/dist/editor/components/PreviewModal.d.ts.map +1 -1
- package/dist/editor/components/PreviewModal.js +36 -1
- package/dist/editor/components/PreviewModal.js.map +1 -1
- package/dist/editor/index.d.ts +4 -0
- package/dist/editor/index.d.ts.map +1 -1
- package/dist/editor/index.js +4 -0
- package/dist/editor/index.js.map +1 -1
- package/dist/editor/plugins/VersionHistoryPanel.d.ts +43 -0
- package/dist/editor/plugins/VersionHistoryPanel.d.ts.map +1 -0
- package/dist/editor/plugins/VersionHistoryPanel.js +303 -0
- package/dist/editor/plugins/VersionHistoryPanel.js.map +1 -0
- package/dist/editor/plugins/index.d.ts +6 -3
- package/dist/editor/plugins/index.d.ts.map +1 -1
- package/dist/editor/plugins/index.js +7 -3
- package/dist/editor/plugins/index.js.map +1 -1
- package/dist/editor/plugins/versionHistoryPlugin.d.ts +37 -0
- package/dist/editor/plugins/versionHistoryPlugin.d.ts.map +1 -0
- package/dist/editor/plugins/versionHistoryPlugin.js +36 -0
- package/dist/editor/plugins/versionHistoryPlugin.js.map +1 -0
- package/dist/editor/utils/detectPageTree.d.ts +1 -1
- package/dist/editor/utils/detectPageTree.d.ts.map +1 -1
- package/dist/editor/utils/injectPageTreeFields.d.ts +1 -1
- package/dist/editor/utils/injectPageTreeFields.d.ts.map +1 -1
- package/dist/editor/utils/injectPageTreeFields.js +2 -2
- package/dist/editor/utils/injectPageTreeFields.js.map +1 -1
- package/dist/endpoints/ai.d.ts +36 -0
- package/dist/endpoints/ai.d.ts.map +1 -0
- package/dist/endpoints/ai.js +315 -0
- package/dist/endpoints/ai.js.map +1 -0
- package/dist/endpoints/context.d.ts +30 -0
- package/dist/endpoints/context.d.ts.map +1 -0
- package/dist/endpoints/context.js +123 -0
- package/dist/endpoints/context.js.map +1 -0
- package/dist/endpoints/prompts.d.ts +28 -0
- package/dist/endpoints/prompts.d.ts.map +1 -0
- package/dist/endpoints/prompts.js +118 -0
- package/dist/endpoints/prompts.js.map +1 -0
- package/dist/endpoints/styles.d.ts +19 -0
- package/dist/endpoints/styles.d.ts.map +1 -0
- package/dist/endpoints/styles.js +116 -0
- package/dist/endpoints/styles.js.map +1 -0
- package/dist/fields/AlignmentField.d.ts +1 -1
- package/dist/fields/AlignmentField.d.ts.map +1 -1
- package/dist/fields/AlignmentField.js +1 -0
- package/dist/fields/AlignmentField.js.map +1 -1
- package/dist/fields/AnimationField.d.ts +1 -1
- package/dist/fields/AnimationField.d.ts.map +1 -1
- package/dist/fields/BackgroundField.d.ts +1 -1
- package/dist/fields/BackgroundField.d.ts.map +1 -1
- package/dist/fields/BackgroundField.js +9 -4
- package/dist/fields/BackgroundField.js.map +1 -1
- package/dist/fields/BorderField.d.ts +1 -1
- package/dist/fields/BorderField.d.ts.map +1 -1
- package/dist/fields/BorderField.js +1 -0
- package/dist/fields/BorderField.js.map +1 -1
- package/dist/fields/ColorPickerField.d.ts +1 -1
- package/dist/fields/ColorPickerField.d.ts.map +1 -1
- package/dist/fields/ColorPickerField.js +4 -2
- package/dist/fields/ColorPickerField.js.map +1 -1
- package/dist/fields/ContentAlignmentField.d.ts +66 -0
- package/dist/fields/ContentAlignmentField.d.ts.map +1 -0
- package/dist/fields/ContentAlignmentField.js +255 -0
- package/dist/fields/ContentAlignmentField.js.map +1 -0
- package/dist/fields/DimensionsField.d.ts +1 -1
- package/dist/fields/DimensionsField.d.ts.map +1 -1
- package/dist/fields/DimensionsField.js +8 -2
- package/dist/fields/DimensionsField.js.map +1 -1
- package/dist/fields/FlexAlignmentField.d.ts +1 -1
- package/dist/fields/FlexAlignmentField.d.ts.map +1 -1
- package/dist/fields/FolderPickerField.d.ts +1 -1
- package/dist/fields/FolderPickerField.d.ts.map +1 -1
- package/dist/fields/GradientEditor.d.ts.map +1 -1
- package/dist/fields/GradientEditor.js +3 -0
- package/dist/fields/GradientEditor.js.map +1 -1
- package/dist/fields/LockedField.d.ts +1 -1
- package/dist/fields/LockedField.d.ts.map +1 -1
- package/dist/fields/MarginField.d.ts +1 -1
- package/dist/fields/MarginField.d.ts.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 +3 -2
- package/dist/fields/MediaField.js.map +1 -1
- package/dist/fields/PaddingField.d.ts +1 -1
- package/dist/fields/PaddingField.d.ts.map +1 -1
- package/dist/fields/PageSegmentField.d.ts +18 -1
- package/dist/fields/PageSegmentField.d.ts.map +1 -1
- package/dist/fields/PageSegmentField.js +106 -1
- 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 +1 -1
- 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 +5 -2
- package/dist/fields/ResponsiveField.js.map +1 -1
- package/dist/fields/ResponsiveVisibilityField.d.ts +1 -1
- package/dist/fields/ResponsiveVisibilityField.d.ts.map +1 -1
- package/dist/fields/ResponsiveVisibilityField.js +4 -3
- package/dist/fields/ResponsiveVisibilityField.js.map +1 -1
- package/dist/fields/SizeField.d.ts +3 -25
- package/dist/fields/SizeField.d.ts.map +1 -1
- package/dist/fields/SizeField.js +8 -34
- package/dist/fields/SizeField.js.map +1 -1
- package/dist/fields/SlugPreviewField.d.ts +1 -1
- package/dist/fields/SlugPreviewField.d.ts.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 +1 -1
- package/dist/fields/TemplateField.js.map +1 -1
- package/dist/fields/TransformField.d.ts +1 -1
- package/dist/fields/TransformField.d.ts.map +1 -1
- package/dist/fields/TransformField.js +2 -0
- 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/WidthField.d.ts +1 -1
- package/dist/fields/WidthField.d.ts.map +1 -1
- package/dist/fields/index.d.ts +9 -37
- package/dist/fields/index.d.ts.map +1 -1
- package/dist/fields/index.js +21 -79
- package/dist/fields/index.js.map +1 -1
- package/dist/fields/richtext/controls/ColorPickerControl.d.ts +16 -0
- package/dist/fields/richtext/controls/ColorPickerControl.d.ts.map +1 -0
- package/dist/fields/richtext/controls/ColorPickerControl.js +116 -0
- package/dist/fields/richtext/controls/ColorPickerControl.js.map +1 -0
- package/dist/fields/richtext/controls/DropdownPortal.d.ts +17 -0
- package/dist/fields/richtext/controls/DropdownPortal.d.ts.map +1 -0
- package/dist/fields/richtext/controls/DropdownPortal.js +90 -0
- package/dist/fields/richtext/controls/DropdownPortal.js.map +1 -0
- package/dist/fields/richtext/controls/FontSizeControl.d.ts +8 -0
- package/dist/fields/richtext/controls/FontSizeControl.d.ts.map +1 -0
- package/dist/fields/richtext/controls/FontSizeControl.js +62 -0
- package/dist/fields/richtext/controls/FontSizeControl.js.map +1 -0
- package/dist/fields/richtext/controls/HighlightControl.d.ts +9 -0
- package/dist/fields/richtext/controls/HighlightControl.d.ts.map +1 -0
- package/dist/fields/richtext/controls/HighlightControl.js +44 -0
- package/dist/fields/richtext/controls/HighlightControl.js.map +1 -0
- package/dist/fields/richtext/controls/index.d.ts +11 -0
- package/dist/fields/richtext/controls/index.d.ts.map +1 -0
- package/dist/fields/richtext/controls/index.js +16 -0
- package/dist/fields/richtext/controls/index.js.map +1 -0
- package/dist/fields/richtext/controls/shared.d.ts +97 -0
- package/dist/fields/richtext/controls/shared.d.ts.map +1 -0
- package/dist/fields/richtext/controls/shared.js +344 -0
- package/dist/fields/richtext/controls/shared.js.map +1 -0
- package/dist/fields/richtext/createRichTextField.d.ts +165 -0
- package/dist/fields/richtext/createRichTextField.d.ts.map +1 -0
- package/dist/fields/richtext/createRichTextField.js +139 -0
- package/dist/fields/richtext/createRichTextField.js.map +1 -0
- package/dist/fields/richtext/extensions/FontSize.d.ts +23 -0
- package/dist/fields/richtext/extensions/FontSize.d.ts.map +1 -0
- package/dist/fields/richtext/extensions/FontSize.js +47 -0
- package/dist/fields/richtext/extensions/FontSize.js.map +1 -0
- package/dist/fields/richtext/extensions/index.d.ts +5 -0
- package/dist/fields/richtext/extensions/index.d.ts.map +1 -0
- package/dist/fields/richtext/extensions/index.js +5 -0
- package/dist/fields/richtext/extensions/index.js.map +1 -0
- package/dist/fields/richtext/index.d.ts +14 -0
- package/dist/fields/richtext/index.d.ts.map +1 -0
- package/dist/fields/richtext/index.js +19 -0
- package/dist/fields/richtext/index.js.map +1 -0
- package/dist/fields/richtext/richtext-menu.css +50 -0
- package/dist/fields/shared.d.ts +27 -1
- package/dist/fields/shared.d.ts.map +1 -1
- package/dist/fields/shared.js +34 -0
- package/dist/fields/shared.js.map +1 -1
- package/dist/layouts/types.d.ts +30 -0
- package/dist/layouts/types.d.ts.map +1 -1
- package/dist/plugin/index.d.ts +1 -0
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +111 -1
- package/dist/plugin/index.js.map +1 -1
- package/dist/render/HybridPageRenderer.d.ts +47 -4
- package/dist/render/HybridPageRenderer.d.ts.map +1 -1
- package/dist/render/HybridPageRenderer.js +45 -0
- package/dist/render/HybridPageRenderer.js.map +1 -1
- package/dist/render/PageRenderer.d.ts +1 -1
- package/dist/render/PageRenderer.d.ts.map +1 -1
- package/dist/render/PageRenderer.js +1 -1
- package/dist/render/PageRenderer.js.map +1 -1
- package/dist/render/PuckEditor.client.d.ts +2 -2
- package/dist/render/PuckEditor.client.d.ts.map +1 -1
- package/dist/render/PuckEditor.client.js +2 -2
- package/dist/render/PuckEditor.client.js.map +1 -1
- package/dist/render/index.d.ts +2 -2
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/index.js +1 -1
- package/dist/render/index.js.map +1 -1
- package/dist/types/index.d.ts +36 -11
- package/dist/types/index.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/views/PuckConfigContext.d.ts +56 -2
- package/dist/views/PuckConfigContext.d.ts.map +1 -1
- package/dist/views/PuckConfigContext.js +6 -3
- package/dist/views/PuckConfigContext.js.map +1 -1
- package/dist/views/PuckEditorView.d.ts.map +1 -1
- package/dist/views/PuckEditorView.js +36 -8
- package/dist/views/PuckEditorView.js.map +1 -1
- package/package.json +34 -10
- package/dist/components/typography/RichText.d.ts +0 -20
- package/dist/components/typography/RichText.d.ts.map +0 -1
- package/dist/components/typography/RichText.js +0 -73
- package/dist/components/typography/RichText.js.map +0 -1
- package/dist/fields/TiptapField.d.ts +0 -40
- package/dist/fields/TiptapField.d.ts.map +0 -1
- package/dist/fields/TiptapField.js +0 -857
- package/dist/fields/TiptapField.js.map +0 -1
- package/dist/fields/TiptapModal.d.ts +0 -10
- package/dist/fields/TiptapModal.d.ts.map +0 -1
- package/dist/fields/TiptapModal.js +0 -114
- package/dist/fields/TiptapModal.js.map +0 -1
- package/dist/fields/TiptapModalField.d.ts +0 -23
- package/dist/fields/TiptapModalField.d.ts.map +0 -1
- package/dist/fields/TiptapModalField.js +0 -55
- package/dist/fields/TiptapModalField.js.map +0 -1
- package/dist/fields/richtext-output.css +0 -219
- package/dist/fields/tiptap-styles.css +0 -248
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for RichText controls
|
|
3
|
+
*
|
|
4
|
+
* Color manipulation, font size presets, and common types.
|
|
5
|
+
*/
|
|
6
|
+
// =============================================================================
|
|
7
|
+
// Font Size Presets
|
|
8
|
+
// =============================================================================
|
|
9
|
+
export const FONT_SIZES = [
|
|
10
|
+
{ label: 'XS', value: '0.75rem', px: '12px' },
|
|
11
|
+
{ label: 'Small', value: '0.875rem', px: '14px' },
|
|
12
|
+
{ label: 'Normal', value: null, px: '16px' },
|
|
13
|
+
{ label: 'Medium', value: '1.125rem', px: '18px' },
|
|
14
|
+
{ label: 'Large', value: '1.25rem', px: '20px' },
|
|
15
|
+
{ label: 'XL', value: '1.5rem', px: '24px' },
|
|
16
|
+
{ label: '2XL', value: '1.875rem', px: '30px' },
|
|
17
|
+
{ label: '3XL', value: '2.25rem', px: '36px' },
|
|
18
|
+
{ label: '4XL', value: '3rem', px: '48px' },
|
|
19
|
+
];
|
|
20
|
+
export const FONT_SIZE_UNITS = ['px', 'rem', 'em'];
|
|
21
|
+
// =============================================================================
|
|
22
|
+
// Color Utilities
|
|
23
|
+
// =============================================================================
|
|
24
|
+
/**
|
|
25
|
+
* Validates and normalizes a hex color string
|
|
26
|
+
*/
|
|
27
|
+
export function normalizeHex(hex) {
|
|
28
|
+
let clean = hex.replace(/^#/, '');
|
|
29
|
+
if (clean.length === 3) {
|
|
30
|
+
clean = clean
|
|
31
|
+
.split('')
|
|
32
|
+
.map((c) => c + c)
|
|
33
|
+
.join('');
|
|
34
|
+
}
|
|
35
|
+
if (!/^[0-9A-Fa-f]{6}$/.test(clean)) {
|
|
36
|
+
return '';
|
|
37
|
+
}
|
|
38
|
+
return `#${clean.toLowerCase()}`;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Converts hex + opacity to rgba CSS string
|
|
42
|
+
*/
|
|
43
|
+
export function hexToRgba(hex, opacity) {
|
|
44
|
+
const clean = hex.replace(/^#/, '');
|
|
45
|
+
const r = parseInt(clean.substring(0, 2), 16);
|
|
46
|
+
const g = parseInt(clean.substring(2, 4), 16);
|
|
47
|
+
const b = parseInt(clean.substring(4, 6), 16);
|
|
48
|
+
return `rgba(${r}, ${g}, ${b}, ${opacity / 100})`;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Parses a color string (hex or rgba) and returns hex + opacity
|
|
52
|
+
*/
|
|
53
|
+
export function parseColor(color) {
|
|
54
|
+
if (!color)
|
|
55
|
+
return { hex: '#000000', opacity: 100 };
|
|
56
|
+
// Handle rgba
|
|
57
|
+
const rgbaMatch = color.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)/);
|
|
58
|
+
if (rgbaMatch) {
|
|
59
|
+
const r = parseInt(rgbaMatch[1], 10);
|
|
60
|
+
const g = parseInt(rgbaMatch[2], 10);
|
|
61
|
+
const b = parseInt(rgbaMatch[3], 10);
|
|
62
|
+
const a = rgbaMatch[4] ? parseFloat(rgbaMatch[4]) : 1;
|
|
63
|
+
const hex = `#${r.toString(16).padStart(2, '0')}${g.toString(16).padStart(2, '0')}${b.toString(16).padStart(2, '0')}`;
|
|
64
|
+
return { hex, opacity: Math.round(a * 100) };
|
|
65
|
+
}
|
|
66
|
+
// Handle hex
|
|
67
|
+
const normalized = normalizeHex(color);
|
|
68
|
+
if (normalized) {
|
|
69
|
+
return { hex: normalized, opacity: 100 };
|
|
70
|
+
}
|
|
71
|
+
return { hex: '#000000', opacity: 100 };
|
|
72
|
+
}
|
|
73
|
+
// =============================================================================
|
|
74
|
+
// Shared Styles
|
|
75
|
+
// =============================================================================
|
|
76
|
+
export const controlStyles = {
|
|
77
|
+
icon: {
|
|
78
|
+
width: '16px',
|
|
79
|
+
height: '16px',
|
|
80
|
+
},
|
|
81
|
+
dropdownTrigger: {
|
|
82
|
+
display: 'inline-flex',
|
|
83
|
+
alignItems: 'center',
|
|
84
|
+
justifyContent: 'center',
|
|
85
|
+
gap: '2px',
|
|
86
|
+
height: '28px',
|
|
87
|
+
padding: '0 6px',
|
|
88
|
+
borderRadius: '4px',
|
|
89
|
+
border: 'none',
|
|
90
|
+
backgroundColor: 'transparent',
|
|
91
|
+
cursor: 'pointer',
|
|
92
|
+
transition: 'background-color 0.15s',
|
|
93
|
+
},
|
|
94
|
+
dropdownTriggerActive: {
|
|
95
|
+
color: 'var(--puck-color-azure-04)',
|
|
96
|
+
},
|
|
97
|
+
dropdown: {
|
|
98
|
+
position: 'absolute',
|
|
99
|
+
top: '100%',
|
|
100
|
+
left: 0,
|
|
101
|
+
marginTop: '4px',
|
|
102
|
+
backgroundColor: 'var(--puck-color-white)',
|
|
103
|
+
border: '1px solid var(--puck-color-grey-03)',
|
|
104
|
+
borderRadius: '6px',
|
|
105
|
+
boxShadow: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
|
|
106
|
+
zIndex: 9999, // High z-index to ensure dropdown appears above sidebar content
|
|
107
|
+
minWidth: '160px',
|
|
108
|
+
},
|
|
109
|
+
dropdownItem: {
|
|
110
|
+
width: '100%',
|
|
111
|
+
padding: '8px 12px',
|
|
112
|
+
textAlign: 'left',
|
|
113
|
+
fontSize: '14px',
|
|
114
|
+
transition: 'background-color 0.15s',
|
|
115
|
+
display: 'flex',
|
|
116
|
+
alignItems: 'center',
|
|
117
|
+
border: 'none',
|
|
118
|
+
backgroundColor: 'transparent',
|
|
119
|
+
cursor: 'pointer',
|
|
120
|
+
},
|
|
121
|
+
dropdownLabel: {
|
|
122
|
+
padding: '4px 12px',
|
|
123
|
+
fontSize: '11px',
|
|
124
|
+
color: 'var(--puck-color-grey-05)',
|
|
125
|
+
fontWeight: 500,
|
|
126
|
+
textTransform: 'uppercase',
|
|
127
|
+
letterSpacing: '0.5px',
|
|
128
|
+
},
|
|
129
|
+
dropdownSeparator: {
|
|
130
|
+
height: '1px',
|
|
131
|
+
backgroundColor: 'var(--puck-color-grey-03)',
|
|
132
|
+
margin: '4px 0',
|
|
133
|
+
},
|
|
134
|
+
// Color picker specific styles
|
|
135
|
+
colorPickerContainer: {
|
|
136
|
+
padding: '12px',
|
|
137
|
+
display: 'flex',
|
|
138
|
+
flexDirection: 'column',
|
|
139
|
+
gap: '12px',
|
|
140
|
+
minWidth: '240px',
|
|
141
|
+
},
|
|
142
|
+
colorPickerRow: {
|
|
143
|
+
display: 'flex',
|
|
144
|
+
alignItems: 'center',
|
|
145
|
+
gap: '8px',
|
|
146
|
+
},
|
|
147
|
+
colorPickerInput: {
|
|
148
|
+
width: '36px',
|
|
149
|
+
height: '36px',
|
|
150
|
+
padding: 0,
|
|
151
|
+
border: '1px solid var(--puck-color-grey-03)',
|
|
152
|
+
borderRadius: '6px',
|
|
153
|
+
cursor: 'pointer',
|
|
154
|
+
flexShrink: 0,
|
|
155
|
+
},
|
|
156
|
+
colorPickerHexInput: {
|
|
157
|
+
flex: 1,
|
|
158
|
+
height: '36px',
|
|
159
|
+
padding: '0 10px',
|
|
160
|
+
fontSize: '13px',
|
|
161
|
+
fontFamily: 'monospace',
|
|
162
|
+
border: '1px solid var(--puck-color-grey-03)',
|
|
163
|
+
borderRadius: '6px',
|
|
164
|
+
backgroundColor: 'var(--puck-color-white)',
|
|
165
|
+
color: 'var(--puck-color-grey-08)',
|
|
166
|
+
outline: 'none',
|
|
167
|
+
},
|
|
168
|
+
colorPickerPreview: {
|
|
169
|
+
width: '36px',
|
|
170
|
+
height: '36px',
|
|
171
|
+
borderRadius: '6px',
|
|
172
|
+
border: '1px solid var(--puck-color-grey-03)',
|
|
173
|
+
flexShrink: 0,
|
|
174
|
+
position: 'relative',
|
|
175
|
+
overflow: 'hidden',
|
|
176
|
+
},
|
|
177
|
+
colorPickerCheckerboard: {
|
|
178
|
+
position: 'absolute',
|
|
179
|
+
inset: 0,
|
|
180
|
+
backgroundImage: 'linear-gradient(45deg, #d0d0d0 25%, transparent 25%), linear-gradient(-45deg, #d0d0d0 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #d0d0d0 75%), linear-gradient(-45deg, transparent 75%, #d0d0d0 75%)',
|
|
181
|
+
backgroundSize: '8px 8px',
|
|
182
|
+
backgroundPosition: '0 0, 0 4px, 4px -4px, -4px 0px',
|
|
183
|
+
backgroundColor: '#f0f0f0',
|
|
184
|
+
},
|
|
185
|
+
colorPickerOverlay: {
|
|
186
|
+
position: 'absolute',
|
|
187
|
+
inset: 0,
|
|
188
|
+
},
|
|
189
|
+
colorPickerOpacitySection: {
|
|
190
|
+
display: 'flex',
|
|
191
|
+
flexDirection: 'column',
|
|
192
|
+
gap: '4px',
|
|
193
|
+
},
|
|
194
|
+
colorPickerOpacityHeader: {
|
|
195
|
+
display: 'flex',
|
|
196
|
+
alignItems: 'center',
|
|
197
|
+
justifyContent: 'space-between',
|
|
198
|
+
},
|
|
199
|
+
colorPickerOpacityLabel: {
|
|
200
|
+
fontSize: '11px',
|
|
201
|
+
color: 'var(--puck-color-grey-05)',
|
|
202
|
+
},
|
|
203
|
+
colorPickerOpacityValue: {
|
|
204
|
+
fontSize: '11px',
|
|
205
|
+
fontFamily: 'monospace',
|
|
206
|
+
color: 'var(--puck-color-grey-05)',
|
|
207
|
+
},
|
|
208
|
+
colorPickerOpacitySlider: {
|
|
209
|
+
position: 'relative',
|
|
210
|
+
height: '10px',
|
|
211
|
+
borderRadius: '5px',
|
|
212
|
+
overflow: 'hidden',
|
|
213
|
+
border: '1px solid var(--puck-color-grey-03)',
|
|
214
|
+
},
|
|
215
|
+
colorPickerOpacityInputRange: {
|
|
216
|
+
position: 'absolute',
|
|
217
|
+
inset: 0,
|
|
218
|
+
width: '100%',
|
|
219
|
+
height: '100%',
|
|
220
|
+
opacity: 0,
|
|
221
|
+
cursor: 'pointer',
|
|
222
|
+
margin: 0,
|
|
223
|
+
},
|
|
224
|
+
colorPickerOpacityThumb: {
|
|
225
|
+
position: 'absolute',
|
|
226
|
+
top: 0,
|
|
227
|
+
bottom: 0,
|
|
228
|
+
width: '4px',
|
|
229
|
+
backgroundColor: 'white',
|
|
230
|
+
border: '1px solid var(--puck-color-grey-04)',
|
|
231
|
+
borderRadius: '2px',
|
|
232
|
+
boxShadow: '0 1px 2px rgba(0,0,0,0.15)',
|
|
233
|
+
pointerEvents: 'none',
|
|
234
|
+
},
|
|
235
|
+
colorPickerPresetsLabel: {
|
|
236
|
+
fontSize: '11px',
|
|
237
|
+
color: 'var(--puck-color-grey-05)',
|
|
238
|
+
marginBottom: '4px',
|
|
239
|
+
},
|
|
240
|
+
colorPickerPresetsGrid: {
|
|
241
|
+
display: 'flex',
|
|
242
|
+
flexWrap: 'wrap',
|
|
243
|
+
gap: '4px',
|
|
244
|
+
},
|
|
245
|
+
colorPickerPresetButton: {
|
|
246
|
+
width: '22px',
|
|
247
|
+
height: '22px',
|
|
248
|
+
padding: 0,
|
|
249
|
+
borderRadius: '4px',
|
|
250
|
+
cursor: 'pointer',
|
|
251
|
+
border: '1px solid var(--puck-color-grey-03)',
|
|
252
|
+
outline: 'none',
|
|
253
|
+
transition: 'transform 0.1s',
|
|
254
|
+
},
|
|
255
|
+
colorPickerPresetButtonSelected: {
|
|
256
|
+
width: '22px',
|
|
257
|
+
height: '22px',
|
|
258
|
+
padding: 0,
|
|
259
|
+
borderRadius: '4px',
|
|
260
|
+
cursor: 'pointer',
|
|
261
|
+
border: '2px solid var(--puck-color-grey-08)',
|
|
262
|
+
outline: '2px solid var(--puck-color-grey-03)',
|
|
263
|
+
outlineOffset: '1px',
|
|
264
|
+
},
|
|
265
|
+
colorPickerThemeButton: {
|
|
266
|
+
display: 'flex',
|
|
267
|
+
alignItems: 'center',
|
|
268
|
+
gap: '8px',
|
|
269
|
+
width: '100%',
|
|
270
|
+
padding: '8px',
|
|
271
|
+
border: '1px solid var(--puck-color-grey-03)',
|
|
272
|
+
borderRadius: '6px',
|
|
273
|
+
backgroundColor: 'transparent',
|
|
274
|
+
cursor: 'pointer',
|
|
275
|
+
fontSize: '13px',
|
|
276
|
+
color: 'var(--puck-color-grey-07)',
|
|
277
|
+
transition: 'background-color 0.15s',
|
|
278
|
+
},
|
|
279
|
+
colorPickerThemeSwatch: {
|
|
280
|
+
width: '20px',
|
|
281
|
+
height: '20px',
|
|
282
|
+
borderRadius: '4px',
|
|
283
|
+
border: '1px solid var(--puck-color-grey-03)',
|
|
284
|
+
flexShrink: 0,
|
|
285
|
+
background: 'linear-gradient(135deg, #fff 50%, #1f2937 50%)',
|
|
286
|
+
},
|
|
287
|
+
// Font size specific styles
|
|
288
|
+
fontSizeGrid: {
|
|
289
|
+
display: 'grid',
|
|
290
|
+
gridTemplateColumns: 'repeat(3, 1fr)',
|
|
291
|
+
gap: '4px',
|
|
292
|
+
padding: '8px',
|
|
293
|
+
},
|
|
294
|
+
fontSizeButton: {
|
|
295
|
+
padding: '6px 8px',
|
|
296
|
+
fontSize: '12px',
|
|
297
|
+
borderRadius: '4px',
|
|
298
|
+
border: '1px solid var(--puck-color-grey-03)',
|
|
299
|
+
backgroundColor: 'transparent',
|
|
300
|
+
cursor: 'pointer',
|
|
301
|
+
textAlign: 'center',
|
|
302
|
+
transition: 'background-color 0.15s',
|
|
303
|
+
},
|
|
304
|
+
fontSizeButtonActive: {
|
|
305
|
+
backgroundColor: 'var(--puck-color-azure-11)',
|
|
306
|
+
borderColor: 'var(--puck-color-azure-11)',
|
|
307
|
+
color: 'var(--puck-color-azure-04)',
|
|
308
|
+
fontWeight: 500,
|
|
309
|
+
},
|
|
310
|
+
customSizeRow: {
|
|
311
|
+
display: 'flex',
|
|
312
|
+
alignItems: 'center',
|
|
313
|
+
gap: '4px',
|
|
314
|
+
padding: '8px',
|
|
315
|
+
borderTop: '1px solid var(--puck-color-grey-03)',
|
|
316
|
+
},
|
|
317
|
+
customSizeInput: {
|
|
318
|
+
width: '60px',
|
|
319
|
+
padding: '6px 8px',
|
|
320
|
+
fontSize: '13px',
|
|
321
|
+
border: '1px solid var(--puck-color-grey-03)',
|
|
322
|
+
borderRadius: '4px',
|
|
323
|
+
outline: 'none',
|
|
324
|
+
},
|
|
325
|
+
customSizeSelect: {
|
|
326
|
+
padding: '6px 4px',
|
|
327
|
+
fontSize: '13px',
|
|
328
|
+
border: '1px solid var(--puck-color-grey-03)',
|
|
329
|
+
borderRadius: '4px',
|
|
330
|
+
outline: 'none',
|
|
331
|
+
backgroundColor: 'var(--puck-color-white)',
|
|
332
|
+
},
|
|
333
|
+
customSizeApply: {
|
|
334
|
+
padding: '6px 10px',
|
|
335
|
+
fontSize: '12px',
|
|
336
|
+
backgroundColor: 'var(--puck-color-azure-04)',
|
|
337
|
+
color: 'var(--puck-color-white)',
|
|
338
|
+
borderRadius: '4px',
|
|
339
|
+
border: 'none',
|
|
340
|
+
cursor: 'pointer',
|
|
341
|
+
fontWeight: 500,
|
|
342
|
+
},
|
|
343
|
+
};
|
|
344
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/fields/richtext/controls/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
export interface CreateRichTextFieldOptions {
|
|
2
|
+
/** Field label shown in sidebar */
|
|
3
|
+
label?: string;
|
|
4
|
+
/**
|
|
5
|
+
* Enable inline editing on canvas.
|
|
6
|
+
* When true, users can edit text directly in the preview.
|
|
7
|
+
* @default false
|
|
8
|
+
*/
|
|
9
|
+
contentEditable?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Initial height for sidebar editor (ignored if contentEditable is true)
|
|
12
|
+
* @default 192
|
|
13
|
+
*/
|
|
14
|
+
initialHeight?: number | string;
|
|
15
|
+
/**
|
|
16
|
+
* Heading levels to allow
|
|
17
|
+
* @default [1, 2, 3, 4, 5, 6]
|
|
18
|
+
*/
|
|
19
|
+
headingLevels?: (1 | 2 | 3 | 4 | 5 | 6)[];
|
|
20
|
+
/**
|
|
21
|
+
* Enable font size control
|
|
22
|
+
* @default true
|
|
23
|
+
*/
|
|
24
|
+
fontSize?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Enable text color control
|
|
27
|
+
* @default true
|
|
28
|
+
*/
|
|
29
|
+
textColor?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Enable highlight control
|
|
32
|
+
* @default true
|
|
33
|
+
*/
|
|
34
|
+
highlight?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Enable superscript
|
|
37
|
+
* @default true
|
|
38
|
+
*/
|
|
39
|
+
superscript?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Enable subscript
|
|
42
|
+
* @default true
|
|
43
|
+
*/
|
|
44
|
+
subscript?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Enable code blocks (in addition to inline code)
|
|
47
|
+
* @default true
|
|
48
|
+
*/
|
|
49
|
+
codeBlock?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Enable blockquotes
|
|
52
|
+
* @default true
|
|
53
|
+
*/
|
|
54
|
+
blockquote?: boolean;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Creates a Puck richtext field with enhanced features.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```tsx
|
|
61
|
+
* const myConfig: ComponentConfig = {
|
|
62
|
+
* fields: {
|
|
63
|
+
* content: createRichTextField({
|
|
64
|
+
* label: 'Content',
|
|
65
|
+
* contentEditable: true,
|
|
66
|
+
* }),
|
|
67
|
+
* },
|
|
68
|
+
* // ...
|
|
69
|
+
* }
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export declare function createRichTextField(options?: CreateRichTextFieldOptions): {
|
|
73
|
+
type: "richtext";
|
|
74
|
+
label: string | undefined;
|
|
75
|
+
contentEditable: boolean;
|
|
76
|
+
initialHeight: string | number;
|
|
77
|
+
options: {
|
|
78
|
+
heading: {
|
|
79
|
+
levels: (1 | 2 | 4 | 3 | 5 | 6)[];
|
|
80
|
+
};
|
|
81
|
+
codeBlock: false | undefined;
|
|
82
|
+
blockquote: false | undefined;
|
|
83
|
+
};
|
|
84
|
+
tiptap: {
|
|
85
|
+
extensions: any[];
|
|
86
|
+
selector: any;
|
|
87
|
+
};
|
|
88
|
+
renderMenu: ({ editor, editorState }: {
|
|
89
|
+
editor: any;
|
|
90
|
+
editorState: any;
|
|
91
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Full-featured richtext field with all enhancements
|
|
95
|
+
*/
|
|
96
|
+
export declare const fullRichTextField: {
|
|
97
|
+
type: "richtext";
|
|
98
|
+
label: string | undefined;
|
|
99
|
+
contentEditable: boolean;
|
|
100
|
+
initialHeight: string | number;
|
|
101
|
+
options: {
|
|
102
|
+
heading: {
|
|
103
|
+
levels: (1 | 2 | 4 | 3 | 5 | 6)[];
|
|
104
|
+
};
|
|
105
|
+
codeBlock: false | undefined;
|
|
106
|
+
blockquote: false | undefined;
|
|
107
|
+
};
|
|
108
|
+
tiptap: {
|
|
109
|
+
extensions: any[];
|
|
110
|
+
selector: any;
|
|
111
|
+
};
|
|
112
|
+
renderMenu: ({ editor, editorState }: {
|
|
113
|
+
editor: any;
|
|
114
|
+
editorState: any;
|
|
115
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Minimal richtext field - structure only, no styling controls
|
|
119
|
+
*/
|
|
120
|
+
export declare const minimalRichTextField: {
|
|
121
|
+
type: "richtext";
|
|
122
|
+
label: string | undefined;
|
|
123
|
+
contentEditable: boolean;
|
|
124
|
+
initialHeight: string | number;
|
|
125
|
+
options: {
|
|
126
|
+
heading: {
|
|
127
|
+
levels: (1 | 2 | 4 | 3 | 5 | 6)[];
|
|
128
|
+
};
|
|
129
|
+
codeBlock: false | undefined;
|
|
130
|
+
blockquote: false | undefined;
|
|
131
|
+
};
|
|
132
|
+
tiptap: {
|
|
133
|
+
extensions: any[];
|
|
134
|
+
selector: any;
|
|
135
|
+
};
|
|
136
|
+
renderMenu: ({ editor, editorState }: {
|
|
137
|
+
editor: any;
|
|
138
|
+
editorState: any;
|
|
139
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* Sidebar-only richtext field (no inline editing)
|
|
143
|
+
*/
|
|
144
|
+
export declare const sidebarRichTextField: {
|
|
145
|
+
type: "richtext";
|
|
146
|
+
label: string | undefined;
|
|
147
|
+
contentEditable: boolean;
|
|
148
|
+
initialHeight: string | number;
|
|
149
|
+
options: {
|
|
150
|
+
heading: {
|
|
151
|
+
levels: (1 | 2 | 4 | 3 | 5 | 6)[];
|
|
152
|
+
};
|
|
153
|
+
codeBlock: false | undefined;
|
|
154
|
+
blockquote: false | undefined;
|
|
155
|
+
};
|
|
156
|
+
tiptap: {
|
|
157
|
+
extensions: any[];
|
|
158
|
+
selector: any;
|
|
159
|
+
};
|
|
160
|
+
renderMenu: ({ editor, editorState }: {
|
|
161
|
+
editor: any;
|
|
162
|
+
editorState: any;
|
|
163
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
164
|
+
};
|
|
165
|
+
//# sourceMappingURL=createRichTextField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRichTextField.d.ts","sourceRoot":"","sources":["../../../src/fields/richtext/createRichTextField.tsx"],"names":[],"mappings":"AAoCA,MAAM,WAAW,0BAA0B;IACzC,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IAEzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAE/B;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAA;IAEzC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AA0BD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,0BAA+B;;;;;;;;;;;;;;kBAmFhE,GAAG;;0CAK2B;QAAE,MAAM,EAAE,GAAG,CAAC;QAAC,WAAW,EAAE,GAAG,CAAA;KAAE;EAgE1E;AAMD;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;kBA9ElB,GAAG;;0CAK2B;QAAE,MAAM,EAAE,GAAG,CAAC;QAAC,WAAW,EAAE,GAAG,CAAA;KAAE;CAgFzE,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;kBA1FrB,GAAG;;0CAK2B;QAAE,MAAM,EAAE,GAAG,CAAC;QAAC,WAAW,EAAE,GAAG,CAAA;KAAE;CA6FzE,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;kBAvGrB,GAAG;;0CAK2B;QAAE,MAAM,EAAE,GAAG,CAAC;QAAC,WAAW,EAAE,GAAG,CAAA;KAAE;CAwGzE,CAAA"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { RichTextMenu } from '@puckeditor/core';
|
|
4
|
+
import { TextStyle } from '@tiptap/extension-text-style';
|
|
5
|
+
import { Color } from '@tiptap/extension-color';
|
|
6
|
+
import HighlightExtension from '@tiptap/extension-highlight';
|
|
7
|
+
import Superscript from '@tiptap/extension-superscript';
|
|
8
|
+
import Subscript from '@tiptap/extension-subscript';
|
|
9
|
+
import { Superscript as SuperscriptIcon, Subscript as SubscriptIcon } from 'lucide-react';
|
|
10
|
+
import { FontSize } from './extensions/FontSize';
|
|
11
|
+
import { ColorPickerControl } from './controls/ColorPickerControl';
|
|
12
|
+
import { FontSizeControl } from './controls/FontSizeControl';
|
|
13
|
+
import { HighlightControl } from './controls/HighlightControl';
|
|
14
|
+
// =============================================================================
|
|
15
|
+
// Factory Function
|
|
16
|
+
// =============================================================================
|
|
17
|
+
/**
|
|
18
|
+
* Creates a Puck richtext field with enhanced features.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* const myConfig: ComponentConfig = {
|
|
23
|
+
* fields: {
|
|
24
|
+
* content: createRichTextField({
|
|
25
|
+
* label: 'Content',
|
|
26
|
+
* contentEditable: true,
|
|
27
|
+
* }),
|
|
28
|
+
* },
|
|
29
|
+
* // ...
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export function createRichTextField(options = {}) {
|
|
34
|
+
const { label, contentEditable = false, initialHeight = 192, headingLevels = [1, 2, 3, 4, 5, 6], fontSize = true, textColor = true, highlight = true, superscript = true, subscript = true, codeBlock = true, blockquote = true, } = options;
|
|
35
|
+
// Build custom TipTap extensions array
|
|
36
|
+
// Using any[] to avoid complex union types with TipTap extensions
|
|
37
|
+
const customExtensions = [TextStyle];
|
|
38
|
+
if (textColor) {
|
|
39
|
+
customExtensions.push(Color);
|
|
40
|
+
}
|
|
41
|
+
if (highlight) {
|
|
42
|
+
customExtensions.push(HighlightExtension.configure({ multicolor: true }));
|
|
43
|
+
}
|
|
44
|
+
if (fontSize) {
|
|
45
|
+
customExtensions.push(FontSize);
|
|
46
|
+
}
|
|
47
|
+
if (superscript) {
|
|
48
|
+
customExtensions.push(Superscript);
|
|
49
|
+
}
|
|
50
|
+
if (subscript) {
|
|
51
|
+
customExtensions.push(Subscript);
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
type: 'richtext',
|
|
55
|
+
label,
|
|
56
|
+
// Puck richtext options
|
|
57
|
+
contentEditable,
|
|
58
|
+
initialHeight,
|
|
59
|
+
// Configure built-in extensions
|
|
60
|
+
// Note: Puck expects `false` to disable or config object to customize
|
|
61
|
+
// Omitting a key or setting to `undefined` means "use default" (enabled)
|
|
62
|
+
options: {
|
|
63
|
+
heading: { levels: headingLevels },
|
|
64
|
+
codeBlock: codeBlock ? undefined : false,
|
|
65
|
+
blockquote: blockquote ? undefined : false,
|
|
66
|
+
},
|
|
67
|
+
// Add our custom TipTap extensions
|
|
68
|
+
tiptap: {
|
|
69
|
+
extensions: customExtensions,
|
|
70
|
+
// Expose custom state for our controls
|
|
71
|
+
// Cast to any because Puck's types expect Record<string, boolean> but we need strings for colors/sizes
|
|
72
|
+
selector: ((ctx) => {
|
|
73
|
+
if (!ctx.editor) {
|
|
74
|
+
return {};
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
// Text color state
|
|
78
|
+
currentColor: ctx.editor.getAttributes('textStyle').color,
|
|
79
|
+
// Highlight state
|
|
80
|
+
highlightColor: ctx.editor.getAttributes('highlight').color,
|
|
81
|
+
isHighlight: ctx.editor.isActive('highlight'),
|
|
82
|
+
// Font size state
|
|
83
|
+
currentFontSize: ctx.editor.getAttributes('textStyle').fontSize,
|
|
84
|
+
// Superscript/Subscript state
|
|
85
|
+
isSuperscript: ctx.editor.isActive('superscript'),
|
|
86
|
+
isSubscript: ctx.editor.isActive('subscript'),
|
|
87
|
+
canSuperscript: ctx.editor.can().toggleSuperscript(),
|
|
88
|
+
canSubscript: ctx.editor.can().toggleSubscript(),
|
|
89
|
+
};
|
|
90
|
+
}),
|
|
91
|
+
},
|
|
92
|
+
// Custom menu with our additional controls
|
|
93
|
+
// Using any types for Puck compatibility - our selector adds custom properties to editorState
|
|
94
|
+
renderMenu: ({ editor, editorState }) => {
|
|
95
|
+
// Guard against null editor/state during initialization
|
|
96
|
+
if (!editor || !editorState) {
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
return (_jsxs(RichTextMenu, { children: [_jsxs(RichTextMenu.Group, { children: [_jsx(RichTextMenu.Bold, {}), _jsx(RichTextMenu.Italic, {}), _jsx(RichTextMenu.Underline, {}), _jsx(RichTextMenu.Strikethrough, {}), superscript && (_jsx(RichTextMenu.Control, { icon: _jsx(SuperscriptIcon, { size: 16 }), title: "Superscript", active: editorState.isSuperscript, disabled: !editorState.canSuperscript, onClick: () => editor.chain().focus().toggleSuperscript().run() })), subscript && (_jsx(RichTextMenu.Control, { icon: _jsx(SubscriptIcon, { size: 16 }), title: "Subscript", active: editorState.isSubscript, disabled: !editorState.canSubscript, onClick: () => editor.chain().focus().toggleSubscript().run() }))] }), _jsxs(RichTextMenu.Group, { children: [_jsx(RichTextMenu.HeadingSelect, {}), _jsx(RichTextMenu.ListSelect, {}), _jsx(RichTextMenu.AlignSelect, {})] }), _jsxs(RichTextMenu.Group, { children: [fontSize && _jsx(FontSizeControl, { editor: editor, currentSize: editorState.currentFontSize }), textColor && _jsx(ColorPickerControl, { editor: editor, currentColor: editorState.currentColor }), highlight && (_jsx(HighlightControl, { editor: editor, currentColor: editorState.highlightColor, isActive: editorState.isHighlight }))] }), _jsxs(RichTextMenu.Group, { children: [blockquote && _jsx(RichTextMenu.Blockquote, {}), codeBlock && _jsx(RichTextMenu.CodeBlock, {}), _jsx(RichTextMenu.HorizontalRule, {})] })] }));
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
// =============================================================================
|
|
104
|
+
// Preset Configurations
|
|
105
|
+
// =============================================================================
|
|
106
|
+
/**
|
|
107
|
+
* Full-featured richtext field with all enhancements
|
|
108
|
+
*/
|
|
109
|
+
export const fullRichTextField = createRichTextField({
|
|
110
|
+
contentEditable: true,
|
|
111
|
+
fontSize: true,
|
|
112
|
+
textColor: true,
|
|
113
|
+
highlight: true,
|
|
114
|
+
superscript: true,
|
|
115
|
+
subscript: true,
|
|
116
|
+
});
|
|
117
|
+
/**
|
|
118
|
+
* Minimal richtext field - structure only, no styling controls
|
|
119
|
+
*/
|
|
120
|
+
export const minimalRichTextField = createRichTextField({
|
|
121
|
+
contentEditable: true,
|
|
122
|
+
fontSize: false,
|
|
123
|
+
textColor: false,
|
|
124
|
+
highlight: false,
|
|
125
|
+
superscript: false,
|
|
126
|
+
subscript: false,
|
|
127
|
+
headingLevels: [1, 2, 3],
|
|
128
|
+
});
|
|
129
|
+
/**
|
|
130
|
+
* Sidebar-only richtext field (no inline editing)
|
|
131
|
+
*/
|
|
132
|
+
export const sidebarRichTextField = createRichTextField({
|
|
133
|
+
contentEditable: false,
|
|
134
|
+
initialHeight: 300,
|
|
135
|
+
fontSize: true,
|
|
136
|
+
textColor: true,
|
|
137
|
+
highlight: true,
|
|
138
|
+
});
|
|
139
|
+
//# sourceMappingURL=createRichTextField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRichTextField.js","sourceRoot":"","sources":["../../../src/fields/richtext/createRichTextField.tsx"],"names":[],"mappings":"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"}
|