@parhelia/core 0.1.12895 → 0.1.12900
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 +1 -1
- package/dist/agents-view/AgentCard.js.map +1 -1
- package/dist/agents-view/AgentProfileIcon.d.ts +1 -1
- package/dist/agents-view/AgentProfileIcon.js +4 -0
- package/dist/agents-view/AgentProfileIcon.js.map +1 -1
- package/dist/agents-view/AgentsWorkspaceView.js +10 -24
- package/dist/agents-view/AgentsWorkspaceView.js.map +1 -1
- package/dist/agents-view/ProfileAgentsGroup.js +2 -3
- package/dist/agents-view/ProfileAgentsGroup.js.map +1 -1
- package/dist/components/MarkdownDisplay.js +1 -1
- package/dist/components/MarkdownDisplay.js.map +1 -1
- package/dist/components/SearchInput.d.ts +1 -0
- package/dist/components/SearchInput.js +2 -2
- package/dist/components/SearchInput.js.map +1 -1
- package/dist/components/ui/LanguageSelectionGrid.js +2 -1
- package/dist/components/ui/LanguageSelectionGrid.js.map +1 -1
- package/dist/components/ui/LanguageSelector.d.ts +2 -1
- package/dist/components/ui/LanguageSelector.js +3 -3
- package/dist/components/ui/LanguageSelector.js.map +1 -1
- package/dist/components/ui/badge.d.ts +5 -1
- package/dist/components/ui/badge.js +8 -3
- package/dist/components/ui/badge.js.map +1 -1
- package/dist/components/ui/button.js +4 -5
- package/dist/components/ui/button.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/command.js +1 -1
- package/dist/components/ui/command.js.map +1 -1
- package/dist/components/ui/context-menu.d.ts +13 -0
- package/dist/components/ui/context-menu.js +61 -57
- package/dist/components/ui/context-menu.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/input.js +2 -2
- package/dist/components/ui/input.js.map +1 -1
- package/dist/components/ui/switch.js +1 -1
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/textarea.js +1 -1
- package/dist/components/ui/textarea.js.map +1 -1
- package/dist/config/config.js +40 -15
- package/dist/config/config.js.map +1 -1
- package/dist/config/notificationRoutes.js +2 -2
- package/dist/config/notificationRoutes.js.map +1 -1
- package/dist/editor/ContentTree.js +13 -5
- package/dist/editor/ContentTree.js.map +1 -1
- package/dist/editor/ContextMenu.js +4 -6
- package/dist/editor/ContextMenu.js.map +1 -1
- package/dist/editor/FieldListField.js +14 -7
- package/dist/editor/FieldListField.js.map +1 -1
- package/dist/editor/GlobalMenuBar.js +1 -2
- package/dist/editor/GlobalMenuBar.js.map +1 -1
- package/dist/editor/ImageEditor.js +1 -1
- package/dist/editor/ImageEditor.js.map +1 -1
- package/dist/editor/LinkEditorDialog.js +13 -0
- package/dist/editor/LinkEditorDialog.js.map +1 -1
- package/dist/editor/MainLayout.js +66 -9
- package/dist/editor/MainLayout.js.map +1 -1
- package/dist/editor/Titlebar.js +1 -1
- package/dist/editor/Titlebar.js.map +1 -1
- package/dist/editor/WorkspaceTitleSwitcher.js +12 -31
- package/dist/editor/WorkspaceTitleSwitcher.js.map +1 -1
- package/dist/editor/ai/AgentProfileSelector.js +2 -2
- package/dist/editor/ai/AgentProfileSelector.js.map +1 -1
- package/dist/editor/ai/AgentStatusBadge.js +3 -11
- package/dist/editor/ai/AgentStatusBadge.js.map +1 -1
- package/dist/editor/ai/Agents.js +46 -41
- package/dist/editor/ai/Agents.js.map +1 -1
- package/dist/editor/ai/InlineAiDialog.js +24 -26
- package/dist/editor/ai/InlineAiDialog.js.map +1 -1
- package/dist/editor/ai/InlineAiTrigger.js +30 -1
- package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
- package/dist/editor/ai/agentActivitySummary.d.ts +108 -0
- package/dist/editor/ai/agentActivitySummary.js +390 -0
- package/dist/editor/ai/agentActivitySummary.js.map +1 -0
- package/dist/editor/ai/terminal/agentContextMerge.d.ts +19 -0
- package/dist/editor/ai/terminal/agentContextMerge.js +88 -0
- package/dist/editor/ai/terminal/agentContextMerge.js.map +1 -0
- package/dist/editor/ai/terminal/components/ActivitySummaryCell.d.ts +21 -0
- package/dist/editor/ai/terminal/components/ActivitySummaryCell.js +133 -0
- package/dist/editor/ai/terminal/components/ActivitySummaryCell.js.map +1 -0
- package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.d.ts +7 -0
- package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.js +48 -0
- package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.js.map +1 -0
- 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/AgentFullPromptControls.d.ts +2 -1
- package/dist/editor/ai/terminal/components/AgentFullPromptControls.js +13 -13
- package/dist/editor/ai/terminal/components/AgentFullPromptControls.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/AgentMobileStatusPopover.js +1 -1
- package/dist/editor/ai/terminal/components/AgentMobileStatusPopover.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentModeSelector.d.ts +1 -1
- package/dist/editor/ai/terminal/components/AgentModeSelector.js +86 -9
- package/dist/editor/ai/terminal/components/AgentModeSelector.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPredefinedPromptsButton.js +1 -1
- package/dist/editor/ai/terminal/components/AgentPredefinedPromptsButton.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js +2 -2
- package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptInputArea.d.ts +2 -2
- package/dist/editor/ai/terminal/components/AgentPromptInputArea.js +4 -27
- package/dist/editor/ai/terminal/components/AgentPromptInputArea.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.d.ts +2 -2
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js +15 -12
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.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/AgentSummaryAssistantResponse.d.ts +2 -0
- package/dist/editor/ai/terminal/components/AgentSummaryAssistantResponse.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalContextChrome.d.ts +1 -3
- package/dist/editor/ai/terminal/components/AgentTerminalContextChrome.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.d.ts +10 -10
- package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js +17 -3
- package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.d.ts +2 -1
- package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.js +59 -5
- package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalView.d.ts +3 -2
- package/dist/editor/ai/terminal/components/AgentTerminalView.js +5 -4
- package/dist/editor/ai/terminal/components/AgentTerminalView.js.map +1 -1
- package/dist/editor/ai/terminal/components/AiResponseMessage.d.ts +2 -0
- package/dist/editor/ai/terminal/components/AiResponseMessage.js +84 -28
- package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
- package/dist/editor/ai/terminal/components/ContextInfoBar.d.ts +2 -4
- package/dist/editor/ai/terminal/components/ContextInfoBar.js +93 -223
- package/dist/editor/ai/terminal/components/ContextInfoBar.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentDraftInitializer.js +7 -45
- package/dist/editor/ai/terminal/useAgentDraftInitializer.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentEditorContextPipeline.d.ts +0 -4
- package/dist/editor/ai/terminal/useAgentEditorContextPipeline.js +1 -7
- package/dist/editor/ai/terminal/useAgentEditorContextPipeline.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentPromptComposerSurface.d.ts +2 -2
- package/dist/editor/ai/terminal/useAgentQuickActions.d.ts +2 -2
- package/dist/editor/ai/terminal/useAgentQuickActions.js +61 -3
- package/dist/editor/ai/terminal/useAgentQuickActions.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentSettingsPanel.js +0 -2
- package/dist/editor/ai/terminal/useAgentSettingsPanel.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.js +3 -3
- package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentSkillActions.d.ts +0 -3
- package/dist/editor/ai/terminal/useAgentSkillActions.js +8 -26
- package/dist/editor/ai/terminal/useAgentSkillActions.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentSubmitContextBuilder.d.ts +1 -5
- package/dist/editor/ai/terminal/useAgentSubmitContextBuilder.js +6 -19
- package/dist/editor/ai/terminal/useAgentSubmitContextBuilder.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalChrome.d.ts +1 -3
- package/dist/editor/ai/terminal/useAgentTerminalChrome.js +2 -2
- package/dist/editor/ai/terminal/useAgentTerminalChrome.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalController.js +18 -22
- package/dist/editor/ai/terminal/useAgentTerminalController.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalViewProps.d.ts +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalViewProps.js +2 -2
- package/dist/editor/ai/terminal/useAgentTerminalViewProps.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalViewState.d.ts +0 -6
- package/dist/editor/ai/terminal/useAgentTerminalViewState.js +2 -16
- package/dist/editor/ai/terminal/useAgentTerminalViewState.js.map +1 -1
- package/dist/editor/ai/useActiveAgentConversation.d.ts +2 -0
- package/dist/editor/ai/useActiveAgentConversation.js +20 -0
- package/dist/editor/ai/useActiveAgentConversation.js.map +1 -1
- package/dist/editor/bridge/protocol.d.ts +48 -0
- package/dist/editor/bridge/protocol.js +13 -1
- package/dist/editor/bridge/protocol.js.map +1 -1
- package/dist/editor/client/EditorShell.d.ts +2 -0
- package/dist/editor/client/EditorShell.js +129 -29
- package/dist/editor/client/EditorShell.js.map +1 -1
- package/dist/editor/client/editContext.d.ts +30 -4
- package/dist/editor/client/editContext.js.map +1 -1
- package/dist/editor/client/hooks/useReducedMotion.d.ts +8 -0
- package/dist/editor/client/hooks/useReducedMotion.js +12 -0
- package/dist/editor/client/hooks/useReducedMotion.js.map +1 -0
- package/dist/editor/client/manualShowMeFocus.d.ts +17 -0
- package/dist/editor/client/manualShowMeFocus.js +32 -0
- package/dist/editor/client/manualShowMeFocus.js.map +1 -0
- package/dist/editor/client/ui/FullscreenControls.js +5 -5
- package/dist/editor/client/ui/FullscreenControls.js.map +1 -1
- package/dist/editor/commands/componentCommands.js +30 -1
- package/dist/editor/commands/componentCommands.js.map +1 -1
- package/dist/editor/commands/keyboardCommands.d.ts +6 -0
- package/dist/editor/commands/keyboardCommands.js +74 -0
- package/dist/editor/commands/keyboardCommands.js.map +1 -1
- package/dist/editor/commands/reorderComponent.d.ts +20 -0
- package/dist/editor/commands/reorderComponent.js +40 -0
- package/dist/editor/commands/reorderComponent.js.map +1 -0
- package/dist/editor/commands/undo.js +3 -3
- package/dist/editor/commands/undo.js.map +1 -1
- package/dist/editor/componentFrameColors.d.ts +11 -0
- package/dist/editor/componentFrameColors.js +47 -0
- package/dist/editor/componentFrameColors.js.map +1 -0
- package/dist/editor/field-types/RichTextEditor.js +25 -6
- package/dist/editor/field-types/RichTextEditor.js.map +1 -1
- package/dist/editor/field-types/RichTextEditorComponent.js +14 -1
- package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
- package/dist/editor/field-types/richtext/hooks/useRichTextProfile.d.ts +4 -1
- package/dist/editor/field-types/richtext/hooks/useRichTextProfile.js +33 -5
- package/dist/editor/field-types/richtext/hooks/useRichTextProfile.js.map +1 -1
- package/dist/editor/insertMenuItems.d.ts +11 -0
- package/dist/editor/insertMenuItems.js +9 -0
- package/dist/editor/insertMenuItems.js.map +1 -1
- package/dist/editor/menubar/ActiveUsers.js +3 -3
- package/dist/editor/menubar/ActiveUsers.js.map +1 -1
- package/dist/editor/menubar/FavoritesControls.js +46 -27
- package/dist/editor/menubar/FavoritesControls.js.map +1 -1
- package/dist/editor/menubar/GenericToolbar.js +2 -1
- package/dist/editor/menubar/GenericToolbar.js.map +1 -1
- package/dist/editor/menubar/ItemLanguageVersion.js +7 -5
- package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -1
- package/dist/editor/menubar/PageSelector.js +1 -1
- package/dist/editor/menubar/PageSelector.js.map +1 -1
- package/dist/editor/menubar/PreviewDatePicker.js +40 -21
- package/dist/editor/menubar/PreviewDatePicker.js.map +1 -1
- package/dist/editor/menubar/Separator.d.ts +2 -1
- package/dist/editor/menubar/Separator.js +2 -2
- package/dist/editor/menubar/Separator.js.map +1 -1
- package/dist/editor/menubar/ToolbarFactory.js +24 -17
- package/dist/editor/menubar/ToolbarFactory.js.map +1 -1
- package/dist/editor/menubar/VersionSelector.d.ts +2 -1
- package/dist/editor/menubar/VersionSelector.js +3 -3
- package/dist/editor/menubar/VersionSelector.js.map +1 -1
- package/dist/editor/menubar/WorkflowButton.js +17 -25
- package/dist/editor/menubar/WorkflowButton.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ContentTreeToggle.d.ts +1 -0
- package/dist/editor/menubar/toolbar-sections/ContentTreeToggle.js +13 -0
- package/dist/editor/menubar/toolbar-sections/ContentTreeToggle.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js +1 -1
- package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js +104 -9
- package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/EditControls.d.ts +4 -2
- package/dist/editor/menubar/toolbar-sections/EditControls.js +78 -11
- package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/FullscreenControl.d.ts +1 -0
- package/dist/editor/menubar/toolbar-sections/FullscreenControl.js +15 -0
- package/dist/editor/menubar/toolbar-sections/FullscreenControl.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/InsertControls.js +1 -1
- package/dist/editor/menubar/toolbar-sections/InsertControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ManualBrowser.d.ts +12 -0
- package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +169 -26
- package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ReviewCommands.js +2 -1
- package/dist/editor/menubar/toolbar-sections/ReviewCommands.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/UtilityControls.d.ts +3 -1
- package/dist/editor/menubar/toolbar-sections/UtilityControls.js +11 -3
- package/dist/editor/menubar/toolbar-sections/UtilityControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ViewportControls.d.ts +1 -0
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js +48 -29
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/index.d.ts +2 -1
- package/dist/editor/menubar/toolbar-sections/index.js +2 -1
- package/dist/editor/menubar/toolbar-sections/index.js.map +1 -1
- package/dist/editor/notifications/NotificationCenter.d.ts +4 -1
- package/dist/editor/notifications/NotificationCenter.js +13 -4
- package/dist/editor/notifications/NotificationCenter.js.map +1 -1
- package/dist/editor/notifications/WatchButton.d.ts +4 -2
- package/dist/editor/notifications/WatchButton.js +78 -20
- package/dist/editor/notifications/WatchButton.js.map +1 -1
- package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js +71 -6
- package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js.map +1 -1
- package/dist/editor/page-editor-chrome/CommentHighlightings.js +36 -40
- package/dist/editor/page-editor-chrome/CommentHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/DragInsertionOverlay.d.ts +36 -0
- package/dist/editor/page-editor-chrome/DragInsertionOverlay.js +879 -0
- package/dist/editor/page-editor-chrome/DragInsertionOverlay.js.map +1 -0
- package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.d.ts +1 -0
- package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js +3 -3
- package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js.map +1 -1
- package/dist/editor/page-editor-chrome/FrameMenu.d.ts +3 -2
- package/dist/editor/page-editor-chrome/FrameMenu.js +49 -119
- package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
- package/dist/editor/page-editor-chrome/FrameMenus.d.ts +1 -1
- package/dist/editor/page-editor-chrome/FrameMenus.js +65 -15
- package/dist/editor/page-editor-chrome/FrameMenus.js.map +1 -1
- package/dist/editor/page-editor-chrome/InsertComponentMenu.d.ts +25 -0
- package/dist/editor/page-editor-chrome/InsertComponentMenu.js +30 -0
- package/dist/editor/page-editor-chrome/InsertComponentMenu.js.map +1 -0
- package/dist/editor/page-editor-chrome/PageEditorChrome.js +14 -2
- package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.d.ts +33 -2
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +94 -71
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.d.ts +13 -2
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +105 -203
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +51 -88
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/bridgeInlineFormatToolbarLayout.js +2 -1
- package/dist/editor/page-editor-chrome/bridgeInlineFormatToolbarLayout.js.map +1 -1
- package/dist/editor/page-editor-chrome/componentDragObject.d.ts +10 -0
- package/dist/editor/page-editor-chrome/componentDragObject.js +22 -0
- package/dist/editor/page-editor-chrome/componentDragObject.js.map +1 -0
- package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.d.ts +32 -0
- package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js +8 -0
- package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js.map +1 -1
- package/dist/editor/page-editor-chrome/overlay/InsertionLine.d.ts +44 -0
- package/dist/editor/page-editor-chrome/overlay/InsertionLine.js +160 -0
- package/dist/editor/page-editor-chrome/overlay/InsertionLine.js.map +1 -0
- package/dist/editor/page-editor-chrome/overlay/geometry.d.ts +39 -0
- package/dist/editor/page-editor-chrome/overlay/geometry.js +67 -10
- package/dist/editor/page-editor-chrome/overlay/geometry.js.map +1 -1
- package/dist/editor/page-editor-chrome/overlay/placeholderZones.d.ts +66 -0
- package/dist/editor/page-editor-chrome/overlay/placeholderZones.js +274 -0
- package/dist/editor/page-editor-chrome/overlay/placeholderZones.js.map +1 -0
- package/dist/editor/page-editor-chrome/useComponentDragHandle.d.ts +23 -0
- package/dist/editor/page-editor-chrome/useComponentDragHandle.js +41 -0
- package/dist/editor/page-editor-chrome/useComponentDragHandle.js.map +1 -0
- package/dist/editor/page-editor-chrome/useDragInsertionGesture.d.ts +23 -0
- package/dist/editor/page-editor-chrome/useDragInsertionGesture.js +207 -0
- package/dist/editor/page-editor-chrome/useDragInsertionGesture.js.map +1 -0
- package/dist/editor/page-editor-chrome/usePinnedHoveredComponentId.d.ts +2 -0
- package/dist/editor/page-editor-chrome/usePinnedHoveredComponentId.js +18 -0
- package/dist/editor/page-editor-chrome/usePinnedHoveredComponentId.js.map +1 -0
- package/dist/editor/page-viewer/EditorForm.js +14 -12
- package/dist/editor/page-viewer/EditorForm.js.map +1 -1
- package/dist/editor/page-viewer/EditorFormHintPopover.d.ts +2 -2
- package/dist/editor/page-viewer/EditorFormHintPopover.js +4 -4
- package/dist/editor/page-viewer/EditorFormHintPopover.js.map +1 -1
- package/dist/editor/page-viewer/MiniMap.d.ts +6 -0
- package/dist/editor/page-viewer/MiniMap.js +97 -12
- package/dist/editor/page-viewer/MiniMap.js.map +1 -1
- package/dist/editor/page-viewer/MinimapDropTargets.d.ts +13 -0
- package/dist/editor/page-viewer/MinimapDropTargets.js +140 -0
- package/dist/editor/page-viewer/MinimapDropTargets.js.map +1 -0
- package/dist/editor/page-viewer/PageViewer.js +96 -10
- package/dist/editor/page-viewer/PageViewer.js.map +1 -1
- package/dist/editor/page-viewer/PageViewerFrame.js +263 -6
- package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
- package/dist/editor/page-viewer/pageViewContext.d.ts +4 -1
- package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
- package/dist/editor/reviews/Comment.js +2 -0
- package/dist/editor/reviews/Comment.js.map +1 -1
- package/dist/editor/reviews/CommentDisplayPopover.js +5 -2
- package/dist/editor/reviews/CommentDisplayPopover.js.map +1 -1
- package/dist/editor/reviews/CommentPopover.d.ts +4 -0
- package/dist/editor/reviews/CommentPopover.js +15 -1
- package/dist/editor/reviews/CommentPopover.js.map +1 -1
- package/dist/editor/reviews/Comments.js +61 -44
- package/dist/editor/reviews/Comments.js.map +1 -1
- package/dist/editor/reviews/DecisionsMatrix.js +3 -3
- package/dist/editor/reviews/DecisionsMatrix.js.map +1 -1
- package/dist/editor/reviews/FeedbackModeIntro.d.ts +15 -0
- package/dist/editor/reviews/FeedbackModeIntro.js +22 -0
- package/dist/editor/reviews/FeedbackModeIntro.js.map +1 -0
- package/dist/editor/reviews/LatestFeedback.js +8 -2
- package/dist/editor/reviews/LatestFeedback.js.map +1 -1
- package/dist/editor/reviews/ReviewersPanel.js +2 -1
- package/dist/editor/reviews/ReviewersPanel.js.map +1 -1
- package/dist/editor/reviews/SuggestedEdit.js +9 -7
- package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
- package/dist/editor/reviews/SuggestionDisplayPopover.js +3 -3
- package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
- package/dist/editor/reviews/feedbackScrollTarget.d.ts +19 -0
- package/dist/editor/reviews/feedbackScrollTarget.js +171 -0
- package/dist/editor/reviews/feedbackScrollTarget.js.map +1 -0
- package/dist/editor/reviews/feedbackSelection.js +4 -4
- package/dist/editor/reviews/feedbackSelection.js.map +1 -1
- package/dist/editor/reviews/latestFeedbackData.js +1 -1
- package/dist/editor/reviews/openCommentsFeedback.d.ts +35 -0
- package/dist/editor/reviews/openCommentsFeedback.js +89 -0
- package/dist/editor/reviews/openCommentsFeedback.js.map +1 -0
- package/dist/editor/services/agentService.d.ts +5 -0
- package/dist/editor/services/agentService.js.map +1 -1
- package/dist/editor/services/aiService.d.ts +0 -2
- package/dist/editor/services/aiService.js.map +1 -1
- package/dist/editor/services/editService.d.ts +1 -0
- package/dist/editor/services/editService.js +4 -0
- package/dist/editor/services/editService.js.map +1 -1
- package/dist/editor/settings/IndexOverview.js +2 -2
- package/dist/editor/settings/IndexOverview.js.map +1 -1
- package/dist/editor/settings/QuotaInfo.js +2 -2
- package/dist/editor/settings/QuotaInfo.js.map +1 -1
- package/dist/editor/settings/SettingsBreadcrumb.js +8 -2
- package/dist/editor/settings/SettingsBreadcrumb.js.map +1 -1
- package/dist/editor/settings/SettingsPanelLayout.js +1 -1
- package/dist/editor/settings/SettingsPanelLayout.js.map +1 -1
- package/dist/editor/settings/SettingsView.js +7 -9
- package/dist/editor/settings/SettingsView.js.map +1 -1
- package/dist/editor/settings/StatusSummary.js +7 -17
- package/dist/editor/settings/StatusSummary.js.map +1 -1
- package/dist/editor/settings/panels/AgentToolsPanel.js +2 -1
- package/dist/editor/settings/panels/AgentToolsPanel.js.map +1 -1
- package/dist/editor/settings/panels/ClusterInstancesPanel.js +2 -1
- package/dist/editor/settings/panels/ClusterInstancesPanel.js.map +1 -1
- package/dist/editor/settings/panels/FieldTypeSerializersPanel.js +2 -1
- package/dist/editor/settings/panels/FieldTypeSerializersPanel.js.map +1 -1
- package/dist/editor/settings/panels/GroupedFieldConfigPanel.js +3 -2
- package/dist/editor/settings/panels/GroupedFieldConfigPanel.js.map +1 -1
- package/dist/editor/settings/panels/ItemConfigPanel.js +3 -2
- package/dist/editor/settings/panels/ItemConfigPanel.js.map +1 -1
- package/dist/editor/settings/panels/JavaScriptToolAgentPanel.js +2 -1
- package/dist/editor/settings/panels/JavaScriptToolAgentPanel.js.map +1 -1
- package/dist/editor/settings/panels/NotificationSubscriptionsPanel.js +2 -1
- package/dist/editor/settings/panels/NotificationSubscriptionsPanel.js.map +1 -1
- package/dist/editor/settings/panels/PersistentLogsPanel.js +3 -2
- package/dist/editor/settings/panels/PersistentLogsPanel.js.map +1 -1
- package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js +2 -1
- package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js.map +1 -1
- package/dist/editor/settings/panels/ProjectTemplateSelectorList.js +3 -2
- package/dist/editor/settings/panels/ProjectTemplateSelectorList.js.map +1 -1
- package/dist/editor/settings/panels/ProjectTemplatesPanel.js +3 -3
- package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
- package/dist/editor/settings/panels/SearchConfigPanel.js +3 -2
- package/dist/editor/settings/panels/SearchConfigPanel.js.map +1 -1
- package/dist/editor/settings/panels/StatusPanel.js +3 -2
- package/dist/editor/settings/panels/StatusPanel.js.map +1 -1
- package/dist/editor/sidebar/ComponentPalette.d.ts +1 -1
- package/dist/editor/sidebar/ComponentPalette.js +58 -25
- package/dist/editor/sidebar/ComponentPalette.js.map +1 -1
- package/dist/editor/sidebar/ComponentTree.js +91 -7
- package/dist/editor/sidebar/ComponentTree.js.map +1 -1
- package/dist/editor/sidebar/ContentTreePanel.d.ts +3 -0
- package/dist/editor/sidebar/ContentTreePanel.js +14 -0
- package/dist/editor/sidebar/ContentTreePanel.js.map +1 -0
- package/dist/editor/sidebar/Favorites.js +2 -2
- package/dist/editor/sidebar/Favorites.js.map +1 -1
- package/dist/editor/sidebar/NavigationPanelItem.js +2 -1
- package/dist/editor/sidebar/NavigationPanelItem.js.map +1 -1
- package/dist/editor/sidebar/OperationItem.js +98 -17
- package/dist/editor/sidebar/OperationItem.js.map +1 -1
- package/dist/editor/sidebar/Workbox.js +14 -133
- package/dist/editor/sidebar/Workbox.js.map +1 -1
- package/dist/editor/sidebar/WorkspaceButton.js +1 -1
- package/dist/editor/sidebar/WorkspaceButton.js.map +1 -1
- package/dist/editor/sidebar/WorkspaceRail.js +12 -9
- package/dist/editor/sidebar/WorkspaceRail.js.map +1 -1
- package/dist/editor/sidebar/contentTreeConstants.d.ts +2 -0
- package/dist/editor/sidebar/contentTreeConstants.js +3 -0
- package/dist/editor/sidebar/contentTreeConstants.js.map +1 -0
- package/dist/editor/tree-indicators/GutterColumns.js +4 -14
- package/dist/editor/tree-indicators/GutterColumns.js.map +1 -1
- package/dist/editor/ui/ItemCollectionEditor.js +3 -2
- package/dist/editor/ui/ItemCollectionEditor.js.map +1 -1
- package/dist/editor/ui/LoadingState.d.ts +11 -0
- package/dist/editor/ui/LoadingState.js +27 -0
- package/dist/editor/ui/LoadingState.js.map +1 -0
- package/dist/editor/ui/PerfectTree.d.ts +22 -1
- package/dist/editor/ui/PerfectTree.js +17 -11
- package/dist/editor/ui/PerfectTree.js.map +1 -1
- package/dist/editor/ui/PublishDialog.d.ts +11 -0
- package/dist/editor/ui/PublishDialog.js +101 -0
- package/dist/editor/ui/PublishDialog.js.map +1 -0
- package/dist/editor/ui/PublishItemDialog.js +2 -1
- package/dist/editor/ui/PublishItemDialog.js.map +1 -1
- package/dist/editor/ui/PublishRestrictionsDialog.js +3 -2
- package/dist/editor/ui/PublishRestrictionsDialog.js.map +1 -1
- package/dist/editor/ui/SimpleIconButton.d.ts +6 -0
- package/dist/editor/ui/SimpleIconButton.js +13 -4
- package/dist/editor/ui/SimpleIconButton.js.map +1 -1
- package/dist/editor/ui/SimpleMenu.js +4 -4
- package/dist/editor/ui/SimpleMenu.js.map +1 -1
- package/dist/editor/ui/SimpleTabs.js +1 -1
- package/dist/editor/ui/Spinner.d.ts +14 -1
- package/dist/editor/ui/Spinner.js.map +1 -1
- package/dist/editor/ui/WorkboxItemsTable.d.ts +15 -0
- package/dist/editor/ui/WorkboxItemsTable.js +142 -0
- package/dist/editor/ui/WorkboxItemsTable.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/pointerDrag.d.ts +20 -0
- package/dist/lib/pointerDrag.js +57 -0
- package/dist/lib/pointerDrag.js.map +1 -0
- package/dist/logging/consolePrefix.d.ts +2 -0
- package/dist/logging/consolePrefix.js +49 -0
- package/dist/logging/consolePrefix.js.map +1 -0
- package/dist/logging/index.d.ts +1 -0
- package/dist/logging/index.js +2 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/install-browser-console.d.ts +1 -0
- package/dist/logging/install-browser-console.js +3 -0
- package/dist/logging/install-browser-console.js.map +1 -0
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/splash-screen/ModernSplashScreen.js +2 -1
- package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
- package/dist/task-board/TaskBoardWorkspace.js +181 -35
- package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
- package/dist/task-board/components/CommentsList.js +20 -9
- package/dist/task-board/components/CommentsList.js.map +1 -1
- package/dist/task-board/components/FinishedProjectCard.d.ts +5 -0
- package/dist/task-board/components/FinishedProjectCard.js +8 -0
- package/dist/task-board/components/FinishedProjectCard.js.map +1 -0
- package/dist/task-board/components/ProjectDashboard.d.ts +10 -1
- package/dist/task-board/components/ProjectDashboard.js +90 -6
- package/dist/task-board/components/ProjectDashboard.js.map +1 -1
- package/dist/task-board/components/ProjectListContent.js +2 -1
- package/dist/task-board/components/ProjectListContent.js.map +1 -1
- package/dist/task-board/components/ProjectOverviewContent.js +2 -1
- package/dist/task-board/components/ProjectOverviewContent.js.map +1 -1
- package/dist/task-board/components/TaskAgentPanel.d.ts +4 -0
- package/dist/task-board/components/TaskAgentPanel.js +12 -6
- package/dist/task-board/components/TaskAgentPanel.js.map +1 -1
- package/dist/task-board/components/TaskAssigneeBadge.d.ts +16 -0
- package/dist/task-board/components/TaskAssigneeBadge.js +21 -0
- package/dist/task-board/components/TaskAssigneeBadge.js.map +1 -0
- package/dist/task-board/components/TaskAssigneePicker.js +12 -10
- package/dist/task-board/components/TaskAssigneePicker.js.map +1 -1
- package/dist/task-board/components/TaskAttachmentDropZone.d.ts +11 -0
- package/dist/task-board/components/TaskAttachmentDropZone.js +100 -0
- package/dist/task-board/components/TaskAttachmentDropZone.js.map +1 -0
- package/dist/task-board/components/TaskAttachmentsSection.d.ts +1 -0
- package/dist/task-board/components/TaskAttachmentsSection.js +15 -41
- package/dist/task-board/components/TaskAttachmentsSection.js.map +1 -1
- package/dist/task-board/components/TaskBoardFilterBox.d.ts +4 -0
- package/dist/task-board/components/TaskBoardFilterBox.js +7 -0
- package/dist/task-board/components/TaskBoardFilterBox.js.map +1 -0
- package/dist/task-board/components/TaskBoardProjectListSidebar.js +4 -5
- package/dist/task-board/components/TaskBoardProjectListSidebar.js.map +1 -1
- package/dist/task-board/components/TaskCard.js +26 -15
- package/dist/task-board/components/TaskCard.js.map +1 -1
- package/dist/task-board/components/TaskDetailPanel.d.ts +1 -0
- package/dist/task-board/components/TaskDetailPanel.js +15 -12
- package/dist/task-board/components/TaskDetailPanel.js.map +1 -1
- package/dist/task-board/components/TaskReviewActions.d.ts +1 -0
- package/dist/task-board/components/TaskReviewActions.js +4 -2
- package/dist/task-board/components/TaskReviewActions.js.map +1 -1
- package/dist/task-board/components/TaskRow.js +6 -12
- 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 +1 -1
- package/dist/task-board/components/WizardCommunicationCards.js.map +1 -1
- package/dist/task-board/components/WizardCommunicationCenter.d.ts +7 -1
- package/dist/task-board/components/WizardCommunicationCenter.js +10 -6
- package/dist/task-board/components/WizardCommunicationCenter.js.map +1 -1
- package/dist/task-board/components/WizardCommunicationShared.js +5 -5
- package/dist/task-board/components/WizardCommunicationShared.js.map +1 -1
- package/dist/task-board/components/WizardTask.d.ts +5 -1
- package/dist/task-board/components/WizardTask.js +14 -30
- package/dist/task-board/components/WizardTask.js.map +1 -1
- package/dist/task-board/components/WizardTaskDetailsPanel.d.ts +10 -2
- package/dist/task-board/components/WizardTaskDetailsPanel.js +56 -11
- package/dist/task-board/components/WizardTaskDetailsPanel.js.map +1 -1
- package/dist/task-board/taskBoardNavStore.d.ts +3 -0
- package/dist/task-board/taskBoardNavStore.js +44 -0
- package/dist/task-board/taskBoardNavStore.js.map +1 -1
- package/dist/task-board/taskPriority.d.ts +4 -0
- package/dist/task-board/taskPriority.js +19 -0
- package/dist/task-board/taskPriority.js.map +1 -0
- package/dist/task-board/views/DependencyGraphView.js +48 -36
- package/dist/task-board/views/DependencyGraphView.js.map +1 -1
- package/dist/task-board/views/KanbanView.js +130 -96
- package/dist/task-board/views/KanbanView.js.map +1 -1
- package/dist/task-board/views/ListView.js +3 -3
- package/dist/task-board/views/ListView.js.map +1 -1
- package/dist/task-board/views/WizardView.js +7 -6
- package/dist/task-board/views/WizardView.js.map +1 -1
- package/dist/tour/default-tour.js +5 -5
- package/dist/tour/default-tour.js.map +1 -1
- package/package.json +11 -1
- package/styles.css +144 -0
- package/dist/editor/ai/terminal/useAgentEditorContextSync.d.ts +0 -19
- package/dist/editor/ai/terminal/useAgentEditorContextSync.js +0 -142
- package/dist/editor/ai/terminal/useAgentEditorContextSync.js.map +0 -1
|
@@ -7,7 +7,7 @@ import { useDebouncedCallback, useThrottledCallback } from "use-debounce";
|
|
|
7
7
|
import { PageEditorChrome } from "../page-editor-chrome/PageEditorChrome";
|
|
8
8
|
import { useBridgeInlineEditing, } from "../page-editor-chrome/useBridgeInlineEditing";
|
|
9
9
|
import { getInlineAiAnchorFromBridgeToolbar, getVisibleBridgeToolbarRect, waitForVisibleBridgeToolbarRect, } from "../page-editor-chrome/bridgeInlineFormatToolbarLayout";
|
|
10
|
-
import { IFRAME_OVERLAY_BRIDGE_GEOMETRY_EVENT, IFRAME_OVERLAY_BRIDGE_SCROLL_EVENT, IframeOverlayProvider, } from "../page-editor-chrome/overlay/IframeOverlayProvider";
|
|
10
|
+
import { IFRAME_OVERLAY_BRIDGE_DRAG_GESTURE_EVENT, IFRAME_OVERLAY_BRIDGE_GEOMETRY_EVENT, IFRAME_OVERLAY_BRIDGE_SCROLL_EVENT, IframeOverlayProvider, } from "../page-editor-chrome/overlay/IframeOverlayProvider";
|
|
11
11
|
import { DEVICE_CHANGE_EVENT, useViewportChangeSignal, } from "./pageViewContext";
|
|
12
12
|
import uuid from "react-uuid";
|
|
13
13
|
import { cn } from "../../lib/utils";
|
|
@@ -22,6 +22,7 @@ import { FieldActionsOverlay, } from "../FieldActionsOverlay";
|
|
|
22
22
|
import { NoLayout } from "../page-editor-chrome/NoLayout";
|
|
23
23
|
import { Spinner } from "../ui/Spinner";
|
|
24
24
|
import { DeviceToolbar } from "./DeviceToolbar";
|
|
25
|
+
import { FullscreenControls } from "../client/ui/FullscreenControls";
|
|
25
26
|
import { toSitecoreDate } from "../utils/sitecoreDate";
|
|
26
27
|
import { BridgeClient } from "../bridge/BridgeClient";
|
|
27
28
|
import { getSuggestionDisplayValue } from "../reviews/suggestionDisplayValue";
|
|
@@ -33,6 +34,35 @@ const ZOOM_TRANSITION_MS = 300;
|
|
|
33
34
|
const BRIDGE_INLINE_EDIT_RELEASE_EVENT = "parhelia:bridge-inline-edit-release";
|
|
34
35
|
const INLINE_AI_CLOSE_EVENT = "inline-ai-close";
|
|
35
36
|
const BRIDGE_INLINE_LINK_OPEN_EVENT = "bridge-inline-link-open";
|
|
37
|
+
const SCROLL_INTO_VIEW_BRIDGE_SOURCE = "scroll-into-view";
|
|
38
|
+
// Suggestions-mode cursor: a text I-beam (the click insertion point) badged with
|
|
39
|
+
// the lucide PenLine icon from the "Suggestions mode" toolbar button. A white
|
|
40
|
+
// halo keeps it visible on any page background; the hotspot is the I-beam centre.
|
|
41
|
+
const SUGGESTIONS_CURSOR_PEN_PATHS = '<path d="M12 20h9"/>' +
|
|
42
|
+
'<path d="M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z"/>';
|
|
43
|
+
const SUGGESTIONS_CURSOR_BEAM_PATHS = '<path d="M5 5.5V22.5"/><path d="M2.5 5.5H7.5"/><path d="M2.5 22.5H7.5"/>';
|
|
44
|
+
const SUGGESTIONS_CURSOR_SVG = '<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28" fill="none" stroke-linecap="round" stroke-linejoin="round">' +
|
|
45
|
+
// White halo, drawn first so the dark ink sits on top of it.
|
|
46
|
+
'<g stroke="#ffffff">' +
|
|
47
|
+
'<g stroke-width="4">' +
|
|
48
|
+
SUGGESTIONS_CURSOR_BEAM_PATHS +
|
|
49
|
+
"</g>" +
|
|
50
|
+
'<g transform="translate(11 -1.5) scale(0.7)" stroke-width="5">' +
|
|
51
|
+
SUGGESTIONS_CURSOR_PEN_PATHS +
|
|
52
|
+
"</g>" +
|
|
53
|
+
"</g>" +
|
|
54
|
+
// Dark ink: the I-beam (text insertion point) plus the pen badge.
|
|
55
|
+
'<g stroke="#121212">' +
|
|
56
|
+
'<g stroke-width="2">' +
|
|
57
|
+
SUGGESTIONS_CURSOR_BEAM_PATHS +
|
|
58
|
+
"</g>" +
|
|
59
|
+
'<g transform="translate(11 -1.5) scale(0.7)" stroke-width="2.6">' +
|
|
60
|
+
SUGGESTIONS_CURSOR_PEN_PATHS +
|
|
61
|
+
"</g>" +
|
|
62
|
+
"</g>" +
|
|
63
|
+
"</svg>";
|
|
64
|
+
const SUGGESTIONS_CURSOR_IMAGE = "data:image/svg+xml," + encodeURIComponent(SUGGESTIONS_CURSOR_SVG);
|
|
65
|
+
const SUGGESTIONS_CURSOR_VALUE = `url("${SUGGESTIONS_CURSOR_IMAGE}") 5 14, default`;
|
|
36
66
|
function dispatchBridgeOverlayScroll(iframe, scroll, scrollScale = 1) {
|
|
37
67
|
iframe?.dispatchEvent(new CustomEvent(IFRAME_OVERLAY_BRIDGE_SCROLL_EVENT, {
|
|
38
68
|
detail: {
|
|
@@ -117,6 +147,16 @@ function findBridgeFieldDocumentBounds(geometry, descriptor) {
|
|
|
117
147
|
? bridgeTargetToDocumentBounds(geometry, target)
|
|
118
148
|
: undefined;
|
|
119
149
|
}
|
|
150
|
+
function findBridgeTextRangeDocumentBounds(geometry, key) {
|
|
151
|
+
if (!geometry || !key)
|
|
152
|
+
return undefined;
|
|
153
|
+
const bounds = geometry.targets
|
|
154
|
+
.filter((candidate) => candidate.kind === "textRange" &&
|
|
155
|
+
candidate.key === key &&
|
|
156
|
+
(candidate.rect.width > 0 || candidate.rect.height > 0))
|
|
157
|
+
.map((target) => bridgeTargetToDocumentBounds(geometry, target));
|
|
158
|
+
return unionDocumentBounds(bounds);
|
|
159
|
+
}
|
|
120
160
|
function findBridgeComponentDocumentBounds(geometry, componentId) {
|
|
121
161
|
if (!geometry)
|
|
122
162
|
return undefined;
|
|
@@ -130,6 +170,93 @@ function findBridgeComponentDocumentBounds(geometry, componentId) {
|
|
|
130
170
|
? bridgeTargetToDocumentBounds(geometry, target)
|
|
131
171
|
: undefined;
|
|
132
172
|
}
|
|
173
|
+
function unionDocumentBounds(bounds) {
|
|
174
|
+
if (bounds.length === 0)
|
|
175
|
+
return undefined;
|
|
176
|
+
let left = Number.POSITIVE_INFINITY;
|
|
177
|
+
let top = Number.POSITIVE_INFINITY;
|
|
178
|
+
let right = Number.NEGATIVE_INFINITY;
|
|
179
|
+
let bottom = Number.NEGATIVE_INFINITY;
|
|
180
|
+
bounds.forEach((rect) => {
|
|
181
|
+
left = Math.min(left, rect.x);
|
|
182
|
+
top = Math.min(top, rect.y);
|
|
183
|
+
right = Math.max(right, rect.x + rect.width);
|
|
184
|
+
bottom = Math.max(bottom, rect.y + rect.height);
|
|
185
|
+
});
|
|
186
|
+
if (!Number.isFinite(left) || !Number.isFinite(top))
|
|
187
|
+
return undefined;
|
|
188
|
+
return {
|
|
189
|
+
x: left,
|
|
190
|
+
y: top,
|
|
191
|
+
width: Math.max(0, right - left),
|
|
192
|
+
height: Math.max(0, bottom - top),
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
function findScrollIntoViewDocumentBounds(geometry, target, options = {}) {
|
|
196
|
+
if (typeof target === "string") {
|
|
197
|
+
return findBridgeComponentDocumentBounds(geometry, target);
|
|
198
|
+
}
|
|
199
|
+
if (target.kind === "component") {
|
|
200
|
+
return findBridgeComponentDocumentBounds(geometry, target.componentId);
|
|
201
|
+
}
|
|
202
|
+
if (target.kind === "field") {
|
|
203
|
+
return (findBridgeFieldDocumentBounds(geometry, target.field) ??
|
|
204
|
+
(target.fallbackComponentId
|
|
205
|
+
? findBridgeComponentDocumentBounds(geometry, target.fallbackComponentId)
|
|
206
|
+
: undefined));
|
|
207
|
+
}
|
|
208
|
+
const textRangeBounds = findBridgeTextRangeDocumentBounds(geometry, target.key);
|
|
209
|
+
if (textRangeBounds || !options.includeTextRangeFallback) {
|
|
210
|
+
return textRangeBounds;
|
|
211
|
+
}
|
|
212
|
+
return ((target.fallbackField
|
|
213
|
+
? findBridgeFieldDocumentBounds(geometry, target.fallbackField)
|
|
214
|
+
: undefined) ??
|
|
215
|
+
(target.fallbackComponentId
|
|
216
|
+
? findBridgeComponentDocumentBounds(geometry, target.fallbackComponentId)
|
|
217
|
+
: undefined));
|
|
218
|
+
}
|
|
219
|
+
function isTextRangeScrollTarget(target) {
|
|
220
|
+
return typeof target !== "string" && target.kind === "textRange";
|
|
221
|
+
}
|
|
222
|
+
function getScrollIntoViewSignature(target) {
|
|
223
|
+
if (typeof target === "string")
|
|
224
|
+
return `component:${target}`;
|
|
225
|
+
if (target.kind === "component")
|
|
226
|
+
return `component:${target.componentId}`;
|
|
227
|
+
if (target.kind === "field") {
|
|
228
|
+
return [
|
|
229
|
+
"field",
|
|
230
|
+
target.field.fieldId,
|
|
231
|
+
target.field.item.id,
|
|
232
|
+
target.field.item.language,
|
|
233
|
+
target.field.item.version,
|
|
234
|
+
].join(":");
|
|
235
|
+
}
|
|
236
|
+
return [
|
|
237
|
+
"textRange",
|
|
238
|
+
target.key,
|
|
239
|
+
...(target.textRanges || []).map((range) => [
|
|
240
|
+
range.key,
|
|
241
|
+
range.elementKey,
|
|
242
|
+
range.fieldId,
|
|
243
|
+
range.item?.id,
|
|
244
|
+
range.item?.language,
|
|
245
|
+
range.item?.version,
|
|
246
|
+
range.start,
|
|
247
|
+
range.end,
|
|
248
|
+
].join(":")),
|
|
249
|
+
].join("|");
|
|
250
|
+
}
|
|
251
|
+
function requestScrollTargetGeometry(pageViewContext, target) {
|
|
252
|
+
const textRanges = target.textRanges?.filter((range) => !!range);
|
|
253
|
+
if (!textRanges?.length)
|
|
254
|
+
return false;
|
|
255
|
+
return (pageViewContext.requestBridgeGeometry?.({
|
|
256
|
+
source: SCROLL_INTO_VIEW_BRIDGE_SOURCE,
|
|
257
|
+
textRanges,
|
|
258
|
+
}) ?? false);
|
|
259
|
+
}
|
|
133
260
|
function scrollBridgeBoundsIntoView(pageViewContext, bounds, currentScroll) {
|
|
134
261
|
const geometry = pageViewContext.bridgeGeometry;
|
|
135
262
|
if (!geometry)
|
|
@@ -380,6 +507,17 @@ function bridgeFieldMatchesChangedField(bridgeFieldId, changedFieldId, field) {
|
|
|
380
507
|
bridgeIdsMatch(bridgeFieldId, field.name) ||
|
|
381
508
|
bridgeIdsMatch(bridgeFieldId, field.displayName));
|
|
382
509
|
}
|
|
510
|
+
function findModifiedBridgeField({ modifiedFields, structureField, field, itemDescriptor, dirtyOnly, }) {
|
|
511
|
+
return modifiedFields?.find((candidate) => {
|
|
512
|
+
if (dirtyOnly && !candidate.isDirty)
|
|
513
|
+
return false;
|
|
514
|
+
if (!bridgeDescriptorMatchesItem(candidate.item, itemDescriptor)) {
|
|
515
|
+
return false;
|
|
516
|
+
}
|
|
517
|
+
return (bridgeIdsMatch(candidate.fieldId, structureField.fieldId) ||
|
|
518
|
+
fieldIdentifierMatches(field, candidate.fieldId));
|
|
519
|
+
});
|
|
520
|
+
}
|
|
383
521
|
function findBridgeFieldTargetAtPoint(geometry, clientX, clientY) {
|
|
384
522
|
if (!geometry || typeof clientX !== "number" || typeof clientY !== "number") {
|
|
385
523
|
return undefined;
|
|
@@ -448,12 +586,20 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
448
586
|
const directOverlayScrollSyncRef = useRef(false);
|
|
449
587
|
const pendingRefreshScrollRef = useRef(undefined);
|
|
450
588
|
const suppressNextSelectionScrollRef = useRef(false);
|
|
589
|
+
// Timestamp (ms) until which selection auto-scroll is suppressed. Held open for
|
|
590
|
+
// the whole drag and a short window after, so the drop's re-selection doesn't
|
|
591
|
+
// jump the page (see the dragObject transition effect that drives it).
|
|
592
|
+
const suppressSelectionScrollUntilRef = useRef(0);
|
|
451
593
|
// Tracks the selection we last evaluated for auto-scroll. The selection
|
|
452
594
|
// effect also depends on focusedField, so it re-runs when a field blurs
|
|
453
595
|
// (focusedField -> undefined) even though the selection itself did not
|
|
454
596
|
// change. Without this guard that blur re-render would scroll the just
|
|
455
597
|
// clicked component into view after the suppress flag was already consumed.
|
|
456
598
|
const lastScrolledSelectionKeyRef = useRef("");
|
|
599
|
+
const scrollIntoViewRequestRef = useRef({
|
|
600
|
+
signature: "",
|
|
601
|
+
requestedTextRangeGeometry: false,
|
|
602
|
+
});
|
|
457
603
|
const [showSpinner, setShowSpinner] = useState(false);
|
|
458
604
|
const [iframeSrc, setIframeSrc] = useState();
|
|
459
605
|
const [loadedIframeSrc, setLoadedIframeSrc] = useState();
|
|
@@ -1353,6 +1499,8 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1353
1499
|
editorOrigin: window.location.origin,
|
|
1354
1500
|
sessionId: editContextRef.current?.sessionId,
|
|
1355
1501
|
mode: editContextRef.current?.mode ?? "edit",
|
|
1502
|
+
suggestionsCursorActive: editContextRef.current?.mode === "suggestions" ||
|
|
1503
|
+
!!editContextRef.current?.showSuggestedEdits,
|
|
1356
1504
|
selectedComponentIds: editContextRef.current?.selection ?? [],
|
|
1357
1505
|
featureFlags: {
|
|
1358
1506
|
crossOriginBridge: true,
|
|
@@ -1455,6 +1603,26 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1455
1603
|
pageViewContext.setBridgeInteraction(event.payload);
|
|
1456
1604
|
void handleBridgeInteraction(event.payload, iframe);
|
|
1457
1605
|
break;
|
|
1606
|
+
case "dragGestureStarted":
|
|
1607
|
+
iframe?.dispatchEvent(new CustomEvent(IFRAME_OVERLAY_BRIDGE_DRAG_GESTURE_EVENT, {
|
|
1608
|
+
detail: { phase: "start", ...event.payload },
|
|
1609
|
+
}));
|
|
1610
|
+
break;
|
|
1611
|
+
case "dragGestureMoved":
|
|
1612
|
+
iframe?.dispatchEvent(new CustomEvent(IFRAME_OVERLAY_BRIDGE_DRAG_GESTURE_EVENT, {
|
|
1613
|
+
detail: { phase: "move", ...event.payload },
|
|
1614
|
+
}));
|
|
1615
|
+
break;
|
|
1616
|
+
case "dragGestureEnded":
|
|
1617
|
+
iframe?.dispatchEvent(new CustomEvent(IFRAME_OVERLAY_BRIDGE_DRAG_GESTURE_EVENT, {
|
|
1618
|
+
detail: { phase: "end", ...event.payload },
|
|
1619
|
+
}));
|
|
1620
|
+
break;
|
|
1621
|
+
case "dragSnapshot":
|
|
1622
|
+
iframe?.dispatchEvent(new CustomEvent(IFRAME_OVERLAY_BRIDGE_DRAG_GESTURE_EVENT, {
|
|
1623
|
+
detail: { phase: "snapshot", ...event.payload },
|
|
1624
|
+
}));
|
|
1625
|
+
break;
|
|
1458
1626
|
case "scrollChanged":
|
|
1459
1627
|
latestBridgeScrollRef.current = event.payload.scroll;
|
|
1460
1628
|
// With the direct same-origin listener active, this message is a
|
|
@@ -1643,6 +1811,17 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1643
1811
|
const field = loadedItem.fields.find((candidate) => fieldIdentifierMatches(candidate, structureField.fieldId));
|
|
1644
1812
|
if (!field)
|
|
1645
1813
|
continue;
|
|
1814
|
+
const showSuggestions = editContext.mode === "suggestions" || editContext.showSuggestedEdits;
|
|
1815
|
+
const dirtyModifiedField = findModifiedBridgeField({
|
|
1816
|
+
modifiedFields: fieldsContext?.modifiedFields,
|
|
1817
|
+
structureField,
|
|
1818
|
+
field,
|
|
1819
|
+
itemDescriptor: itemDescriptor,
|
|
1820
|
+
dirtyOnly: true,
|
|
1821
|
+
});
|
|
1822
|
+
if (!showSuggestions && !dirtyModifiedField) {
|
|
1823
|
+
continue;
|
|
1824
|
+
}
|
|
1646
1825
|
const patch = buildBridgeFieldPatch({
|
|
1647
1826
|
field,
|
|
1648
1827
|
structureField,
|
|
@@ -1709,8 +1888,16 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1709
1888
|
return (bridgeClientRef.current?.sendCommand("applyRichTextCommand", payload) ??
|
|
1710
1889
|
false);
|
|
1711
1890
|
};
|
|
1891
|
+
const requestBridgePreviewGap = (payload) => {
|
|
1892
|
+
return (bridgeClientRef.current?.sendCommand("previewGap", payload) ?? false);
|
|
1893
|
+
};
|
|
1894
|
+
const requestBridgeCaptureSnapshot = (payload) => {
|
|
1895
|
+
return (bridgeClientRef.current?.sendCommand("captureComponentSnapshot", payload) ?? false);
|
|
1896
|
+
};
|
|
1712
1897
|
pageViewContext.requestBridgeScrollBy = requestBridgeScrollBy;
|
|
1713
1898
|
pageViewContext.requestBridgeRichTextCommand = requestBridgeRichTextCommand;
|
|
1899
|
+
pageViewContext.requestBridgePreviewGap = requestBridgePreviewGap;
|
|
1900
|
+
pageViewContext.requestBridgeCaptureSnapshot = requestBridgeCaptureSnapshot;
|
|
1714
1901
|
return () => {
|
|
1715
1902
|
if (pageViewContext.requestBridgeGeometry === requestBridgeGeometry) {
|
|
1716
1903
|
pageViewContext.requestBridgeGeometry = undefined;
|
|
@@ -1718,6 +1905,13 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1718
1905
|
if (pageViewContext.requestBridgeScrollBy === requestBridgeScrollBy) {
|
|
1719
1906
|
pageViewContext.requestBridgeScrollBy = undefined;
|
|
1720
1907
|
}
|
|
1908
|
+
if (pageViewContext.requestBridgePreviewGap === requestBridgePreviewGap) {
|
|
1909
|
+
pageViewContext.requestBridgePreviewGap = undefined;
|
|
1910
|
+
}
|
|
1911
|
+
if (pageViewContext.requestBridgeCaptureSnapshot ===
|
|
1912
|
+
requestBridgeCaptureSnapshot) {
|
|
1913
|
+
pageViewContext.requestBridgeCaptureSnapshot = undefined;
|
|
1914
|
+
}
|
|
1721
1915
|
if (pageViewContext.requestBridgeRichTextCommand ===
|
|
1722
1916
|
requestBridgeRichTextCommand) {
|
|
1723
1917
|
pageViewContext.requestBridgeRichTextCommand = undefined;
|
|
@@ -1913,6 +2107,21 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1913
2107
|
}
|
|
1914
2108
|
}
|
|
1915
2109
|
}, [fieldsContext?.focusedField]);
|
|
2110
|
+
// Drive the selection-scroll suppression window from the drag lifecycle.
|
|
2111
|
+
// Declared BEFORE the selection-scroll effect so it runs first in the same
|
|
2112
|
+
// commit (when a drop changes both dragObject and selection at once).
|
|
2113
|
+
useEffect(() => {
|
|
2114
|
+
if (editContext.dragObject) {
|
|
2115
|
+
// Suppress for the whole drag.
|
|
2116
|
+
suppressSelectionScrollUntilRef.current = Number.MAX_SAFE_INTEGER;
|
|
2117
|
+
}
|
|
2118
|
+
else if (suppressSelectionScrollUntilRef.current === Number.MAX_SAFE_INTEGER) {
|
|
2119
|
+
// Drag just ended: keep suppressing briefly so the drop's re-selection
|
|
2120
|
+
// (often the target's parent) doesn't scroll the page toward stale
|
|
2121
|
+
// pre-move geometry.
|
|
2122
|
+
suppressSelectionScrollUntilRef.current = Date.now() + 500;
|
|
2123
|
+
}
|
|
2124
|
+
}, [editContext.dragObject]);
|
|
1916
2125
|
useEffect(() => {
|
|
1917
2126
|
const selectionKey = editContext.selection.join("|");
|
|
1918
2127
|
const selectionChanged = selectionKey !== lastScrolledSelectionKeyRef.current;
|
|
@@ -1927,6 +2136,11 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1927
2136
|
suppressNextSelectionScrollRef.current = false;
|
|
1928
2137
|
return;
|
|
1929
2138
|
}
|
|
2139
|
+
// Suppressed during a drag and briefly after it ends. The drag owns
|
|
2140
|
+
// scrolling, and the drop's re-selection must not jump the page away from
|
|
2141
|
+
// where the user dropped (toward stale pre-move geometry).
|
|
2142
|
+
if (Date.now() < suppressSelectionScrollUntilRef.current)
|
|
2143
|
+
return;
|
|
1930
2144
|
if (!fieldsContext?.focusedField && editContext.selection.length > 0) {
|
|
1931
2145
|
const lastSelectedComponent = getComponentById(editContext.selection[editContext.selection.length - 1], pageViewContextRef.current.page);
|
|
1932
2146
|
if (lastSelectedComponent) {
|
|
@@ -1940,12 +2154,41 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
1940
2154
|
const activePageViewContext = pageViewContextRef.current;
|
|
1941
2155
|
if (!activePageViewContext)
|
|
1942
2156
|
return;
|
|
1943
|
-
const
|
|
2157
|
+
const scrollTarget = editContext.scrollIntoView;
|
|
2158
|
+
const requestState = scrollIntoViewRequestRef.current;
|
|
2159
|
+
const signature = getScrollIntoViewSignature(scrollTarget);
|
|
2160
|
+
if (requestState.signature !== signature) {
|
|
2161
|
+
requestState.signature = signature;
|
|
2162
|
+
requestState.requestedTextRangeGeometry = false;
|
|
2163
|
+
}
|
|
2164
|
+
const exactBounds = findScrollIntoViewDocumentBounds(activePageViewContext.bridgeGeometry, scrollTarget, { includeTextRangeFallback: false });
|
|
2165
|
+
let bounds = exactBounds;
|
|
2166
|
+
if (!bounds &&
|
|
2167
|
+
isTextRangeScrollTarget(scrollTarget) &&
|
|
2168
|
+
!requestState.requestedTextRangeGeometry) {
|
|
2169
|
+
requestState.requestedTextRangeGeometry = true;
|
|
2170
|
+
if (requestScrollTargetGeometry(activePageViewContext, scrollTarget)) {
|
|
2171
|
+
return;
|
|
2172
|
+
}
|
|
2173
|
+
}
|
|
2174
|
+
bounds ??= findScrollIntoViewDocumentBounds(activePageViewContext.bridgeGeometry, scrollTarget, { includeTextRangeFallback: true });
|
|
1944
2175
|
if (bounds) {
|
|
1945
2176
|
scrollBridgeBoundsIntoView(activePageViewContext, bounds, latestBridgeScrollRef.current);
|
|
1946
2177
|
}
|
|
2178
|
+
if (isTextRangeScrollTarget(scrollTarget)) {
|
|
2179
|
+
activePageViewContext.requestBridgeGeometry?.({
|
|
2180
|
+
source: SCROLL_INTO_VIEW_BRIDGE_SOURCE,
|
|
2181
|
+
textRanges: [],
|
|
2182
|
+
});
|
|
2183
|
+
}
|
|
2184
|
+
requestState.signature = "";
|
|
2185
|
+
requestState.requestedTextRangeGeometry = false;
|
|
1947
2186
|
editContext.setScrollIntoView(undefined);
|
|
1948
|
-
}, [
|
|
2187
|
+
}, [
|
|
2188
|
+
editContext.scrollIntoView,
|
|
2189
|
+
pageViewContext.page,
|
|
2190
|
+
pageViewContext.bridgeGeometry,
|
|
2191
|
+
]);
|
|
1949
2192
|
useEffect(() => {
|
|
1950
2193
|
const handleMessage = (message) => {
|
|
1951
2194
|
if (message.origin !== window.location.origin)
|
|
@@ -2030,8 +2273,9 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
2030
2273
|
});
|
|
2031
2274
|
bridge?.sendCommand("setEditorMode", {
|
|
2032
2275
|
mode: editContext.mode,
|
|
2276
|
+
suggestionsCursorActive: editContext.mode === "suggestions" || editContext.showSuggestedEdits,
|
|
2033
2277
|
});
|
|
2034
|
-
}, [editContext.mode]);
|
|
2278
|
+
}, [editContext.mode, editContext.showSuggestedEdits]);
|
|
2035
2279
|
useEffect(() => {
|
|
2036
2280
|
bridgeClientRef.current?.sendCommand("setLayoutKind", {
|
|
2037
2281
|
layoutKind: editContext.layoutMode,
|
|
@@ -2084,9 +2328,22 @@ function PageViewerFrameContent({ compareView, pageViewContext, editContext, cla
|
|
|
2084
2328
|
: (pageViewContext.deviceWidth || 640) +
|
|
2085
2329
|
editContext.configuration.outline.width +
|
|
2086
2330
|
"px";
|
|
2087
|
-
|
|
2331
|
+
const fullscreenPageTitle = pageViewContext.page?.item?.displayName?.trim() ||
|
|
2332
|
+
pageViewContext.page?.item?.name?.trim() ||
|
|
2333
|
+
"Page";
|
|
2334
|
+
return (_jsxs("div", { className: cn("relative flex h-full w-full flex-col items-center select-none", className, editContext.showAgentsPanel && !editContext.currentWizardId && "pr-0"), children: [!pageViewContext.fullscreen && (_jsx(EditorWarnings, { item: pageViewContext.page?.item })), slotCloseButton && (_jsx("div", { className: "absolute top-3 right-3 z-50", children: slotCloseButton })), pageViewContext.fullscreen && (_jsxs("div", { className: "border-neutral-grey-15 relative z-40 flex h-11 w-full shrink-0 items-center justify-center border-b bg-white px-28 text-center shadow-sm", "data-testid": "fullscreen-page-title-bar", children: [_jsx("div", { className: "text-neutral-grey-100 max-w-full truncate text-sm font-medium", title: fullscreenPageTitle, "data-testid": "fullscreen-page-title", children: fullscreenPageTitle }), _jsx("div", { className: "absolute top-1/2 right-3 -translate-y-1/2", children: _jsx(FullscreenControls, { device: pageViewContext.device, setDevice: (device) => pageViewContext.setDevice(device), canExit: !editContext.configuration.forceFullscreen, onExit: () => editContext.setFullscreen(false), firstMobileDeviceName: editContext.configuration.devices[0]?.name }) })] })), pageViewContext.device !== "desktop" && (_jsx(DeviceToolbar, { pageViewContext: pageViewContext, configuration: editContext.configuration })), _jsxs("div", { className: "relative flex min-h-0 flex-1 transition-[width] duration-300 ease-in-out select-none motion-reduce:transition-none", "data-testid": "page-viewer-viewport", style: {
|
|
2088
2335
|
width: deviceWidth,
|
|
2089
|
-
}, children: [_jsxs("div", { className: "relative h-full w-full overflow-hidden",
|
|
2336
|
+
}, children: [_jsxs("div", { className: "relative h-full w-full overflow-hidden", onMouseLeave: () => {
|
|
2337
|
+
if (pageViewContext.bridgeInteraction?.kind === "hover") {
|
|
2338
|
+
pageViewContext.setBridgeInteraction(undefined);
|
|
2339
|
+
}
|
|
2340
|
+
}, children: [_jsx("iframe", { ref: bindIframeRef, className: "page-iframe h-full w-full bg-white transition-[height] duration-300 ease-in-out motion-reduce:transition-none", style: {
|
|
2341
|
+
height: deviceHeight,
|
|
2342
|
+
cursor: editContext.mode === "suggestions" ||
|
|
2343
|
+
editContext.showSuggestedEdits
|
|
2344
|
+
? SUGGESTIONS_CURSOR_VALUE
|
|
2345
|
+
: undefined,
|
|
2346
|
+
}, src: iframeSrc, "data-testid": "pageEditoriframe", onLoad: () => {
|
|
2090
2347
|
const loadedSrc = iframeRef.current?.src;
|
|
2091
2348
|
if (loadedSrc) {
|
|
2092
2349
|
setLoadedIframeSrc(loadedSrc);
|