@alpaca-editor/core 1.0.0 → 1.0.3
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/build.css +3 -0
- package/components.json +21 -0
- package/dev.css +3 -0
- package/dist/client-components/api.d.ts +1 -0
- package/dist/client-components/api.js +4 -0
- package/dist/client-components/api.js.map +1 -0
- package/dist/client-components/index.d.ts +16 -0
- package/dist/client-components/index.js +17 -0
- package/dist/client-components/index.js.map +1 -0
- package/dist/components/ActionButton.d.ts +12 -0
- package/dist/components/ActionButton.js +6 -0
- package/dist/components/ActionButton.js.map +1 -0
- package/dist/components/Error.d.ts +9 -0
- package/dist/components/Error.js +24 -0
- package/dist/components/Error.js.map +1 -0
- package/dist/components/ui/button.d.ts +10 -0
- package/dist/components/ui/button.js +32 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/config/config.d.ts +6 -0
- package/dist/config/config.js +647 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/types.d.ts +223 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/editor/ComponentInfo.d.ts +4 -0
- package/dist/editor/ComponentInfo.js +29 -0
- package/dist/editor/ComponentInfo.js.map +1 -0
- package/dist/editor/ConfirmationDialog.d.ts +19 -0
- package/dist/editor/ConfirmationDialog.js +31 -0
- package/dist/editor/ConfirmationDialog.js.map +1 -0
- package/dist/editor/ContentTree.d.ts +35 -0
- package/dist/editor/ContentTree.js +404 -0
- package/dist/editor/ContentTree.js.map +1 -0
- package/dist/editor/ContextMenu.d.ts +13 -0
- package/dist/editor/ContextMenu.js +114 -0
- package/dist/editor/ContextMenu.js.map +1 -0
- package/dist/editor/Editor.d.ts +11 -0
- package/dist/editor/Editor.js +50 -0
- package/dist/editor/Editor.js.map +1 -0
- package/dist/editor/EditorWarning.d.ts +5 -0
- package/dist/editor/EditorWarning.js +11 -0
- package/dist/editor/EditorWarning.js.map +1 -0
- package/dist/editor/EditorWarnings.d.ts +9 -0
- package/dist/editor/EditorWarnings.js +19 -0
- package/dist/editor/EditorWarnings.js.map +1 -0
- package/dist/editor/FieldEditorPopup.d.ts +10 -0
- package/dist/editor/FieldEditorPopup.js +22 -0
- package/dist/editor/FieldEditorPopup.js.map +1 -0
- package/dist/editor/FieldHistory.d.ts +6 -0
- package/dist/editor/FieldHistory.js +38 -0
- package/dist/editor/FieldHistory.js.map +1 -0
- package/dist/editor/FieldList.d.ts +16 -0
- package/dist/editor/FieldList.js +58 -0
- package/dist/editor/FieldList.js.map +1 -0
- package/dist/editor/FieldListField.d.ts +14 -0
- package/dist/editor/FieldListField.js +161 -0
- package/dist/editor/FieldListField.js.map +1 -0
- package/dist/editor/FieldListFieldWithFallbacks.d.ts +10 -0
- package/dist/editor/FieldListFieldWithFallbacks.js +109 -0
- package/dist/editor/FieldListFieldWithFallbacks.js.map +1 -0
- package/dist/editor/FloatingToolbar.d.ts +7 -0
- package/dist/editor/FloatingToolbar.js +90 -0
- package/dist/editor/FloatingToolbar.js.map +1 -0
- package/dist/editor/ImageEditor.d.ts +5 -0
- package/dist/editor/ImageEditor.js +53 -0
- package/dist/editor/ImageEditor.js.map +1 -0
- package/dist/editor/InsertMenu.d.ts +8 -0
- package/dist/editor/InsertMenu.js +158 -0
- package/dist/editor/InsertMenu.js.map +1 -0
- package/dist/editor/ItemInfo.d.ts +4 -0
- package/dist/editor/ItemInfo.js +28 -0
- package/dist/editor/ItemInfo.js.map +1 -0
- package/dist/editor/LinkEditorDialog.d.ts +15 -0
- package/dist/editor/LinkEditorDialog.js +84 -0
- package/dist/editor/LinkEditorDialog.js.map +1 -0
- package/dist/editor/MainLayout.d.ts +9 -0
- package/dist/editor/MainLayout.js +41 -0
- package/dist/editor/MainLayout.js.map +1 -0
- package/dist/editor/NewEditorClient.d.ts +5 -0
- package/dist/editor/NewEditorClient.js +7 -0
- package/dist/editor/NewEditorClient.js.map +1 -0
- package/dist/editor/PictureCropper.d.ts +6 -0
- package/dist/editor/PictureCropper.js +327 -0
- package/dist/editor/PictureCropper.js.map +1 -0
- package/dist/editor/PictureEditor.d.ts +8 -0
- package/dist/editor/PictureEditor.js +102 -0
- package/dist/editor/PictureEditor.js.map +1 -0
- package/dist/editor/PictureEditorDialog.d.ts +8 -0
- package/dist/editor/PictureEditorDialog.js +189 -0
- package/dist/editor/PictureEditorDialog.js.map +1 -0
- package/dist/editor/ScrollingContentTree.d.ts +6 -0
- package/dist/editor/ScrollingContentTree.js +25 -0
- package/dist/editor/ScrollingContentTree.js.map +1 -0
- package/dist/editor/Terminal.d.ts +14 -0
- package/dist/editor/Terminal.js +107 -0
- package/dist/editor/Terminal.js.map +1 -0
- package/dist/editor/Titlebar.d.ts +1 -0
- package/dist/editor/Titlebar.js +9 -0
- package/dist/editor/Titlebar.js.map +1 -0
- package/dist/editor/ai/AiPopup.d.ts +10 -0
- package/dist/editor/ai/AiPopup.js +23 -0
- package/dist/editor/ai/AiPopup.js.map +1 -0
- package/dist/editor/ai/AiResponseMessage.d.ts +8 -0
- package/dist/editor/ai/AiResponseMessage.js +22 -0
- package/dist/editor/ai/AiResponseMessage.js.map +1 -0
- package/dist/editor/ai/AiTerminal.d.ts +34 -0
- package/dist/editor/ai/AiTerminal.js +236 -0
- package/dist/editor/ai/AiTerminal.js.map +1 -0
- package/dist/editor/ai/AiToolCall.d.ts +9 -0
- package/dist/editor/ai/AiToolCall.js +16 -0
- package/dist/editor/ai/AiToolCall.js.map +1 -0
- package/dist/editor/ai/EditorAiTerminal.d.ts +5 -0
- package/dist/editor/ai/EditorAiTerminal.js +7 -0
- package/dist/editor/ai/EditorAiTerminal.js.map +1 -0
- package/dist/editor/ai/editorAiContext.d.ts +11 -0
- package/dist/editor/ai/editorAiContext.js +12 -0
- package/dist/editor/ai/editorAiContext.js.map +1 -0
- package/dist/editor/client/DialogContext.d.ts +12 -0
- package/dist/editor/client/DialogContext.js +25 -0
- package/dist/editor/client/DialogContext.js.map +1 -0
- package/dist/editor/client/EditorClient.d.ts +26 -0
- package/dist/editor/client/EditorClient.js +1298 -0
- package/dist/editor/client/EditorClient.js.map +1 -0
- package/dist/editor/client/GenericDialog.d.ts +10 -0
- package/dist/editor/client/GenericDialog.js +25 -0
- package/dist/editor/client/GenericDialog.js.map +1 -0
- package/dist/editor/client/editContext.d.ts +199 -0
- package/dist/editor/client/editContext.js +20 -0
- package/dist/editor/client/editContext.js.map +1 -0
- package/dist/editor/client/helpers.d.ts +12 -0
- package/dist/editor/client/helpers.js +29 -0
- package/dist/editor/client/helpers.js.map +1 -0
- package/dist/editor/client/itemsRepository.d.ts +24 -0
- package/dist/editor/client/itemsRepository.js +253 -0
- package/dist/editor/client/itemsRepository.js.map +1 -0
- package/dist/editor/client/operations.d.ts +57 -0
- package/dist/editor/client/operations.js +393 -0
- package/dist/editor/client/operations.js.map +1 -0
- package/dist/editor/client/pageModelBuilder.d.ts +6 -0
- package/dist/editor/client/pageModelBuilder.js +127 -0
- package/dist/editor/client/pageModelBuilder.js.map +1 -0
- package/dist/editor/commands/commands.d.ts +19 -0
- package/dist/editor/commands/commands.js +2 -0
- package/dist/editor/commands/commands.js.map +1 -0
- package/dist/editor/commands/componentCommands.d.ts +13 -0
- package/dist/editor/commands/componentCommands.js +271 -0
- package/dist/editor/commands/componentCommands.js.map +1 -0
- package/dist/editor/commands/createVersionCommand.d.ts +4 -0
- package/dist/editor/commands/createVersionCommand.js +24 -0
- package/dist/editor/commands/createVersionCommand.js.map +1 -0
- package/dist/editor/commands/deleteVersionCommand.d.ts +4 -0
- package/dist/editor/commands/deleteVersionCommand.js +53 -0
- package/dist/editor/commands/deleteVersionCommand.js.map +1 -0
- package/dist/editor/commands/itemCommands.d.ts +17 -0
- package/dist/editor/commands/itemCommands.js +132 -0
- package/dist/editor/commands/itemCommands.js.map +1 -0
- package/dist/editor/commands/localizeItem/LocalizeItemDialog.d.ts +8 -0
- package/dist/editor/commands/localizeItem/LocalizeItemDialog.js +89 -0
- package/dist/editor/commands/localizeItem/LocalizeItemDialog.js.map +1 -0
- package/dist/editor/commands/undo.d.ts +15 -0
- package/dist/editor/commands/undo.js +29 -0
- package/dist/editor/commands/undo.js.map +1 -0
- package/dist/editor/component-designer/ComponentDesigner.d.ts +1 -0
- package/dist/editor/component-designer/ComponentDesigner.js +56 -0
- package/dist/editor/component-designer/ComponentDesigner.js.map +1 -0
- package/dist/editor/component-designer/ComponentDesignerAiTerminal.d.ts +1 -0
- package/dist/editor/component-designer/ComponentDesignerAiTerminal.js +7 -0
- package/dist/editor/component-designer/ComponentDesignerAiTerminal.js.map +1 -0
- package/dist/editor/component-designer/ComponentDesignerMenu.d.ts +1 -0
- package/dist/editor/component-designer/ComponentDesignerMenu.js +65 -0
- package/dist/editor/component-designer/ComponentDesignerMenu.js.map +1 -0
- package/dist/editor/component-designer/ComponentEditor.d.ts +4 -0
- package/dist/editor/component-designer/ComponentEditor.js +57 -0
- package/dist/editor/component-designer/ComponentEditor.js.map +1 -0
- package/dist/editor/component-designer/ComponentRenderingCodeEditor.d.ts +5 -0
- package/dist/editor/component-designer/ComponentRenderingCodeEditor.js +11 -0
- package/dist/editor/component-designer/ComponentRenderingCodeEditor.js.map +1 -0
- package/dist/editor/component-designer/ComponentRenderingEditor.d.ts +1 -0
- package/dist/editor/component-designer/ComponentRenderingEditor.js +69 -0
- package/dist/editor/component-designer/ComponentRenderingEditor.js.map +1 -0
- package/dist/editor/component-designer/ComponentsDropdown.d.ts +4 -0
- package/dist/editor/component-designer/ComponentsDropdown.js +20 -0
- package/dist/editor/component-designer/ComponentsDropdown.js.map +1 -0
- package/dist/editor/component-designer/PlaceholdersEditor.d.ts +4 -0
- package/dist/editor/component-designer/PlaceholdersEditor.js +68 -0
- package/dist/editor/component-designer/PlaceholdersEditor.js.map +1 -0
- package/dist/editor/component-designer/RenderingsDropdown.d.ts +1 -0
- package/dist/editor/component-designer/RenderingsDropdown.js +23 -0
- package/dist/editor/component-designer/RenderingsDropdown.js.map +1 -0
- package/dist/editor/component-designer/TemplateEditor.d.ts +1 -0
- package/dist/editor/component-designer/TemplateEditor.js +142 -0
- package/dist/editor/component-designer/TemplateEditor.js.map +1 -0
- package/dist/editor/component-designer/aiContext.d.ts +5 -0
- package/dist/editor/component-designer/aiContext.js +16 -0
- package/dist/editor/component-designer/aiContext.js.map +1 -0
- package/dist/editor/componentTreeHelper.d.ts +16 -0
- package/dist/editor/componentTreeHelper.js +87 -0
- package/dist/editor/componentTreeHelper.js.map +1 -0
- package/dist/editor/control-center/ControlCenterMenu.d.ts +1 -0
- package/dist/editor/control-center/ControlCenterMenu.js +57 -0
- package/dist/editor/control-center/ControlCenterMenu.js.map +1 -0
- package/dist/editor/control-center/IndexOverview.d.ts +1 -0
- package/dist/editor/control-center/IndexOverview.js +25 -0
- package/dist/editor/control-center/IndexOverview.js.map +1 -0
- package/dist/editor/control-center/IndexSettings.d.ts +5 -0
- package/dist/editor/control-center/IndexSettings.js +104 -0
- package/dist/editor/control-center/IndexSettings.js.map +1 -0
- package/dist/editor/control-center/Status.d.ts +1 -0
- package/dist/editor/control-center/Status.js +5 -0
- package/dist/editor/control-center/Status.js.map +1 -0
- package/dist/editor/editor-warnings/ItemLocked.d.ts +2 -0
- package/dist/editor/editor-warnings/ItemLocked.js +38 -0
- package/dist/editor/editor-warnings/ItemLocked.js.map +1 -0
- package/dist/editor/editor-warnings/NoLanguageWriteAccess.d.ts +2 -0
- package/dist/editor/editor-warnings/NoLanguageWriteAccess.js +14 -0
- package/dist/editor/editor-warnings/NoLanguageWriteAccess.js.map +1 -0
- package/dist/editor/editor-warnings/NoWorkflowWriteAccess.d.ts +2 -0
- package/dist/editor/editor-warnings/NoWorkflowWriteAccess.js +14 -0
- package/dist/editor/editor-warnings/NoWorkflowWriteAccess.js.map +1 -0
- package/dist/editor/editor-warnings/NoWriteAccess.d.ts +2 -0
- package/dist/editor/editor-warnings/NoWriteAccess.js +12 -0
- package/dist/editor/editor-warnings/NoWriteAccess.js.map +1 -0
- package/dist/editor/editor-warnings/ValidationErrors.d.ts +2 -0
- package/dist/editor/editor-warnings/ValidationErrors.js +25 -0
- package/dist/editor/editor-warnings/ValidationErrors.js.map +1 -0
- package/dist/editor/field-types/AttachmentEditor.d.ts +4 -0
- package/dist/editor/field-types/AttachmentEditor.js +5 -0
- package/dist/editor/field-types/AttachmentEditor.js.map +1 -0
- package/dist/editor/field-types/CheckboxEditor.d.ts +5 -0
- package/dist/editor/field-types/CheckboxEditor.js +30 -0
- package/dist/editor/field-types/CheckboxEditor.js.map +1 -0
- package/dist/editor/field-types/DropLinkEditor.d.ts +5 -0
- package/dist/editor/field-types/DropLinkEditor.js +49 -0
- package/dist/editor/field-types/DropLinkEditor.js.map +1 -0
- package/dist/editor/field-types/DropListEditor.d.ts +5 -0
- package/dist/editor/field-types/DropListEditor.js +56 -0
- package/dist/editor/field-types/DropListEditor.js.map +1 -0
- package/dist/editor/field-types/ImageFieldEditor.d.ts +5 -0
- package/dist/editor/field-types/ImageFieldEditor.js +34 -0
- package/dist/editor/field-types/ImageFieldEditor.js.map +1 -0
- package/dist/editor/field-types/InternalLinkFieldEditor.d.ts +5 -0
- package/dist/editor/field-types/InternalLinkFieldEditor.js +59 -0
- package/dist/editor/field-types/InternalLinkFieldEditor.js.map +1 -0
- package/dist/editor/field-types/LinkFieldEditor.d.ts +5 -0
- package/dist/editor/field-types/LinkFieldEditor.js +56 -0
- package/dist/editor/field-types/LinkFieldEditor.js.map +1 -0
- package/dist/editor/field-types/MultiLineText.d.ts +6 -0
- package/dist/editor/field-types/MultiLineText.js +33 -0
- package/dist/editor/field-types/MultiLineText.js.map +1 -0
- package/dist/editor/field-types/PictureFieldEditor.d.ts +5 -0
- package/dist/editor/field-types/PictureFieldEditor.js +57 -0
- package/dist/editor/field-types/PictureFieldEditor.js.map +1 -0
- package/dist/editor/field-types/RawEditor.d.ts +5 -0
- package/dist/editor/field-types/RawEditor.js +31 -0
- package/dist/editor/field-types/RawEditor.js.map +1 -0
- package/dist/editor/field-types/ReactQuill.d.ts +125 -0
- package/dist/editor/field-types/ReactQuill.js +385 -0
- package/dist/editor/field-types/ReactQuill.js.map +1 -0
- package/dist/editor/field-types/RichTextEditor.d.ts +5 -0
- package/dist/editor/field-types/RichTextEditor.js +8 -0
- package/dist/editor/field-types/RichTextEditor.js.map +1 -0
- package/dist/editor/field-types/RichTextEditorComponent.d.ts +6 -0
- package/dist/editor/field-types/RichTextEditorComponent.js +70 -0
- package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -0
- package/dist/editor/field-types/SingleLineText.d.ts +6 -0
- package/dist/editor/field-types/SingleLineText.js +90 -0
- package/dist/editor/field-types/SingleLineText.js.map +1 -0
- package/dist/editor/field-types/TreeListEditor.d.ts +5 -0
- package/dist/editor/field-types/TreeListEditor.js +132 -0
- package/dist/editor/field-types/TreeListEditor.js.map +1 -0
- package/dist/editor/fieldTypes.d.ts +117 -0
- package/dist/editor/fieldTypes.js +2 -0
- package/dist/editor/fieldTypes.js.map +1 -0
- package/dist/editor/media-selector/AiImageSearch.d.ts +4 -0
- package/dist/editor/media-selector/AiImageSearch.js +105 -0
- package/dist/editor/media-selector/AiImageSearch.js.map +1 -0
- package/dist/editor/media-selector/AiImageSearchPrompt.d.ts +3 -0
- package/dist/editor/media-selector/AiImageSearchPrompt.js +56 -0
- package/dist/editor/media-selector/AiImageSearchPrompt.js.map +1 -0
- package/dist/editor/media-selector/MediaSelector.d.ts +9 -0
- package/dist/editor/media-selector/MediaSelector.js +8 -0
- package/dist/editor/media-selector/MediaSelector.js.map +1 -0
- package/dist/editor/media-selector/Preview.d.ts +4 -0
- package/dist/editor/media-selector/Preview.js +7 -0
- package/dist/editor/media-selector/Preview.js.map +1 -0
- package/dist/editor/media-selector/Thumbnails.d.ts +13 -0
- package/dist/editor/media-selector/Thumbnails.js +9 -0
- package/dist/editor/media-selector/Thumbnails.js.map +1 -0
- package/dist/editor/media-selector/TreeSelector.d.ts +7 -0
- package/dist/editor/media-selector/TreeSelector.js +165 -0
- package/dist/editor/media-selector/TreeSelector.js.map +1 -0
- package/dist/editor/media-selector/UploadZone.d.ts +4 -0
- package/dist/editor/media-selector/UploadZone.js +78 -0
- package/dist/editor/media-selector/UploadZone.js.map +1 -0
- package/dist/editor/menubar/ActionsMenu.d.ts +1 -0
- package/dist/editor/menubar/ActionsMenu.js +31 -0
- package/dist/editor/menubar/ActionsMenu.js.map +1 -0
- package/dist/editor/menubar/ActiveUsers.d.ts +1 -0
- package/dist/editor/menubar/ActiveUsers.js +11 -0
- package/dist/editor/menubar/ActiveUsers.js.map +1 -0
- package/dist/editor/menubar/ApproveAndPublish.d.ts +1 -0
- package/dist/editor/menubar/ApproveAndPublish.js +11 -0
- package/dist/editor/menubar/ApproveAndPublish.js.map +1 -0
- package/dist/editor/menubar/BrowseHistory.d.ts +6 -0
- package/dist/editor/menubar/BrowseHistory.js +12 -0
- package/dist/editor/menubar/BrowseHistory.js.map +1 -0
- package/dist/editor/menubar/ItemLanguageVersion.d.ts +1 -0
- package/dist/editor/menubar/ItemLanguageVersion.js +34 -0
- package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -0
- package/dist/editor/menubar/LanguageSelector.d.ts +9 -0
- package/dist/editor/menubar/LanguageSelector.js +31 -0
- package/dist/editor/menubar/LanguageSelector.js.map +1 -0
- package/dist/editor/menubar/Menu.d.ts +1 -0
- package/dist/editor/menubar/Menu.js +63 -0
- package/dist/editor/menubar/Menu.js.map +1 -0
- package/dist/editor/menubar/NavButtons.d.ts +1 -0
- package/dist/editor/menubar/NavButtons.js +41 -0
- package/dist/editor/menubar/NavButtons.js.map +1 -0
- package/dist/editor/menubar/PageSelector.d.ts +4 -0
- package/dist/editor/menubar/PageSelector.js +48 -0
- package/dist/editor/menubar/PageSelector.js.map +1 -0
- package/dist/editor/menubar/PageViewerControls.d.ts +1 -0
- package/dist/editor/menubar/PageViewerControls.js +35 -0
- package/dist/editor/menubar/PageViewerControls.js.map +1 -0
- package/dist/editor/menubar/Separator.d.ts +3 -0
- package/dist/editor/menubar/Separator.js +6 -0
- package/dist/editor/menubar/Separator.js.map +1 -0
- package/dist/editor/menubar/SiteInfo.d.ts +1 -0
- package/dist/editor/menubar/SiteInfo.js +24 -0
- package/dist/editor/menubar/SiteInfo.js.map +1 -0
- package/dist/editor/menubar/User.d.ts +4 -0
- package/dist/editor/menubar/User.js +16 -0
- package/dist/editor/menubar/User.js.map +1 -0
- package/dist/editor/menubar/VersionSelector.d.ts +9 -0
- package/dist/editor/menubar/VersionSelector.js +47 -0
- package/dist/editor/menubar/VersionSelector.js.map +1 -0
- package/dist/editor/page-editor-chrome/CommentHighlighting.d.ts +6 -0
- package/dist/editor/page-editor-chrome/CommentHighlighting.js +212 -0
- package/dist/editor/page-editor-chrome/CommentHighlighting.js.map +1 -0
- package/dist/editor/page-editor-chrome/CommentHighlightings.d.ts +4 -0
- package/dist/editor/page-editor-chrome/CommentHighlightings.js +15 -0
- package/dist/editor/page-editor-chrome/CommentHighlightings.js.map +1 -0
- package/dist/editor/page-editor-chrome/FieldActionIndicator.d.ts +4 -0
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js +25 -0
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -0
- package/dist/editor/page-editor-chrome/FieldActionIndicators.d.ts +1 -0
- package/dist/editor/page-editor-chrome/FieldActionIndicators.js +13 -0
- package/dist/editor/page-editor-chrome/FieldActionIndicators.js.map +1 -0
- package/dist/editor/page-editor-chrome/FieldEditedIndicator.d.ts +8 -0
- package/dist/editor/page-editor-chrome/FieldEditedIndicator.js +25 -0
- package/dist/editor/page-editor-chrome/FieldEditedIndicator.js.map +1 -0
- package/dist/editor/page-editor-chrome/FieldEditedIndicators.d.ts +6 -0
- package/dist/editor/page-editor-chrome/FieldEditedIndicators.js +13 -0
- package/dist/editor/page-editor-chrome/FieldEditedIndicators.js.map +1 -0
- package/dist/editor/page-editor-chrome/FrameMenu.d.ts +7 -0
- package/dist/editor/page-editor-chrome/FrameMenu.js +176 -0
- package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -0
- package/dist/editor/page-editor-chrome/FrameMenus.d.ts +5 -0
- package/dist/editor/page-editor-chrome/FrameMenus.js +22 -0
- package/dist/editor/page-editor-chrome/FrameMenus.js.map +1 -0
- package/dist/editor/page-editor-chrome/InlineEditor.d.ts +5 -0
- package/dist/editor/page-editor-chrome/InlineEditor.js +99 -0
- package/dist/editor/page-editor-chrome/InlineEditor.js.map +1 -0
- package/dist/editor/page-editor-chrome/LockedFieldIndicator.d.ts +1 -0
- package/dist/editor/page-editor-chrome/LockedFieldIndicator.js +33 -0
- package/dist/editor/page-editor-chrome/LockedFieldIndicator.js.map +1 -0
- package/dist/editor/page-editor-chrome/NoLayout.d.ts +1 -0
- package/dist/editor/page-editor-chrome/NoLayout.js +19 -0
- package/dist/editor/page-editor-chrome/NoLayout.js.map +1 -0
- package/dist/editor/page-editor-chrome/PageEditorChrome.d.ts +6 -0
- package/dist/editor/page-editor-chrome/PageEditorChrome.js +63 -0
- package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -0
- package/dist/editor/page-editor-chrome/PictureEditorOverlay.d.ts +1 -0
- package/dist/editor/page-editor-chrome/PictureEditorOverlay.js +107 -0
- package/dist/editor/page-editor-chrome/PictureEditorOverlay.js.map +1 -0
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.d.ts +14 -0
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +80 -0
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -0
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.d.ts +5 -0
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +145 -0
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -0
- package/dist/editor/page-viewer/DeviceToolbar.d.ts +6 -0
- package/dist/editor/page-viewer/DeviceToolbar.js +19 -0
- package/dist/editor/page-viewer/DeviceToolbar.js.map +1 -0
- package/dist/editor/page-viewer/EditorForm.d.ts +5 -0
- package/dist/editor/page-viewer/EditorForm.js +128 -0
- package/dist/editor/page-viewer/EditorForm.js.map +1 -0
- package/dist/editor/page-viewer/MiniMap.d.ts +9 -0
- package/dist/editor/page-viewer/MiniMap.js +222 -0
- package/dist/editor/page-viewer/MiniMap.js.map +1 -0
- package/dist/editor/page-viewer/PageViewer.d.ts +8 -0
- package/dist/editor/page-viewer/PageViewer.js +62 -0
- package/dist/editor/page-viewer/PageViewer.js.map +1 -0
- package/dist/editor/page-viewer/PageViewerFrame.d.ts +11 -0
- package/dist/editor/page-viewer/PageViewerFrame.js +690 -0
- package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -0
- package/dist/editor/page-viewer/pageViewContext.d.ts +38 -0
- package/dist/editor/page-viewer/pageViewContext.js +115 -0
- package/dist/editor/page-viewer/pageViewContext.js.map +1 -0
- package/dist/editor/pageModel.d.ts +171 -0
- package/dist/editor/pageModel.js +2 -0
- package/dist/editor/pageModel.js.map +1 -0
- package/dist/editor/picture-shared.d.ts +16 -0
- package/dist/editor/picture-shared.js +25 -0
- package/dist/editor/picture-shared.js.map +1 -0
- package/dist/editor/reviews/Comment.d.ts +4 -0
- package/dist/editor/reviews/Comment.js +114 -0
- package/dist/editor/reviews/Comment.js.map +1 -0
- package/dist/editor/reviews/Comments.d.ts +1 -0
- package/dist/editor/reviews/Comments.js +22 -0
- package/dist/editor/reviews/Comments.js.map +1 -0
- package/dist/editor/reviews/PreviewInfo.d.ts +1 -0
- package/dist/editor/reviews/PreviewInfo.js +11 -0
- package/dist/editor/reviews/PreviewInfo.js.map +1 -0
- package/dist/editor/reviews/Reviews.d.ts +1 -0
- package/dist/editor/reviews/Reviews.js +160 -0
- package/dist/editor/reviews/Reviews.js.map +1 -0
- package/dist/editor/reviews/reviewCommands.d.ts +3 -0
- package/dist/editor/reviews/reviewCommands.js +42 -0
- package/dist/editor/reviews/reviewCommands.js.map +1 -0
- package/dist/editor/reviews/useReviews.d.ts +12 -0
- package/dist/editor/reviews/useReviews.js +43 -0
- package/dist/editor/reviews/useReviews.js.map +1 -0
- package/dist/editor/services/aiService.d.ts +34 -0
- package/dist/editor/services/aiService.js +95 -0
- package/dist/editor/services/aiService.js.map +1 -0
- package/dist/editor/services/componentDesignerService.d.ts +46 -0
- package/dist/editor/services/componentDesignerService.js +72 -0
- package/dist/editor/services/componentDesignerService.js.map +1 -0
- package/dist/editor/services/contentService.d.ts +34 -0
- package/dist/editor/services/contentService.js +92 -0
- package/dist/editor/services/contentService.js.map +1 -0
- package/dist/editor/services/editService.d.ts +34 -0
- package/dist/editor/services/editService.js +294 -0
- package/dist/editor/services/editService.js.map +1 -0
- package/dist/editor/services/indexService.d.ts +6 -0
- package/dist/editor/services/indexService.js +19 -0
- package/dist/editor/services/indexService.js.map +1 -0
- package/dist/editor/services/reviewsService.d.ts +12 -0
- package/dist/editor/services/reviewsService.js +32 -0
- package/dist/editor/services/reviewsService.js.map +1 -0
- package/dist/editor/services/serviceHelper.d.ts +9 -0
- package/dist/editor/services/serviceHelper.js +64 -0
- package/dist/editor/services/serviceHelper.js.map +1 -0
- package/dist/editor/services/systemService.d.ts +2 -0
- package/dist/editor/services/systemService.js +5 -0
- package/dist/editor/services/systemService.js.map +1 -0
- package/dist/editor/services/translationService.d.ts +11 -0
- package/dist/editor/services/translationService.js +11 -0
- package/dist/editor/services/translationService.js.map +1 -0
- package/dist/editor/services-server/api.d.ts +19 -0
- package/dist/editor/services-server/api.js +111 -0
- package/dist/editor/services-server/api.js.map +1 -0
- package/dist/editor/services-server/graphQL.d.ts +29 -0
- package/dist/editor/services-server/graphQL.js +53 -0
- package/dist/editor/services-server/graphQL.js.map +1 -0
- package/dist/editor/sidebar/ComponentPalette.d.ts +1 -0
- package/dist/editor/sidebar/ComponentPalette.js +53 -0
- package/dist/editor/sidebar/ComponentPalette.js.map +1 -0
- package/dist/editor/sidebar/ComponentTree.d.ts +1 -0
- package/dist/editor/sidebar/ComponentTree.js +360 -0
- package/dist/editor/sidebar/ComponentTree.js.map +1 -0
- package/dist/editor/sidebar/Debug.d.ts +1 -0
- package/dist/editor/sidebar/Debug.js +58 -0
- package/dist/editor/sidebar/Debug.js.map +1 -0
- package/dist/editor/sidebar/DictionaryEditor.d.ts +1 -0
- package/dist/editor/sidebar/DictionaryEditor.js +158 -0
- package/dist/editor/sidebar/DictionaryEditor.js.map +1 -0
- package/dist/editor/sidebar/EditHistory.d.ts +1 -0
- package/dist/editor/sidebar/EditHistory.js +72 -0
- package/dist/editor/sidebar/EditHistory.js.map +1 -0
- package/dist/editor/sidebar/GraphQL.d.ts +1 -0
- package/dist/editor/sidebar/GraphQL.js +113 -0
- package/dist/editor/sidebar/GraphQL.js.map +1 -0
- package/dist/editor/sidebar/Insert.d.ts +1 -0
- package/dist/editor/sidebar/Insert.js +22 -0
- package/dist/editor/sidebar/Insert.js.map +1 -0
- package/dist/editor/sidebar/MainContentTree.d.ts +4 -0
- package/dist/editor/sidebar/MainContentTree.js +49 -0
- package/dist/editor/sidebar/MainContentTree.js.map +1 -0
- package/dist/editor/sidebar/Performance.d.ts +1 -0
- package/dist/editor/sidebar/Performance.js +32 -0
- package/dist/editor/sidebar/Performance.js.map +1 -0
- package/dist/editor/sidebar/Sessions.d.ts +1 -0
- package/dist/editor/sidebar/Sessions.js +29 -0
- package/dist/editor/sidebar/Sessions.js.map +1 -0
- package/dist/editor/sidebar/Sidebar.d.ts +1 -0
- package/dist/editor/sidebar/Sidebar.js +13 -0
- package/dist/editor/sidebar/Sidebar.js.map +1 -0
- package/dist/editor/sidebar/SidebarView.d.ts +8 -0
- package/dist/editor/sidebar/SidebarView.js +74 -0
- package/dist/editor/sidebar/SidebarView.js.map +1 -0
- package/dist/editor/sidebar/Translations.d.ts +1 -0
- package/dist/editor/sidebar/Translations.js +158 -0
- package/dist/editor/sidebar/Translations.js.map +1 -0
- package/dist/editor/sidebar/Validation.d.ts +1 -0
- package/dist/editor/sidebar/Validation.js +50 -0
- package/dist/editor/sidebar/Validation.js.map +1 -0
- package/dist/editor/sidebar/ViewSelector.d.ts +1 -0
- package/dist/editor/sidebar/ViewSelector.js +13 -0
- package/dist/editor/sidebar/ViewSelector.js.map +1 -0
- package/dist/editor/sidebar/Workbox.d.ts +1 -0
- package/dist/editor/sidebar/Workbox.js +78 -0
- package/dist/editor/sidebar/Workbox.js.map +1 -0
- package/dist/editor/ui/CenteredMessage.d.ts +3 -0
- package/dist/editor/ui/CenteredMessage.js +5 -0
- package/dist/editor/ui/CenteredMessage.js.map +1 -0
- package/dist/editor/ui/CopyToClipboardButton.d.ts +3 -0
- package/dist/editor/ui/CopyToClipboardButton.js +15 -0
- package/dist/editor/ui/CopyToClipboardButton.js.map +1 -0
- package/dist/editor/ui/DialogButtons.d.ts +3 -0
- package/dist/editor/ui/DialogButtons.js +5 -0
- package/dist/editor/ui/DialogButtons.js.map +1 -0
- package/dist/editor/ui/Icons.d.ts +38 -0
- package/dist/editor/ui/Icons.js +56 -0
- package/dist/editor/ui/Icons.js.map +1 -0
- package/dist/editor/ui/ItemNameDialog.d.ts +11 -0
- package/dist/editor/ui/ItemNameDialog.js +40 -0
- package/dist/editor/ui/ItemNameDialog.js.map +1 -0
- package/dist/editor/ui/ItemNameDialogNew.d.ts +10 -0
- package/dist/editor/ui/ItemNameDialogNew.js +56 -0
- package/dist/editor/ui/ItemNameDialogNew.js.map +1 -0
- package/dist/editor/ui/ItemSearch.d.ts +23 -0
- package/dist/editor/ui/ItemSearch.js +90 -0
- package/dist/editor/ui/ItemSearch.js.map +1 -0
- package/dist/editor/ui/PerfectTree.d.ts +60 -0
- package/dist/editor/ui/PerfectTree.js +187 -0
- package/dist/editor/ui/PerfectTree.js.map +1 -0
- package/dist/editor/ui/Section.d.ts +4 -0
- package/dist/editor/ui/Section.js +10 -0
- package/dist/editor/ui/Section.js.map +1 -0
- package/dist/editor/ui/SimpleIconButton.d.ts +11 -0
- package/dist/editor/ui/SimpleIconButton.js +9 -0
- package/dist/editor/ui/SimpleIconButton.js.map +1 -0
- package/dist/editor/ui/SimpleMenu.d.ts +13 -0
- package/dist/editor/ui/SimpleMenu.js +7 -0
- package/dist/editor/ui/SimpleMenu.js.map +1 -0
- package/dist/editor/ui/SimpleTable.d.ts +14 -0
- package/dist/editor/ui/SimpleTable.js +9 -0
- package/dist/editor/ui/SimpleTable.js.map +1 -0
- package/dist/editor/ui/SimpleTabs.d.ts +12 -0
- package/dist/editor/ui/SimpleTabs.js +19 -0
- package/dist/editor/ui/SimpleTabs.js.map +1 -0
- package/dist/editor/ui/SimpleToolbar.d.ts +3 -0
- package/dist/editor/ui/SimpleToolbar.js +5 -0
- package/dist/editor/ui/SimpleToolbar.js.map +1 -0
- package/dist/editor/ui/Spinner.d.ts +3 -0
- package/dist/editor/ui/Spinner.js +5 -0
- package/dist/editor/ui/Spinner.js.map +1 -0
- package/dist/editor/ui/Splitter.d.ts +15 -0
- package/dist/editor/ui/Splitter.js +151 -0
- package/dist/editor/ui/Splitter.js.map +1 -0
- package/dist/editor/ui/StackedPanels.d.ts +5 -0
- package/dist/editor/ui/StackedPanels.js +67 -0
- package/dist/editor/ui/StackedPanels.js.map +1 -0
- package/dist/editor/ui/Toolbar.d.ts +3 -0
- package/dist/editor/ui/Toolbar.js +5 -0
- package/dist/editor/ui/Toolbar.js.map +1 -0
- package/dist/editor/utils/id-helper.d.ts +1 -0
- package/dist/editor/utils/id-helper.js +5 -0
- package/dist/editor/utils/id-helper.js.map +1 -0
- package/dist/editor/utils/insertOptions.d.ts +3 -0
- package/dist/editor/utils/insertOptions.js +43 -0
- package/dist/editor/utils/insertOptions.js.map +1 -0
- package/dist/editor/utils/itemutils.d.ts +3 -0
- package/dist/editor/utils/itemutils.js +22 -0
- package/dist/editor/utils/itemutils.js.map +1 -0
- package/dist/editor/utils/useMemoDebug.d.ts +1 -0
- package/dist/editor/utils/useMemoDebug.js +18 -0
- package/dist/editor/utils/useMemoDebug.js.map +1 -0
- package/dist/editor/utils.d.ts +44 -0
- package/dist/editor/utils.js +309 -0
- package/dist/editor/utils.js.map +1 -0
- package/dist/editor/views/CompareView.d.ts +1 -0
- package/dist/editor/views/CompareView.js +145 -0
- package/dist/editor/views/CompareView.js.map +1 -0
- package/dist/editor/views/EditView.d.ts +1 -0
- package/dist/editor/views/EditView.js +15 -0
- package/dist/editor/views/EditView.js.map +1 -0
- package/dist/editor/views/ItemEditor.d.ts +7 -0
- package/dist/editor/views/ItemEditor.js +22 -0
- package/dist/editor/views/ItemEditor.js.map +1 -0
- package/dist/editor/views/SingleEditView.d.ts +8 -0
- package/dist/editor/views/SingleEditView.js +23 -0
- package/dist/editor/views/SingleEditView.js.map +1 -0
- package/dist/images/bg-shape-black.webp +0 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.js +6 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/page-wizard/PageWizard.d.ts +70 -0
- package/dist/page-wizard/PageWizard.js +60 -0
- package/dist/page-wizard/PageWizard.js.map +1 -0
- package/dist/page-wizard/SelectWizard.d.ts +7 -0
- package/dist/page-wizard/SelectWizard.js +41 -0
- package/dist/page-wizard/SelectWizard.js.map +1 -0
- package/dist/page-wizard/WizardSteps.d.ts +8 -0
- package/dist/page-wizard/WizardSteps.js +69 -0
- package/dist/page-wizard/WizardSteps.js.map +1 -0
- package/dist/page-wizard/service.d.ts +15 -0
- package/dist/page-wizard/service.js +22 -0
- package/dist/page-wizard/service.js.map +1 -0
- package/dist/page-wizard/startPageWizardCommand.d.ts +13 -0
- package/dist/page-wizard/startPageWizardCommand.js +21 -0
- package/dist/page-wizard/startPageWizardCommand.js.map +1 -0
- package/dist/page-wizard/steps/BuildPageStep.d.ts +2 -0
- package/dist/page-wizard/steps/BuildPageStep.js +133 -0
- package/dist/page-wizard/steps/BuildPageStep.js.map +1 -0
- package/dist/page-wizard/steps/CollectStep.d.ts +2 -0
- package/dist/page-wizard/steps/CollectStep.js +119 -0
- package/dist/page-wizard/steps/CollectStep.js.map +1 -0
- package/dist/page-wizard/steps/ComponentTypesSelector.d.ts +11 -0
- package/dist/page-wizard/steps/ComponentTypesSelector.js +209 -0
- package/dist/page-wizard/steps/ComponentTypesSelector.js.map +1 -0
- package/dist/page-wizard/steps/Components.d.ts +9 -0
- package/dist/page-wizard/steps/Components.js +89 -0
- package/dist/page-wizard/steps/Components.js.map +1 -0
- package/dist/page-wizard/steps/CreatePage.d.ts +12 -0
- package/dist/page-wizard/steps/CreatePage.js +140 -0
- package/dist/page-wizard/steps/CreatePage.js.map +1 -0
- package/dist/page-wizard/steps/CreatePageAndLayoutStep.d.ts +2 -0
- package/dist/page-wizard/steps/CreatePageAndLayoutStep.js +228 -0
- package/dist/page-wizard/steps/CreatePageAndLayoutStep.js.map +1 -0
- package/dist/page-wizard/steps/EditButton.d.ts +8 -0
- package/dist/page-wizard/steps/EditButton.js +5 -0
- package/dist/page-wizard/steps/EditButton.js.map +1 -0
- package/dist/page-wizard/steps/FieldEditor.d.ts +5 -0
- package/dist/page-wizard/steps/FieldEditor.js +28 -0
- package/dist/page-wizard/steps/FieldEditor.js.map +1 -0
- package/dist/page-wizard/steps/Generate.d.ts +5 -0
- package/dist/page-wizard/steps/Generate.js +10 -0
- package/dist/page-wizard/steps/Generate.js.map +1 -0
- package/dist/page-wizard/steps/ImagesStep.d.ts +2 -0
- package/dist/page-wizard/steps/ImagesStep.js +156 -0
- package/dist/page-wizard/steps/ImagesStep.js.map +1 -0
- package/dist/page-wizard/steps/LayoutStep.d.ts +2 -0
- package/dist/page-wizard/steps/LayoutStep.js +118 -0
- package/dist/page-wizard/steps/LayoutStep.js.map +1 -0
- package/dist/page-wizard/steps/SelectStep.d.ts +2 -0
- package/dist/page-wizard/steps/SelectStep.js +145 -0
- package/dist/page-wizard/steps/SelectStep.js.map +1 -0
- package/dist/page-wizard/steps/schema.d.ts +13 -0
- package/dist/page-wizard/steps/schema.js +137 -0
- package/dist/page-wizard/steps/schema.js.map +1 -0
- package/dist/page-wizard/steps/usePageCreator.d.ts +6 -0
- package/dist/page-wizard/steps/usePageCreator.js +192 -0
- package/dist/page-wizard/steps/usePageCreator.js.map +1 -0
- package/dist/splash-screen/NewPage.d.ts +3 -0
- package/dist/splash-screen/NewPage.js +129 -0
- package/dist/splash-screen/NewPage.js.map +1 -0
- package/dist/splash-screen/SectionHeadline.d.ts +4 -0
- package/dist/splash-screen/SectionHeadline.js +7 -0
- package/dist/splash-screen/SectionHeadline.js.map +1 -0
- package/dist/splash-screen/SplashScreen.d.ts +1 -0
- package/dist/splash-screen/SplashScreen.js +79 -0
- package/dist/splash-screen/SplashScreen.js.map +1 -0
- package/dist/styles.css +2739 -0
- package/dist/tour/Tour.d.ts +3 -0
- package/dist/tour/Tour.js +319 -0
- package/dist/tour/Tour.js.map +1 -0
- package/dist/tour/default-tour.d.ts +9 -0
- package/dist/tour/default-tour.js +229 -0
- package/dist/tour/default-tour.js.map +1 -0
- package/dist/tour/preview-tour.d.ts +2 -0
- package/dist/tour/preview-tour.js +91 -0
- package/dist/tour/preview-tour.js.map +1 -0
- package/dist/types.d.ts +259 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +12 -5
- package/src/components/ui/button.tsx +62 -0
- package/src/editor/Titlebar.tsx +2 -2
- package/src/editor/client/EditorClient.tsx +8 -9
- package/src/editor/menubar/ActionsMenu.tsx +1 -1
- package/src/editor/menubar/Menu.tsx +3 -3
- package/src/editor/menubar/VersionSelector.tsx +9 -10
- package/src/editor/page-editor-chrome/CommentHighlighting.tsx +8 -9
- package/src/editor/page-viewer/MiniMap.tsx +11 -11
- package/src/editor/reviews/Comment.tsx +38 -33
- package/src/editor/sidebar/ComponentTree.tsx +512 -512
- package/src/editor/sidebar/Insert.tsx +2 -2
- package/src/editor/sidebar/MainContentTree.tsx +1 -0
- package/src/editor/sidebar/Translations.tsx +12 -12
- package/src/editor/sidebar/ViewSelector.tsx +6 -7
- package/src/editor/ui/PerfectTree.tsx +2 -2
- package/src/editor/ui/SimpleTable.tsx +3 -6
- package/src/editor/utils.ts +32 -29
- package/src/index.ts +2 -0
- package/src/lib/utils.ts +6 -0
- package/src/splash-screen/SplashScreen.tsx +2 -2
- package/styles.css +124 -2
- package/tsconfig.build.json +23 -13
- package/tsconfig.json +3 -0
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import { ScrollingContentTree } from "../../editor/ScrollingContentTree";
|
|
4
|
+
import { Splitter } from "../../editor/ui/Splitter";
|
|
5
|
+
import { useEditContext } from "../../editor/client/editContext";
|
|
6
|
+
import { executePrompt, executeSearch } from "../../editor/services/aiService";
|
|
7
|
+
import { createWizardAiContext } from "../service";
|
|
8
|
+
import { ActionButton } from "../../components/ActionButton";
|
|
9
|
+
import { classNames } from "primereact/utils";
|
|
10
|
+
import { Button } from "primereact/button";
|
|
11
|
+
import { Dialog } from "primereact/dialog";
|
|
12
|
+
export const ImagesStep = (props) => {
|
|
13
|
+
const mediaRootId = "3D6658D8-A0BF-4E75-B3E2-D050FABCF4E1";
|
|
14
|
+
const [selectedFolderId, setSelectedFolderId] = useState(mediaRootId);
|
|
15
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
16
|
+
const [error, setError] = useState(null);
|
|
17
|
+
const editContext = useEditContext();
|
|
18
|
+
const propName = props.step.propertyName || "images";
|
|
19
|
+
const [showFolderDialog, setShowFolderDialog] = useState(false);
|
|
20
|
+
const [selectedFolder, setSelectedFolder] = useState();
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (props.data[propName]?.length > 0) {
|
|
23
|
+
props.setStepCompleted(true);
|
|
24
|
+
}
|
|
25
|
+
}, [props.data]);
|
|
26
|
+
const findMatchingImages = async () => {
|
|
27
|
+
setIsLoading(true);
|
|
28
|
+
setError(null);
|
|
29
|
+
props.setData((prevData) => ({
|
|
30
|
+
...prevData,
|
|
31
|
+
[propName]: [],
|
|
32
|
+
}));
|
|
33
|
+
try {
|
|
34
|
+
// First, ask AI for keywords based on the content
|
|
35
|
+
const aiPromptResult = await executePrompt([
|
|
36
|
+
{
|
|
37
|
+
content: `You are an AI assistant for building a web page. You will later have to create images for the page.
|
|
38
|
+
Please anaylze the provided data and suggest a number of images and specific keywords per image. The keywords will be used to find matching images in the image library.
|
|
39
|
+
Response JSON format: { images: Image[] } type Image = { title: string, keywords: string[] }
|
|
40
|
+
Input data: ${JSON.stringify(props.data)}
|
|
41
|
+
Instructions: ${props.step.instructions}`,
|
|
42
|
+
name: "system",
|
|
43
|
+
role: "system",
|
|
44
|
+
},
|
|
45
|
+
], editContext, createWizardAiContext, [""], true, undefined, "o3-mini-low");
|
|
46
|
+
const images = JSON.parse(aiPromptResult.content).images;
|
|
47
|
+
// Create an array of promises for all search operations
|
|
48
|
+
const searchPromises = images.map(async (image) => {
|
|
49
|
+
const searchResult = await executeSearch({
|
|
50
|
+
query: image.keywords.join(" "),
|
|
51
|
+
rootItemIds: selectedFolderId ? [selectedFolderId] : undefined,
|
|
52
|
+
editContext: editContext,
|
|
53
|
+
maxResults: 6,
|
|
54
|
+
index: "media",
|
|
55
|
+
skipValidation: true,
|
|
56
|
+
});
|
|
57
|
+
if (searchResult.type === "success") {
|
|
58
|
+
const thumbnails = searchResult.data.map((thumbnail) => ({
|
|
59
|
+
name: thumbnail.name,
|
|
60
|
+
id: thumbnail.id,
|
|
61
|
+
thumbUrl: thumbnail.thumbUrl,
|
|
62
|
+
description: thumbnail.description,
|
|
63
|
+
}));
|
|
64
|
+
props.setInternalState((state) => ({
|
|
65
|
+
...state,
|
|
66
|
+
thumbnails: [
|
|
67
|
+
...(state.thumbnails || []),
|
|
68
|
+
...thumbnails.filter((newThumb) => !(state.thumbnails || []).some((existingThumb) => existingThumb.id === newThumb.id)),
|
|
69
|
+
],
|
|
70
|
+
}));
|
|
71
|
+
props.setData((prevData) => ({
|
|
72
|
+
...prevData,
|
|
73
|
+
[propName]: [
|
|
74
|
+
...(prevData[propName] || []),
|
|
75
|
+
{
|
|
76
|
+
...image,
|
|
77
|
+
options: thumbnails,
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
}));
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
setError(`Error searching for images: ${searchResult.response.statusText}`);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
// Wait for all search operations to complete
|
|
87
|
+
await Promise.all(searchPromises);
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
setError(`Error finding matching images: ${err instanceof Error ? err.message : String(err)}`);
|
|
91
|
+
console.error("Error in findMatchingImages:", err);
|
|
92
|
+
}
|
|
93
|
+
finally {
|
|
94
|
+
setIsLoading(false);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
useEffect(() => {
|
|
98
|
+
const loadFolder = async () => {
|
|
99
|
+
if (selectedFolderId) {
|
|
100
|
+
const item = await editContext?.itemsRepository.getItem({
|
|
101
|
+
id: selectedFolderId,
|
|
102
|
+
language: "en",
|
|
103
|
+
version: 1,
|
|
104
|
+
});
|
|
105
|
+
console.log("ITEM", item);
|
|
106
|
+
setSelectedFolder(item);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
loadFolder();
|
|
110
|
+
}, [selectedFolderId]);
|
|
111
|
+
console.log("FOLDER", selectedFolder, selectedFolderId);
|
|
112
|
+
const panels = [
|
|
113
|
+
{
|
|
114
|
+
name: "Settings",
|
|
115
|
+
defaultSize: 400,
|
|
116
|
+
content: (_jsxs("div", { className: "flex h-full flex-col gap-2 pr-6 pb-4", children: [_jsxs("div", { className: "relative mb-2 rounded-md border border-gray-400 bg-white p-4", children: [_jsx("div", { className: "mb-2 text-sm font-bold text-gray-800", children: "Image library folder" }), selectedFolder && (_jsx("div", { className: "mb-2 text-sm text-gray-500", children: selectedFolder.path })), _jsx(Button, { label: "Change Folder", onClick: () => {
|
|
117
|
+
setShowFolderDialog(true);
|
|
118
|
+
} }), _jsx(Dialog, { header: "Select Folder", visible: showFolderDialog, onHide: () => {
|
|
119
|
+
setShowFolderDialog(false);
|
|
120
|
+
}, style: { width: "50vw", height: "50vh" }, children: _jsx("div", { className: "relative flex h-full flex-col", children: _jsx(ScrollingContentTree, { rootItemId: mediaRootId, onSelectionChange: (selection) => {
|
|
121
|
+
const selectedNode = selection[0];
|
|
122
|
+
if (selectedNode)
|
|
123
|
+
setSelectedFolderId(selectedNode.id);
|
|
124
|
+
else
|
|
125
|
+
setSelectedFolderId(mediaRootId);
|
|
126
|
+
setShowFolderDialog(false);
|
|
127
|
+
} }) }) })] }), _jsx(ActionButton, { onClick: findMatchingImages, isLoading: isLoading, disabled: isLoading, loadingText: "Searching...", children: "Find Matching Images" })] })),
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
name: "Images",
|
|
131
|
+
defaultSize: "auto",
|
|
132
|
+
content: (_jsx("div", { className: "absolute inset-0 overflow-auto", children: _jsx("div", { className: "flex flex-col gap-4 p-4 pt-0", children: _jsxs("div", { className: "flex items-center gap-4", children: [error && _jsx("div", { className: "text-red-500", children: error }), props.data[propName]?.length > 0 && (_jsx("div", { className: "flex flex-col gap-4", children: props.data[propName]?.map((image, index) => (_jsxs("span", { className: classNames("rounded border border-gray-400 bg-white p-4 text-sm", index % 2 === 0
|
|
133
|
+
? "animate-fadeRight"
|
|
134
|
+
: "animate-fadeLeft"), children: [_jsx("div", { className: "mb-3 text-lg", children: image.title }), _jsx("div", { className: "flex flex-wrap gap-5", children: image.options?.map((option, thumbnailIndex) => (_jsxs("div", { className: "relative flex h-28 w-28 cursor-pointer items-center justify-center border border-gray-400", onClick: () => {
|
|
135
|
+
props.setData((prevData) => ({
|
|
136
|
+
...prevData,
|
|
137
|
+
[propName]: prevData[propName].map((img, imgIndex) => ({
|
|
138
|
+
...img,
|
|
139
|
+
options: imgIndex !== index
|
|
140
|
+
? img.options
|
|
141
|
+
: img.options?.map((option, optionIndex) => optionIndex === thumbnailIndex
|
|
142
|
+
? {
|
|
143
|
+
...option,
|
|
144
|
+
selected: !option.selected,
|
|
145
|
+
}
|
|
146
|
+
: option),
|
|
147
|
+
})),
|
|
148
|
+
}));
|
|
149
|
+
}, children: [_jsx("img", { src: option.thumbUrl, alt: option.name }, thumbnailIndex), _jsx("div", { className: classNames("peer ring-offset-background focus-visible:ring-ring pointer-events-none absolute right-1 bottom-1 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50", option.selected
|
|
150
|
+
? "text-canvas-pink border-canvas-pink bg-white"
|
|
151
|
+
: ""), children: option.selected && (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("path", { d: "M20 6 9 17l-5-5" }) })) })] }, thumbnailIndex))) })] }, index))) }))] }) }) })),
|
|
152
|
+
},
|
|
153
|
+
];
|
|
154
|
+
return _jsx(Splitter, { panels: panels });
|
|
155
|
+
};
|
|
156
|
+
//# sourceMappingURL=ImagesStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImagesStep.js","sourceRoot":"","sources":["../../../src/page-wizard/steps/ImagesStep.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import { useEditContext } from "../../editor/client/editContext";
|
|
4
|
+
import { executePrompt } from "../../editor/services/aiService";
|
|
5
|
+
import { createWizardAiContext } from "../service";
|
|
6
|
+
import { Components } from "./Components";
|
|
7
|
+
import { Splitter } from "../../editor/ui/Splitter";
|
|
8
|
+
import { convertPageSchemaToWizardComponents } from "./schema";
|
|
9
|
+
import { ActionButton } from "../../components/ActionButton";
|
|
10
|
+
import { ComponentTypeSelector } from "./ComponentTypesSelector";
|
|
11
|
+
export function LayoutStep({ wizard, step, data, setData, setStepCompleted, internalState, setInternalState, }) {
|
|
12
|
+
const editContext = useEditContext();
|
|
13
|
+
const abortController = new AbortController();
|
|
14
|
+
const localAbortController = abortController || new AbortController();
|
|
15
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
16
|
+
const [message, setMessage] = useState();
|
|
17
|
+
const [selectedComponentTypes, setSelectedComponentTypes] = useState([]);
|
|
18
|
+
const [customInstructions, setCustomInstructions] = useState();
|
|
19
|
+
if (!editContext) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (data.pageModel?.components?.length) {
|
|
24
|
+
setStepCompleted(!isLoading);
|
|
25
|
+
}
|
|
26
|
+
}, [data.pageModel, isLoading]);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
setCustomInstructions(step.instructions);
|
|
29
|
+
}, []);
|
|
30
|
+
const createLayout = async () => {
|
|
31
|
+
try {
|
|
32
|
+
setIsLoading(true);
|
|
33
|
+
// Parse schema if it's a string
|
|
34
|
+
const schema = typeof wizard.schema === "string"
|
|
35
|
+
? JSON.parse(wizard.schema)
|
|
36
|
+
: wizard.schema;
|
|
37
|
+
// Filter the schema based on selected component types and placeholders
|
|
38
|
+
const filteredSchema = convertPageSchemaToWizardComponents(schema, selectedComponentTypes);
|
|
39
|
+
const result = await executePrompt([
|
|
40
|
+
{
|
|
41
|
+
content: `${customInstructions?.trim()} Reply with a json object of type PageModel = { name: string; metaDescription: string; components: Component[]; message: string; };
|
|
42
|
+
Component = { name: string, type: string; fields: Field[]; placeholder?: string; children?: Component[]; };
|
|
43
|
+
Field = { name: string; value: string; type: string; };
|
|
44
|
+
Generate a descriptive name for each component including the topic.
|
|
45
|
+
Only use component types that are in the page schema. Also suggest a page name following default sitecore item naming conventions (no underscores, no white space, no umlaute, no special characters, hyphens are allowed) and the page meta description.
|
|
46
|
+
Component types: ${JSON.stringify(filteredSchema)} Root level component types ${filteredSchema
|
|
47
|
+
.filter((c) => c.allowedOnRoot)
|
|
48
|
+
.map((c) => c.type)
|
|
49
|
+
.join(", ")}
|
|
50
|
+
Tell the user your reasoning in the message field.
|
|
51
|
+
Fill image ids into picture / image fields.
|
|
52
|
+
Input data: ${JSON.stringify(data)}`,
|
|
53
|
+
name: "system",
|
|
54
|
+
role: "system",
|
|
55
|
+
},
|
|
56
|
+
], editContext, createWizardAiContext, [""], true, { signal: localAbortController.signal }, "o3-mini-low", (response) => {
|
|
57
|
+
try {
|
|
58
|
+
const newLayout = JSON.parse(response.content);
|
|
59
|
+
if (newLayout) {
|
|
60
|
+
setData((prev) => ({
|
|
61
|
+
...prev,
|
|
62
|
+
pageModel: newLayout,
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
setMessage(newLayout.message);
|
|
66
|
+
}
|
|
67
|
+
catch (parseError) { }
|
|
68
|
+
});
|
|
69
|
+
const pageModel = JSON.parse(result.content);
|
|
70
|
+
setData({
|
|
71
|
+
...data,
|
|
72
|
+
pageModel: JSON.parse(result.content),
|
|
73
|
+
customInstructions,
|
|
74
|
+
});
|
|
75
|
+
setMessage(pageModel.message);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
console.error(error);
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
setIsLoading(false);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
// Toggle placeholder selection
|
|
85
|
+
// Regenerate layout with current selected component types and placeholders
|
|
86
|
+
const regenerateLayout = () => {
|
|
87
|
+
createLayout();
|
|
88
|
+
};
|
|
89
|
+
useEffect(() => {
|
|
90
|
+
if (!selectedComponentTypes.length)
|
|
91
|
+
return;
|
|
92
|
+
// Only set custom instructions if they're not already set or if step.instructions has changed
|
|
93
|
+
if (customInstructions !== step.instructions) {
|
|
94
|
+
setCustomInstructions(step.instructions);
|
|
95
|
+
}
|
|
96
|
+
}, [step.instructions, selectedComponentTypes]);
|
|
97
|
+
// Custom instructions panel
|
|
98
|
+
const customInstructionsPanel = () => {
|
|
99
|
+
return (_jsxs("div", { className: "mb-4", children: [_jsx("h3", { className: "text-sm font-bold", children: "Instructions" }), _jsx("div", { className: "mb-3 text-xs text-gray-500", children: "Provide guidance for the AI when generating your layout" }), _jsx("textarea", { value: customInstructions, onChange: (e) => setCustomInstructions(e.target.value), placeholder: "Example: Make it modern and minimalist. Focus on images. Include a hero section at the top.", className: "w-full px-3 py-2 border border-gray-300 rounded text-sm focus:outline-none focus:ring-1 focus:ring-blue-500 h-48", disabled: isLoading })] }));
|
|
100
|
+
};
|
|
101
|
+
const settingsPanel = {
|
|
102
|
+
name: "Settings",
|
|
103
|
+
collapsible: false,
|
|
104
|
+
defaultSize: 450,
|
|
105
|
+
content: (_jsxs("div", { className: "absolute inset-0 overflow-auto flex flex-col h-full pr-4", children: [customInstructionsPanel(), _jsx(ComponentTypeSelector, { selectedComponentTypes: selectedComponentTypes, setSelectedComponentTypes: setSelectedComponentTypes, schema: wizard.schema, data: data, setData: setData, step: step }), _jsxs("div", { className: "flex gap-2", children: [_jsx(ActionButton, { onClick: regenerateLayout, disabled: isLoading || selectedComponentTypes.length === 0, isLoading: isLoading, loadingText: "Working", className: "flex-1", children: data.pageModel ? "Regenerate Layout" : "Generate Layout" }), isLoading && (_jsxs("button", { onClick: () => {
|
|
106
|
+
localAbortController.abort();
|
|
107
|
+
setIsLoading(false);
|
|
108
|
+
}, className: "bg-red-500 text-white px-2 py-1 rounded text-xs hover:bg-red-600 flex items-center gap-1", children: [_jsx("span", { className: "pi pi-times" }), "Abort"] }))] }), _jsx("div", { className: "text-xs text-gray-500 p-2", children: message })] })),
|
|
109
|
+
};
|
|
110
|
+
const layoutPanel = {
|
|
111
|
+
name: "Layout",
|
|
112
|
+
defaultSize: "auto",
|
|
113
|
+
collapsible: false,
|
|
114
|
+
content: (_jsx("div", { className: "absolute inset-2 flex flex-col justify-center items-center text-gray-600", children: _jsx(Components, { pageModel: data.pageModel, onComponentRemoved: () => setData({ ...data }), onFieldEdited: () => setData({ ...data }), thumbnails: internalState.thumbnails, setInternalState: setInternalState }) })),
|
|
115
|
+
};
|
|
116
|
+
return (_jsx(Splitter, { panels: [settingsPanel, layoutPanel], localStorageKey: "editor.page-wizard.layout" }));
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=LayoutStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LayoutStep.js","sourceRoot":"","sources":["../../../src/page-wizard/steps/LayoutStep.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from "react";
|
|
3
|
+
import { useEditContext } from "../../editor/client/editContext";
|
|
4
|
+
import { executePrompt } from "../../editor/services/aiService";
|
|
5
|
+
import { createWizardAiContext } from "../service";
|
|
6
|
+
import { classNames } from "primereact/utils";
|
|
7
|
+
import { Splitter } from "../../editor/ui/Splitter";
|
|
8
|
+
import { InputTextarea } from "primereact/inputtextarea";
|
|
9
|
+
import { ActionButton } from "../../components/ActionButton";
|
|
10
|
+
import Generate from "./Generate";
|
|
11
|
+
export function SelectStep({ step, data, setData, setStepCompleted, internalState, setInternalState, }) {
|
|
12
|
+
const editContext = useEditContext();
|
|
13
|
+
const [options, setOptions] = useState([]);
|
|
14
|
+
const [loading, setLoading] = useState(false);
|
|
15
|
+
const [error, setError] = useState(null);
|
|
16
|
+
const [selectedOptions, setSelectedOptions] = useState([]);
|
|
17
|
+
const [instructions, setInstructions] = useState(step.instructions);
|
|
18
|
+
// Get the property name from the step or use "choice" as default
|
|
19
|
+
const propertyName = step.propertyName || "selectedOptions";
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (data[propertyName]?.length) {
|
|
22
|
+
setStepCompleted(true);
|
|
23
|
+
}
|
|
24
|
+
}, [data]);
|
|
25
|
+
// Initialize the property in data
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (!data[propertyName]) {
|
|
28
|
+
setData((prevData) => ({
|
|
29
|
+
...prevData,
|
|
30
|
+
[propertyName]: [],
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
}, [propertyName, setData]);
|
|
34
|
+
const generateOptions = async () => {
|
|
35
|
+
if (!editContext)
|
|
36
|
+
return;
|
|
37
|
+
setLoading(true);
|
|
38
|
+
setError(null);
|
|
39
|
+
try {
|
|
40
|
+
// Create a prompt based on step instructions and data
|
|
41
|
+
const prompt = `${instructions}\n\nCurrent data: ${JSON.stringify(data, null, 2)}`;
|
|
42
|
+
// Call the executePrompt function with the prompt
|
|
43
|
+
const result = await executePrompt([
|
|
44
|
+
{
|
|
45
|
+
content: `You are a helpful assistant that generates options for a wizard select step.
|
|
46
|
+
Generate a JSON array of options based on the instructions and current data.
|
|
47
|
+
ONLY respond with a valid JSON array without any explanation or additional text.
|
|
48
|
+
JSON format: {options: {title: string, description: string}[] }`,
|
|
49
|
+
name: "system",
|
|
50
|
+
role: "system",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
content: prompt,
|
|
54
|
+
name: "user",
|
|
55
|
+
role: "user",
|
|
56
|
+
},
|
|
57
|
+
], editContext, createWizardAiContext, [""], true, undefined, step.aiModel || "o3-mini-low");
|
|
58
|
+
// Parse the result and set options
|
|
59
|
+
if (result && result.content) {
|
|
60
|
+
try {
|
|
61
|
+
const generatedOptions = JSON.parse(result.content);
|
|
62
|
+
for (let i = 0; i < generatedOptions.options.length; i++) {
|
|
63
|
+
generatedOptions.options[i].id = i.toString();
|
|
64
|
+
}
|
|
65
|
+
setOptions(generatedOptions.options);
|
|
66
|
+
setInternalState((state) => ({
|
|
67
|
+
...state,
|
|
68
|
+
[step.id + "options"]: generatedOptions.options,
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
catch (parseError) {
|
|
72
|
+
console.error("Error parsing options:", parseError);
|
|
73
|
+
setError("Failed to parse options. The response was not in the expected format.");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
setError("No options were generated. Please try again.");
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
setError("Failed to generate options. Please try again.");
|
|
82
|
+
console.error("Error generating options:", err);
|
|
83
|
+
}
|
|
84
|
+
finally {
|
|
85
|
+
setLoading(false);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
// Generate options on component mount
|
|
89
|
+
useEffect(() => {
|
|
90
|
+
if (internalState[step.id + "options"]?.length > 0) {
|
|
91
|
+
setOptions(internalState[step.id + "options"]);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
generateOptions();
|
|
95
|
+
}, [editContext, step.instructions, internalState]);
|
|
96
|
+
// Sync data[propertyName] with selectedOptions state
|
|
97
|
+
useEffect(() => {
|
|
98
|
+
const currentSelections = data[propertyName] || [];
|
|
99
|
+
setSelectedOptions(currentSelections.map((option) => option.id));
|
|
100
|
+
}, [data, propertyName]);
|
|
101
|
+
// Handle option selection
|
|
102
|
+
const handleOptionSelect = (option) => {
|
|
103
|
+
setData((prevData) => {
|
|
104
|
+
const currentData = [
|
|
105
|
+
...(prevData[propertyName] || []),
|
|
106
|
+
];
|
|
107
|
+
const isSelected = currentData.some((o) => o.id === option.id);
|
|
108
|
+
let updatedData;
|
|
109
|
+
if (isSelected) {
|
|
110
|
+
// Remove option if already selected
|
|
111
|
+
updatedData = currentData.filter((o) => o.id !== option.id);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
// Add option if not selected
|
|
115
|
+
updatedData = [...currentData, option];
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
...prevData,
|
|
119
|
+
[propertyName]: updatedData,
|
|
120
|
+
};
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
if (error) {
|
|
124
|
+
return (_jsxs("div", { className: "text-red-500 p-4", children: [error, _jsx("button", { className: "ml-4 px-2 py-1 bg-blue-500 text-white rounded", onClick: () => window.location.reload(), children: "Retry" })] }));
|
|
125
|
+
}
|
|
126
|
+
const optionsPanel = {
|
|
127
|
+
name: "options",
|
|
128
|
+
defaultSize: "auto",
|
|
129
|
+
content: (_jsxs("div", { className: "p-4 h-full", children: [loading && (_jsx("div", { className: "flex items-center justify-center h-full", children: _jsx(Generate, { title: "Generating options..." }) })), !loading && (_jsx("div", { children: options.length === 0 ? (_jsx("div", { className: "text-gray-500 p-4", children: "No options available. Try refreshing the page." })) : (options.map((option, index) => {
|
|
130
|
+
const isSelected = selectedOptions.includes(option.id);
|
|
131
|
+
return (_jsxs("div", { className: classNames("mb-3 flex items-center p-3 rounded bg-white border-2", index % 2 === 0
|
|
132
|
+
? "animate-fadeRight"
|
|
133
|
+
: "animate-fadeLeft", isSelected
|
|
134
|
+
? "text-canvas-pink border-canvas-pink"
|
|
135
|
+
: "text-gray-600 border-gray-300"), onClick: () => handleOptionSelect(option), children: [_jsxs("div", { className: "flex flex-col flex-1 cursor-pointer", children: [_jsx("div", { className: "font-medium", children: option.title }), _jsx("div", { className: "text-xs text-gray-600", children: option.description })] }), isSelected && (_jsx("div", { className: "text-canvas-pink ml-2", children: "\u2713" }))] }, option.id));
|
|
136
|
+
})) }))] })),
|
|
137
|
+
};
|
|
138
|
+
const settingsPanel = {
|
|
139
|
+
name: "settings",
|
|
140
|
+
defaultSize: 400,
|
|
141
|
+
content: (_jsxs("div", { className: "flex flex-col gap-2 pr-6", children: [_jsx("h3", { className: "text-sm font-bold", children: "Instructions" }), _jsx(InputTextarea, { className: "h-48 text-sm", value: instructions, onChange: (e) => setInstructions(e.target.value), placeholder: "Enter instructions for the options" }), _jsx(ActionButton, { onClick: generateOptions, isLoading: loading, disabled: loading, loadingText: "Thinking...", children: "Regenerate Options" })] })),
|
|
142
|
+
};
|
|
143
|
+
return _jsx(Splitter, { panels: [settingsPanel, optionsPanel] });
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=SelectStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectStep.js","sourceRoot":"","sources":["../../../src/page-wizard/steps/SelectStep.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { WizardSchemaComponent, PageSchema } from "../PageWizard";
|
|
2
|
+
export declare function convertPageSchemaToWizardComponents(pageSchema: PageSchema, whitelist: string[]): WizardSchemaComponent[];
|
|
3
|
+
/**
|
|
4
|
+
* Finds a placeholder (by its name) where a child component of type `childComponentType`
|
|
5
|
+
* can be placed inside a parent of type `parentComponentType`. For a parentComponentType
|
|
6
|
+
* equal to "root" (case‑insensitive), the function searches among top‑level placeholders.
|
|
7
|
+
*
|
|
8
|
+
* @param schema - The PageSchema (an array of SchemaPlaceholders).
|
|
9
|
+
* @param parentComponentType - The type of the parent component, or "root" to indicate top‑level.
|
|
10
|
+
* @param childComponentType - The type of the child component to place.
|
|
11
|
+
* @returns The name of a valid placeholder or undefined if none is found.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getPlaceholder(schema: PageSchema, parentComponentType: string, childComponentType: string): string | undefined;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
export function convertPageSchemaToWizardComponents(pageSchema, whitelist) {
|
|
2
|
+
const componentMap = new Map();
|
|
3
|
+
/**
|
|
4
|
+
* Recursively processes a SchemaComponent.
|
|
5
|
+
*
|
|
6
|
+
* @param component - The current SchemaComponent to process.
|
|
7
|
+
* @param parentPlaceholder - The name of the placeholder where the component appears.
|
|
8
|
+
* @param isRoot - True if the component is at the root level.
|
|
9
|
+
* @param parentAccumulator - The accumulator of the parent component (if the parent is allowed).
|
|
10
|
+
*/
|
|
11
|
+
function processComponent(component, parentPlaceholder, isRoot, parentAccumulator) {
|
|
12
|
+
const isAllowed = whitelist.includes(component.type);
|
|
13
|
+
let currentAccumulator = undefined;
|
|
14
|
+
if (isAllowed) {
|
|
15
|
+
// If a parent accumulator exists (and is allowed), record the child's type as a valid child type.
|
|
16
|
+
if (parentAccumulator) {
|
|
17
|
+
parentAccumulator.validChildComponentTypes.add(component.type);
|
|
18
|
+
}
|
|
19
|
+
if (componentMap.has(component.typeId)) {
|
|
20
|
+
currentAccumulator = componentMap.get(component.typeId);
|
|
21
|
+
currentAccumulator.validParentPlaceholders.add(parentPlaceholder);
|
|
22
|
+
// Mark as allowed on root if encountered at the root level in any instance.
|
|
23
|
+
if (isRoot) {
|
|
24
|
+
currentAccumulator.allowedOnRoot = true;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
currentAccumulator = {
|
|
29
|
+
name: component.typeId, // using typeId as the wizard component name
|
|
30
|
+
type: component.type,
|
|
31
|
+
fields: component.fields.map((field) => ({
|
|
32
|
+
name: field.name,
|
|
33
|
+
type: field.type,
|
|
34
|
+
})),
|
|
35
|
+
validParentPlaceholders: new Set([parentPlaceholder]),
|
|
36
|
+
validChildComponentTypes: new Set(),
|
|
37
|
+
allowedOnRoot: isRoot,
|
|
38
|
+
};
|
|
39
|
+
componentMap.set(component.typeId, currentAccumulator);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// Process child components regardless of whether the current component is allowed.
|
|
43
|
+
for (const placeholder of component.placeholders) {
|
|
44
|
+
for (const child of placeholder.components) {
|
|
45
|
+
processComponent(child, placeholder.name, false, currentAccumulator);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Process each top-level component in the PageSchema.
|
|
50
|
+
for (const placeholder of pageSchema) {
|
|
51
|
+
for (const component of placeholder.components) {
|
|
52
|
+
processComponent(component, placeholder.name, true);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Convert accumulators to final WizardSchemaComponent objects.
|
|
56
|
+
const wizardComponents = [];
|
|
57
|
+
for (const acc of componentMap.values()) {
|
|
58
|
+
const wizardComponent = {
|
|
59
|
+
type: acc.type,
|
|
60
|
+
fields: acc.fields,
|
|
61
|
+
allowedChildrenComponentTypes: Array.from(acc.validChildComponentTypes),
|
|
62
|
+
allowedOnRoot: acc.allowedOnRoot,
|
|
63
|
+
};
|
|
64
|
+
// Only include validParentPlaceholders if there is more than one.
|
|
65
|
+
if (acc.validParentPlaceholders.size > 1) {
|
|
66
|
+
wizardComponent.availableParentPlaceholders = Array.from(acc.validParentPlaceholders);
|
|
67
|
+
}
|
|
68
|
+
wizardComponents.push(wizardComponent);
|
|
69
|
+
}
|
|
70
|
+
return wizardComponents;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Finds a placeholder (by its name) where a child component of type `childComponentType`
|
|
74
|
+
* can be placed inside a parent of type `parentComponentType`. For a parentComponentType
|
|
75
|
+
* equal to "root" (case‑insensitive), the function searches among top‑level placeholders.
|
|
76
|
+
*
|
|
77
|
+
* @param schema - The PageSchema (an array of SchemaPlaceholders).
|
|
78
|
+
* @param parentComponentType - The type of the parent component, or "root" to indicate top‑level.
|
|
79
|
+
* @param childComponentType - The type of the child component to place.
|
|
80
|
+
* @returns The name of a valid placeholder or undefined if none is found.
|
|
81
|
+
*/
|
|
82
|
+
export function getPlaceholder(schema, parentComponentType, childComponentType) {
|
|
83
|
+
// Check for the special case where we want to place at the root level.
|
|
84
|
+
if (parentComponentType.toLowerCase() === "root") {
|
|
85
|
+
// First, look for a top-level placeholder that already contains a component
|
|
86
|
+
// of the given childComponentType.
|
|
87
|
+
for (const topPlaceholder of schema) {
|
|
88
|
+
if (topPlaceholder.components.some((c) => c.type === childComponentType)) {
|
|
89
|
+
return topPlaceholder.name;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// If not found, return the first top-level placeholder that is empty.
|
|
93
|
+
for (const topPlaceholder of schema) {
|
|
94
|
+
if (topPlaceholder.components.length === 0) {
|
|
95
|
+
return topPlaceholder.name;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
// Recursive helper to search through nested SchemaComponents.
|
|
101
|
+
function searchComponents(components) {
|
|
102
|
+
for (const component of components) {
|
|
103
|
+
// If this component matches the desired parent type, check its placeholders.
|
|
104
|
+
if (component.type === parentComponentType) {
|
|
105
|
+
// First, try to find a placeholder that already has a child of the desired type.
|
|
106
|
+
for (const placeholder of component.placeholders) {
|
|
107
|
+
if (placeholder.components.some((child) => child.type === childComponentType)) {
|
|
108
|
+
return placeholder.name;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Otherwise, pick an empty placeholder.
|
|
112
|
+
for (const placeholder of component.placeholders) {
|
|
113
|
+
if (placeholder.components.length === 0) {
|
|
114
|
+
return placeholder.name;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Recurse into any placeholders in the current component.
|
|
119
|
+
for (const placeholder of component.placeholders) {
|
|
120
|
+
const result = searchComponents(placeholder.components);
|
|
121
|
+
if (result) {
|
|
122
|
+
return result;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return undefined;
|
|
127
|
+
}
|
|
128
|
+
// Search through all top-level placeholders' components.
|
|
129
|
+
for (const topPlaceholder of schema) {
|
|
130
|
+
const result = searchComponents(topPlaceholder.components);
|
|
131
|
+
if (result) {
|
|
132
|
+
return result;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return undefined;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/page-wizard/steps/schema.ts"],"names":[],"mappings":"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"}
|