@parhelia/core 0.1.10745
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/LICENSE +8 -0
- package/README.md +34 -0
- package/dev.css +3 -0
- package/dist/agents-view/AgentCard.d.ts +12 -0
- package/dist/agents-view/AgentCard.js +30 -0
- package/dist/agents-view/AgentCard.js.map +1 -0
- package/dist/agents-view/AgentsView.d.ts +5 -0
- package/dist/agents-view/AgentsView.js +255 -0
- package/dist/agents-view/AgentsView.js.map +1 -0
- package/dist/agents-view/ProfileAgentsGroup.d.ts +17 -0
- package/dist/agents-view/ProfileAgentsGroup.js +13 -0
- package/dist/agents-view/ProfileAgentsGroup.js.map +1 -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 +17 -0
- package/dist/client-components/index.js +18 -0
- package/dist/client-components/index.js.map +1 -0
- package/dist/components/ActionButton.d.ts +14 -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/FilterInput.d.ts +22 -0
- package/dist/components/FilterInput.js +29 -0
- package/dist/components/FilterInput.js.map +1 -0
- package/dist/components/index.d.ts +7 -0
- package/dist/components/index.js +5 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/ui/CardConnector.d.ts +4 -0
- package/dist/components/ui/CardConnector.js +6 -0
- package/dist/components/ui/CardConnector.js.map +1 -0
- package/dist/components/ui/LanguageSelector.d.ts +8 -0
- package/dist/components/ui/LanguageSelector.js +47 -0
- package/dist/components/ui/LanguageSelector.js.map +1 -0
- package/dist/components/ui/PlaceholderInput.d.ts +41 -0
- package/dist/components/ui/PlaceholderInput.js +160 -0
- package/dist/components/ui/PlaceholderInput.js.map +1 -0
- package/dist/components/ui/PlaceholderInputTypes.d.ts +41 -0
- package/dist/components/ui/PlaceholderInputTypes.js +48 -0
- package/dist/components/ui/PlaceholderInputTypes.js.map +1 -0
- package/dist/components/ui/PlaceholderItemSelector.d.ts +7 -0
- package/dist/components/ui/PlaceholderItemSelector.js +154 -0
- package/dist/components/ui/PlaceholderItemSelector.js.map +1 -0
- package/dist/components/ui/alert.d.ts +7 -0
- package/dist/components/ui/alert.js +21 -0
- package/dist/components/ui/alert.js.map +1 -0
- package/dist/components/ui/badge.d.ts +9 -0
- package/dist/components/ui/badge.js +23 -0
- package/dist/components/ui/badge.js.map +1 -0
- package/dist/components/ui/button.d.ts +10 -0
- package/dist/components/ui/button.js +33 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/calendar.d.ts +7 -0
- package/dist/components/ui/calendar.js +58 -0
- package/dist/components/ui/calendar.js.map +1 -0
- package/dist/components/ui/card.d.ts +19 -0
- package/dist/components/ui/card.js +78 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/checkbox.d.ts +4 -0
- package/dist/components/ui/checkbox.js +10 -0
- package/dist/components/ui/checkbox.js.map +1 -0
- package/dist/components/ui/command.d.ts +18 -0
- package/dist/components/ui/command.js +35 -0
- package/dist/components/ui/command.js.map +1 -0
- package/dist/components/ui/context-menu.d.ts +53 -0
- package/dist/components/ui/context-menu.js +290 -0
- package/dist/components/ui/context-menu.js.map +1 -0
- package/dist/components/ui/copy-button.d.ts +10 -0
- package/dist/components/ui/copy-button.js +61 -0
- package/dist/components/ui/copy-button.js.map +1 -0
- package/dist/components/ui/dialog.d.ts +16 -0
- package/dist/components/ui/dialog.js +37 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +25 -0
- package/dist/components/ui/dropdown-menu.js +52 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/input.d.ts +3 -0
- package/dist/components/ui/input.js +9 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/menubar.d.ts +26 -0
- package/dist/components/ui/menubar.js +55 -0
- package/dist/components/ui/menubar.js.map +1 -0
- package/dist/components/ui/paste-button.d.ts +14 -0
- package/dist/components/ui/paste-button.js +114 -0
- package/dist/components/ui/paste-button.js.map +1 -0
- package/dist/components/ui/popover.d.ts +11 -0
- package/dist/components/ui/popover.js +66 -0
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/components/ui/progress.d.ts +7 -0
- package/dist/components/ui/progress.js +9 -0
- package/dist/components/ui/progress.js.map +1 -0
- package/dist/components/ui/select.d.ts +18 -0
- package/dist/components/ui/select.js +34 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/sonner.d.ts +3 -0
- package/dist/components/ui/sonner.js +16 -0
- package/dist/components/ui/sonner.js.map +1 -0
- package/dist/components/ui/switch.d.ts +4 -0
- package/dist/components/ui/switch.js +9 -0
- package/dist/components/ui/switch.js.map +1 -0
- package/dist/components/ui/tabs.d.ts +17 -0
- package/dist/components/ui/tabs.js +27 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/textarea.d.ts +3 -0
- package/dist/components/ui/textarea.js +11 -0
- package/dist/components/ui/textarea.js.map +1 -0
- package/dist/components/ui/tooltip.d.ts +9 -0
- package/dist/components/ui/tooltip.js +18 -0
- package/dist/components/ui/tooltip.js.map +1 -0
- package/dist/components/ui/upload-button.d.ts +15 -0
- package/dist/components/ui/upload-button.js +56 -0
- package/dist/components/ui/upload-button.js.map +1 -0
- package/dist/config/config.d.ts +24 -0
- package/dist/config/config.js +1087 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/types.d.ts +249 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/editor/AspectRatioSelector.d.ts +13 -0
- package/dist/editor/AspectRatioSelector.js +71 -0
- package/dist/editor/AspectRatioSelector.js.map +1 -0
- package/dist/editor/ComponentInfo.d.ts +4 -0
- package/dist/editor/ComponentInfo.js +41 -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 +39 -0
- package/dist/editor/ContentTree.js +586 -0
- package/dist/editor/ContentTree.js.map +1 -0
- package/dist/editor/ContextMenu.d.ts +15 -0
- package/dist/editor/ContextMenu.js +239 -0
- package/dist/editor/ContextMenu.js.map +1 -0
- package/dist/editor/Editor.d.ts +12 -0
- package/dist/editor/Editor.js +59 -0
- package/dist/editor/Editor.js.map +1 -0
- package/dist/editor/EditorWarning.d.ts +5 -0
- package/dist/editor/EditorWarning.js +12 -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/FieldActionsOverlay.d.ts +18 -0
- package/dist/editor/FieldActionsOverlay.js +201 -0
- package/dist/editor/FieldActionsOverlay.js.map +1 -0
- package/dist/editor/FieldEditorPopup.d.ts +10 -0
- package/dist/editor/FieldEditorPopup.js +23 -0
- package/dist/editor/FieldEditorPopup.js.map +1 -0
- package/dist/editor/FieldHistory.d.ts +7 -0
- package/dist/editor/FieldHistory.js +42 -0
- package/dist/editor/FieldHistory.js.map +1 -0
- package/dist/editor/FieldList.d.ts +19 -0
- package/dist/editor/FieldList.js +90 -0
- package/dist/editor/FieldList.js.map +1 -0
- package/dist/editor/FieldListField.d.ts +16 -0
- package/dist/editor/FieldListField.js +231 -0
- package/dist/editor/FieldListField.js.map +1 -0
- package/dist/editor/FieldListFieldWithFallbacks.d.ts +11 -0
- package/dist/editor/FieldListFieldWithFallbacks.js +120 -0
- package/dist/editor/FieldListFieldWithFallbacks.js.map +1 -0
- package/dist/editor/FloatingToolbar.d.ts +7 -0
- package/dist/editor/FloatingToolbar.js +91 -0
- package/dist/editor/FloatingToolbar.js.map +1 -0
- package/dist/editor/ImageEditButton.d.ts +27 -0
- package/dist/editor/ImageEditButton.js +22 -0
- package/dist/editor/ImageEditButton.js.map +1 -0
- package/dist/editor/ImageEditor.d.ts +5 -0
- package/dist/editor/ImageEditor.js +76 -0
- package/dist/editor/ImageEditor.js.map +1 -0
- package/dist/editor/ItemInfo.d.ts +4 -0
- package/dist/editor/ItemInfo.js +36 -0
- package/dist/editor/ItemInfo.js.map +1 -0
- package/dist/editor/LinkEditorDialog.d.ts +18 -0
- package/dist/editor/LinkEditorDialog.js +101 -0
- package/dist/editor/LinkEditorDialog.js.map +1 -0
- package/dist/editor/MainLayout.d.ts +12 -0
- package/dist/editor/MainLayout.js +55 -0
- package/dist/editor/MainLayout.js.map +1 -0
- package/dist/editor/MobileLayout.d.ts +2 -0
- package/dist/editor/MobileLayout.js +34 -0
- package/dist/editor/MobileLayout.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 +722 -0
- package/dist/editor/PictureCropper.js.map +1 -0
- package/dist/editor/PictureEditor.d.ts +9 -0
- package/dist/editor/PictureEditor.js +180 -0
- package/dist/editor/PictureEditor.js.map +1 -0
- package/dist/editor/PictureEditorDialog.d.ts +8 -0
- package/dist/editor/PictureEditorDialog.js +195 -0
- package/dist/editor/PictureEditorDialog.js.map +1 -0
- package/dist/editor/QuickItemSwitcher.d.ts +9 -0
- package/dist/editor/QuickItemSwitcher.js +78 -0
- package/dist/editor/QuickItemSwitcher.js.map +1 -0
- package/dist/editor/ScrollingContentTree.d.ts +10 -0
- package/dist/editor/ScrollingContentTree.js +54 -0
- package/dist/editor/ScrollingContentTree.js.map +1 -0
- package/dist/editor/Titlebar.d.ts +1 -0
- package/dist/editor/Titlebar.js +46 -0
- package/dist/editor/Titlebar.js.map +1 -0
- package/dist/editor/ai/AgentCostDisplay.d.ts +32 -0
- package/dist/editor/ai/AgentCostDisplay.js +93 -0
- package/dist/editor/ai/AgentCostDisplay.js.map +1 -0
- package/dist/editor/ai/AgentHistory.d.ts +11 -0
- package/dist/editor/ai/AgentHistory.js +12 -0
- package/dist/editor/ai/AgentHistory.js.map +1 -0
- package/dist/editor/ai/AgentProfilesOverview.d.ts +9 -0
- package/dist/editor/ai/AgentProfilesOverview.js +16 -0
- package/dist/editor/ai/AgentProfilesOverview.js.map +1 -0
- package/dist/editor/ai/AgentStatusBadge.d.ts +26 -0
- package/dist/editor/ai/AgentStatusBadge.js +126 -0
- package/dist/editor/ai/AgentStatusBadge.js.map +1 -0
- package/dist/editor/ai/AgentTerminal.d.ts +14 -0
- package/dist/editor/ai/AgentTerminal.js +2634 -0
- package/dist/editor/ai/AgentTerminal.js.map +1 -0
- package/dist/editor/ai/Agents.d.ts +4 -0
- package/dist/editor/ai/Agents.js +813 -0
- package/dist/editor/ai/Agents.js.map +1 -0
- package/dist/editor/ai/AiResponseMessage.d.ts +18 -0
- package/dist/editor/ai/AiResponseMessage.js +684 -0
- package/dist/editor/ai/AiResponseMessage.js.map +1 -0
- package/dist/editor/ai/ContextInfoBar.d.ts +11 -0
- package/dist/editor/ai/ContextInfoBar.js +355 -0
- package/dist/editor/ai/ContextInfoBar.js.map +1 -0
- package/dist/editor/ai/DancingDots.d.ts +1 -0
- package/dist/editor/ai/DancingDots.js +6 -0
- package/dist/editor/ai/DancingDots.js.map +1 -0
- package/dist/editor/ai/MediaImage.d.ts +6 -0
- package/dist/editor/ai/MediaImage.js +38 -0
- package/dist/editor/ai/MediaImage.js.map +1 -0
- package/dist/editor/ai/ToolCallDisplay.d.ts +45 -0
- package/dist/editor/ai/ToolCallDisplay.js +292 -0
- package/dist/editor/ai/ToolCallDisplay.js.map +1 -0
- package/dist/editor/ai/aiPageModel.d.ts +24 -0
- package/dist/editor/ai/aiPageModel.js +97 -0
- package/dist/editor/ai/aiPageModel.js.map +1 -0
- package/dist/editor/ai/editorAiContext.d.ts +10 -0
- package/dist/editor/ai/editorAiContext.js +10 -0
- package/dist/editor/ai/editorAiContext.js.map +1 -0
- package/dist/editor/ai/types.d.ts +30 -0
- package/dist/editor/ai/types.js +2 -0
- package/dist/editor/ai/types.js.map +1 -0
- package/dist/editor/ai/useAgentStatus.d.ts +14 -0
- package/dist/editor/ai/useAgentStatus.js +203 -0
- package/dist/editor/ai/useAgentStatus.js.map +1 -0
- package/dist/editor/client/AboutDialog.d.ts +2 -0
- package/dist/editor/client/AboutDialog.js +23 -0
- package/dist/editor/client/AboutDialog.js.map +1 -0
- package/dist/editor/client/EditorShell.d.ts +37 -0
- package/dist/editor/client/EditorShell.js +2388 -0
- package/dist/editor/client/EditorShell.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 +260 -0
- package/dist/editor/client/editContext.js +29 -0
- package/dist/editor/client/editContext.js.map +1 -0
- package/dist/editor/client/fieldModificationStore.d.ts +25 -0
- package/dist/editor/client/fieldModificationStore.js +184 -0
- package/dist/editor/client/fieldModificationStore.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/hooks/useEditorUrlSync.d.ts +18 -0
- package/dist/editor/client/hooks/useEditorUrlSync.js +56 -0
- package/dist/editor/client/hooks/useEditorUrlSync.js.map +1 -0
- package/dist/editor/client/hooks/useEditorWebSocket.d.ts +11 -0
- package/dist/editor/client/hooks/useEditorWebSocket.js +86 -0
- package/dist/editor/client/hooks/useEditorWebSocket.js.map +1 -0
- package/dist/editor/client/hooks/useGlobalEditorKeyDown.d.ts +1 -0
- package/dist/editor/client/hooks/useGlobalEditorKeyDown.js +12 -0
- package/dist/editor/client/hooks/useGlobalEditorKeyDown.js.map +1 -0
- package/dist/editor/client/hooks/useMediaQuery.d.ts +1 -0
- package/dist/editor/client/hooks/useMediaQuery.js +19 -0
- package/dist/editor/client/hooks/useMediaQuery.js.map +1 -0
- package/dist/editor/client/hooks/useMediaSelector.d.ts +12 -0
- package/dist/editor/client/hooks/useMediaSelector.js +30 -0
- package/dist/editor/client/hooks/useMediaSelector.js.map +1 -0
- package/dist/editor/client/hooks/useQuota.d.ts +29 -0
- package/dist/editor/client/hooks/useQuota.js +53 -0
- package/dist/editor/client/hooks/useQuota.js.map +1 -0
- package/dist/editor/client/hooks/useSocketMessageHandler.d.ts +35 -0
- package/dist/editor/client/hooks/useSocketMessageHandler.js +234 -0
- package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -0
- package/dist/editor/client/hooks/useWorkbox.d.ts +9 -0
- package/dist/editor/client/hooks/useWorkbox.js +52 -0
- package/dist/editor/client/hooks/useWorkbox.js.map +1 -0
- package/dist/editor/client/itemsRepository.d.ts +38 -0
- package/dist/editor/client/itemsRepository.js +468 -0
- package/dist/editor/client/itemsRepository.js.map +1 -0
- package/dist/editor/client/operations.d.ts +69 -0
- package/dist/editor/client/operations.js +627 -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 +155 -0
- package/dist/editor/client/pageModelBuilder.js.map +1 -0
- package/dist/editor/client/ui/EditorChrome.d.ts +12 -0
- package/dist/editor/client/ui/EditorChrome.js +30 -0
- package/dist/editor/client/ui/EditorChrome.js.map +1 -0
- package/dist/editor/client/ui/FullscreenControls.d.ts +7 -0
- package/dist/editor/client/ui/FullscreenControls.js +21 -0
- package/dist/editor/client/ui/FullscreenControls.js.map +1 -0
- package/dist/editor/commands/agentCommands.d.ts +9 -0
- package/dist/editor/commands/agentCommands.js +30 -0
- package/dist/editor/commands/agentCommands.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 +12 -0
- package/dist/editor/commands/componentCommands.js +378 -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 +29 -0
- package/dist/editor/commands/itemCommands.js +428 -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 +91 -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/componentTreeHelper.d.ts +18 -0
- package/dist/editor/componentTreeHelper.js +123 -0
- package/dist/editor/componentTreeHelper.js.map +1 -0
- package/dist/editor/context-menu/CopyMoveMenu.d.ts +7 -0
- package/dist/editor/context-menu/CopyMoveMenu.js +58 -0
- package/dist/editor/context-menu/CopyMoveMenu.js.map +1 -0
- package/dist/editor/context-menu/InsertMenu.d.ts +9 -0
- package/dist/editor/context-menu/InsertMenu.js +229 -0
- package/dist/editor/context-menu/InsertMenu.js.map +1 -0
- package/dist/editor/control-center/About.d.ts +1 -0
- package/dist/editor/control-center/About.js +8 -0
- package/dist/editor/control-center/About.js.map +1 -0
- package/dist/editor/control-center/AllAgentsPanel.d.ts +5 -0
- package/dist/editor/control-center/AllAgentsPanel.js +126 -0
- package/dist/editor/control-center/AllAgentsPanel.js.map +1 -0
- package/dist/editor/control-center/ControlCenterMenu.d.ts +1 -0
- package/dist/editor/control-center/ControlCenterMenu.js +66 -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 +323 -0
- package/dist/editor/control-center/IndexOverview.js.map +1 -0
- package/dist/editor/control-center/Info.d.ts +1 -0
- package/dist/editor/control-center/Info.js +10 -0
- package/dist/editor/control-center/Info.js.map +1 -0
- package/dist/editor/control-center/LatestFeedback.d.ts +1 -0
- package/dist/editor/control-center/LatestFeedback.js +136 -0
- package/dist/editor/control-center/LatestFeedback.js.map +1 -0
- package/dist/editor/control-center/QuotaInfo.d.ts +1 -0
- package/dist/editor/control-center/QuotaInfo.js +102 -0
- package/dist/editor/control-center/QuotaInfo.js.map +1 -0
- package/dist/editor/control-center/Setup.d.ts +1 -0
- package/dist/editor/control-center/Setup.js +18 -0
- package/dist/editor/control-center/Setup.js.map +1 -0
- package/dist/editor/control-center/Status.d.ts +1 -0
- package/dist/editor/control-center/Status.js +79 -0
- package/dist/editor/control-center/Status.js.map +1 -0
- package/dist/editor/control-center/WebSocketMessages.d.ts +1 -0
- package/dist/editor/control-center/WebSocketMessages.js +71 -0
- package/dist/editor/control-center/WebSocketMessages.js.map +1 -0
- package/dist/editor/control-center/parhelia-setup/Overview.d.ts +1 -0
- package/dist/editor/control-center/parhelia-setup/Overview.js +91 -0
- package/dist/editor/control-center/parhelia-setup/Overview.js.map +1 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/EmbeddingsModelSection.d.ts +2 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/EmbeddingsModelSection.js +195 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/EmbeddingsModelSection.js.map +1 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/index.d.ts +2 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/index.js +22 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/index.js.map +1 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/provider/ProviderSection.d.ts +1 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/provider/ProviderSection.js +233 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/provider/ProviderSection.js.map +1 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/required-containers/RequiredContainersList.d.ts +15 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/required-containers/RequiredContainersList.js +14 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/required-containers/RequiredContainersList.js.map +1 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.d.ts +1 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js +94 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js.map +1 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/tools/GenerateToolsSection.d.ts +1 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/tools/GenerateToolsSection.js +367 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/tools/GenerateToolsSection.js.map +1 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/types.d.ts +1 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/types.js +2 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/types.js.map +1 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/utils.d.ts +4 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/utils.js +25 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/utils.js.map +1 -0
- package/dist/editor/control-center/setup-steps/DbSetupStep.d.ts +2 -0
- package/dist/editor/control-center/setup-steps/DbSetupStep.js +46 -0
- package/dist/editor/control-center/setup-steps/DbSetupStep.js.map +1 -0
- package/dist/editor/control-center/setup-steps/IndexSetupStep.d.ts +2 -0
- package/dist/editor/control-center/setup-steps/IndexSetupStep.js +36 -0
- package/dist/editor/control-center/setup-steps/IndexSetupStep.js.map +1 -0
- package/dist/editor/control-center/setup-steps/SettingsSetupStep.d.ts +2 -0
- package/dist/editor/control-center/setup-steps/SettingsSetupStep.js +107 -0
- package/dist/editor/control-center/setup-steps/SettingsSetupStep.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 +14 -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 +28 -0
- package/dist/editor/editor-warnings/ValidationErrors.js.map +1 -0
- package/dist/editor/field-types/AttachmentEditor.d.ts +9 -0
- package/dist/editor/field-types/AttachmentEditor.js +73 -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/DateFieldEditor.d.ts +5 -0
- package/dist/editor/field-types/DateFieldEditor.js +93 -0
- package/dist/editor/field-types/DateFieldEditor.js.map +1 -0
- package/dist/editor/field-types/DateTimeFieldEditor.d.ts +5 -0
- package/dist/editor/field-types/DateTimeFieldEditor.js +151 -0
- package/dist/editor/field-types/DateTimeFieldEditor.js.map +1 -0
- package/dist/editor/field-types/DropLinkEditor.d.ts +5 -0
- package/dist/editor/field-types/DropLinkEditor.js +42 -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 +46 -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 +120 -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 +62 -0
- package/dist/editor/field-types/LinkFieldEditor.js.map +1 -0
- package/dist/editor/field-types/MultiLineText.d.ts +7 -0
- package/dist/editor/field-types/MultiLineText.js +48 -0
- package/dist/editor/field-types/MultiLineText.js.map +1 -0
- package/dist/editor/field-types/NameValueListEditor.d.ts +7 -0
- package/dist/editor/field-types/NameValueListEditor.js +101 -0
- package/dist/editor/field-types/NameValueListEditor.js.map +1 -0
- package/dist/editor/field-types/PictureFieldEditor.d.ts +5 -0
- package/dist/editor/field-types/PictureFieldEditor.js +58 -0
- package/dist/editor/field-types/PictureFieldEditor.js.map +1 -0
- package/dist/editor/field-types/RawEditor.d.ts +6 -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 +7 -0
- package/dist/editor/field-types/RichTextEditor.js +21 -0
- package/dist/editor/field-types/RichTextEditor.js.map +1 -0
- package/dist/editor/field-types/RichTextEditorComponent.d.ts +8 -0
- package/dist/editor/field-types/RichTextEditorComponent.js +74 -0
- package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -0
- package/dist/editor/field-types/SingleLineText.d.ts +7 -0
- package/dist/editor/field-types/SingleLineText.js +113 -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 +316 -0
- package/dist/editor/field-types/TreeListEditor.js.map +1 -0
- package/dist/editor/field-types/richtext/components/EditorDropdown.d.ts +11 -0
- package/dist/editor/field-types/richtext/components/EditorDropdown.js +83 -0
- package/dist/editor/field-types/richtext/components/EditorDropdown.js.map +1 -0
- package/dist/editor/field-types/richtext/components/ReactSlate.d.ts +5 -0
- package/dist/editor/field-types/richtext/components/ReactSlate.js +607 -0
- package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -0
- package/dist/editor/field-types/richtext/components/SimpleDropdown.d.ts +18 -0
- package/dist/editor/field-types/richtext/components/SimpleDropdown.js +71 -0
- package/dist/editor/field-types/richtext/components/SimpleDropdown.js.map +1 -0
- package/dist/editor/field-types/richtext/components/SimpleRichTextEditor.d.ts +5 -0
- package/dist/editor/field-types/richtext/components/SimpleRichTextEditor.js +359 -0
- package/dist/editor/field-types/richtext/components/SimpleRichTextEditor.js.map +1 -0
- package/dist/editor/field-types/richtext/components/SimpleToolbar.d.ts +16 -0
- package/dist/editor/field-types/richtext/components/SimpleToolbar.js +181 -0
- package/dist/editor/field-types/richtext/components/SimpleToolbar.js.map +1 -0
- package/dist/editor/field-types/richtext/components/SimpleToolbarButton.d.ts +9 -0
- package/dist/editor/field-types/richtext/components/SimpleToolbarButton.js +14 -0
- package/dist/editor/field-types/richtext/components/SimpleToolbarButton.js.map +1 -0
- package/dist/editor/field-types/richtext/components/ToolbarButton.d.ts +3 -0
- package/dist/editor/field-types/richtext/components/ToolbarButton.js +6 -0
- package/dist/editor/field-types/richtext/components/ToolbarButton.js.map +1 -0
- package/dist/editor/field-types/richtext/config/pluginFactory.d.ts +19 -0
- package/dist/editor/field-types/richtext/config/pluginFactory.js +17 -0
- package/dist/editor/field-types/richtext/config/pluginFactory.js.map +1 -0
- package/dist/editor/field-types/richtext/contextMenuFactory.d.ts +4 -0
- package/dist/editor/field-types/richtext/contextMenuFactory.js +201 -0
- package/dist/editor/field-types/richtext/contextMenuFactory.js.map +1 -0
- package/dist/editor/field-types/richtext/hooks/useProfileCache.d.ts +68 -0
- package/dist/editor/field-types/richtext/hooks/useProfileCache.js +214 -0
- package/dist/editor/field-types/richtext/hooks/useProfileCache.js.map +1 -0
- package/dist/editor/field-types/richtext/hooks/useRichTextProfile.d.ts +25 -0
- package/dist/editor/field-types/richtext/hooks/useRichTextProfile.js +64 -0
- package/dist/editor/field-types/richtext/hooks/useRichTextProfile.js.map +1 -0
- package/dist/editor/field-types/richtext/index.d.ts +6 -0
- package/dist/editor/field-types/richtext/index.js +7 -0
- package/dist/editor/field-types/richtext/index.js.map +1 -0
- package/dist/editor/field-types/richtext/types.d.ts +288 -0
- package/dist/editor/field-types/richtext/types.js +107 -0
- package/dist/editor/field-types/richtext/types.js.map +1 -0
- package/dist/editor/field-types/richtext/utils/conversion.d.ts +7 -0
- package/dist/editor/field-types/richtext/utils/conversion.js +762 -0
- package/dist/editor/field-types/richtext/utils/conversion.js.map +1 -0
- package/dist/editor/field-types/richtext/utils/plugins.d.ts +170 -0
- package/dist/editor/field-types/richtext/utils/plugins.js +490 -0
- package/dist/editor/field-types/richtext/utils/plugins.js.map +1 -0
- package/dist/editor/field-types/richtext/utils/profileMapper.d.ts +38 -0
- package/dist/editor/field-types/richtext/utils/profileMapper.js +386 -0
- package/dist/editor/field-types/richtext/utils/profileMapper.js.map +1 -0
- package/dist/editor/field-types/richtext/utils/profileServiceCache.d.ts +37 -0
- package/dist/editor/field-types/richtext/utils/profileServiceCache.js +119 -0
- package/dist/editor/field-types/richtext/utils/profileServiceCache.js.map +1 -0
- package/dist/editor/fieldTypes.d.ts +129 -0
- package/dist/editor/fieldTypes.js +2 -0
- package/dist/editor/fieldTypes.js.map +1 -0
- package/dist/editor/hooks/useEditorSettings.d.ts +17 -0
- package/dist/editor/hooks/useEditorSettings.js +61 -0
- package/dist/editor/hooks/useEditorSettings.js.map +1 -0
- package/dist/editor/media-selector/AiImageSearch.d.ts +4 -0
- package/dist/editor/media-selector/AiImageSearch.js +164 -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 +57 -0
- package/dist/editor/media-selector/AiImageSearchPrompt.js.map +1 -0
- package/dist/editor/media-selector/MediaFolderBrowser.d.ts +5 -0
- package/dist/editor/media-selector/MediaFolderBrowser.js +182 -0
- package/dist/editor/media-selector/MediaFolderBrowser.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 +19 -0
- package/dist/editor/media-selector/Preview.js.map +1 -0
- package/dist/editor/media-selector/Thumbnails.d.ts +8 -0
- package/dist/editor/media-selector/Thumbnails.js +10 -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 +183 -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 +81 -0
- package/dist/editor/media-selector/UploadZone.js.map +1 -0
- package/dist/editor/media-selector/index.d.ts +8 -0
- package/dist/editor/media-selector/index.js +9 -0
- package/dist/editor/media-selector/index.js.map +1 -0
- package/dist/editor/menubar/ActiveUsers.d.ts +1 -0
- package/dist/editor/menubar/ActiveUsers.js +120 -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 +13 -0
- package/dist/editor/menubar/ApproveAndPublish.js.map +1 -0
- package/dist/editor/menubar/FavoritesControls.d.ts +8 -0
- package/dist/editor/menubar/FavoritesControls.js +124 -0
- package/dist/editor/menubar/FavoritesControls.js.map +1 -0
- package/dist/editor/menubar/GenericToolbar.d.ts +11 -0
- package/dist/editor/menubar/GenericToolbar.js +10 -0
- package/dist/editor/menubar/GenericToolbar.js.map +1 -0
- package/dist/editor/menubar/ItemActionsMenu.d.ts +3 -0
- package/dist/editor/menubar/ItemActionsMenu.js +23 -0
- package/dist/editor/menubar/ItemActionsMenu.js.map +1 -0
- package/dist/editor/menubar/ItemLanguageVersion.d.ts +1 -0
- package/dist/editor/menubar/ItemLanguageVersion.js +54 -0
- package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -0
- package/dist/editor/menubar/ItemToolbar.d.ts +1 -0
- package/dist/editor/menubar/ItemToolbar.js +11 -0
- package/dist/editor/menubar/ItemToolbar.js.map +1 -0
- package/dist/editor/menubar/NavButtons.d.ts +1 -0
- package/dist/editor/menubar/NavButtons.js +40 -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 +149 -0
- package/dist/editor/menubar/PageSelector.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/ToolbarFactory.d.ts +2 -0
- package/dist/editor/menubar/ToolbarFactory.js +55 -0
- package/dist/editor/menubar/ToolbarFactory.js.map +1 -0
- package/dist/editor/menubar/User.d.ts +4 -0
- package/dist/editor/menubar/User.js +18 -0
- package/dist/editor/menubar/User.js.map +1 -0
- package/dist/editor/menubar/VersionSelector.d.ts +10 -0
- package/dist/editor/menubar/VersionSelector.js +53 -0
- package/dist/editor/menubar/VersionSelector.js.map +1 -0
- package/dist/editor/menubar/WorkflowButton.d.ts +1 -0
- package/dist/editor/menubar/WorkflowButton.js +93 -0
- package/dist/editor/menubar/WorkflowButton.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/CompareControls.d.ts +1 -0
- package/dist/editor/menubar/toolbar-sections/CompareControls.js +11 -0
- package/dist/editor/menubar/toolbar-sections/CompareControls.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/EditControls.d.ts +7 -0
- package/dist/editor/menubar/toolbar-sections/EditControls.js +15 -0
- package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/InsertControls.d.ts +1 -0
- package/dist/editor/menubar/toolbar-sections/InsertControls.js +15 -0
- package/dist/editor/menubar/toolbar-sections/InsertControls.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/ReviewCommands.d.ts +1 -0
- package/dist/editor/menubar/toolbar-sections/ReviewCommands.js +41 -0
- package/dist/editor/menubar/toolbar-sections/ReviewCommands.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/UtilityControls.d.ts +1 -0
- package/dist/editor/menubar/toolbar-sections/UtilityControls.js +17 -0
- package/dist/editor/menubar/toolbar-sections/UtilityControls.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/ViewportControls.d.ts +1 -0
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js +21 -0
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/index.d.ts +6 -0
- package/dist/editor/menubar/toolbar-sections/index.js +7 -0
- package/dist/editor/menubar/toolbar-sections/index.js.map +1 -0
- package/dist/editor/page-editor-chrome/CommentHighlighting.d.ts +6 -0
- package/dist/editor/page-editor-chrome/CommentHighlighting.js +270 -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 +35 -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 +26 -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 +14 -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 +346 -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 +704 -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 +64 -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 +152 -0
- package/dist/editor/page-editor-chrome/PictureEditorOverlay.js.map +1 -0
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.d.ts +18 -0
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +122 -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 +289 -0
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -0
- package/dist/editor/page-editor-chrome/SuggestionHighlighting.d.ts +6 -0
- package/dist/editor/page-editor-chrome/SuggestionHighlighting.js +224 -0
- package/dist/editor/page-editor-chrome/SuggestionHighlighting.js.map +1 -0
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.d.ts +4 -0
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +16 -0
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -0
- package/dist/editor/page-editor-chrome/useInlineAICompletion.d.ts +7 -0
- package/dist/editor/page-editor-chrome/useInlineAICompletion.js +699 -0
- package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +1 -0
- package/dist/editor/page-viewer/DeviceToolbar.d.ts +6 -0
- package/dist/editor/page-viewer/DeviceToolbar.js +21 -0
- package/dist/editor/page-viewer/DeviceToolbar.js.map +1 -0
- package/dist/editor/page-viewer/EditorForm.d.ts +8 -0
- package/dist/editor/page-viewer/EditorForm.js +257 -0
- package/dist/editor/page-viewer/EditorForm.js.map +1 -0
- package/dist/editor/page-viewer/EditorFormPopup.d.ts +11 -0
- package/dist/editor/page-viewer/EditorFormPopup.js +41 -0
- package/dist/editor/page-viewer/EditorFormPopup.js.map +1 -0
- package/dist/editor/page-viewer/MiniMap.d.ts +9 -0
- package/dist/editor/page-viewer/MiniMap.js +233 -0
- package/dist/editor/page-viewer/MiniMap.js.map +1 -0
- package/dist/editor/page-viewer/PageViewer.d.ts +10 -0
- package/dist/editor/page-viewer/PageViewer.js +67 -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 +857 -0
- package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -0
- package/dist/editor/page-viewer/pageModelSkeletonBuilder.d.ts +3 -0
- package/dist/editor/page-viewer/pageModelSkeletonBuilder.js +339 -0
- package/dist/editor/page-viewer/pageModelSkeletonBuilder.js.map +1 -0
- package/dist/editor/page-viewer/pageViewContext.d.ts +40 -0
- package/dist/editor/page-viewer/pageViewContext.js +156 -0
- package/dist/editor/page-viewer/pageViewContext.js.map +1 -0
- package/dist/editor/pageModel.d.ts +222 -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 +8 -0
- package/dist/editor/reviews/Comment.js +162 -0
- package/dist/editor/reviews/Comment.js.map +1 -0
- package/dist/editor/reviews/CommentDisplayPopover.d.ts +9 -0
- package/dist/editor/reviews/CommentDisplayPopover.js +104 -0
- package/dist/editor/reviews/CommentDisplayPopover.js.map +1 -0
- package/dist/editor/reviews/CommentEditor.d.ts +20 -0
- package/dist/editor/reviews/CommentEditor.js +57 -0
- package/dist/editor/reviews/CommentEditor.js.map +1 -0
- package/dist/editor/reviews/CommentPopover.d.ts +22 -0
- package/dist/editor/reviews/CommentPopover.js +145 -0
- package/dist/editor/reviews/CommentPopover.js.map +1 -0
- package/dist/editor/reviews/CommentView.d.ts +21 -0
- package/dist/editor/reviews/CommentView.js +52 -0
- package/dist/editor/reviews/CommentView.js.map +1 -0
- package/dist/editor/reviews/Comments.d.ts +3 -0
- package/dist/editor/reviews/Comments.js +118 -0
- package/dist/editor/reviews/Comments.js.map +1 -0
- package/dist/editor/reviews/DiffView.d.ts +17 -0
- package/dist/editor/reviews/DiffView.js +57 -0
- package/dist/editor/reviews/DiffView.js.map +1 -0
- package/dist/editor/reviews/PreviewInfo.d.ts +1 -0
- package/dist/editor/reviews/PreviewInfo.js +12 -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 +186 -0
- package/dist/editor/reviews/Reviews.js.map +1 -0
- package/dist/editor/reviews/SuggestedEdit.d.ts +4 -0
- package/dist/editor/reviews/SuggestedEdit.js +200 -0
- package/dist/editor/reviews/SuggestedEdit.js.map +1 -0
- package/dist/editor/reviews/SuggestionDisplayPopover.d.ts +9 -0
- package/dist/editor/reviews/SuggestionDisplayPopover.js +204 -0
- package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -0
- package/dist/editor/reviews/commentAi.d.ts +7 -0
- package/dist/editor/reviews/commentAi.js +100 -0
- package/dist/editor/reviews/commentAi.js.map +1 -0
- package/dist/editor/reviews/reviewCommands.d.ts +3 -0
- package/dist/editor/reviews/reviewCommands.js +38 -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/agentService.d.ts +306 -0
- package/dist/editor/services/agentService.js +627 -0
- package/dist/editor/services/agentService.js.map +1 -0
- package/dist/editor/services/aiService.d.ts +106 -0
- package/dist/editor/services/aiService.js +294 -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 +79 -0
- package/dist/editor/services/contentService.js +119 -0
- package/dist/editor/services/contentService.js.map +1 -0
- package/dist/editor/services/contextService.d.ts +26 -0
- package/dist/editor/services/contextService.js +103 -0
- package/dist/editor/services/contextService.js.map +1 -0
- package/dist/editor/services/editService.d.ts +66 -0
- package/dist/editor/services/editService.js +325 -0
- package/dist/editor/services/editService.js.map +1 -0
- package/dist/editor/services/favouritesService.d.ts +33 -0
- package/dist/editor/services/favouritesService.js +22 -0
- package/dist/editor/services/favouritesService.js.map +1 -0
- package/dist/editor/services/indexService.d.ts +13 -0
- package/dist/editor/services/indexService.js +45 -0
- package/dist/editor/services/indexService.js.map +1 -0
- package/dist/editor/services/reviewsService.d.ts +18 -0
- package/dist/editor/services/reviewsService.js +60 -0
- package/dist/editor/services/reviewsService.js.map +1 -0
- package/dist/editor/services/searchService.d.ts +17 -0
- package/dist/editor/services/searchService.js +25 -0
- package/dist/editor/services/searchService.js.map +1 -0
- package/dist/editor/services/serviceHelper.d.ts +10 -0
- package/dist/editor/services/serviceHelper.js +118 -0
- package/dist/editor/services/serviceHelper.js.map +1 -0
- package/dist/editor/services/setupService.d.ts +21 -0
- package/dist/editor/services/setupService.js +10 -0
- package/dist/editor/services/setupService.js.map +1 -0
- package/dist/editor/services/suggestedEditsService.d.ts +18 -0
- package/dist/editor/services/suggestedEditsService.js +36 -0
- package/dist/editor/services/suggestedEditsService.js.map +1 -0
- package/dist/editor/services/systemService.d.ts +4 -0
- package/dist/editor/services/systemService.js +11 -0
- package/dist/editor/services/systemService.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/Completions.d.ts +1 -0
- package/dist/editor/sidebar/Completions.js +55 -0
- package/dist/editor/sidebar/Completions.js.map +1 -0
- package/dist/editor/sidebar/ComponentPalette.d.ts +1 -0
- package/dist/editor/sidebar/ComponentPalette.js +86 -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 +691 -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 +71 -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/Divider.d.ts +6 -0
- package/dist/editor/sidebar/Divider.js +6 -0
- package/dist/editor/sidebar/Divider.js.map +1 -0
- package/dist/editor/sidebar/EditHistory.d.ts +1 -0
- package/dist/editor/sidebar/EditHistory.js +78 -0
- package/dist/editor/sidebar/EditHistory.js.map +1 -0
- package/dist/editor/sidebar/GraphQL.d.ts +2 -0
- package/dist/editor/sidebar/GraphQL.js +234 -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/LeftToolbar.d.ts +1 -0
- package/dist/editor/sidebar/LeftToolbar.js +16 -0
- package/dist/editor/sidebar/LeftToolbar.js.map +1 -0
- package/dist/editor/sidebar/MainContentTree.d.ts +5 -0
- package/dist/editor/sidebar/MainContentTree.js +70 -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/SEOInfo.d.ts +1 -0
- package/dist/editor/sidebar/SEOInfo.js +158 -0
- package/dist/editor/sidebar/SEOInfo.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 +10 -0
- package/dist/editor/sidebar/SidebarView.js +40 -0
- package/dist/editor/sidebar/SidebarView.js.map +1 -0
- package/dist/editor/sidebar/Validation.d.ts +1 -0
- package/dist/editor/sidebar/Validation.js +51 -0
- package/dist/editor/sidebar/Validation.js.map +1 -0
- package/dist/editor/sidebar/ViewSelector.d.ts +4 -0
- package/dist/editor/sidebar/ViewSelector.js +191 -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 +79 -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/CopyMoveTargetSelectorDialog.d.ts +10 -0
- package/dist/editor/ui/CopyMoveTargetSelectorDialog.js +38 -0
- package/dist/editor/ui/CopyMoveTargetSelectorDialog.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/DragPreview.d.ts +14 -0
- package/dist/editor/ui/DragPreview.js +33 -0
- package/dist/editor/ui/DragPreview.js.map +1 -0
- package/dist/editor/ui/Icons.d.ts +74 -0
- package/dist/editor/ui/Icons.js +106 -0
- package/dist/editor/ui/Icons.js.map +1 -0
- package/dist/editor/ui/ItemList.d.ts +16 -0
- package/dist/editor/ui/ItemList.js +19 -0
- package/dist/editor/ui/ItemList.js.map +1 -0
- package/dist/editor/ui/ItemNameDialogNew.d.ts +10 -0
- package/dist/editor/ui/ItemNameDialogNew.js +68 -0
- package/dist/editor/ui/ItemNameDialogNew.js.map +1 -0
- package/dist/editor/ui/ItemSearch.d.ts +25 -0
- package/dist/editor/ui/ItemSearch.js +92 -0
- package/dist/editor/ui/ItemSearch.js.map +1 -0
- package/dist/editor/ui/PerfectTree.d.ts +78 -0
- package/dist/editor/ui/PerfectTree.js +858 -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 +12 -0
- package/dist/editor/ui/Section.js.map +1 -0
- package/dist/editor/ui/SimpleIconButton.d.ts +14 -0
- package/dist/editor/ui/SimpleIconButton.js +15 -0
- package/dist/editor/ui/SimpleIconButton.js.map +1 -0
- package/dist/editor/ui/SimpleMenu.d.ts +6 -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 +15 -0
- package/dist/editor/ui/SimpleTabs.js +20 -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 +4 -0
- package/dist/editor/ui/Spinner.js +18 -0
- package/dist/editor/ui/Spinner.js.map +1 -0
- package/dist/editor/ui/Splitter.d.ts +22 -0
- package/dist/editor/ui/Splitter.js +443 -0
- package/dist/editor/ui/Splitter.js.map +1 -0
- package/dist/editor/ui/TemplateSelectorDialog.d.ts +8 -0
- package/dist/editor/ui/TemplateSelectorDialog.js +61 -0
- package/dist/editor/ui/TemplateSelectorDialog.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/itemConverters.d.ts +3 -0
- package/dist/editor/utils/itemConverters.js +53 -0
- package/dist/editor/utils/itemConverters.js.map +1 -0
- package/dist/editor/utils/itemutils.d.ts +3 -0
- package/dist/editor/utils/itemutils.js +24 -0
- package/dist/editor/utils/itemutils.js.map +1 -0
- package/dist/editor/utils/jsonCleaner.d.ts +8 -0
- package/dist/editor/utils/jsonCleaner.js +76 -0
- package/dist/editor/utils/jsonCleaner.js.map +1 -0
- package/dist/editor/utils/keyboardNavigation.d.ts +34 -0
- package/dist/editor/utils/keyboardNavigation.js +237 -0
- package/dist/editor/utils/keyboardNavigation.js.map +1 -0
- package/dist/editor/utils/urlUtils.d.ts +9 -0
- package/dist/editor/utils/urlUtils.js +25 -0
- package/dist/editor/utils/urlUtils.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 +65 -0
- package/dist/editor/utils.js +468 -0
- package/dist/editor/utils.js.map +1 -0
- package/dist/editor/views/CompareView.d.ts +1 -0
- package/dist/editor/views/CompareView.js +148 -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 +29 -0
- package/dist/editor/views/ItemEditor.js.map +1 -0
- package/dist/editor/views/MediaFolderEditView.d.ts +4 -0
- package/dist/editor/views/MediaFolderEditView.js +40 -0
- package/dist/editor/views/MediaFolderEditView.js.map +1 -0
- package/dist/editor/views/ParheliaView.d.ts +5 -0
- package/dist/editor/views/ParheliaView.js +136 -0
- package/dist/editor/views/ParheliaView.js.map +1 -0
- package/dist/editor/views/SingleEditView.d.ts +9 -0
- package/dist/editor/views/SingleEditView.js +33 -0
- package/dist/editor/views/SingleEditView.js.map +1 -0
- package/dist/images/bg-shape-black.webp +0 -0
- package/dist/images/wizard-bg.png +0 -0
- package/dist/images/wizard-tour.png +0 -0
- package/dist/images/wizard.png +0 -0
- package/dist/index.d.ts +62 -0
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/safelist.d.ts +1 -0
- package/dist/lib/safelist.js +5 -0
- package/dist/lib/safelist.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/revision.d.ts +2 -0
- package/dist/revision.js +3 -0
- package/dist/revision.js.map +1 -0
- package/dist/splash-screen/ModernSplashScreen.d.ts +8 -0
- package/dist/splash-screen/ModernSplashScreen.js +92 -0
- package/dist/splash-screen/ModernSplashScreen.js.map +1 -0
- package/dist/splash-screen/NewPage.d.ts +3 -0
- package/dist/splash-screen/NewPage.js +145 -0
- package/dist/splash-screen/NewPage.js.map +1 -0
- package/dist/splash-screen/OpenPage.d.ts +1 -0
- package/dist/splash-screen/OpenPage.js +56 -0
- package/dist/splash-screen/OpenPage.js.map +1 -0
- package/dist/splash-screen/ParheliaAssistantChat.d.ts +8 -0
- package/dist/splash-screen/ParheliaAssistantChat.js +155 -0
- package/dist/splash-screen/ParheliaAssistantChat.js.map +1 -0
- package/dist/splash-screen/RecentAgents.d.ts +7 -0
- package/dist/splash-screen/RecentAgents.js +76 -0
- package/dist/splash-screen/RecentAgents.js.map +1 -0
- package/dist/splash-screen/RecentPages.d.ts +1 -0
- package/dist/splash-screen/RecentPages.js +47 -0
- package/dist/splash-screen/RecentPages.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/styles.css +5914 -0
- package/dist/tour/Tour.d.ts +3 -0
- package/dist/tour/Tour.js +426 -0
- package/dist/tour/Tour.js.map +1 -0
- package/dist/tour/default-tour.d.ts +9 -0
- package/dist/tour/default-tour.js +302 -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 +93 -0
- package/dist/tour/preview-tour.js.map +1 -0
- package/dist/types.d.ts +396 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/images/bg-shape-black.webp +0 -0
- package/images/wizard-bg.png +0 -0
- package/images/wizard-tour.png +0 -0
- package/images/wizard.png +0 -0
- package/package.json +93 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { Button } from "../../components/ui/button";
|
|
4
|
+
import { Textarea } from "../../components/ui/textarea";
|
|
5
|
+
import { Send } from "lucide-react";
|
|
6
|
+
import { ActionButton } from "../../components/ActionButton";
|
|
7
|
+
export function CommentEditor({ initialText = "", onSave, onCancel, isSaving = false, availableTags = [], selectedTags: initialSelectedTags = [], placeholder = "Write your comment...", autoFocus = true, submitLabel = "Save", cancelLabel = "Cancel", showTagSelector = true, compact = false, onKeyDown, }) {
|
|
8
|
+
const [text, setText] = React.useState(initialText);
|
|
9
|
+
const [selectedTags, setSelectedTags] = React.useState(initialSelectedTags);
|
|
10
|
+
const textareaRef = React.useRef(null);
|
|
11
|
+
React.useEffect(() => {
|
|
12
|
+
if (autoFocus && textareaRef.current) {
|
|
13
|
+
// Focus after a longer delay to ensure the component is fully mounted, especially for dynamically created popovers
|
|
14
|
+
const timer = setTimeout(() => {
|
|
15
|
+
textareaRef.current?.focus();
|
|
16
|
+
// Move cursor to end
|
|
17
|
+
const len = textareaRef.current?.value.length || 0;
|
|
18
|
+
textareaRef.current?.setSelectionRange(len, len);
|
|
19
|
+
}, 200);
|
|
20
|
+
return () => clearTimeout(timer);
|
|
21
|
+
}
|
|
22
|
+
}, [autoFocus]);
|
|
23
|
+
const handleKeyDown = (e) => {
|
|
24
|
+
// Call custom handler first if provided
|
|
25
|
+
if (onKeyDown) {
|
|
26
|
+
onKeyDown(e);
|
|
27
|
+
}
|
|
28
|
+
// Default behavior: Enter to submit (unless Shift is held)
|
|
29
|
+
if (e.key === "Enter" && !e.shiftKey && !e.defaultPrevented) {
|
|
30
|
+
e.preventDefault();
|
|
31
|
+
handleSave();
|
|
32
|
+
}
|
|
33
|
+
// Escape to cancel
|
|
34
|
+
else if (e.key === "Escape" && !e.defaultPrevented) {
|
|
35
|
+
e.preventDefault();
|
|
36
|
+
onCancel();
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const handleSave = () => {
|
|
40
|
+
const trimmedText = text.trim();
|
|
41
|
+
if (trimmedText && !isSaving) {
|
|
42
|
+
onSave(trimmedText, selectedTags);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
return (_jsxs("div", { className: "space-y-3", children: [_jsx(Textarea, { ref: textareaRef, "data-testid": "add-comment-textarea", value: text, onChange: (e) => setText(e.target.value), onKeyDown: handleKeyDown, placeholder: placeholder, className: `resize-none ${compact ? "min-h-[60px]" : "min-h-[100px]"}`, rows: compact ? 2 : 3, disabled: isSaving, autoFocus: autoFocus }), showTagSelector && availableTags.length > 0 && (_jsxs("div", { className: "space-y-2", children: [_jsx("div", { className: "text-muted-foreground text-xs", children: "Tags" }), _jsx("div", { className: "flex flex-wrap gap-2", children: availableTags.map((tag) => {
|
|
46
|
+
const isSelected = selectedTags.includes(tag.label);
|
|
47
|
+
return (_jsx(Button, { type: "button", size: "sm", variant: isSelected ? "secondary" : "outline", className: "h-6 px-2 text-xs", onClick: () => {
|
|
48
|
+
setSelectedTags((prev) => prev.includes(tag.label)
|
|
49
|
+
? prev.filter((l) => l !== tag.label)
|
|
50
|
+
: [...prev, tag.label]);
|
|
51
|
+
}, style: {
|
|
52
|
+
borderColor: isSelected ? tag.color : undefined,
|
|
53
|
+
backgroundColor: isSelected ? tag.color + "22" : undefined,
|
|
54
|
+
}, disabled: isSaving, children: tag.label }, tag.label));
|
|
55
|
+
}) })] })), _jsxs("div", { className: "flex justify-end gap-2", children: [_jsx(ActionButton, { variant: "outline", onClick: onCancel, disabled: isSaving, "data-testid": "add-comment-cancel", children: cancelLabel }), _jsxs(ActionButton, { onClick: handleSave, disabled: !text.trim() || isSaving, className: "flex items-center gap-1", "data-testid": "add-comment-submit", children: [compact && _jsx(Send, { size: 14, strokeWidth: 1 }), isSaving ? "Saving..." : submitLabel] })] }), !compact && (_jsx("div", { className: "text-xs text-gray-500", children: "Press Enter to submit, Shift+Enter for new line, Escape to cancel" }))] }));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=CommentEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentEditor.js","sourceRoot":"","sources":["../../../src/editor/reviews/CommentEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { EditContextType } from "../client/editContext";
|
|
3
|
+
import type { SelectionRange } from "../client/editContext";
|
|
4
|
+
import type { FieldDescriptor } from "../../types";
|
|
5
|
+
export declare function CommentPopover({ children, editContext: externalEditContext, position, onClose, initialField, initialRange, }: {
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
editContext?: EditContextType;
|
|
8
|
+
position?: {
|
|
9
|
+
x: number;
|
|
10
|
+
y: number;
|
|
11
|
+
};
|
|
12
|
+
onClose?: () => void;
|
|
13
|
+
initialField?: FieldDescriptor;
|
|
14
|
+
initialRange?: SelectionRange;
|
|
15
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export declare function showCommentPopoverAt(position: {
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
}, editContext: EditContextType, options?: {
|
|
20
|
+
field?: FieldDescriptor;
|
|
21
|
+
range?: SelectionRange;
|
|
22
|
+
}): void;
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { useEffect, useState } from "react";
|
|
5
|
+
import uuid from "react-uuid";
|
|
6
|
+
import { MessageCirclePlus } from "lucide-react";
|
|
7
|
+
import { useEditContext, useFieldsEditContext, } from "../client/editContext";
|
|
8
|
+
import { createOrUpdateComment } from "../services/reviewsService";
|
|
9
|
+
import { Popover, PopoverContent, PopoverTrigger, PopoverAnchor, } from "../../components/ui/popover";
|
|
10
|
+
import { CommentEditor } from "./CommentEditor";
|
|
11
|
+
import * as ReactDOM from "react-dom/client";
|
|
12
|
+
export function CommentPopover({ children, editContext: externalEditContext, position, onClose, initialField, initialRange, }) {
|
|
13
|
+
const [isOpen, setIsOpen] = useState(!!position);
|
|
14
|
+
const [saving, setSaving] = useState(false);
|
|
15
|
+
const contextFromHook = useEditContext();
|
|
16
|
+
const editContext = externalEditContext || contextFromHook;
|
|
17
|
+
const availableTags = editContext?.availableCommentTags || [];
|
|
18
|
+
const fieldsContext = useFieldsEditContext();
|
|
19
|
+
const contentRef = React.useRef(null);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (position)
|
|
22
|
+
setIsOpen(true);
|
|
23
|
+
}, [position?.x, position?.y]);
|
|
24
|
+
// Tags are now provided by editContext.availableCommentTags
|
|
25
|
+
const handleSave = async (text, tags) => {
|
|
26
|
+
if (!editContext || !text || saving)
|
|
27
|
+
return;
|
|
28
|
+
const descriptor = editContext.contentEditorItem?.descriptor;
|
|
29
|
+
if (!descriptor)
|
|
30
|
+
return;
|
|
31
|
+
const snapshotField = initialField || fieldsContext?.focusedField;
|
|
32
|
+
const snapshotRange = initialRange || editContext.selectedRange;
|
|
33
|
+
const itemId = snapshotField?.item.id ||
|
|
34
|
+
(editContext.selection.length > 0
|
|
35
|
+
? editContext.selection[0]
|
|
36
|
+
: undefined) ||
|
|
37
|
+
descriptor.id;
|
|
38
|
+
if (!itemId)
|
|
39
|
+
return;
|
|
40
|
+
const language = descriptor.language;
|
|
41
|
+
const version = descriptor.version;
|
|
42
|
+
const getFieldName = async () => {
|
|
43
|
+
if (!snapshotField)
|
|
44
|
+
return undefined;
|
|
45
|
+
const field = await editContext.itemsRepository.getField(snapshotField);
|
|
46
|
+
return field?.name;
|
|
47
|
+
};
|
|
48
|
+
const getItemName = async () => {
|
|
49
|
+
const item = await editContext.itemsRepository.getItem({
|
|
50
|
+
id: itemId,
|
|
51
|
+
language,
|
|
52
|
+
version,
|
|
53
|
+
});
|
|
54
|
+
return item?.name;
|
|
55
|
+
};
|
|
56
|
+
setSaving(true);
|
|
57
|
+
try {
|
|
58
|
+
const newComment = {
|
|
59
|
+
id: uuid(),
|
|
60
|
+
isNew: false,
|
|
61
|
+
itemId,
|
|
62
|
+
itemName: await getItemName(),
|
|
63
|
+
fieldId: snapshotField?.fieldId,
|
|
64
|
+
fieldName: await getFieldName(),
|
|
65
|
+
mainItemId: descriptor.id,
|
|
66
|
+
language,
|
|
67
|
+
version,
|
|
68
|
+
position: 0,
|
|
69
|
+
rangeStart: snapshotRange?.startOffset || 0,
|
|
70
|
+
rangeEnd: snapshotRange?.endOffset || 0,
|
|
71
|
+
author: editContext.user?.name,
|
|
72
|
+
authorDisplayName: editContext.user?.fullName,
|
|
73
|
+
date: new Date().toISOString(),
|
|
74
|
+
text: text,
|
|
75
|
+
tags: tags.join(","),
|
|
76
|
+
};
|
|
77
|
+
editContext.setComments([newComment, ...editContext.comments]);
|
|
78
|
+
editContext.setSelectedComment(newComment);
|
|
79
|
+
try {
|
|
80
|
+
const item = await editContext.itemsRepository.getItem({
|
|
81
|
+
id: itemId,
|
|
82
|
+
language,
|
|
83
|
+
version,
|
|
84
|
+
});
|
|
85
|
+
if (item && newComment.fieldId) {
|
|
86
|
+
newComment.fieldValue = item.fields.find((f) => f.id === newComment.fieldId)?.rawValue;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch { }
|
|
90
|
+
await createOrUpdateComment(newComment);
|
|
91
|
+
editContext.loadComments();
|
|
92
|
+
}
|
|
93
|
+
finally {
|
|
94
|
+
setSaving(false);
|
|
95
|
+
setIsOpen(false);
|
|
96
|
+
onClose?.();
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
const handleCancel = () => {
|
|
100
|
+
setIsOpen(false);
|
|
101
|
+
onClose?.();
|
|
102
|
+
};
|
|
103
|
+
return (_jsxs(Popover, { open: isOpen, onOpenChange: (open) => {
|
|
104
|
+
setIsOpen(open);
|
|
105
|
+
if (!open)
|
|
106
|
+
onClose?.();
|
|
107
|
+
}, enableIframeClickDetection: false, modal: true, children: [position && (_jsx("div", { style: {
|
|
108
|
+
position: "fixed",
|
|
109
|
+
left: position.x,
|
|
110
|
+
top: position.y,
|
|
111
|
+
width: 1,
|
|
112
|
+
height: 1,
|
|
113
|
+
pointerEvents: "none",
|
|
114
|
+
}, children: _jsx(PopoverAnchor, {}) })), !position && (_jsx(PopoverTrigger, { asChild: true, children: (children ?? _jsx(MessageCirclePlus, { size: 16, strokeWidth: 1 })) })), _jsx(PopoverContent, { ref: contentRef, tabIndex: -1, className: "w-96 p-4", "data-testid": "add-comment-popover", side: "bottom", align: "start", onOpenAutoFocus: (e) => {
|
|
115
|
+
e.preventDefault();
|
|
116
|
+
contentRef.current?.focus();
|
|
117
|
+
}, onInteractOutside: (e) => {
|
|
118
|
+
const target = e.target;
|
|
119
|
+
if (target && target.closest('[data-slot="tooltip-content"]')) {
|
|
120
|
+
e.preventDefault();
|
|
121
|
+
}
|
|
122
|
+
}, onPointerDownOutside: (e) => {
|
|
123
|
+
const target = e.target;
|
|
124
|
+
if (target && target.closest('[data-slot="tooltip-content"]')) {
|
|
125
|
+
e.preventDefault();
|
|
126
|
+
}
|
|
127
|
+
}, onFocusOutside: (e) => {
|
|
128
|
+
const target = e.target;
|
|
129
|
+
if (target && target.closest('[data-slot="tooltip-content"]')) {
|
|
130
|
+
e.preventDefault();
|
|
131
|
+
}
|
|
132
|
+
}, onMouseDown: (e) => e.stopPropagation(), onClick: (e) => e.stopPropagation(), children: _jsxs("div", { className: "space-y-3", children: [_jsx("div", { className: "font-medium", children: "Add Comment" }), _jsx(CommentEditor, { onSave: handleSave, onCancel: handleCancel, isSaving: saving, availableTags: availableTags, placeholder: "Write your comment...", submitLabel: "Add Comment", autoFocus: true })] }) })] }));
|
|
133
|
+
}
|
|
134
|
+
export function showCommentPopoverAt(position, editContext, options) {
|
|
135
|
+
const container = document.createElement("div");
|
|
136
|
+
document.body.appendChild(container);
|
|
137
|
+
const root = ReactDOM.createRoot(container);
|
|
138
|
+
const handleClose = () => {
|
|
139
|
+
root.unmount();
|
|
140
|
+
if (container.parentNode)
|
|
141
|
+
container.parentNode.removeChild(container);
|
|
142
|
+
};
|
|
143
|
+
root.render(_jsx(CommentPopover, { editContext: editContext, position: position, onClose: handleClose, initialField: options?.field, initialRange: options?.range }));
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=CommentPopover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentPopover.js","sourceRoot":"","sources":["../../../src/editor/reviews/CommentPopover.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Comment as CommentType } from "../../types";
|
|
2
|
+
export interface CommentViewProps {
|
|
3
|
+
comment: CommentType;
|
|
4
|
+
canEdit: boolean;
|
|
5
|
+
canDelete: boolean;
|
|
6
|
+
canResolve: boolean;
|
|
7
|
+
availableTags?: {
|
|
8
|
+
label: string;
|
|
9
|
+
color: string;
|
|
10
|
+
}[];
|
|
11
|
+
basePageId?: string;
|
|
12
|
+
basePageName?: string;
|
|
13
|
+
onEdit?: () => void;
|
|
14
|
+
onDelete?: () => void;
|
|
15
|
+
onResolve?: () => void;
|
|
16
|
+
onUnresolve?: () => void;
|
|
17
|
+
onAiAction?: () => void;
|
|
18
|
+
hideActions?: boolean;
|
|
19
|
+
compact?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare function CommentView({ comment, canEdit, canDelete, canResolve, availableTags, basePageId, basePageName, onEdit, onDelete, onResolve, onUnresolve, onAiAction, hideActions, compact, }: CommentViewProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { formatDate } from "../utils";
|
|
4
|
+
import { SimpleIconButton } from "../ui/SimpleIconButton";
|
|
5
|
+
import { Check, Edit, Sparkles, Trash2 } from "lucide-react";
|
|
6
|
+
import { Button } from "../../components/ui/button";
|
|
7
|
+
import { Popover, PopoverContent, PopoverTrigger, } from "../../components/ui/popover";
|
|
8
|
+
export function CommentView({ comment, canEdit, canDelete, canResolve, availableTags = [], basePageId, basePageName, onEdit, onDelete, onResolve, onUnresolve, onAiAction, hideActions = false, compact = false, }) {
|
|
9
|
+
const [deletePopoverOpen, setDeletePopoverOpen] = React.useState(false);
|
|
10
|
+
const [resolvePopoverOpen, setResolvePopoverOpen] = React.useState(false);
|
|
11
|
+
const renderTags = () => {
|
|
12
|
+
// Canonical: parse labels from comment.tags (comma-separated string)
|
|
13
|
+
const tagLabels = (comment.tags || "")
|
|
14
|
+
.split(",")
|
|
15
|
+
.map((t) => t.trim())
|
|
16
|
+
.filter(Boolean);
|
|
17
|
+
if (tagLabels.length === 0)
|
|
18
|
+
return null;
|
|
19
|
+
const colorMap = new Map(availableTags.map((t) => [t.label, t.color]));
|
|
20
|
+
return (_jsx("div", { className: "mt-2 flex flex-wrap gap-2", children: tagLabels.map((label) => {
|
|
21
|
+
const color = colorMap.get(label);
|
|
22
|
+
return (_jsx("span", { className: "text-2xs rounded border px-2 py-0.5", style: {
|
|
23
|
+
borderColor: color || undefined,
|
|
24
|
+
backgroundColor: color ? color + "22" : undefined,
|
|
25
|
+
}, children: label }, label));
|
|
26
|
+
}) }));
|
|
27
|
+
};
|
|
28
|
+
const renderContextInfo = () => {
|
|
29
|
+
const pageName = basePageName;
|
|
30
|
+
const isComponentDifferent = !!comment.itemId && comment.mainItemId !== comment.itemId;
|
|
31
|
+
const componentName = isComponentDifferent ? comment.itemName : undefined;
|
|
32
|
+
const fieldName = comment.fieldName;
|
|
33
|
+
const hasPageName = !!pageName && pageName.length > 0;
|
|
34
|
+
const hasComponentName = !!componentName && componentName.length > 0;
|
|
35
|
+
const hasFieldName = !!fieldName && fieldName.length > 0;
|
|
36
|
+
if (!hasPageName && !hasComponentName && !hasFieldName)
|
|
37
|
+
return null;
|
|
38
|
+
return (_jsxs("div", { className: `${compact ? "mt-2" : "mt-3"} flex items-center border-t pt-${compact ? "2" : "3"} text-xs`, "data-testid": "comment-context-info", children: [hasPageName && (_jsx("div", { className: "text-2xs text-gray-500", "data-testid": "comment-page-name", children: pageName })), hasPageName && (hasComponentName || hasFieldName) && (_jsx("div", { className: "text-2xs mx-2 text-gray-500", children: ">" })), hasComponentName && (_jsx("div", { className: "text-2xs text-gray-500", "data-testid": "comment-component-name", children: componentName })), hasComponentName && hasFieldName && (_jsx("div", { className: "text-2xs mx-2 text-gray-500", children: ">" })), hasFieldName && (_jsx("div", { className: "text-2xs text-gray-500", "data-testid": "comment-field-name", children: fieldName }))] }));
|
|
39
|
+
};
|
|
40
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: `${compact ? "mb-2" : "mb-3"} flex items-start justify-between`, children: [_jsxs("div", { children: [_jsx("div", { className: `text-dark text-xs font-medium`, title: comment.author, children: comment.authorDisplayName }), _jsx("div", { className: "text-xs text-gray-500", children: comment.created ? formatDate(new Date(comment.created)) : "" })] }), !hideActions && (_jsxs("div", { className: "flex items-center gap-1", children: [canEdit && onEdit && (_jsx(SimpleIconButton, { icon: _jsx(Edit, { className: "h-3.5 w-3.5", strokeWidth: 1 }), label: "Edit", "data-testid": "comment-action-edit", onClick: onEdit })), canDelete && onDelete && (_jsxs(Popover, { open: deletePopoverOpen, onOpenChange: setDeletePopoverOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx("button", { className: "hover:bg-gray-5 cursor-pointer rounded-full p-[6px]", title: "Delete", "data-testid": "comment-action-delete", children: _jsx(Trash2, { className: "h-3.5 w-3.5", strokeWidth: 1 }) }) }), _jsx(PopoverContent, { className: "w-auto p-2", align: "end", "data-testid": "comment-delete-popover", children: _jsx(Button, { variant: "outline", size: "sm", onClick: async () => {
|
|
41
|
+
setDeletePopoverOpen(false);
|
|
42
|
+
onDelete();
|
|
43
|
+
}, children: "Delete" }) })] })), canResolve && !comment.isResolved && onResolve && (_jsx(SimpleIconButton, { icon: _jsx(Check, { className: "h-3.5 w-3.5", strokeWidth: 1 }), label: "Resolve", "data-testid": "comment-action-resolve", onClick: onResolve })), comment.isResolved && onUnresolve && (_jsxs(Popover, { open: resolvePopoverOpen, onOpenChange: setResolvePopoverOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx("button", { className: "cursor-pointer rounded-full p-[6px]", title: "Resolved by " +
|
|
44
|
+
comment.resolvedBy +
|
|
45
|
+
" (" +
|
|
46
|
+
formatDate(new Date(comment.resolvedDate)) +
|
|
47
|
+
")", "data-testid": "comment-resolved-indicator", children: _jsx(Check, { className: "h-3.5 w-3.5 text-green-500", strokeWidth: 1 }) }) }), _jsx(PopoverContent, { className: "w-auto p-2", align: "end", children: _jsx(Button, { variant: "outline", size: "sm", onClick: async () => {
|
|
48
|
+
setResolvePopoverOpen(false);
|
|
49
|
+
onUnresolve();
|
|
50
|
+
}, children: "Unresolve" }) })] })), canResolve && !comment.isResolved && onAiAction && (_jsx(SimpleIconButton, { icon: _jsx(Sparkles, { className: "h-3.5 w-3.5", strokeWidth: 1 }), label: "AI", "data-testid": "comment-action-ai", onClick: onAiAction }))] }))] }), _jsx("div", { className: `${compact ? "text-sm" : "text-sm"} whitespace-pre-wrap text-gray-700`, "data-testid": "comment-text", children: comment.text }), renderTags(), renderContextInfo(), comment.isResolved && (_jsxs("div", { className: `${compact ? "mt-2" : "mt-3"} text-xs font-medium text-green-600`, children: ["\u2713 Resolved by ", comment.resolvedBy, " on", " ", formatDate(new Date(comment.resolvedDate))] }))] }));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=CommentView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentView.js","sourceRoot":"","sources":["../../../src/editor/reviews/CommentView.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 "../client/editContext";
|
|
4
|
+
import { Comment as CommentComponent } from "./Comment";
|
|
5
|
+
import { SuggestedEditComponent } from "./SuggestedEdit";
|
|
6
|
+
import { SimpleToolbar } from "../ui/SimpleToolbar";
|
|
7
|
+
import { SimpleIconButton } from "../ui/SimpleIconButton";
|
|
8
|
+
import { Button } from "../../components/ui/button";
|
|
9
|
+
import { Popover, PopoverContent, PopoverTrigger, } from "../../components/ui/popover";
|
|
10
|
+
import { Tooltip, TooltipContent, TooltipTrigger, } from "../../components/ui/tooltip";
|
|
11
|
+
import { FileDiff, CheckCircle, CheckCircle2, Plus, Tags, } from "lucide-react";
|
|
12
|
+
export function Comments() {
|
|
13
|
+
const editContext = useEditContext();
|
|
14
|
+
const [feedbackItems, setFeedbackItems] = useState([]);
|
|
15
|
+
const [hideAppliedSuggestions, setHideAppliedSuggestions] = useState(true);
|
|
16
|
+
const [selectedTagsFilter, setSelectedTagsFilter] = useState(() => {
|
|
17
|
+
try {
|
|
18
|
+
const raw = typeof window !== "undefined"
|
|
19
|
+
? localStorage.getItem("editor.comments.tagsFilter")
|
|
20
|
+
: null;
|
|
21
|
+
return raw ? JSON.parse(raw) : [];
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
const availableTags = editContext?.availableCommentTags || [];
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
let cancelled = false;
|
|
30
|
+
const load = async () => {
|
|
31
|
+
// Base lists from context
|
|
32
|
+
const mainComments = editContext?.comments || [];
|
|
33
|
+
const suggestedEdits = editContext?.suggestedEdits || [];
|
|
34
|
+
// Filter out applied suggestions if hideAppliedSuggestions is true
|
|
35
|
+
const filteredSuggestedEdits = hideAppliedSuggestions
|
|
36
|
+
? suggestedEdits.filter((edit) => edit.status !== "applied")
|
|
37
|
+
: suggestedEdits;
|
|
38
|
+
// Start with main page comments and suggestions
|
|
39
|
+
let allComments = [...mainComments];
|
|
40
|
+
// Base page context
|
|
41
|
+
const basePageId = editContext?.currentItemDescriptor?.id;
|
|
42
|
+
// Combine with suggestions
|
|
43
|
+
let combined = [
|
|
44
|
+
...allComments,
|
|
45
|
+
...filteredSuggestedEdits,
|
|
46
|
+
];
|
|
47
|
+
// Only keep items whose mainItemId is the current page
|
|
48
|
+
if (basePageId) {
|
|
49
|
+
combined = combined.filter((item) => item.mainItemId === basePageId);
|
|
50
|
+
}
|
|
51
|
+
// Apply tag filter to comments only (suggested edits do not have tags)
|
|
52
|
+
const tagFiltered = selectedTagsFilter.length
|
|
53
|
+
? combined.filter((item) => {
|
|
54
|
+
// Keep suggested edits
|
|
55
|
+
if ("oldValue" in item && "newValue" in item)
|
|
56
|
+
return true;
|
|
57
|
+
const tags = (item.tags || "")
|
|
58
|
+
.split(",")
|
|
59
|
+
.map((t) => t.trim())
|
|
60
|
+
.filter(Boolean);
|
|
61
|
+
// OR logic: include if any selected tag matches
|
|
62
|
+
return selectedTagsFilter.some((t) => tags.includes(t));
|
|
63
|
+
})
|
|
64
|
+
: combined;
|
|
65
|
+
// Sort by creation date
|
|
66
|
+
tagFiltered.sort((a, b) => new Date(b.created || "").getTime() -
|
|
67
|
+
new Date(a.created || "").getTime());
|
|
68
|
+
if (!cancelled)
|
|
69
|
+
setFeedbackItems(tagFiltered);
|
|
70
|
+
};
|
|
71
|
+
load();
|
|
72
|
+
return () => {
|
|
73
|
+
cancelled = true;
|
|
74
|
+
};
|
|
75
|
+
}, [editContext, hideAppliedSuggestions, selectedTagsFilter]);
|
|
76
|
+
useEffect(() => {
|
|
77
|
+
try {
|
|
78
|
+
if (typeof window !== "undefined")
|
|
79
|
+
localStorage.setItem("editor.comments.tagsFilter", JSON.stringify(selectedTagsFilter));
|
|
80
|
+
}
|
|
81
|
+
catch { }
|
|
82
|
+
}, [selectedTagsFilter]);
|
|
83
|
+
// Tags are provided once via editContext.availableCommentTags
|
|
84
|
+
return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsx("div", { className: "border-gray-3 flex-1 overflow-auto border-b", children: _jsx("div", { className: "h-fill-available p-4", children: feedbackItems.map((item) => {
|
|
85
|
+
// Use a discriminator check. Here we assume suggested edits have the properties oldValue and newValue.
|
|
86
|
+
if ("oldValue" in item && "newValue" in item) {
|
|
87
|
+
return (_jsx(SuggestedEditComponent, { edit: item }, item.id));
|
|
88
|
+
}
|
|
89
|
+
return (_jsx(CommentComponent, { comment: item, availableTags: availableTags }, item.id));
|
|
90
|
+
}) }) }), _jsxs(SimpleToolbar, { children: [_jsx(SimpleIconButton, { id: "add-comment", icon: _jsx(Plus, { size: 16, strokeWidth: 1, className: "p-0.5" }), label: "Add Comment", onClick: () => {
|
|
91
|
+
editContext?.addComment();
|
|
92
|
+
} }), _jsx(SimpleIconButton, { selected: !!editContext?.showResolvedComments, icon: _jsx(CheckCircle2, { size: 16, strokeWidth: 1, className: "p-0.5" }), label: editContext?.showResolvedComments
|
|
93
|
+
? "Hide Resolved Comments"
|
|
94
|
+
: "Show Resolved Comments", onClick: () => {
|
|
95
|
+
editContext?.setShowResolvedComments((x) => !x);
|
|
96
|
+
} }), editContext?.showSuggestedEdits && (_jsx(SimpleIconButton, { selected: editContext?.showSuggestedEditsDiff, icon: _jsx(FileDiff, { size: 16, strokeWidth: 1, className: "p-0.5" }), label: "Show Suggestions Diff", "data-testid": "show-suggestions-diff-button", onClick: () => {
|
|
97
|
+
editContext?.setShowSuggestedEditsDiff((x) => !x);
|
|
98
|
+
} })), _jsx(SimpleIconButton, { selected: hideAppliedSuggestions, icon: hideAppliedSuggestions ? (_jsx(CheckCircle2, { size: 16, strokeWidth: 1, className: "p-0.5" })) : (_jsx(CheckCircle, { size: 16, strokeWidth: 1, className: "p-0.5" })), label: hideAppliedSuggestions
|
|
99
|
+
? "Show Applied Suggestions"
|
|
100
|
+
: "Hide Applied Suggestions", onClick: () => {
|
|
101
|
+
setHideAppliedSuggestions((x) => !x);
|
|
102
|
+
} }), _jsx("div", { className: "ml-auto flex items-center gap-2", children: availableTags.length > 0 && (_jsxs(Tooltip, { delayDuration: 500, children: [_jsxs(Popover, { children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx(TooltipTrigger, { asChild: true, children: _jsx(SimpleIconButton, { showTooltip: false, selected: selectedTagsFilter.length > 0, icon: _jsx(Tags, { size: 16, strokeWidth: 1, className: "p-0.5" }), label: selectedTagsFilter.length > 0
|
|
103
|
+
? `Tags (${selectedTagsFilter.length})`
|
|
104
|
+
: "Tags", onClick: () => { } }) }) }), _jsxs(PopoverContent, { className: "w-72 p-3", align: "start", children: [_jsx("div", { className: "mb-2 text-xs text-gray-600", children: "Filter by tags" }), _jsx("div", { className: "flex flex-wrap gap-2", children: availableTags.map((tag) => {
|
|
105
|
+
const isSelected = selectedTagsFilter.includes(tag.label);
|
|
106
|
+
return (_jsx(Button, { type: "button", size: "sm", variant: isSelected ? "secondary" : "outline", className: "h-6 px-2 text-xs", onClick: () => {
|
|
107
|
+
setSelectedTagsFilter((prev) => prev.includes(tag.label)
|
|
108
|
+
? prev.filter((l) => l !== tag.label)
|
|
109
|
+
: [...prev, tag.label]);
|
|
110
|
+
}, style: {
|
|
111
|
+
borderColor: isSelected ? tag.color : undefined,
|
|
112
|
+
backgroundColor: isSelected
|
|
113
|
+
? tag.color + "22"
|
|
114
|
+
: undefined,
|
|
115
|
+
}, children: tag.label }, tag.label));
|
|
116
|
+
}) }), selectedTagsFilter.length > 0 && (_jsx("div", { className: "mt-3 text-right", children: _jsx(Button, { size: "sm", variant: "ghost", className: "h-6 px-2 text-xs", onClick: () => setSelectedTagsFilter([]), children: "Clear" }) }))] })] }), _jsx(TooltipContent, { children: "Filter by tags" })] })) })] })] }));
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=Comments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Comments.js","sourceRoot":"","sources":["../../../src/editor/reviews/Comments.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface DiffViewProps {
|
|
3
|
+
oldText: string;
|
|
4
|
+
newText: string;
|
|
5
|
+
/** If true, use a word-based diff; otherwise, use a character-based diff */
|
|
6
|
+
useWordDiff?: boolean;
|
|
7
|
+
/** If true, strip HTML and ignore formatting differences */
|
|
8
|
+
ignoreFormatting?: boolean;
|
|
9
|
+
/** If true, clip long unchanged segments */
|
|
10
|
+
clipUnchanged?: boolean;
|
|
11
|
+
/** Threshold length for unchanged segments before clipping */
|
|
12
|
+
clipThreshold?: number;
|
|
13
|
+
/** How many characters to show at the start and end of a clipped segment */
|
|
14
|
+
clipContext?: number;
|
|
15
|
+
}
|
|
16
|
+
export declare const DiffView: React.FC<DiffViewProps>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { diffWords, diffChars } from "diff";
|
|
3
|
+
function stripHtml(html) {
|
|
4
|
+
const temp = document.createElement("div");
|
|
5
|
+
temp.innerHTML = html;
|
|
6
|
+
return temp.textContent || temp.innerText || "";
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Clips a long string by preserving the first and last `contextChars` characters,
|
|
10
|
+
* inserting an ellipsis in between.
|
|
11
|
+
*/
|
|
12
|
+
function clipPartValue(value, contextChars) {
|
|
13
|
+
const prefix = value.substring(0, contextChars);
|
|
14
|
+
const suffix = value.substring(value.length - contextChars);
|
|
15
|
+
return `${prefix}…${suffix}`;
|
|
16
|
+
}
|
|
17
|
+
export const DiffView = ({ oldText, newText, useWordDiff = true, ignoreFormatting = false, clipUnchanged = false, clipThreshold = 50, clipContext = 10, }) => {
|
|
18
|
+
// Normalize text if styling should be ignored.
|
|
19
|
+
const normalizedOldText = ignoreFormatting ? stripHtml(oldText) : oldText;
|
|
20
|
+
const normalizedNewText = ignoreFormatting ? stripHtml(newText) : newText;
|
|
21
|
+
// Choose diffing algorithm.
|
|
22
|
+
const diff = useWordDiff
|
|
23
|
+
? diffWords(normalizedOldText, normalizedNewText)
|
|
24
|
+
: diffChars(normalizedOldText, normalizedNewText);
|
|
25
|
+
// Heuristic: if the diff results in just one removed and one added segment,
|
|
26
|
+
// assume a full replacement and show both values in full.
|
|
27
|
+
if (diff.length === 2 &&
|
|
28
|
+
diff[0]?.removed &&
|
|
29
|
+
diff[1]?.added &&
|
|
30
|
+
diff[0]?.value.trim().length > 0 &&
|
|
31
|
+
diff[1]?.value.trim().length > 0) {
|
|
32
|
+
return (_jsxs("div", { style: { fontFamily: "monospace", fontSize: "14px" }, children: [_jsxs("div", { style: { marginBottom: "0.5rem" }, children: [_jsx("strong", { children: "Old:" }), " ", _jsx("span", { style: { color: "red", textDecoration: "line-through" }, children: normalizedOldText })] }), _jsxs("div", { children: [_jsx("strong", { children: "New:" }), " ", _jsx("span", { style: { color: "green" }, children: normalizedNewText })] })] }));
|
|
33
|
+
}
|
|
34
|
+
return (_jsx("div", { style: { fontFamily: "monospace", fontSize: "14px" }, children: diff.map((part, index) => {
|
|
35
|
+
let style = {};
|
|
36
|
+
if (part.added) {
|
|
37
|
+
style = { color: "green" };
|
|
38
|
+
}
|
|
39
|
+
else if (part.removed) {
|
|
40
|
+
style = { color: "red", textDecoration: "line-through" };
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
style = { color: "gray" };
|
|
44
|
+
}
|
|
45
|
+
// For unchanged segments, if clipping is enabled and the segment is too long,
|
|
46
|
+
// show part of it before and after an ellipsis.
|
|
47
|
+
let displayValue = part.value;
|
|
48
|
+
if (!part.added &&
|
|
49
|
+
!part.removed &&
|
|
50
|
+
clipUnchanged &&
|
|
51
|
+
part.value.length > clipThreshold) {
|
|
52
|
+
displayValue = clipPartValue(part.value, clipContext);
|
|
53
|
+
}
|
|
54
|
+
return (_jsx("span", { style: style, children: displayValue }, index));
|
|
55
|
+
}) }));
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=DiffView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiffView.js","sourceRoot":"","sources":["../../../src/editor/reviews/DiffView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function PreviewInfo(): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEditContext } from "../../client-components";
|
|
3
|
+
import { formatDate } from "../utils";
|
|
4
|
+
import { Check, X } from "lucide-react";
|
|
5
|
+
export function PreviewInfo() {
|
|
6
|
+
const editContext = useEditContext();
|
|
7
|
+
if (!editContext)
|
|
8
|
+
return null;
|
|
9
|
+
const review = editContext.reviews.reviews.find((x) => x.reviewerEmail === editContext.user?.email);
|
|
10
|
+
return (_jsxs("div", { className: "flex items-center gap-3", children: [_jsxs("div", { className: "text-white", children: ["Welcome to your page ", _jsx("b", { children: "preview" }), ", ", editContext.user?.fullName, "!", _jsxs("div", { className: "text-xs text-gray-300", children: [editContext.contentEditorItem?.path, " ", editContext.contentEditorItem?.language, " ", editContext.contentEditorItem?.version] })] }), review?.approvalDate && (_jsx("span", { title: "Approved " + formatDate(new Date(review.approvalDate)), children: _jsx(Check, { className: "h-6 w-6 font-bold text-green-400" }) })), review?.rejectedDate && (_jsx("span", { title: "Rejected " + formatDate(new Date(review.rejectedDate)), children: _jsx(X, { className: "h-6 w-6 font-bold text-red-400" }) }))] }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=PreviewInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PreviewInfo.js","sourceRoot":"","sources":["../../../src/editor/reviews/PreviewInfo.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,UAAU,WAAW;IACzB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,WAAW,CAAC,IAAI,EAAE,KAAK,CACnD,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,yBAAyB,aACtC,eAAK,SAAS,EAAC,YAAY,sCACJ,kCAAc,QAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,OAChE,eAAK,SAAS,EAAC,uBAAuB,aACnC,WAAW,CAAC,iBAAiB,EAAE,IAAI,EAAE,GAAG,EACxC,WAAW,CAAC,iBAAiB,EAAE,QAAQ,EAAE,GAAG,EAC5C,WAAW,CAAC,iBAAiB,EAAE,OAAO,IACnC,IACF,EACL,MAAM,EAAE,YAAY,IAAI,CACvB,eAAM,KAAK,EAAE,WAAW,GAAG,UAAU,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,YAClE,KAAC,KAAK,IAAC,SAAS,EAAC,kCAAkC,GAAG,GACjD,CACR,EACA,MAAM,EAAE,YAAY,IAAI,CACvB,eAAM,KAAK,EAAE,WAAW,GAAG,UAAU,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,YAClE,KAAC,CAAC,IAAC,SAAS,EAAC,gCAAgC,GAAG,GAC3C,CACR,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function Reviews(): import("react/jsx-runtime").JSX.Element;
|