@parhelia/core 0.3.12763 → 0.3.12768
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/dist/agents-view/AgentCard.js +7 -9
- package/dist/agents-view/AgentCard.js.map +1 -1
- package/dist/agents-view/AgentGalleryView.js +4 -4
- package/dist/agents-view/AgentGalleryView.js.map +1 -1
- package/dist/agents-view/AgentProfileIcon.js +1 -8
- package/dist/agents-view/AgentProfileIcon.js.map +1 -1
- package/dist/agents-view/AgentsWorkspaceView.js +2 -2
- package/dist/agents-view/AgentsWorkspaceView.js.map +1 -1
- package/dist/agents-view/RenameAgentDialog.js +1 -1
- package/dist/agents-view/RenameAgentDialog.js.map +1 -1
- package/dist/components/MarkdownViewerPopover.js +3 -3
- package/dist/components/MarkdownViewerPopover.js.map +1 -1
- package/dist/components/WorkspaceHomeView.js +1 -1
- package/dist/components/WorkspaceHomeView.js.map +1 -1
- package/dist/components/ui/LanguageSelector.js +1 -1
- package/dist/components/ui/LanguageSelector.js.map +1 -1
- package/dist/components/ui/PlaceholderInput.js +1 -1
- package/dist/components/ui/PlaceholderItemSelector.js +1 -1
- package/dist/components/ui/PlaceholderItemSelector.js.map +1 -1
- package/dist/components/ui/UserPicker.js +2 -2
- package/dist/components/ui/UserPicker.js.map +1 -1
- package/dist/components/ui/accordion.js +1 -1
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/breadcrumb.js +2 -2
- package/dist/components/ui/breadcrumb.js.map +1 -1
- package/dist/components/ui/calendar.js +3 -3
- package/dist/components/ui/calendar.js.map +1 -1
- package/dist/components/ui/card.js +2 -2
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/checkbox.js +1 -1
- package/dist/components/ui/checkbox.js.map +1 -1
- package/dist/components/ui/context-menu.js +3 -3
- package/dist/components/ui/context-menu.js.map +1 -1
- package/dist/components/ui/delete-icon.js +1 -1
- package/dist/components/ui/delete-icon.js.map +1 -1
- package/dist/components/ui/dropdown-menu.js +4 -4
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/mention-textarea.js +2 -2
- package/dist/components/ui/mention-textarea.js.map +1 -1
- package/dist/components/ui/multi-switch-button.js +1 -1
- package/dist/components/ui/multi-switch-button.js.map +1 -1
- package/dist/components/ui/upload-button.js +1 -1
- package/dist/components/ui/upload-button.js.map +1 -1
- package/dist/config/config.js +29 -18
- package/dist/config/config.js.map +1 -1
- package/dist/editor/AdminRequiredView.js +1 -1
- package/dist/editor/AdminRequiredView.js.map +1 -1
- package/dist/editor/ConcurrentUserLimitDialog.d.ts +2 -1
- package/dist/editor/ConcurrentUserLimitDialog.js +26 -11
- package/dist/editor/ConcurrentUserLimitDialog.js.map +1 -1
- package/dist/editor/ConfirmationDialog.js +1 -1
- package/dist/editor/ContentTree.js +2 -2
- package/dist/editor/ContentTree.js.map +1 -1
- package/dist/editor/ContextMenu.js +36 -6
- package/dist/editor/ContextMenu.js.map +1 -1
- package/dist/editor/DeleteItemsWarning.js +2 -2
- package/dist/editor/DeleteItemsWarning.js.map +1 -1
- package/dist/editor/Editor.js +49 -4
- package/dist/editor/Editor.js.map +1 -1
- package/dist/editor/EditorWarning.js +1 -1
- package/dist/editor/EditorWarning.js.map +1 -1
- package/dist/editor/FieldActionsOverlay.js +1 -1
- package/dist/editor/FieldActionsOverlay.js.map +1 -1
- package/dist/editor/FieldHistory.js +7 -7
- package/dist/editor/FieldHistory.js.map +1 -1
- package/dist/editor/FieldList.js +45 -4
- package/dist/editor/FieldList.js.map +1 -1
- package/dist/editor/FieldListField.js +5 -3
- package/dist/editor/FieldListField.js.map +1 -1
- package/dist/editor/FieldListFieldWithFallbacks.js +1 -1
- package/dist/editor/FieldListFieldWithFallbacks.js.map +1 -1
- package/dist/editor/MainLayout.js +3 -6
- package/dist/editor/MainLayout.js.map +1 -1
- package/dist/editor/MigrationsView.js +6 -6
- package/dist/editor/MigrationsView.js.map +1 -1
- package/dist/editor/PictureCropper.js +2 -2
- package/dist/editor/PictureCropper.js.map +1 -1
- package/dist/editor/SetupWizard.js +1 -1
- package/dist/editor/SetupWizard.js.map +1 -1
- package/dist/editor/UsedBy.js +2 -2
- package/dist/editor/UsedBy.js.map +1 -1
- package/dist/editor/WorkspaceTitleSwitcher.js +3 -3
- package/dist/editor/WorkspaceTitleSwitcher.js.map +1 -1
- package/dist/editor/ai/AgentProfileSelector.js +4 -4
- package/dist/editor/ai/AgentProfileSelector.js.map +1 -1
- package/dist/editor/ai/AgentSharingSection.js +6 -6
- package/dist/editor/ai/AgentSharingSection.js.map +1 -1
- package/dist/editor/ai/Agents.js +3 -3
- package/dist/editor/ai/Agents.js.map +1 -1
- package/dist/editor/ai/ContentInspectorPopover.js +2 -2
- package/dist/editor/ai/ContentInspectorPopover.js.map +1 -1
- package/dist/editor/ai/GuidanceOverlay.js +1 -1
- package/dist/editor/ai/GuidanceOverlay.js.map +1 -1
- package/dist/editor/ai/HeartbeatDiagnosticsPanel.js +5 -19
- package/dist/editor/ai/HeartbeatDiagnosticsPanel.js.map +1 -1
- package/dist/editor/ai/InlineAiDialog.d.ts +13 -0
- package/dist/editor/ai/InlineAiDialog.js +52 -14
- package/dist/editor/ai/InlineAiDialog.js.map +1 -1
- package/dist/editor/ai/InlineAiTrigger.js +1 -1
- package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
- package/dist/editor/ai/bridgeInlineTextReplace.d.ts +16 -0
- package/dist/editor/ai/bridgeInlineTextReplace.js +31 -0
- package/dist/editor/ai/bridgeInlineTextReplace.js.map +1 -0
- package/dist/editor/ai/dialogs/ComponentTypeSelectorInline.js +2 -2
- package/dist/editor/ai/dialogs/ComponentTypeSelectorInline.js.map +1 -1
- package/dist/editor/ai/dialogs/QuestionnaireInline.js +3 -3
- package/dist/editor/ai/dialogs/QuestionnaireInline.js.map +1 -1
- package/dist/editor/ai/inlineAiTextEditLabels.d.ts +1 -1
- package/dist/editor/ai/inlineAiTextEditLabels.js +1 -1
- package/dist/editor/ai/terminal/components/ActivitySummaryCell.js +4 -4
- package/dist/editor/ai/terminal/components/ActivitySummaryCell.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.js +7 -7
- package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentContextItemPicker.js +1 -1
- package/dist/editor/ai/terminal/components/AgentContextItemPicker.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentDocumentList.js +3 -3
- package/dist/editor/ai/terminal/components/AgentDocumentList.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js +1 -1
- package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentGreeting.js +2 -2
- package/dist/editor/ai/terminal/components/AgentGreeting.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentMemoryPanel.js +2 -2
- package/dist/editor/ai/terminal/components/AgentMemoryPanel.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentModeSelector.js +2 -2
- package/dist/editor/ai/terminal/components/AgentModeSelector.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentParentLink.js +1 -1
- package/dist/editor/ai/terminal/components/AgentParentLink.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentProfileModelSettingsSection.js +1 -1
- package/dist/editor/ai/terminal/components/AgentProfileModelSettingsSection.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentProfileSwitcher.js +1 -1
- package/dist/editor/ai/terminal/components/AgentProfileSwitcher.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentProjectProgress.js +1 -1
- package/dist/editor/ai/terminal/components/AgentProjectProgress.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptInputArea.js +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptInputArea.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js +5 -5
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentReadOnlyNotice.js +1 -1
- package/dist/editor/ai/terminal/components/AgentReadOnlyNotice.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentSettingsPopover.js +1 -1
- package/dist/editor/ai/terminal/components/AgentSettingsPopover.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentSettingsSections.js +4 -2
- package/dist/editor/ai/terminal/components/AgentSettingsSections.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentSkillSettingsSection.js +2 -2
- package/dist/editor/ai/terminal/components/AgentSkillSettingsSection.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentSuggestionBanner.js +1 -1
- package/dist/editor/ai/terminal/components/AgentSuggestionBanner.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.js +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.js +3 -3
- package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.js.map +1 -1
- package/dist/editor/ai/terminal/components/AiResponseMessage.js +11 -14
- package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
- package/dist/editor/ai/terminal/components/ApprovalCard.js +3 -4
- package/dist/editor/ai/terminal/components/ApprovalCard.js.map +1 -1
- package/dist/editor/ai/terminal/components/ContextInfoBar.js +1 -1
- package/dist/editor/ai/terminal/components/ContextInfoBar.js.map +1 -1
- package/dist/editor/ai/terminal/components/EditOperationsPanel.js +2 -2
- package/dist/editor/ai/terminal/components/EditOperationsPanel.js.map +1 -1
- package/dist/editor/ai/terminal/components/HeartbeatMessage.js +1 -1
- package/dist/editor/ai/terminal/components/HeartbeatMessage.js.map +1 -1
- package/dist/editor/ai/terminal/components/QuestionnaireRecap.js +2 -2
- package/dist/editor/ai/terminal/components/QuestionnaireRecap.js.map +1 -1
- package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js +4 -4
- package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js.map +1 -1
- package/dist/editor/ai/terminal/components/TodoListPanel.js +4 -4
- package/dist/editor/ai/terminal/components/TodoListPanel.js.map +1 -1
- package/dist/editor/ai/terminal/components/ToolCallDisplay.d.ts +9 -0
- package/dist/editor/ai/terminal/components/ToolCallDisplay.js +63 -22
- package/dist/editor/ai/terminal/components/ToolCallDisplay.js.map +1 -1
- package/dist/editor/ai/terminal/components/UserMessage.js +10 -6
- package/dist/editor/ai/terminal/components/UserMessage.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentTextareaDropHandlers.js +35 -7
- package/dist/editor/ai/terminal/useAgentTextareaDropHandlers.js.map +1 -1
- package/dist/editor/ai-image-editor/AiImageEditorDialog.js +5 -5
- package/dist/editor/ai-image-editor/AiImageEditorDialog.js.map +1 -1
- package/dist/editor/ai-image-editor/AiImageResultOverlay.js +1 -1
- package/dist/editor/bridge/protocol.d.ts +12 -0
- package/dist/editor/bridge/protocol.js +1 -1
- package/dist/editor/bridge/protocol.js.map +1 -1
- package/dist/editor/client/AboutDialog.js +1 -1
- package/dist/editor/client/AboutDialog.js.map +1 -1
- package/dist/editor/client/EditorShell.js +103 -51
- package/dist/editor/client/EditorShell.js.map +1 -1
- package/dist/editor/client/agentTerminalFocus.d.ts +1 -1
- package/dist/editor/client/agentTerminalFocus.js +1 -1
- package/dist/editor/client/agentTerminalFocus.js.map +1 -1
- package/dist/editor/client/editContext.d.ts +4 -1
- package/dist/editor/client/editContext.js.map +1 -1
- package/dist/editor/client/editHistoryReconciliation.d.ts +10 -0
- package/dist/editor/client/editHistoryReconciliation.js +25 -0
- package/dist/editor/client/editHistoryReconciliation.js.map +1 -0
- package/dist/editor/client/errorToast.js +1 -1
- package/dist/editor/client/errorToast.js.map +1 -1
- package/dist/editor/client/hooks/useEditorWebSocket.d.ts +4 -3
- package/dist/editor/client/hooks/useEditorWebSocket.js +265 -64
- package/dist/editor/client/hooks/useEditorWebSocket.js.map +1 -1
- package/dist/editor/client/hooks/useSocketMessageHandler.d.ts +1 -0
- package/dist/editor/client/hooks/useSocketMessageHandler.js +44 -11
- package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
- package/dist/editor/client/operations.d.ts +1 -1
- package/dist/editor/client/operations.js +123 -77
- package/dist/editor/client/operations.js.map +1 -1
- package/dist/editor/client/pageModelBuilder.js +11 -6
- package/dist/editor/client/pageModelBuilder.js.map +1 -1
- package/dist/editor/client/sessionIdClaim.d.ts +22 -0
- package/dist/editor/client/sessionIdClaim.js +77 -0
- package/dist/editor/client/sessionIdClaim.js.map +1 -0
- package/dist/editor/client/sidebarAvailability.d.ts +9 -0
- package/dist/editor/client/sidebarAvailability.js +29 -0
- package/dist/editor/client/sidebarAvailability.js.map +1 -0
- package/dist/editor/client/suggestedEditFieldQueue.d.ts +2 -0
- package/dist/editor/client/suggestedEditFieldQueue.js +16 -0
- package/dist/editor/client/suggestedEditFieldQueue.js.map +1 -0
- package/dist/editor/client/ui/FullscreenControls.js +1 -1
- package/dist/editor/client/ui/FullscreenControls.js.map +1 -1
- package/dist/editor/client/waitForEditOperationTerminal.d.ts +2 -0
- package/dist/editor/client/waitForEditOperationTerminal.js +73 -9
- package/dist/editor/client/waitForEditOperationTerminal.js.map +1 -1
- package/dist/editor/commands/componentCommands.js +17 -15
- package/dist/editor/commands/componentCommands.js.map +1 -1
- package/dist/editor/commands/deleteVersionCommand.js +1 -1
- package/dist/editor/commands/deleteVersionCommand.js.map +1 -1
- package/dist/editor/commands/itemCommands.js +64 -9
- package/dist/editor/commands/itemCommands.js.map +1 -1
- package/dist/editor/commands/placeholderCommands.js +1 -1
- package/dist/editor/commands/placeholderCommands.js.map +1 -1
- package/dist/editor/content-tree/IndicatorSettings.js +2 -2
- package/dist/editor/content-tree/TreeSettingsMenu.js +1 -1
- package/dist/editor/content-tree/TreeSettingsMenu.js.map +1 -1
- package/dist/editor/context-menu/InsertMenu.js +1 -1
- package/dist/editor/context-menu/InsertMenu.js.map +1 -1
- package/dist/editor/editor-warnings/FinalWorkflowStateReadOnly.js +1 -1
- package/dist/editor/editor-warnings/FinalWorkflowStateReadOnly.js.map +1 -1
- package/dist/editor/editor-warnings/NoWorkflowWriteAccess.js +1 -1
- package/dist/editor/editor-warnings/NoWorkflowWriteAccess.js.map +1 -1
- package/dist/editor/editor-warnings/NoWriteAccess.js +3 -1
- package/dist/editor/editor-warnings/NoWriteAccess.js.map +1 -1
- package/dist/editor/field-types/AttachmentEditor.js +1 -1
- package/dist/editor/field-types/AttachmentEditor.js.map +1 -1
- package/dist/editor/field-types/CheckboxEditor.js +1 -1
- package/dist/editor/field-types/CheckboxEditor.js.map +1 -1
- package/dist/editor/field-types/DateFieldEditor.js +2 -2
- package/dist/editor/field-types/DateFieldEditor.js.map +1 -1
- package/dist/editor/field-types/DateTimeFieldEditor.js +1 -1
- package/dist/editor/field-types/DateTimeFieldEditor.js.map +1 -1
- package/dist/editor/field-types/TreeListEditor.d.ts +3 -1
- package/dist/editor/field-types/TreeListEditor.js +5 -5
- package/dist/editor/field-types/TreeListEditor.js.map +1 -1
- package/dist/editor/field-types/richtext/components/ReactSlate.js +15 -2
- package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
- package/dist/editor/field-types/richtext/richTextToolbarIcons.js +14 -14
- package/dist/editor/field-types/richtext/richTextToolbarIcons.js.map +1 -1
- package/dist/editor/field-types/textContextMenuFactory.js +1 -1
- package/dist/editor/field-types/textContextMenuFactory.js.map +1 -1
- package/dist/editor/itemContextMenu.js +1 -1
- package/dist/editor/itemContextMenu.js.map +1 -1
- package/dist/editor/media-selector/AiImageSearchPrompt.js +1 -1
- package/dist/editor/media-selector/AiImageSearchPrompt.js.map +1 -1
- package/dist/editor/media-selector/MediaFolderBrowser.js +5 -5
- package/dist/editor/media-selector/MediaFolderBrowser.js.map +1 -1
- package/dist/editor/media-selector/MediaSelector.js +1 -1
- package/dist/editor/media-selector/MediaSelector.js.map +1 -1
- package/dist/editor/media-selector/Preview.js +1 -1
- package/dist/editor/media-selector/Preview.js.map +1 -1
- package/dist/editor/media-selector/Thumbnails.js +4 -4
- package/dist/editor/media-selector/Thumbnails.js.map +1 -1
- package/dist/editor/media-selector/TreeSelector.js +3 -3
- package/dist/editor/media-selector/TreeSelector.js.map +1 -1
- package/dist/editor/media-selector/UploadZone.js +1 -1
- package/dist/editor/media-selector/UploadZone.js.map +1 -1
- package/dist/editor/menubar/ActiveUsers.js +17 -15
- package/dist/editor/menubar/ActiveUsers.js.map +1 -1
- package/dist/editor/menubar/FavoritesControls.js +3 -3
- package/dist/editor/menubar/FavoritesControls.js.map +1 -1
- package/dist/editor/menubar/ItemLanguageVersion.js +7 -3
- package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -1
- package/dist/editor/menubar/OpenInNewTabButton.d.ts +1 -1
- package/dist/editor/menubar/OpenInNewTabButton.js +2 -2
- package/dist/editor/menubar/OpenInNewTabButton.js.map +1 -1
- package/dist/editor/menubar/OperationsIndicator.js +3 -3
- package/dist/editor/menubar/OperationsIndicator.js.map +1 -1
- package/dist/editor/menubar/ToolbarFactory.js +2 -7
- package/dist/editor/menubar/ToolbarFactory.js.map +1 -1
- package/dist/editor/menubar/VersionSelector.js +15 -14
- package/dist/editor/menubar/VersionSelector.js.map +1 -1
- package/dist/editor/menubar/WorkflowButton.js +5 -5
- package/dist/editor/menubar/WorkflowButton.js.map +1 -1
- package/dist/editor/menubar/activeUserSessions.d.ts +9 -0
- package/dist/editor/menubar/activeUserSessions.js +30 -0
- package/dist/editor/menubar/activeUserSessions.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/CompareControls.js +1 -1
- package/dist/editor/menubar/toolbar-sections/CompareControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/FullscreenControl.js +1 -1
- package/dist/editor/menubar/toolbar-sections/FullscreenControl.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +12 -12
- package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/UndoRedoControls.js +1 -1
- package/dist/editor/menubar/toolbar-sections/UndoRedoControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/UtilityControls.d.ts +1 -3
- package/dist/editor/menubar/toolbar-sections/UtilityControls.js +3 -4
- package/dist/editor/menubar/toolbar-sections/UtilityControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js +3 -2
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js.map +1 -1
- package/dist/editor/notifications/NotificationCenter.js +23 -5
- package/dist/editor/notifications/NotificationCenter.js.map +1 -1
- package/dist/editor/notifications/NotificationItem.js +3 -3
- package/dist/editor/notifications/NotificationItem.js.map +1 -1
- package/dist/editor/notifications/WatchButton.js +8 -8
- package/dist/editor/notifications/WatchButton.js.map +1 -1
- package/dist/editor/notifications/watchEventOptions.js +2 -2
- package/dist/editor/notifications/watchEventOptions.js.map +1 -1
- package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js +2 -2
- package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js.map +1 -1
- package/dist/editor/page-editor-chrome/DragInsertionOverlay.js +5 -5
- package/dist/editor/page-editor-chrome/DragInsertionOverlay.js.map +1 -1
- package/dist/editor/page-editor-chrome/EmptyImageFieldIndicators.js +2 -2
- package/dist/editor/page-editor-chrome/EmptyImageFieldIndicators.js.map +1 -1
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js +1 -1
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
- package/dist/editor/page-editor-chrome/FrameMenu.js +2 -2
- package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +119 -27
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/SuggestionVariantSwitcher.d.ts +6 -0
- package/dist/editor/page-editor-chrome/SuggestionVariantSwitcher.js +23 -0
- package/dist/editor/page-editor-chrome/SuggestionVariantSwitcher.js.map +1 -0
- package/dist/editor/page-editor-chrome/overlay/geometry.d.ts +8 -1
- package/dist/editor/page-editor-chrome/overlay/geometry.js +30 -0
- package/dist/editor/page-editor-chrome/overlay/geometry.js.map +1 -1
- package/dist/editor/page-editor-chrome/useBridgeInlineEditing.d.ts +16 -13
- package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js +75 -35
- package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js.map +1 -1
- package/dist/editor/page-viewer/EditorForm.js +7 -2
- package/dist/editor/page-viewer/EditorForm.js.map +1 -1
- package/dist/editor/page-viewer/MiniMap.d.ts +2 -1
- package/dist/editor/page-viewer/MiniMap.js +98 -12
- package/dist/editor/page-viewer/MiniMap.js.map +1 -1
- package/dist/editor/page-viewer/PageViewer.js +2 -2
- package/dist/editor/page-viewer/PageViewerFrame.js +248 -115
- package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
- package/dist/editor/page-viewer/bridgeFieldPatch.d.ts +34 -1
- package/dist/editor/page-viewer/bridgeFieldPatch.js +69 -1
- package/dist/editor/page-viewer/bridgeFieldPatch.js.map +1 -1
- package/dist/editor/page-viewer/bridgeInlineEditSession.d.ts +49 -0
- package/dist/editor/page-viewer/bridgeInlineEditSession.js +189 -0
- package/dist/editor/page-viewer/bridgeInlineEditSession.js.map +1 -0
- package/dist/editor/personalization/ActionList.js +1 -1
- package/dist/editor/personalization/ActionList.js.map +1 -1
- package/dist/editor/personalization/ConditionTreeEditor.js +1 -1
- package/dist/editor/personalization/ConditionTreeEditor.js.map +1 -1
- package/dist/editor/personalization/PersonalizationPanel.js +98 -34
- package/dist/editor/personalization/PersonalizationPanel.js.map +1 -1
- package/dist/editor/personalization/RuleElementPicker.js +1 -1
- package/dist/editor/personalization/RuleElementPicker.js.map +1 -1
- package/dist/editor/personalization/RuleList.js +3 -3
- package/dist/editor/personalization/RuleList.js.map +1 -1
- package/dist/editor/personalization/TreeItemPicker.js +3 -3
- package/dist/editor/personalization/TreeItemPicker.js.map +1 -1
- package/dist/editor/reviews/CommentDisplayPopover.js +2 -2
- package/dist/editor/reviews/CommentEditor.js +3 -2
- package/dist/editor/reviews/CommentEditor.js.map +1 -1
- package/dist/editor/reviews/CommentPopover.js +5 -3
- package/dist/editor/reviews/CommentPopover.js.map +1 -1
- package/dist/editor/reviews/CommentView.js +8 -8
- package/dist/editor/reviews/CommentView.js.map +1 -1
- package/dist/editor/reviews/Comments.js +4 -4
- package/dist/editor/reviews/Comments.js.map +1 -1
- package/dist/editor/reviews/CreateReviewConfirmStep.js +1 -1
- package/dist/editor/reviews/CreateReviewConfirmStep.js.map +1 -1
- package/dist/editor/reviews/CreateReviewDialog.js +4 -5
- package/dist/editor/reviews/CreateReviewDialog.js.map +1 -1
- package/dist/editor/reviews/CreateReviewReviewersStep.js +1 -1
- package/dist/editor/reviews/CreateReviewReviewersStep.js.map +1 -1
- package/dist/editor/reviews/CreateReviewSettingsStep.js +2 -1
- package/dist/editor/reviews/CreateReviewSettingsStep.js.map +1 -1
- package/dist/editor/reviews/CreateReviewSuccessStep.js +1 -1
- package/dist/editor/reviews/CreateReviewSuccessStep.js.map +1 -1
- package/dist/editor/reviews/DecisionsMatrix.js +13 -13
- package/dist/editor/reviews/DecisionsMatrix.js.map +1 -1
- package/dist/editor/reviews/EditReviewSettingsDialog.d.ts +1 -1
- package/dist/editor/reviews/EditReviewSettingsDialog.js +28 -63
- package/dist/editor/reviews/EditReviewSettingsDialog.js.map +1 -1
- package/dist/editor/reviews/FeedbackModeIntro.js +3 -3
- package/dist/editor/reviews/FeedbackModeIntro.js.map +1 -1
- package/dist/editor/reviews/LatestFeedback.js +3 -3
- package/dist/editor/reviews/LatestFeedback.js.map +1 -1
- package/dist/editor/reviews/MultiReviewManager.js +0 -1
- package/dist/editor/reviews/MultiReviewManager.js.map +1 -1
- package/dist/editor/reviews/PreconfiguredReviewerSelector.js +1 -1
- package/dist/editor/reviews/PreconfiguredReviewerSelector.js.map +1 -1
- package/dist/editor/reviews/ReviewCard.d.ts +1 -4
- package/dist/editor/reviews/ReviewCard.js +28 -7
- package/dist/editor/reviews/ReviewCard.js.map +1 -1
- package/dist/editor/reviews/ReviewDetail.js +39 -35
- package/dist/editor/reviews/ReviewDetail.js.map +1 -1
- package/dist/editor/reviews/ReviewItemsPanel.d.ts +1 -3
- package/dist/editor/reviews/ReviewItemsPanel.js +20 -56
- package/dist/editor/reviews/ReviewItemsPanel.js.map +1 -1
- package/dist/editor/reviews/ReviewersPanel.js +3 -3
- package/dist/editor/reviews/ReviewersPanel.js.map +1 -1
- package/dist/editor/reviews/ReviewsList.js +9 -74
- package/dist/editor/reviews/ReviewsList.js.map +1 -1
- package/dist/editor/reviews/SecretPhraseInput.d.ts +8 -0
- package/dist/editor/reviews/SecretPhraseInput.js +9 -0
- package/dist/editor/reviews/SecretPhraseInput.js.map +1 -0
- package/dist/editor/reviews/SuggestedEdit.js +36 -70
- package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
- package/dist/editor/reviews/SuggestionDisplayPopover.js +77 -58
- package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
- package/dist/editor/reviews/applySuggestedEditActions.d.ts +21 -0
- package/dist/editor/reviews/applySuggestedEditActions.js +242 -0
- package/dist/editor/reviews/applySuggestedEditActions.js.map +1 -0
- package/dist/editor/reviews/feedbackScrollTarget.js +3 -2
- package/dist/editor/reviews/feedbackScrollTarget.js.map +1 -1
- package/dist/editor/reviews/reviewListPresentation.d.ts +2 -0
- package/dist/editor/reviews/reviewListPresentation.js +11 -0
- package/dist/editor/reviews/reviewListPresentation.js.map +1 -1
- package/dist/editor/reviews/suggestedEditState.js +12 -1
- package/dist/editor/reviews/suggestedEditState.js.map +1 -1
- package/dist/editor/reviews/suggestionDisplayValue.d.ts +38 -1
- package/dist/editor/reviews/suggestionDisplayValue.js +99 -21
- package/dist/editor/reviews/suggestionDisplayValue.js.map +1 -1
- package/dist/editor/reviews/suggestionPatch.d.ts +10 -0
- package/dist/editor/reviews/suggestionPatch.js +17 -0
- package/dist/editor/reviews/suggestionPatch.js.map +1 -0
- package/dist/editor/reviews/useMultiReview.d.ts +1 -2
- package/dist/editor/reviews/useMultiReview.js +74 -65
- package/dist/editor/reviews/useMultiReview.js.map +1 -1
- package/dist/editor/services/contentService.d.ts +1 -9
- package/dist/editor/services/contentService.js +4 -1
- package/dist/editor/services/contentService.js.map +1 -1
- package/dist/editor/services/editService.d.ts +1 -0
- package/dist/editor/services/editService.js +12 -19
- package/dist/editor/services/editService.js.map +1 -1
- package/dist/editor/services/reviewsService.d.ts +1 -9
- package/dist/editor/services/reviewsService.js +1 -9
- package/dist/editor/services/reviewsService.js.map +1 -1
- package/dist/editor/services/suggestedEditsService.d.ts +17 -5
- package/dist/editor/services/suggestedEditsService.js +23 -5
- package/dist/editor/services/suggestedEditsService.js.map +1 -1
- package/dist/editor/services/systemService.d.ts +1 -2
- package/dist/editor/services/systemService.js +0 -3
- package/dist/editor/services/systemService.js.map +1 -1
- package/dist/editor/settings/About.js +6 -6
- package/dist/editor/settings/About.js.map +1 -1
- package/dist/editor/settings/IndexOverview.js +1 -1
- package/dist/editor/settings/IndexOverview.js.map +1 -1
- package/dist/editor/settings/QuotaInfo.js +5 -5
- package/dist/editor/settings/QuotaInfo.js.map +1 -1
- package/dist/editor/settings/SettingsBreadcrumb.js +1 -1
- package/dist/editor/settings/SettingsBreadcrumb.js.map +1 -1
- package/dist/editor/settings/SettingsView.js +3 -2
- package/dist/editor/settings/SettingsView.js.map +1 -1
- package/dist/editor/settings/StatusSummary.js +6 -6
- package/dist/editor/settings/StatusSummary.js.map +1 -1
- package/dist/editor/settings/index/EmbeddingProviderInfo.js +2 -2
- package/dist/editor/settings/index/EmbeddingProviderInfo.js.map +1 -1
- package/dist/editor/settings/index/QueueErrorsDisplay.d.ts +1 -1
- package/dist/editor/settings/index/QueueErrorsDisplay.js +7 -3
- package/dist/editor/settings/index/QueueErrorsDisplay.js.map +1 -1
- package/dist/editor/settings/index/embeddingErrors.d.ts +7 -0
- package/dist/editor/settings/index/embeddingErrors.js +105 -0
- package/dist/editor/settings/index/embeddingErrors.js.map +1 -0
- package/dist/editor/settings/index/types.d.ts +1 -0
- package/dist/editor/settings/index/useIndexStatus.js +2 -2
- package/dist/editor/settings/index/useIndexStatus.js.map +1 -1
- package/dist/editor/settings/panels/AgentProfileConfigPanel.js +6 -6
- package/dist/editor/settings/panels/AgentProfileConfigPanel.js.map +1 -1
- package/dist/editor/settings/panels/AgentToolsPanel.js +3 -3
- package/dist/editor/settings/panels/AgentToolsPanel.js.map +1 -1
- package/dist/editor/settings/panels/AgentsPanel.js +2 -2
- package/dist/editor/settings/panels/AgentsPanel.js.map +1 -1
- package/dist/editor/settings/panels/ClusterInstancesPanel.js +3 -3
- package/dist/editor/settings/panels/ClusterInstancesPanel.js.map +1 -1
- package/dist/editor/settings/panels/CreateAgentProfileDialog.js +1 -1
- package/dist/editor/settings/panels/CreateAgentProfileDialog.js.map +1 -1
- package/dist/editor/settings/panels/CreateJavaScriptToolDialog.js +1 -1
- package/dist/editor/settings/panels/CreateJavaScriptToolDialog.js.map +1 -1
- package/dist/editor/settings/panels/CreateMcpServerDialog.js +1 -1
- package/dist/editor/settings/panels/CreateMcpServerDialog.js.map +1 -1
- package/dist/editor/settings/panels/FieldTypeSerializersPanel.js +2 -2
- package/dist/editor/settings/panels/FieldTypeSerializersPanel.js.map +1 -1
- package/dist/editor/settings/panels/GroupedFieldConfigPanel.js +1 -1
- package/dist/editor/settings/panels/GroupedFieldConfigPanel.js.map +1 -1
- package/dist/editor/settings/panels/ItemConfigPanel.js +1 -1
- package/dist/editor/settings/panels/ItemConfigPanel.js.map +1 -1
- package/dist/editor/settings/panels/JavaScriptToolAgentPanel.js +1 -1
- package/dist/editor/settings/panels/JavaScriptToolAgentPanel.js.map +1 -1
- package/dist/editor/settings/panels/JavaScriptToolConfigPanel.js +5 -5
- package/dist/editor/settings/panels/JavaScriptToolConfigPanel.js.map +1 -1
- package/dist/editor/settings/panels/JavaScriptToolsPanel.js +5 -5
- package/dist/editor/settings/panels/JavaScriptToolsPanel.js.map +1 -1
- package/dist/editor/settings/panels/McpToolsPanel.js +3 -3
- package/dist/editor/settings/panels/McpToolsPanel.js.map +1 -1
- package/dist/editor/settings/panels/ModelConfigPanel.js +6 -6
- package/dist/editor/settings/panels/ModelConfigPanel.js.map +1 -1
- package/dist/editor/settings/panels/ModelsPanel.js +4 -4
- package/dist/editor/settings/panels/ModelsPanel.js.map +1 -1
- package/dist/editor/settings/panels/NotificationSubscriptionsPanel.js +16 -13
- package/dist/editor/settings/panels/NotificationSubscriptionsPanel.js.map +1 -1
- package/dist/editor/settings/panels/PersistentLogsPanel.js +1 -1
- package/dist/editor/settings/panels/PersistentLogsPanel.js.map +1 -1
- package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js +2 -3
- package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js.map +1 -1
- package/dist/editor/settings/panels/ProjectTemplateSelector.js +1 -1
- package/dist/editor/settings/panels/ProjectTemplateSelector.js.map +1 -1
- package/dist/editor/settings/panels/ProjectTemplateSelectorList.js +1 -1
- package/dist/editor/settings/panels/ProjectTemplateSelectorList.js.map +1 -1
- package/dist/editor/settings/panels/ProjectTemplatesPanel.js +13 -13
- package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
- package/dist/editor/settings/panels/ProviderConfigPanel.js +3 -3
- package/dist/editor/settings/panels/ProviderConfigPanel.js.map +1 -1
- package/dist/editor/settings/panels/ProvidersPanel.js +1 -1
- package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -1
- package/dist/editor/settings/panels/SearchConfigPanel.js +3 -3
- package/dist/editor/settings/panels/SearchConfigPanel.js.map +1 -1
- package/dist/editor/settings/panels/StatusPanel.js +5 -5
- package/dist/editor/settings/panels/StatusPanel.js.map +1 -1
- package/dist/editor/settings/panels/SystemSettingsPanel.js +1 -1
- package/dist/editor/settings/panels/SystemSettingsPanel.js.map +1 -1
- package/dist/editor/settings/panels/UserPreferencesPanel.js +1 -1
- package/dist/editor/settings/panels/UserPreferencesPanel.js.map +1 -1
- package/dist/editor/setup-wizard/SetupStepError.js +1 -1
- package/dist/editor/setup-wizard/SetupStepError.js.map +1 -1
- package/dist/editor/setup-wizard/SetupStepLayout.js +1 -1
- package/dist/editor/setup-wizard/SetupStepLayout.js.map +1 -1
- package/dist/editor/setup-wizard/steps/CompleteStep.js +2 -2
- package/dist/editor/setup-wizard/steps/CompleteStep.js.map +1 -1
- package/dist/editor/setup-wizard/steps/CreateSettingsStep.js +1 -1
- package/dist/editor/setup-wizard/steps/CreateSettingsStep.js.map +1 -1
- package/dist/editor/setup-wizard/steps/LicenseActivationStep.js +1 -1
- package/dist/editor/setup-wizard/steps/LicenseActivationStep.js.map +1 -1
- package/dist/editor/setup-wizard/steps/LicenseEmailStep.js +1 -1
- package/dist/editor/setup-wizard/steps/LicenseEmailStep.js.map +1 -1
- package/dist/editor/setup-wizard/steps/ModelSelectionStep.js +6 -12
- package/dist/editor/setup-wizard/steps/ModelSelectionStep.js.map +1 -1
- package/dist/editor/setup-wizard/steps/ProviderStep.js +6 -6
- package/dist/editor/setup-wizard/steps/ProviderStep.js.map +1 -1
- package/dist/editor/setup-wizard/steps/WelcomeStep.js +1 -1
- package/dist/editor/sidebar/Completions.js +1 -1
- package/dist/editor/sidebar/Completions.js.map +1 -1
- package/dist/editor/sidebar/ComponentPalette.js +1 -1
- package/dist/editor/sidebar/ComponentPalette.js.map +1 -1
- package/dist/editor/sidebar/ComponentTree.js +11 -11
- package/dist/editor/sidebar/ComponentTree.js.map +1 -1
- package/dist/editor/sidebar/DictionaryEditor.js +48 -23
- package/dist/editor/sidebar/DictionaryEditor.js.map +1 -1
- package/dist/editor/sidebar/Favorites.js +5 -5
- package/dist/editor/sidebar/Favorites.js.map +1 -1
- package/dist/editor/sidebar/NavigationPanelItem.js +1 -1
- package/dist/editor/sidebar/NavigationPanelItem.js.map +1 -1
- package/dist/editor/sidebar/OperationItem.js +4 -4
- package/dist/editor/sidebar/OperationItem.js.map +1 -1
- package/dist/editor/sidebar/Sessions.js +14 -7
- package/dist/editor/sidebar/Sessions.js.map +1 -1
- package/dist/editor/sidebar/SidebarPanel.js +7 -5
- package/dist/editor/sidebar/SidebarPanel.js.map +1 -1
- package/dist/editor/sidebar/TimelineView.js +1 -1
- package/dist/editor/sidebar/TimelineView.js.map +1 -1
- package/dist/editor/sidebar/Validation.js +1 -1
- package/dist/editor/sidebar/Validation.js.map +1 -1
- package/dist/editor/sidebar/Workbox.js +1 -1
- package/dist/editor/sidebar/Workbox.js.map +1 -1
- package/dist/editor/template-wizard/TemplateBuilderDialog.js +1 -1
- package/dist/editor/template-wizard/TemplateBuilderDialog.js.map +1 -1
- package/dist/editor/template-wizard/TemplateStructureInlineEditor.js +10 -10
- package/dist/editor/template-wizard/TemplateStructureInlineEditor.js.map +1 -1
- package/dist/editor/tree-indicators/GutterColumns.js +2 -2
- package/dist/editor/ui/ComponentThumbnailDialog.js +1 -1
- package/dist/editor/ui/ComponentThumbnailDialog.js.map +1 -1
- package/dist/editor/ui/IconSelectorDialog.js +1 -1
- package/dist/editor/ui/IconSelectorDialog.js.map +1 -1
- package/dist/editor/ui/Icons.d.ts +1 -1
- package/dist/editor/ui/Icons.js +7 -7
- package/dist/editor/ui/Icons.js.map +1 -1
- package/dist/editor/ui/ItemList.js +1 -1
- package/dist/editor/ui/ItemList.js.map +1 -1
- package/dist/editor/ui/PerfectTree.js +2 -2
- package/dist/editor/ui/PerfectTree.js.map +1 -1
- package/dist/editor/ui/PublishDialog.js +1 -1
- package/dist/editor/ui/PublishDialog.js.map +1 -1
- package/dist/editor/ui/PublishItemDialog.js +2 -2
- package/dist/editor/ui/PublishItemDialog.js.map +1 -1
- package/dist/editor/ui/PublishRestrictionsDialog.js +20 -11
- package/dist/editor/ui/PublishRestrictionsDialog.js.map +1 -1
- package/dist/editor/ui/Section.js +2 -2
- package/dist/editor/ui/Section.js.map +1 -1
- package/dist/editor/ui/SharedFolderSelectorDialog.js +17 -3
- package/dist/editor/ui/SharedFolderSelectorDialog.js.map +1 -1
- package/dist/editor/ui/SimpleTable.d.ts +3 -1
- package/dist/editor/ui/SimpleTable.js +3 -3
- package/dist/editor/ui/SimpleTable.js.map +1 -1
- package/dist/editor/ui/Spinner.js +1 -1
- package/dist/editor/ui/Spinner.js.map +1 -1
- package/dist/editor/ui/Splitter.js +3 -7
- package/dist/editor/ui/Splitter.js.map +1 -1
- package/dist/editor/ui/TemplateSelectorDialog.js +2 -2
- package/dist/editor/ui/TemplateSelectorDialog.js.map +1 -1
- package/dist/editor/ui/WorkboxItemsTable.js +2 -2
- package/dist/editor/ui/WorkboxItemsTable.js.map +1 -1
- package/dist/editor/utils.js +6 -0
- package/dist/editor/utils.js.map +1 -1
- package/dist/editor/version-diff/versionDiffTargets.js +2 -1
- package/dist/editor/version-diff/versionDiffTargets.js.map +1 -1
- package/dist/editor/views/EditorSlot.js +1 -1
- package/dist/editor/views/EditorSlot.js.map +1 -1
- package/dist/editor/views/ItemEditor.js +2 -2
- package/dist/editor/views/ItemEditor.js.map +1 -1
- package/dist/editor/views/SingleEditView.js +2 -2
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/licensing/EmailEntry.js +1 -1
- package/dist/licensing/EmailEntry.js.map +1 -1
- package/dist/licensing/FeatureGate.js +1 -1
- package/dist/licensing/LicenseActivationForm.js +1 -1
- package/dist/licensing/LicenseActivationForm.js.map +1 -1
- package/dist/licensing/LicenseCodeEntry.js +1 -1
- package/dist/licensing/LicenseCodeEntry.js.map +1 -1
- package/dist/licensing/LicenseOverlay.js +2 -2
- package/dist/licensing/LicenseOverlay.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/setup/services/setupWizardService.js +4 -1
- package/dist/setup/services/setupWizardService.js.map +1 -1
- package/dist/setup/wizard/steps/AddModelDialog.js +1 -1
- package/dist/setup/wizard/steps/AddModelDialog.js.map +1 -1
- package/dist/setup/wizard/steps/ImportModelDialog.js +3 -3
- package/dist/setup/wizard/steps/ImportModelDialog.js.map +1 -1
- package/dist/splash-screen/ModernSplashScreen.d.ts +1 -1
- package/dist/splash-screen/ModernSplashScreen.js +11 -11
- package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
- package/dist/splash-screen/NewPage.js +3 -3
- package/dist/splash-screen/NewPage.js.map +1 -1
- package/dist/splash-screen/OpenPage.js +1 -1
- package/dist/splash-screen/OpenPage.js.map +1 -1
- package/dist/splash-screen/ParheliaAssistantChat.js +7 -7
- package/dist/splash-screen/ParheliaAssistantChat.js.map +1 -1
- package/dist/splash-screen/RecentPages.js +1 -1
- package/dist/splash-screen/RecentPages.js.map +1 -1
- package/dist/task-board/TaskBoardWorkspace.js +1 -1
- package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
- package/dist/task-board/components/CommentsList.js +4 -4
- package/dist/task-board/components/CommentsList.js.map +1 -1
- package/dist/task-board/components/FinishedProjectCard.js +1 -1
- package/dist/task-board/components/FinishedProjectCard.js.map +1 -1
- package/dist/task-board/components/ItemCollectionEditorDialog.js +1 -1
- package/dist/task-board/components/ItemCollectionEditorDialog.js.map +1 -1
- package/dist/task-board/components/ItemCollectionPicker.js +1 -1
- package/dist/task-board/components/ItemCollectionPicker.js.map +1 -1
- package/dist/task-board/components/ProjectBudgetBanner.js +1 -1
- package/dist/task-board/components/ProjectBudgetBanner.js.map +1 -1
- package/dist/task-board/components/ProjectDashboard.js +4 -4
- package/dist/task-board/components/ProjectDashboard.js.map +1 -1
- package/dist/task-board/components/ProjectGoalsPanel.js +17 -13
- package/dist/task-board/components/ProjectGoalsPanel.js.map +1 -1
- package/dist/task-board/components/ProjectListContent.js +5 -5
- package/dist/task-board/components/ProjectListContent.js.map +1 -1
- package/dist/task-board/components/ProjectOverviewContent.js +4 -4
- package/dist/task-board/components/ProjectOverviewContent.js.map +1 -1
- package/dist/task-board/components/ProjectPropertiesPanel.js +5 -5
- package/dist/task-board/components/ProjectPropertiesPanel.js.map +1 -1
- package/dist/task-board/components/ProjectSettingsDialog.js +3 -3
- package/dist/task-board/components/ProjectSettingsDialog.js.map +1 -1
- package/dist/task-board/components/TaskAgentPanel.js +4 -4
- package/dist/task-board/components/TaskAgentPanel.js.map +1 -1
- package/dist/task-board/components/TaskAssigneePicker.js +4 -4
- package/dist/task-board/components/TaskAssigneePicker.js.map +1 -1
- package/dist/task-board/components/TaskAttachmentDropZone.js +3 -3
- package/dist/task-board/components/TaskAttachmentDropZone.js.map +1 -1
- package/dist/task-board/components/TaskAttachmentsSection.js +1 -1
- package/dist/task-board/components/TaskAttachmentsSection.js.map +1 -1
- package/dist/task-board/components/TaskBoardMyTasksSidebar.js +1 -1
- package/dist/task-board/components/TaskBoardMyTasksSidebar.js.map +1 -1
- package/dist/task-board/components/TaskBoardProjectListSidebar.js +4 -4
- package/dist/task-board/components/TaskBoardProjectListSidebar.js.map +1 -1
- package/dist/task-board/components/TaskBoardProjectSelector.js +1 -1
- package/dist/task-board/components/TaskBoardProjectSelector.js.map +1 -1
- package/dist/task-board/components/TaskBoardTitlebar.js +1 -1
- package/dist/task-board/components/TaskBoardTitlebar.js.map +1 -1
- package/dist/task-board/components/TaskCard.js +1 -1
- package/dist/task-board/components/TaskCard.js.map +1 -1
- package/dist/task-board/components/TaskDetailPanel.js +6 -6
- package/dist/task-board/components/TaskDetailPanel.js.map +1 -1
- package/dist/task-board/components/TaskReviewActions.js +6 -6
- package/dist/task-board/components/TaskReviewActions.js.map +1 -1
- package/dist/task-board/components/TaskRow.js +1 -1
- package/dist/task-board/components/TaskRow.js.map +1 -1
- package/dist/task-board/components/TaskboardPersistentLogPanel.js +3 -3
- package/dist/task-board/components/TaskboardPersistentLogPanel.js.map +1 -1
- package/dist/task-board/components/WizardCommunicationCards.js +3 -3
- package/dist/task-board/components/WizardCommunicationCards.js.map +1 -1
- package/dist/task-board/components/WizardCommunicationCenter.js +1 -1
- package/dist/task-board/components/WizardCommunicationCenter.js.map +1 -1
- package/dist/task-board/components/WizardTaskDetailsPanel.js +3 -3
- package/dist/task-board/components/WizardTaskDetailsPanel.js.map +1 -1
- package/dist/task-board/views/DependencyGraphView.js +8 -8
- package/dist/task-board/views/DependencyGraphView.js.map +1 -1
- package/dist/task-board/views/WizardView.js +4 -4
- package/dist/task-board/views/WizardView.js.map +1 -1
- package/dist/tour/default-tour.js +17 -17
- package/dist/tour/default-tour.js.map +1 -1
- package/dist/tour/preview-tour.js +6 -6
- package/dist/tour/preview-tour.js.map +1 -1
- package/dist/types.d.ts +13 -5
- package/package.json +1 -1
- package/styles.css +25 -2
|
@@ -7,8 +7,10 @@ import { useSlotContext } from "../views/editorSlotContext";
|
|
|
7
7
|
import { useDebouncedCallback, useThrottledCallback } from "use-debounce";
|
|
8
8
|
import { PageEditorChrome } from "../page-editor-chrome/PageEditorChrome";
|
|
9
9
|
import { useBridgeInlineEditing, } from "../page-editor-chrome/useBridgeInlineEditing";
|
|
10
|
+
import { createBridgeInlineEditSessionCoordinator, } from "./bridgeInlineEditSession";
|
|
10
11
|
import { getInlineAiAnchorFromBridgeToolbar, getVisibleBridgeToolbarRect, waitForVisibleBridgeToolbarRect, } from "../page-editor-chrome/bridgeInlineFormatToolbarLayout";
|
|
11
12
|
import { IFRAME_OVERLAY_BRIDGE_DRAG_GESTURE_EVENT, IFRAME_OVERLAY_BRIDGE_GEOMETRY_EVENT, IFRAME_OVERLAY_BRIDGE_SCROLL_EVENT, IframeOverlayProvider, } from "../page-editor-chrome/overlay/IframeOverlayProvider";
|
|
13
|
+
import { projectBridgeGeometryToScroll } from "../page-editor-chrome/overlay/geometry";
|
|
12
14
|
import { CANVAS_REFRESH_COMPLETED_EVENT, DEVICE_CHANGE_EVENT, useViewportChangeSignal, } from "./pageViewContext";
|
|
13
15
|
import uuid from "react-uuid";
|
|
14
16
|
import { cn } from "../../lib/utils";
|
|
@@ -29,8 +31,8 @@ import { toSitecoreDate } from "../utils/sitecoreDate";
|
|
|
29
31
|
import { pickVersionAtDate } from "../utils/versionAtDate";
|
|
30
32
|
import { BridgeClient } from "../bridge/BridgeClient";
|
|
31
33
|
import { beginPerfTrace, isPerfTraceActive, isPerfTraceEnabled, perfTraceStep, } from "../perfTrace";
|
|
32
|
-
import { getSuggestionDisplayValue } from "../reviews/suggestionDisplayValue";
|
|
33
|
-
import { buildBridgeFieldPatchPayload, getBridgeFieldPatchValue, isBridgePatchableTextField,
|
|
34
|
+
import { getPendingFieldSuggestions, getSuggestionSelectionKey, getSuggestionDisplayValue, } from "../reviews/suggestionDisplayValue";
|
|
35
|
+
import { buildBridgeFieldPatchPayload, buildBridgeFieldPatchSignature, buildRemoteCaretFieldPatches, getBridgeFieldPatchValue, hasRemoteCaretDraftForField, isBridgePatchableTextField, isSuggestionPreviewPatchSignature, } from "./bridgeFieldPatch";
|
|
34
36
|
import { bridgeSelectionMatchesInteraction, resolveBridgeTextCompletionInput, } from "./bridgeTextCompletion";
|
|
35
37
|
import { logFieldValueDiagnostic, summarizeField, summarizeFieldDescriptor, summarizeFieldValue, } from "../fieldValueDiagnostics";
|
|
36
38
|
import { createKeyboardEventFromBridgeInteraction } from "./bridgeKeyboardShortcuts";
|
|
@@ -618,18 +620,21 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
618
620
|
const bridgeTextRangeSourcesRef = useRef(new Map());
|
|
619
621
|
const activeBridgeInlineEditRef = useRef(null);
|
|
620
622
|
const [isBridgeInlineEditing, setIsBridgeInlineEditing] = useState(false);
|
|
623
|
+
const bridgeInlineEditSessionRef = useRef(null);
|
|
624
|
+
if (!bridgeInlineEditSessionRef.current) {
|
|
625
|
+
bridgeInlineEditSessionRef.current =
|
|
626
|
+
createBridgeInlineEditSessionCoordinator({
|
|
627
|
+
stateRef: activeBridgeInlineEditRef,
|
|
628
|
+
onStateChange: (state) => setIsBridgeInlineEditing(!!state),
|
|
629
|
+
});
|
|
630
|
+
}
|
|
631
|
+
const bridgeInlineEditSession = bridgeInlineEditSessionRef.current;
|
|
621
632
|
const clearActiveBridgeInlineEdit = useCallback(() => {
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
}, []);
|
|
633
|
+
bridgeInlineEditSession.clear();
|
|
634
|
+
}, [bridgeInlineEditSession]);
|
|
625
635
|
const reconcileActiveBridgeInlineEdit = useCallback((event) => {
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
if (reconciled === current)
|
|
629
|
-
return;
|
|
630
|
-
activeBridgeInlineEditRef.current = reconciled;
|
|
631
|
-
setIsBridgeInlineEditing(!!reconciled);
|
|
632
|
-
}, []);
|
|
636
|
+
bridgeInlineEditSession.reconcileForRefreshEvent(event);
|
|
637
|
+
}, [bridgeInlineEditSession]);
|
|
633
638
|
const bridgeTextCompletionRef = useRef(null);
|
|
634
639
|
const bridgeTextCompletionAbortRef = useRef(null);
|
|
635
640
|
const bridgeTextCompletionRequestIdRef = useRef(0);
|
|
@@ -654,6 +659,7 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
654
659
|
// skipped entirely: the bridge learns the mode via setEditorMode, and a
|
|
655
660
|
// needless refresh would drop scroll position and inline-edit state.
|
|
656
661
|
const lastRenderSignatureRef = useRef(undefined);
|
|
662
|
+
const lastRenderModeRef = useRef(editContext.mode);
|
|
657
663
|
// Set when a canvas refresh (bridge patch or full reload) has been requested
|
|
658
664
|
// and its result has not landed yet. While in flight, bridgeGeometry still
|
|
659
665
|
// describes the PRE-refresh DOM — a moved component is still measured at its
|
|
@@ -806,6 +812,19 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
806
812
|
setBridgeGeometryRevision((revision) => revision + 1);
|
|
807
813
|
});
|
|
808
814
|
}, []);
|
|
815
|
+
const projectCurrentBridgeGeometryToScroll = useCallback((scroll) => {
|
|
816
|
+
const activeContext = pageViewContextRef.current;
|
|
817
|
+
const currentGeometry = activeContext?.bridgeGeometry;
|
|
818
|
+
const projectedGeometry = projectBridgeGeometryToScroll(currentGeometry, scroll);
|
|
819
|
+
if (!activeContext ||
|
|
820
|
+
!projectedGeometry ||
|
|
821
|
+
projectedGeometry === currentGeometry) {
|
|
822
|
+
return;
|
|
823
|
+
}
|
|
824
|
+
activeContext.bridgeGeometry = projectedGeometry;
|
|
825
|
+
activeContext.setBridgeGeometry(projectedGeometry);
|
|
826
|
+
scheduleBridgeGeometryRevision();
|
|
827
|
+
}, [scheduleBridgeGeometryRevision]);
|
|
809
828
|
const scheduleBridgeDomRevision = useCallback(() => {
|
|
810
829
|
if (bridgeDomRevisionRafRef.current != null)
|
|
811
830
|
return;
|
|
@@ -897,7 +916,7 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
897
916
|
}, []);
|
|
898
917
|
const { beginInlineEdit: beginBridgeInlineEdit, clearInlineDedupe: clearBridgeInlineDedupe, endFieldFocus: endBridgeFieldFocus, handleFieldValueChanged: handleBridgeFieldValueChanged, handleInlineEditEnded: handleBridgeInlineEditEnded, } = useBridgeInlineEditing({
|
|
899
918
|
pageViewContextRef,
|
|
900
|
-
|
|
919
|
+
inlineEditSession: bridgeInlineEditSession,
|
|
901
920
|
blockIframeBlurUntil,
|
|
902
921
|
sendBeginInlineEdit,
|
|
903
922
|
sendCancelInlineEdit,
|
|
@@ -916,30 +935,27 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
916
935
|
selectionEndOffset: interaction.selectionEndOffset,
|
|
917
936
|
},
|
|
918
937
|
});
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
};
|
|
941
|
-
setIsBridgeInlineEditing(true);
|
|
942
|
-
}
|
|
938
|
+
if (!interaction.elementKey || !interaction.fieldId)
|
|
939
|
+
return false;
|
|
940
|
+
const interactionItem = interaction.item?.id &&
|
|
941
|
+
interaction.item.language &&
|
|
942
|
+
typeof interaction.item.version === "number"
|
|
943
|
+
? {
|
|
944
|
+
id: interaction.item.id,
|
|
945
|
+
language: interaction.item.language,
|
|
946
|
+
version: interaction.item.version,
|
|
947
|
+
name: interaction.item.name,
|
|
948
|
+
displayName: interaction.item.displayName,
|
|
949
|
+
path: interaction.item.path,
|
|
950
|
+
database: interaction.item.database,
|
|
951
|
+
}
|
|
952
|
+
: undefined;
|
|
953
|
+
const started = await bridgeInlineEditSession.beginSession({
|
|
954
|
+
elementKey: interaction.elementKey,
|
|
955
|
+
fieldId: interaction.fieldId,
|
|
956
|
+
item: interactionItem,
|
|
957
|
+
modeAtStart: editContextRef.current?.mode ?? editContext.mode,
|
|
958
|
+
}, ({ isCurrent, sessionId }) => beginBridgeInlineEdit(interaction, { isCurrent, sessionId }));
|
|
943
959
|
logFieldValueDiagnostic("bridge-frame", "tracked inline edit result", {
|
|
944
960
|
started,
|
|
945
961
|
nextActiveInlineEdit: activeBridgeInlineEditRef.current,
|
|
@@ -947,7 +963,7 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
947
963
|
return started;
|
|
948
964
|
}, [
|
|
949
965
|
beginBridgeInlineEdit,
|
|
950
|
-
|
|
966
|
+
bridgeInlineEditSession,
|
|
951
967
|
editContext.mode,
|
|
952
968
|
editContextRef,
|
|
953
969
|
]);
|
|
@@ -1015,6 +1031,11 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1015
1031
|
const getBridgePatchDisplayValue = useCallback(({ field, structureField, itemDescriptor, preferRepositoryValue, }) => {
|
|
1016
1032
|
const showSuggestions = editContext.mode === "suggestions" || editContext.showSuggestedEdits;
|
|
1017
1033
|
const repositoryValue = getBridgeFieldPatchValue(field);
|
|
1034
|
+
const selectionKey = getSuggestionSelectionKey({
|
|
1035
|
+
itemId: itemDescriptor.id,
|
|
1036
|
+
language: itemDescriptor.language,
|
|
1037
|
+
fieldId: field.id || structureField.fieldId,
|
|
1038
|
+
});
|
|
1018
1039
|
const display = getSuggestionDisplayValue({
|
|
1019
1040
|
repositoryValue,
|
|
1020
1041
|
modifiedFields: preferRepositoryValue
|
|
@@ -1027,12 +1048,14 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1027
1048
|
language: itemDescriptor.language,
|
|
1028
1049
|
version: itemDescriptor.version,
|
|
1029
1050
|
pageItemId: pageViewContext.pageItemDescriptor?.id,
|
|
1051
|
+
pageItemLanguage: pageViewContext.pageItemDescriptor?.language,
|
|
1030
1052
|
pageItemVersion: pageViewContext.pageItemDescriptor?.version,
|
|
1031
1053
|
},
|
|
1032
1054
|
mode: showSuggestions ? "suggestions" : "baseline",
|
|
1055
|
+
selectedVariantId: editContext.suggestionVariantSelection[selectionKey],
|
|
1033
1056
|
});
|
|
1034
1057
|
const result = {
|
|
1035
|
-
value: showSuggestions ? display.
|
|
1058
|
+
value: showSuggestions ? display.selectedValue : display.baselineValue,
|
|
1036
1059
|
source: showSuggestions && display.hasSuggestions
|
|
1037
1060
|
? "suggestion-preview"
|
|
1038
1061
|
: "real",
|
|
@@ -1062,6 +1085,7 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1062
1085
|
editContext.mode,
|
|
1063
1086
|
editContext.showSuggestedEdits,
|
|
1064
1087
|
editContext.suggestedEdits,
|
|
1088
|
+
editContext.suggestionVariantSelection,
|
|
1065
1089
|
fieldsContext?.modifiedFields,
|
|
1066
1090
|
pageViewContext.pageItemDescriptor,
|
|
1067
1091
|
]);
|
|
@@ -1086,12 +1110,7 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1086
1110
|
}, []);
|
|
1087
1111
|
const sendBridgeFieldPatch = useCallback((bridge, patch, observedTextContent) => {
|
|
1088
1112
|
const cacheKey = `${patch.elementKey}:${patch.fieldId}`;
|
|
1089
|
-
const signature =
|
|
1090
|
-
value: patch.value,
|
|
1091
|
-
isRichText: !!patch.isRichText,
|
|
1092
|
-
source: patch.source ?? "",
|
|
1093
|
-
observedTextContent: observedTextContent ?? "",
|
|
1094
|
-
});
|
|
1113
|
+
const signature = buildBridgeFieldPatchSignature(patch, observedTextContent);
|
|
1095
1114
|
const previousSignature = bridgePatchSignatureRef.current.get(cacheKey);
|
|
1096
1115
|
if (previousSignature === signature) {
|
|
1097
1116
|
logFieldValueDiagnostic("bridge-patch", "skipped duplicate send", {
|
|
@@ -1133,6 +1152,7 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1133
1152
|
const offset = selection.startOffset ?? selection.endOffset;
|
|
1134
1153
|
if (!editor ||
|
|
1135
1154
|
!activeField?.fieldId ||
|
|
1155
|
+
activeField.inlineEditing !== true ||
|
|
1136
1156
|
!selection.collapsed ||
|
|
1137
1157
|
offset == null) {
|
|
1138
1158
|
clearBridgeRemoteCaretPosition();
|
|
@@ -1153,19 +1173,50 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1153
1173
|
...sourceItem,
|
|
1154
1174
|
version,
|
|
1155
1175
|
};
|
|
1156
|
-
const nextKey =
|
|
1176
|
+
const nextKey = JSON.stringify({
|
|
1177
|
+
fieldId: activeField.fieldId,
|
|
1178
|
+
item,
|
|
1179
|
+
offset,
|
|
1180
|
+
value: activeField.value,
|
|
1181
|
+
});
|
|
1157
1182
|
if (lastSentBridgeCaretRef.current === nextKey)
|
|
1158
1183
|
return;
|
|
1184
|
+
logFieldValueDiagnostic("bridge-caret", "sending position", {
|
|
1185
|
+
fieldId: activeField.fieldId,
|
|
1186
|
+
item,
|
|
1187
|
+
offset,
|
|
1188
|
+
value: summarizeFieldValue(activeField.value),
|
|
1189
|
+
});
|
|
1159
1190
|
editor.sendSocketMessage({
|
|
1160
1191
|
type: "caret-position",
|
|
1161
1192
|
payload: {
|
|
1162
1193
|
fieldId: activeField.fieldId,
|
|
1163
1194
|
item,
|
|
1164
1195
|
offset,
|
|
1196
|
+
value: activeField.value,
|
|
1165
1197
|
},
|
|
1166
1198
|
});
|
|
1167
1199
|
lastSentBridgeCaretRef.current = nextKey;
|
|
1168
1200
|
}, [clearBridgeRemoteCaretPosition, editContextRef, pageViewContextRef]);
|
|
1201
|
+
useEffect(() => {
|
|
1202
|
+
const bridge = bridgeClientRef.current;
|
|
1203
|
+
const structureFields = pageViewContext.bridgeStructure?.fields ?? [];
|
|
1204
|
+
if (!bridge || structureFields.length === 0)
|
|
1205
|
+
return;
|
|
1206
|
+
const patches = buildRemoteCaretFieldPatches({
|
|
1207
|
+
remoteCarets: editContext.remoteCarets,
|
|
1208
|
+
structureFields,
|
|
1209
|
+
activeInlineEdit: activeBridgeInlineEditRef.current,
|
|
1210
|
+
});
|
|
1211
|
+
for (const patch of patches) {
|
|
1212
|
+
const structureField = structureFields.find((field) => field.elementKey === patch.elementKey);
|
|
1213
|
+
sendBridgeFieldPatch(bridge, patch, structureField?.textContent);
|
|
1214
|
+
}
|
|
1215
|
+
}, [
|
|
1216
|
+
editContext.remoteCarets,
|
|
1217
|
+
pageViewContext.bridgeStructure,
|
|
1218
|
+
sendBridgeFieldPatch,
|
|
1219
|
+
]);
|
|
1169
1220
|
const handleBridgeSelection = useCallback((selection, iframe) => {
|
|
1170
1221
|
const editor = editContextRef.current;
|
|
1171
1222
|
if (!editor)
|
|
@@ -1305,8 +1356,27 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1305
1356
|
addCandidateItem(component?.datasourceItem);
|
|
1306
1357
|
component?.items.forEach(addCandidateItem);
|
|
1307
1358
|
addCandidateItem(fallbackItem);
|
|
1359
|
+
const fallbackDescriptorItem = candidateItems[0];
|
|
1360
|
+
if (!fallbackDescriptorItem)
|
|
1361
|
+
return undefined;
|
|
1362
|
+
// Limited-preview users only need read-only actions such as comments.
|
|
1363
|
+
// The bridge already provides the reviewed item's field descriptor, while
|
|
1364
|
+
// repository hydration may be intentionally denied by preview access.
|
|
1365
|
+
if (editContextRef.current?.user?.isLimitedPreviewUser) {
|
|
1366
|
+
return { fieldId, item: fallbackDescriptorItem };
|
|
1367
|
+
}
|
|
1308
1368
|
for (const item of candidateItems) {
|
|
1309
|
-
|
|
1369
|
+
let repositoryItem;
|
|
1370
|
+
try {
|
|
1371
|
+
repositoryItem =
|
|
1372
|
+
await editContextRef.current?.itemsRepository.getItem(item);
|
|
1373
|
+
}
|
|
1374
|
+
catch {
|
|
1375
|
+
// Review-preview access may allow the rendered page while denying a
|
|
1376
|
+
// repository candidate. Keep trying and fall back to the bridge
|
|
1377
|
+
// descriptor so read-only context-menu actions can still load.
|
|
1378
|
+
continue;
|
|
1379
|
+
}
|
|
1310
1380
|
const repositoryField = repositoryItem?.fields.find((field) => fieldIdentifierMatches(field, fieldId));
|
|
1311
1381
|
if (repositoryField) {
|
|
1312
1382
|
return {
|
|
@@ -1315,9 +1385,6 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1315
1385
|
};
|
|
1316
1386
|
}
|
|
1317
1387
|
}
|
|
1318
|
-
const fallbackDescriptorItem = candidateItems[0];
|
|
1319
|
-
if (!fallbackDescriptorItem)
|
|
1320
|
-
return undefined;
|
|
1321
1388
|
return {
|
|
1322
1389
|
fieldId,
|
|
1323
1390
|
item: fallbackDescriptorItem,
|
|
@@ -1774,41 +1841,59 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1774
1841
|
},
|
|
1775
1842
|
]);
|
|
1776
1843
|
}, 100);
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
tempElement.style.width = "1px";
|
|
1789
|
-
tempElement.style.height = "1px";
|
|
1790
|
-
tempElement.style.visibility = "hidden";
|
|
1791
|
-
tempElement.style.pointerEvents = "none";
|
|
1792
|
-
document.body.appendChild(tempElement);
|
|
1793
|
-
const positionedEvent = new MouseEvent("click", {
|
|
1794
|
-
bubbles: true,
|
|
1795
|
-
cancelable: true,
|
|
1796
|
-
view: window,
|
|
1797
|
-
clientX: menuPosition.x,
|
|
1798
|
-
clientY: menuPosition.y,
|
|
1799
|
-
});
|
|
1800
|
-
Object.defineProperty(positionedEvent, "target", {
|
|
1801
|
-
value: tempElement,
|
|
1802
|
-
enumerable: true,
|
|
1803
|
-
});
|
|
1804
|
-
fieldActionsOverlay.current?.show(positionedEvent, action);
|
|
1844
|
+
let items = [];
|
|
1845
|
+
try {
|
|
1846
|
+
const field = await resolveBridgeFieldDescriptor(effectiveInteraction);
|
|
1847
|
+
const canLoadFieldButtons = !!field && !editor.readonly && !editor.user?.isLimitedPreviewUser;
|
|
1848
|
+
const fieldButtons = canLoadFieldButtons
|
|
1849
|
+
? await loadFieldButtons(field)
|
|
1850
|
+
: [];
|
|
1851
|
+
const handleParameterizedActionWithPosition = (field, action) => {
|
|
1852
|
+
setContextMenuField(field);
|
|
1853
|
+
setContextMenuFieldButtons([action]);
|
|
1854
|
+
setPreSelectedAction(action);
|
|
1805
1855
|
window.setTimeout(() => {
|
|
1806
|
-
tempElement.
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1856
|
+
const tempElement = document.createElement("div");
|
|
1857
|
+
tempElement.style.position = "fixed";
|
|
1858
|
+
tempElement.style.left = menuPosition.x + "px";
|
|
1859
|
+
tempElement.style.top = menuPosition.y + "px";
|
|
1860
|
+
tempElement.style.width = "1px";
|
|
1861
|
+
tempElement.style.height = "1px";
|
|
1862
|
+
tempElement.style.visibility = "hidden";
|
|
1863
|
+
tempElement.style.pointerEvents = "none";
|
|
1864
|
+
document.body.appendChild(tempElement);
|
|
1865
|
+
const positionedEvent = new MouseEvent("click", {
|
|
1866
|
+
bubbles: true,
|
|
1867
|
+
cancelable: true,
|
|
1868
|
+
view: window,
|
|
1869
|
+
clientX: menuPosition.x,
|
|
1870
|
+
clientY: menuPosition.y,
|
|
1871
|
+
});
|
|
1872
|
+
Object.defineProperty(positionedEvent, "target", {
|
|
1873
|
+
value: tempElement,
|
|
1874
|
+
enumerable: true,
|
|
1875
|
+
});
|
|
1876
|
+
fieldActionsOverlay.current?.show(positionedEvent, action);
|
|
1877
|
+
window.setTimeout(() => {
|
|
1878
|
+
tempElement.remove();
|
|
1879
|
+
}, 1000);
|
|
1880
|
+
}, 100);
|
|
1881
|
+
};
|
|
1882
|
+
items = await buildComponentContextMenuItems(selectedComponents, editor, field, fieldButtons, handleParameterizedActionWithPosition);
|
|
1883
|
+
}
|
|
1884
|
+
catch (error) {
|
|
1885
|
+
console.error("Failed to build component context menu:", error);
|
|
1886
|
+
items = [
|
|
1887
|
+
{
|
|
1888
|
+
id: "context-menu-error",
|
|
1889
|
+
label: "Unable to load menu",
|
|
1890
|
+
disabled: true,
|
|
1891
|
+
},
|
|
1892
|
+
];
|
|
1893
|
+
}
|
|
1894
|
+
finally {
|
|
1895
|
+
window.clearTimeout(loadingTimer);
|
|
1896
|
+
}
|
|
1812
1897
|
if (loadingShown) {
|
|
1813
1898
|
editor.updateContextMenu(items);
|
|
1814
1899
|
}
|
|
@@ -1906,6 +1991,8 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1906
1991
|
return;
|
|
1907
1992
|
lastX = scroll.x;
|
|
1908
1993
|
lastY = scroll.y;
|
|
1994
|
+
latestBridgeScrollRef.current = scroll;
|
|
1995
|
+
projectCurrentBridgeGeometryToScroll(scroll);
|
|
1909
1996
|
dispatchBridgeOverlayScroll(iframe, scroll, getBridgeGeometryScrollScale(pageViewContextRef.current?.bridgeGeometry));
|
|
1910
1997
|
};
|
|
1911
1998
|
iframeDocument.addEventListener("scroll", handleScroll, {
|
|
@@ -1928,7 +2015,7 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1928
2015
|
detach?.();
|
|
1929
2016
|
directOverlayScrollSyncRef.current = false;
|
|
1930
2017
|
};
|
|
1931
|
-
}, [iframeElement, loadedIframeSrc]);
|
|
2018
|
+
}, [iframeElement, loadedIframeSrc, projectCurrentBridgeGeometryToScroll]);
|
|
1932
2019
|
useEffect(() => {
|
|
1933
2020
|
const iframe = iframeElement;
|
|
1934
2021
|
if (!iframe)
|
|
@@ -2038,19 +2125,22 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
2038
2125
|
transportMs: Date.now() - event.timestamp,
|
|
2039
2126
|
});
|
|
2040
2127
|
}
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
// same-origin listener already applied; prefer the live position.
|
|
2047
|
-
const overlayScroll = (directOverlayScrollSyncRef.current
|
|
2128
|
+
// Geometry replies race the iframe's synchronous scroll event. A
|
|
2129
|
+
// reply measured before the scroll must not replace the projected
|
|
2130
|
+
// rects with a stale snapshot while the overlay layer is already
|
|
2131
|
+
// positioned at the live scroll offset.
|
|
2132
|
+
const liveScroll = (directOverlayScrollSyncRef.current
|
|
2048
2133
|
? getIframeWindowScroll(iframe)
|
|
2049
2134
|
: undefined) ?? event.payload.geometry.scroll;
|
|
2050
|
-
|
|
2051
|
-
|
|
2135
|
+
const geometry = projectBridgeGeometryToScroll(event.payload.geometry, liveScroll) ?? event.payload.geometry;
|
|
2136
|
+
latestBridgeScrollRef.current = geometry.scroll;
|
|
2137
|
+
pageViewContext.bridgeGeometry = geometry;
|
|
2138
|
+
pageViewContext.setBridgeGeometry(geometry);
|
|
2139
|
+
scheduleBridgeGeometryRevision();
|
|
2140
|
+
dispatchBridgeOverlayScroll(iframe, geometry.scroll, getBridgeGeometryScrollScale(geometry));
|
|
2141
|
+
dispatchBridgeOverlayGeometry(iframe, geometry, geometry.scroll);
|
|
2052
2142
|
if (shouldTrackMinimapScroll()) {
|
|
2053
|
-
scrollHandlerRef.current(
|
|
2143
|
+
scrollHandlerRef.current(geometry.scroll.y);
|
|
2054
2144
|
}
|
|
2055
2145
|
break;
|
|
2056
2146
|
}
|
|
@@ -2096,20 +2186,25 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
2096
2186
|
pageViewContext.setBridgeStructure(event.payload.structure);
|
|
2097
2187
|
}
|
|
2098
2188
|
if (event.payload.geometry) {
|
|
2099
|
-
|
|
2100
|
-
pageViewContext.bridgeGeometry = event.payload.geometry;
|
|
2101
|
-
pageViewContext.setBridgeGeometry(event.payload.geometry);
|
|
2102
|
-
scheduleBridgeGeometryRevision();
|
|
2103
|
-
const overlayScroll = (directOverlayScrollSyncRef.current
|
|
2189
|
+
const liveScroll = (directOverlayScrollSyncRef.current
|
|
2104
2190
|
? getIframeWindowScroll(iframe)
|
|
2105
2191
|
: undefined) ?? event.payload.geometry.scroll;
|
|
2106
|
-
|
|
2107
|
-
|
|
2192
|
+
const geometry = projectBridgeGeometryToScroll(event.payload.geometry, liveScroll) ?? event.payload.geometry;
|
|
2193
|
+
latestBridgeScrollRef.current = geometry.scroll;
|
|
2194
|
+
pageViewContext.bridgeGeometry = geometry;
|
|
2195
|
+
pageViewContext.setBridgeGeometry(geometry);
|
|
2196
|
+
scheduleBridgeGeometryRevision();
|
|
2197
|
+
dispatchBridgeOverlayScroll(iframe, geometry.scroll, getBridgeGeometryScrollScale(geometry));
|
|
2198
|
+
dispatchBridgeOverlayGeometry(iframe, geometry, geometry.scroll);
|
|
2108
2199
|
if (shouldTrackMinimapScroll()) {
|
|
2109
|
-
scrollHandlerRef.current(
|
|
2200
|
+
scrollHandlerRef.current(geometry.scroll.y);
|
|
2110
2201
|
}
|
|
2111
2202
|
}
|
|
2112
|
-
|
|
2203
|
+
const replayedScrollIsNewerThanCapture = event.payload.scrollIntentApplied &&
|
|
2204
|
+
(typeof event.payload.scrollIntentTimestamp !== "number" ||
|
|
2205
|
+
event.payload.scrollIntentTimestamp >=
|
|
2206
|
+
pendingRefreshScrollCapturedAtRef.current);
|
|
2207
|
+
if (replayedScrollIsNewerThanCapture) {
|
|
2113
2208
|
// The host already replayed a scroll issued during the refresh
|
|
2114
2209
|
// (e.g. a minimap navigation) — restoring the pre-refresh
|
|
2115
2210
|
// position now would clobber that newer intent.
|
|
@@ -2148,9 +2243,6 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
2148
2243
|
handleBridgeSelection(event.payload.selection, iframe);
|
|
2149
2244
|
break;
|
|
2150
2245
|
case "fieldValueChanged":
|
|
2151
|
-
if (event.payload.elementKey && event.payload.fieldId) {
|
|
2152
|
-
setIsBridgeInlineEditing(true);
|
|
2153
|
-
}
|
|
2154
2246
|
logFieldValueDiagnostic("bridge-frame", "fieldValueChanged event", {
|
|
2155
2247
|
elementKey: event.payload.elementKey,
|
|
2156
2248
|
fieldId: event.payload.fieldId,
|
|
@@ -2171,9 +2263,15 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
2171
2263
|
value: summarizeFieldValue(event.payload.value),
|
|
2172
2264
|
activeInlineEdit: activeBridgeInlineEditRef.current,
|
|
2173
2265
|
});
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2266
|
+
const inlineEditEnd = bridgeInlineEditSession.end(event.payload);
|
|
2267
|
+
handleBridgeInlineEditEnded(event.payload, {
|
|
2268
|
+
recordSession: false,
|
|
2269
|
+
releaseFocus: inlineEditEnd.matched,
|
|
2270
|
+
endedModeAtStart: inlineEditEnd.endedState?.modeAtStart,
|
|
2271
|
+
});
|
|
2272
|
+
logFieldValueDiagnostic("bridge-frame", inlineEditEnd.matched
|
|
2273
|
+
? "active inline edit cleared after end"
|
|
2274
|
+
: "non-current inline edit end persisted", {
|
|
2177
2275
|
fieldId: event.payload.fieldId,
|
|
2178
2276
|
reason: event.payload.reason,
|
|
2179
2277
|
});
|
|
@@ -2232,6 +2330,7 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
2232
2330
|
break;
|
|
2233
2331
|
case "scrollChanged":
|
|
2234
2332
|
latestBridgeScrollRef.current = event.payload.scroll;
|
|
2333
|
+
projectCurrentBridgeGeometryToScroll(event.payload.scroll);
|
|
2235
2334
|
// With the direct same-origin listener active, this message is a
|
|
2236
2335
|
// late echo of a scroll the overlay already applied; re-dispatching
|
|
2237
2336
|
// it would briefly drag the overlay back to a stale position.
|
|
@@ -2273,6 +2372,7 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
2273
2372
|
clearBridgeTextCompletion,
|
|
2274
2373
|
clearBridgePatchSignatures,
|
|
2275
2374
|
clearActiveBridgeInlineEdit,
|
|
2375
|
+
bridgeInlineEditSession,
|
|
2276
2376
|
reconcileActiveBridgeInlineEdit,
|
|
2277
2377
|
pageViewContext.editUrl,
|
|
2278
2378
|
pageViewContext.previewUrl,
|
|
@@ -2310,6 +2410,17 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
2310
2410
|
if (!bridgeFieldMatchesChangedField(structureField.fieldId, changedFieldId, field)) {
|
|
2311
2411
|
continue;
|
|
2312
2412
|
}
|
|
2413
|
+
// A remote session is live-syncing this field: its draft is
|
|
2414
|
+
// authoritative, and the saved-value echo behind this change is
|
|
2415
|
+
// stale mid-typing — applying it would roll the canvas text back
|
|
2416
|
+
// and make the remote caret jump against the shorter text.
|
|
2417
|
+
if (hasRemoteCaretDraftForField({
|
|
2418
|
+
remoteCarets: editContextRef.current?.remoteCarets,
|
|
2419
|
+
fieldId: structureField.fieldId,
|
|
2420
|
+
item: structureField.item,
|
|
2421
|
+
})) {
|
|
2422
|
+
continue;
|
|
2423
|
+
}
|
|
2313
2424
|
const patch = buildBridgeFieldPatch({
|
|
2314
2425
|
field,
|
|
2315
2426
|
structureField,
|
|
@@ -2431,7 +2542,25 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
2431
2542
|
itemDescriptor: itemDescriptor,
|
|
2432
2543
|
dirtyOnly: true,
|
|
2433
2544
|
});
|
|
2434
|
-
|
|
2545
|
+
// When suggestion display turns off, a field can still show suggestion
|
|
2546
|
+
// text even though nothing is dirty: either its last patch was a
|
|
2547
|
+
// suggestion preview, or an inline edit typed the suggestion into the
|
|
2548
|
+
// DOM and the recorded suggestion only lands after the toggle. Both
|
|
2549
|
+
// need an explicit restore patch back to the baseline value.
|
|
2550
|
+
const needsSuggestionRestore = !showSuggestions &&
|
|
2551
|
+
(isSuggestionPreviewPatchSignature(bridgePatchSignatureRef.current.get(`${structureField.elementKey}:${structureField.fieldId}`)) ||
|
|
2552
|
+
getPendingFieldSuggestions(editContext.suggestedEdits, {
|
|
2553
|
+
fieldId: field.id || structureField.fieldId,
|
|
2554
|
+
itemId: itemDescriptor.id,
|
|
2555
|
+
language: itemDescriptor.language,
|
|
2556
|
+
version: itemDescriptor.version,
|
|
2557
|
+
pageItemId: pageViewContextRef.current?.pageItemDescriptor?.id,
|
|
2558
|
+
pageItemLanguage: pageViewContextRef.current?.pageItemDescriptor?.language,
|
|
2559
|
+
pageItemVersion: pageViewContextRef.current?.pageItemDescriptor?.version,
|
|
2560
|
+
}).length > 0);
|
|
2561
|
+
if (!showSuggestions &&
|
|
2562
|
+
!dirtyModifiedField &&
|
|
2563
|
+
!needsSuggestionRestore) {
|
|
2435
2564
|
continue;
|
|
2436
2565
|
}
|
|
2437
2566
|
const patch = buildBridgeFieldPatch({
|
|
@@ -2698,14 +2827,18 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
2698
2827
|
const signatureUrl = new URL(renderUrl.toString());
|
|
2699
2828
|
signatureUrl.searchParams.delete("edit_rev");
|
|
2700
2829
|
const renderSignature = `${signatureUrl.toString()}|rev:${editContext.revision}`;
|
|
2830
|
+
const modeChanged = lastRenderModeRef.current !== editContext.mode;
|
|
2831
|
+
lastRenderModeRef.current = editContext.mode;
|
|
2701
2832
|
// Only skip when a live bridge confirms the last refresh actually reached
|
|
2702
|
-
// the host
|
|
2703
|
-
//
|
|
2704
|
-
//
|
|
2833
|
+
// the host, or when the only meaningful trigger is an edit/suggestions
|
|
2834
|
+
// mode change. Mode is delivered by setEditorMode and cannot change the
|
|
2835
|
+
// server-rendered URL/revision; reloading during a transient bridge
|
|
2836
|
+
// disconnect would needlessly reset iframe scroll. Before the first bridge
|
|
2837
|
+
// connection, identical non-mode re-runs still use the recovery path.
|
|
2705
2838
|
if (!shouldUseIframeSrcReload &&
|
|
2706
2839
|
!versionChanged &&
|
|
2707
2840
|
lastRenderSignatureRef.current === renderSignature &&
|
|
2708
|
-
bridgeClientRef.current?.supportsCapability("refresh")) {
|
|
2841
|
+
(modeChanged || bridgeClientRef.current?.supportsCapability("refresh"))) {
|
|
2709
2842
|
setCurrentItemDescriptor(pageItemDescriptor);
|
|
2710
2843
|
return;
|
|
2711
2844
|
}
|