@parhelia/core 0.1.12881 → 0.1.12882
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/components/ui/card.d.ts +1 -3
- package/dist/components/ui/card.js +2 -2
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/context-menu.js +2 -2
- package/dist/config/config.js +7 -8
- package/dist/config/config.js.map +1 -1
- package/dist/config/types.d.ts +7 -0
- package/dist/config/types.js.map +1 -1
- package/dist/editor/FieldActionsOverlay.d.ts +1 -0
- package/dist/editor/FieldActionsOverlay.js +45 -1
- package/dist/editor/FieldActionsOverlay.js.map +1 -1
- package/dist/editor/FieldListField.d.ts +1 -1
- package/dist/editor/FieldListField.js +18 -20
- package/dist/editor/FieldListField.js.map +1 -1
- package/dist/editor/ImageEditor.d.ts +1 -6
- package/dist/editor/ImageEditor.js +3 -19
- package/dist/editor/ImageEditor.js.map +1 -1
- package/dist/editor/PictureEditor.d.ts +1 -2
- package/dist/editor/PictureEditor.js +14 -5
- package/dist/editor/PictureEditor.js.map +1 -1
- package/dist/editor/ai/Agents.js +2 -2
- package/dist/editor/ai/Agents.js.map +1 -1
- package/dist/editor/ai/GuidanceOverlay.js +11 -1
- package/dist/editor/ai/GuidanceOverlay.js.map +1 -1
- package/dist/editor/ai/InlineAiDialog.js +11 -22
- package/dist/editor/ai/InlineAiDialog.js.map +1 -1
- package/dist/editor/ai/InlineAiTrigger.js +57 -17
- package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
- package/dist/editor/ai/dialogs/capturePageDom.js +36 -66
- package/dist/editor/ai/dialogs/capturePageDom.js.map +1 -1
- package/dist/editor/ai/dialogs/capturePageScreenshot.js +162 -281
- package/dist/editor/ai/dialogs/capturePageScreenshot.js.map +1 -1
- package/dist/editor/ai/terminal/agentSessionState.d.ts +0 -3
- package/dist/editor/ai/terminal/agentSessionState.js +1 -3
- package/dist/editor/ai/terminal/agentSessionState.js.map +1 -1
- package/dist/editor/ai/terminal/agentStartRequest.d.ts +1 -2
- package/dist/editor/ai/terminal/agentStartRequest.js +1 -2
- package/dist/editor/ai/terminal/agentStartRequest.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentCostDisplay.js +1 -1
- package/dist/editor/ai/terminal/components/AgentCostDisplay.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentDocumentList.d.ts +0 -7
- package/dist/editor/ai/terminal/components/AgentDocumentList.js +13 -55
- package/dist/editor/ai/terminal/components/AgentDocumentList.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentFullPromptControls.d.ts +1 -3
- package/dist/editor/ai/terminal/components/AgentFullPromptControls.js +14 -22
- package/dist/editor/ai/terminal/components/AgentFullPromptControls.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentModeSelector.js +4 -4
- package/dist/editor/ai/terminal/components/AgentModeSelector.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js +4 -4
- package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptComposer.js +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptComposer.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptInputArea.d.ts +1 -2
- package/dist/editor/ai/terminal/components/AgentPromptInputArea.js +11 -8
- package/dist/editor/ai/terminal/components/AgentPromptInputArea.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.d.ts +4 -1
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js +14 -31
- 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/AgentTerminalFullLayout.d.ts +1 -2
- package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js +4 -2
- package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalMessageGroups.js +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalMessageGroups.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalView.js +2 -13
- package/dist/editor/ai/terminal/components/AgentTerminalView.js.map +1 -1
- package/dist/editor/ai/terminal/components/AiResponseMessage.js +14 -16
- package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
- package/dist/editor/ai/terminal/components/ContextInfoBar.js +2 -22
- package/dist/editor/ai/terminal/components/ContextInfoBar.js.map +1 -1
- package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js +26 -37
- package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js.map +1 -1
- package/dist/editor/ai/terminal/components/UserMessage.d.ts +1 -2
- package/dist/editor/ai/terminal/components/UserMessage.js +8 -144
- package/dist/editor/ai/terminal/components/UserMessage.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentPromptComposerHandlers.js +1 -1
- package/dist/editor/ai/terminal/useAgentPromptComposerHandlers.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentSessionSync.d.ts +0 -1
- package/dist/editor/ai/terminal/useAgentSubmitHandlers.d.ts +1 -3
- package/dist/editor/ai/terminal/useAgentSubmitHandlers.js +3 -9
- package/dist/editor/ai/terminal/useAgentSubmitHandlers.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalController.js +0 -7
- package/dist/editor/ai/terminal/useAgentTerminalController.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalUiState.js +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalUiState.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentUserMessageSocketHandler.js +1 -3
- package/dist/editor/ai/terminal/useAgentUserMessageSocketHandler.js.map +1 -1
- package/dist/editor/ai/useInlineAiPosition.d.ts +1 -1
- package/dist/editor/ai/useInlineAiPosition.js +52 -22
- package/dist/editor/ai/useInlineAiPosition.js.map +1 -1
- package/dist/editor/ai-image-editor/AiImageResultOverlay.js +62 -30
- package/dist/editor/ai-image-editor/AiImageResultOverlay.js.map +1 -1
- package/dist/editor/client/EditorShell.d.ts +1 -5
- package/dist/editor/client/EditorShell.js +136 -285
- package/dist/editor/client/EditorShell.js.map +1 -1
- package/dist/editor/client/editContext.d.ts +5 -33
- package/dist/editor/client/editContext.js.map +1 -1
- package/dist/editor/client/hooks/useSocketMessageHandler.js +17 -14
- package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
- package/dist/editor/client/itemsRepository.d.ts +0 -2
- package/dist/editor/client/itemsRepository.js +8 -15
- package/dist/editor/client/itemsRepository.js.map +1 -1
- package/dist/editor/client/operations.d.ts +1 -1
- package/dist/editor/client/operations.js +17 -41
- package/dist/editor/client/operations.js.map +1 -1
- package/dist/editor/client/pageModelBuilder.js +7 -24
- package/dist/editor/client/pageModelBuilder.js.map +1 -1
- package/dist/editor/commands/handlers/uiActionHandlers.js +5 -1
- package/dist/editor/commands/handlers/uiActionHandlers.js.map +1 -1
- package/dist/editor/editor-warnings/FinalWorkflowStateReadOnly.js +5 -0
- package/dist/editor/editor-warnings/FinalWorkflowStateReadOnly.js.map +1 -1
- package/dist/editor/editor-warnings/ItemLocked.js +6 -3
- package/dist/editor/editor-warnings/ItemLocked.js.map +1 -1
- package/dist/editor/field-types/MultiLineText.js +3 -10
- package/dist/editor/field-types/MultiLineText.js.map +1 -1
- package/dist/editor/field-types/RawEditor.js +1 -8
- package/dist/editor/field-types/RawEditor.js.map +1 -1
- package/dist/editor/field-types/RichTextEditorComponent.js +45 -156
- package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
- package/dist/editor/field-types/SingleLineText.js +3 -10
- package/dist/editor/field-types/SingleLineText.js.map +1 -1
- package/dist/editor/field-types/richtext/components/ReactSlate.js +2 -8
- package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
- package/dist/editor/field-types/richtext/contextMenuFactory.d.ts +2 -1
- package/dist/editor/field-types/richtext/contextMenuFactory.js +303 -100
- package/dist/editor/field-types/richtext/contextMenuFactory.js.map +1 -1
- package/dist/editor/field-types/richtext/types.d.ts +0 -2
- package/dist/editor/field-types/richtext/types.js.map +1 -1
- package/dist/editor/media-selector/MediaFolderBrowser.d.ts +2 -1
- package/dist/editor/media-selector/MediaFolderBrowser.js +19 -9
- package/dist/editor/media-selector/MediaFolderBrowser.js.map +1 -1
- package/dist/editor/media-selector/TreeSelector.js +30 -24
- package/dist/editor/media-selector/TreeSelector.js.map +1 -1
- package/dist/editor/media-selector/UploadZone.d.ts +2 -1
- package/dist/editor/media-selector/UploadZone.js +21 -9
- package/dist/editor/media-selector/UploadZone.js.map +1 -1
- package/dist/editor/menubar/PageSelector.js +2 -8
- package/dist/editor/menubar/PageSelector.js.map +1 -1
- package/dist/editor/menubar/VersionPreviewCard.js +249 -4
- package/dist/editor/menubar/VersionPreviewCard.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/EditControls.js +2 -2
- package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ManualBrowser.d.ts +10 -0
- package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +462 -63
- package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js +1 -1
- package/dist/editor/page-editor-chrome/CommentHighlightings.d.ts +2 -5
- package/dist/editor/page-editor-chrome/CommentHighlightings.js +215 -340
- package/dist/editor/page-editor-chrome/CommentHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.d.ts +1 -5
- package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js +4 -11
- package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js.map +1 -1
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js +13 -21
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
- package/dist/editor/page-editor-chrome/FieldEditedIndicator.js +29 -23
- package/dist/editor/page-editor-chrome/FieldEditedIndicator.js.map +1 -1
- package/dist/editor/page-editor-chrome/FrameMenu.js +19 -110
- package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
- package/dist/editor/page-editor-chrome/InlineEditor.d.ts +7 -0
- package/dist/editor/page-editor-chrome/InlineEditor.js +1719 -0
- package/dist/editor/page-editor-chrome/InlineEditor.js.map +1 -0
- package/dist/editor/page-editor-chrome/LockedFieldIndicator.d.ts +2 -3
- package/dist/editor/page-editor-chrome/LockedFieldIndicator.js +45 -148
- package/dist/editor/page-editor-chrome/LockedFieldIndicator.js.map +1 -1
- package/dist/editor/page-editor-chrome/PageEditorChrome.d.ts +0 -2
- package/dist/editor/page-editor-chrome/PageEditorChrome.js +21 -25
- package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
- package/dist/editor/page-editor-chrome/PictureEditorOverlay.js +128 -163
- package/dist/editor/page-editor-chrome/PictureEditorOverlay.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.d.ts +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +3 -6
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.d.ts +2 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +146 -83
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.d.ts +2 -5
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +63 -144
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/VersionDiffHighlightings.d.ts +2 -1
- package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js +30 -101
- package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.d.ts +1 -10
- package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js +122 -105
- package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js.map +1 -1
- package/dist/editor/page-editor-chrome/overlay/geometry.d.ts +4 -11
- package/dist/editor/page-editor-chrome/overlay/geometry.js +36 -139
- package/dist/editor/page-editor-chrome/overlay/geometry.js.map +1 -1
- package/dist/editor/page-editor-chrome/overlay/iframeAccess.d.ts +2 -0
- package/dist/editor/page-editor-chrome/overlay/iframeAccess.js +21 -0
- package/dist/editor/page-editor-chrome/overlay/iframeAccess.js.map +1 -0
- package/dist/editor/page-editor-chrome/useInlineAICompletion.d.ts +7 -0
- package/dist/editor/page-editor-chrome/useInlineAICompletion.js +758 -0
- package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +1 -0
- package/dist/editor/page-viewer/EditorForm.js +1 -17
- package/dist/editor/page-viewer/EditorForm.js.map +1 -1
- package/dist/editor/page-viewer/MiniMap.d.ts +2 -2
- package/dist/editor/page-viewer/MiniMap.js +364 -176
- package/dist/editor/page-viewer/MiniMap.js.map +1 -1
- package/dist/editor/page-viewer/PageViewer.js +13 -40
- package/dist/editor/page-viewer/PageViewer.js.map +1 -1
- package/dist/editor/page-viewer/PageViewerFrame.d.ts +5 -0
- package/dist/editor/page-viewer/PageViewerFrame.js +1509 -1527
- package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
- package/dist/editor/page-viewer/pageModelSkeletonBuilder.d.ts +3 -0
- package/dist/editor/page-viewer/pageModelSkeletonBuilder.js +796 -0
- package/dist/editor/page-viewer/pageModelSkeletonBuilder.js.map +1 -0
- package/dist/editor/page-viewer/pageViewContext.d.ts +0 -32
- package/dist/editor/page-viewer/pageViewContext.js +6 -37
- package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
- package/dist/editor/reviews/Comment.d.ts +1 -2
- package/dist/editor/reviews/Comment.js +4 -9
- package/dist/editor/reviews/Comment.js.map +1 -1
- package/dist/editor/reviews/CommentEditor.js +1 -1
- package/dist/editor/reviews/CommentEditor.js.map +1 -1
- package/dist/editor/reviews/CommentPopover.js +9 -68
- package/dist/editor/reviews/CommentPopover.js.map +1 -1
- package/dist/editor/reviews/CommentView.js +4 -24
- package/dist/editor/reviews/CommentView.js.map +1 -1
- package/dist/editor/reviews/Comments.d.ts +2 -0
- package/dist/editor/reviews/Comments.js +30 -29
- package/dist/editor/reviews/Comments.js.map +1 -1
- package/dist/editor/reviews/FeedbackCard.d.ts +2 -4
- package/dist/editor/reviews/FeedbackCard.js +5 -5
- package/dist/editor/reviews/FeedbackCard.js.map +1 -1
- package/dist/editor/reviews/SuggestedEdit.js +6 -4
- package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
- package/dist/editor/reviews/SuggestionDisplayPopover.js +2 -3
- package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
- package/dist/editor/reviews/commentAi.js +27 -96
- package/dist/editor/reviews/commentAi.js.map +1 -1
- package/dist/editor/reviews/feedbackSelection.js +4 -32
- package/dist/editor/reviews/feedbackSelection.js.map +1 -1
- package/dist/editor/services/agentService.d.ts +0 -15
- package/dist/editor/services/agentService.js +1 -11
- package/dist/editor/services/agentService.js.map +1 -1
- package/dist/editor/services/contentService.d.ts +1 -0
- package/dist/editor/services/contentService.js.map +1 -1
- package/dist/editor/services/reviewsService.d.ts +2 -2
- package/dist/editor/services/reviewsService.js.map +1 -1
- package/dist/editor/settings/SettingsView.js +2 -2
- package/dist/editor/settings/SettingsView.js.map +1 -1
- package/dist/editor/settings/panels/ProjectTemplatesPanel.js +1 -1
- package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
- package/dist/editor/settings/panels/ProvidersPanel.js +3 -2
- package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -1
- package/dist/editor/sidebar/MorePanelsButton.js +1 -1
- package/dist/editor/sidebar/MorePanelsButton.js.map +1 -1
- package/dist/editor/sidebar/Workbox.js +1 -1
- package/dist/editor/sidebar/Workbox.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/SimpleIconButton.d.ts +2 -2
- package/dist/editor/ui/SimpleIconButton.js +1 -1
- package/dist/editor/ui/SimpleIconButton.js.map +1 -1
- package/dist/editor/utils.d.ts +17 -1
- package/dist/editor/utils.js +143 -0
- package/dist/editor/utils.js.map +1 -1
- package/dist/editor/version-diff/versionDiffTargets.d.ts +8 -3
- package/dist/editor/version-diff/versionDiffTargets.js +94 -37
- package/dist/editor/version-diff/versionDiffTargets.js.map +1 -1
- package/dist/editor/views/MediaFolderEditView.js +1 -1
- package/dist/editor/views/MediaFolderEditView.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/splash-screen/DialogWrappers.js +2 -2
- package/dist/splash-screen/DialogWrappers.js.map +1 -1
- package/dist/splash-screen/ModernSplashScreen.js +3 -11
- package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
- package/dist/splash-screen/NewPage.js +5 -7
- package/dist/splash-screen/NewPage.js.map +1 -1
- package/dist/splash-screen/OpenPage.js +3 -5
- package/dist/splash-screen/OpenPage.js.map +1 -1
- package/dist/splash-screen/RecentPages.js +3 -3
- package/dist/splash-screen/RecentPages.js.map +1 -1
- package/package.json +1 -2
- package/styles.css +0 -49
- package/dist/editor/ai/terminal/components/AgentEditHistoryButton.d.ts +0 -5
- package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js +0 -12
- package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js.map +0 -1
- package/dist/editor/bridge/BridgeClient.d.ts +0 -80
- package/dist/editor/bridge/BridgeClient.js +0 -417
- package/dist/editor/bridge/BridgeClient.js.map +0 -1
- package/dist/editor/field-types/useFormFieldCaretPresence.d.ts +0 -13
- package/dist/editor/field-types/useFormFieldCaretPresence.js +0 -92
- package/dist/editor/field-types/useFormFieldCaretPresence.js.map +0 -1
- package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.d.ts +0 -6
- package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js +0 -123
- package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js.map +0 -1
- package/dist/editor/page-editor-chrome/useBridgeInlineEditing.d.ts +0 -26
- package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js +0 -222
- package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js.map +0 -1
- package/dist/editor/page-viewer/bridgeFieldPatch.d.ts +0 -20
- package/dist/editor/page-viewer/bridgeFieldPatch.js +0 -33
- package/dist/editor/page-viewer/bridgeFieldPatch.js.map +0 -1
- package/dist/editor/reviews/commentTransientSelection.d.ts +0 -23
- package/dist/editor/reviews/commentTransientSelection.js +0 -7
- package/dist/editor/reviews/commentTransientSelection.js.map +0 -1
- package/dist/editor/reviews/feedbackOrdering.d.ts +0 -5
- package/dist/editor/reviews/feedbackOrdering.js +0 -27
- package/dist/editor/reviews/feedbackOrdering.js.map +0 -1
- package/dist/editor/reviews/suggestedEditState.d.ts +0 -12
- package/dist/editor/reviews/suggestedEditState.js +0 -90
- package/dist/editor/reviews/suggestedEditState.js.map +0 -1
- package/dist/editor/reviews/suggestionDisplayValue.d.ts +0 -43
- package/dist/editor/reviews/suggestionDisplayValue.js +0 -93
- package/dist/editor/reviews/suggestionDisplayValue.js.map +0 -1
|
@@ -5,9 +5,10 @@ import { useSlotContext } from "../views/editorSlotContext";
|
|
|
5
5
|
import { getVisibleInsertOptions } from "../insertMenuItems";
|
|
6
6
|
import { getAllPlaceholders } from "../componentTreeHelper";
|
|
7
7
|
import { PlaceholderDropZone } from "./PlaceholderDropZone";
|
|
8
|
-
import {
|
|
8
|
+
import { measureComponentRect, measureElementRect, rectEquals, } from "./overlay/geometry";
|
|
9
9
|
import { useOverlayMeasurement } from "./overlay/useOverlayMeasurement";
|
|
10
|
-
|
|
10
|
+
import { findElementByNormalizedDataAttribute, getNextNonChromeMarkerElement, getPreviousNonChromeMarkerElement, } from "../utils";
|
|
11
|
+
export function PlaceholderDropZones({ iframe, size, pageViewContext, }) {
|
|
11
12
|
const [placeholders, setPlaceholders] = useState([]);
|
|
12
13
|
const editContext = useEditContext();
|
|
13
14
|
const slotContext = useSlotContext();
|
|
@@ -19,6 +20,7 @@ export function PlaceholderDropZones({ size, pageViewContext, }) {
|
|
|
19
20
|
const zones = useOverlayMeasurement((metrics) => {
|
|
20
21
|
if (!slotContext?.isActive ||
|
|
21
22
|
!pageViewContext ||
|
|
23
|
+
!iframe ||
|
|
22
24
|
(!editContext?.dragObject &&
|
|
23
25
|
!editContext?.selectedForInsertion &&
|
|
24
26
|
!editContext?.insertMode)) {
|
|
@@ -47,12 +49,102 @@ export function PlaceholderDropZones({ size, pageViewContext, }) {
|
|
|
47
49
|
const measuredZones = [];
|
|
48
50
|
const scrollHeight = metrics.scrollHeight * metrics.visualScale;
|
|
49
51
|
const scrollWidth = metrics.scrollWidth * metrics.visualScale;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
matchingPlaceholders.forEach((placeholder) => {
|
|
53
|
+
const iframeBody = iframe?.contentWindow?.document?.body;
|
|
54
|
+
if (!iframeBody)
|
|
55
|
+
return;
|
|
56
|
+
let placeholderElement = iframeBody.querySelector("[data-placeholder-start='" + placeholder.key + "']");
|
|
57
|
+
let isUsingParentBounds = false;
|
|
58
|
+
if (!placeholderElement && placeholder.components.length > 0) {
|
|
59
|
+
const firstComponent = placeholder.components[0];
|
|
60
|
+
placeholderElement =
|
|
61
|
+
getNextNonChromeMarkerElement(findElementByNormalizedDataAttribute(iframeBody, "data-component-start", firstComponent?.id)) ||
|
|
62
|
+
firstComponent?.firstDOMElement ||
|
|
63
|
+
null;
|
|
64
|
+
}
|
|
65
|
+
if (!placeholderElement && placeholder.parentComponent) {
|
|
66
|
+
placeholderElement =
|
|
67
|
+
getNextNonChromeMarkerElement(findElementByNormalizedDataAttribute(iframeBody, "data-component-start", placeholder.parentComponent.id)) ||
|
|
68
|
+
placeholder.parentComponent.firstDOMElement ||
|
|
69
|
+
null;
|
|
70
|
+
isUsingParentBounds = true;
|
|
71
|
+
}
|
|
72
|
+
if (!placeholderElement)
|
|
73
|
+
return;
|
|
74
|
+
let position;
|
|
75
|
+
let anchor = "top";
|
|
76
|
+
let index = 0;
|
|
77
|
+
const description = placeholderElement.getAttribute("data-description");
|
|
78
|
+
let referenceElement;
|
|
79
|
+
let orientation = null;
|
|
80
|
+
if (isUsingParentBounds) {
|
|
81
|
+
const rect = measureElementRect(placeholderElement, metrics);
|
|
82
|
+
if (!rect)
|
|
83
|
+
return;
|
|
84
|
+
position = {
|
|
85
|
+
x: rect.x + rect.width / 2,
|
|
86
|
+
y: rect.y + rect.height / 2,
|
|
87
|
+
};
|
|
88
|
+
anchor = "top";
|
|
89
|
+
referenceElement = placeholderElement;
|
|
90
|
+
orientation = "vertical";
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
const prev = getPreviousElement(placeholderElement);
|
|
94
|
+
const nextOrParent = getNextElement(placeholderElement) ||
|
|
95
|
+
placeholderElement.parentElement;
|
|
96
|
+
if (!nextOrParent && !prev)
|
|
97
|
+
return;
|
|
98
|
+
orientation = placeholderElement?.getAttribute("data-orientation");
|
|
99
|
+
if (!orientation) {
|
|
100
|
+
orientation = detectOrientation(placeholderElement, placeholder.components);
|
|
101
|
+
}
|
|
102
|
+
const rect = measureElementRect((prev ?? nextOrParent), metrics);
|
|
103
|
+
if (!rect)
|
|
104
|
+
return;
|
|
105
|
+
position =
|
|
106
|
+
orientation === "horizontal"
|
|
107
|
+
? {
|
|
108
|
+
x: prev ? rect.x + rect.width : rect.x,
|
|
109
|
+
y: rect.y + rect.height / 2,
|
|
110
|
+
}
|
|
111
|
+
: {
|
|
112
|
+
x: rect.x + rect.width / 2,
|
|
113
|
+
y: prev ? rect.y + rect.height : rect.y,
|
|
114
|
+
};
|
|
115
|
+
if (prev && orientation === "horizontal")
|
|
116
|
+
anchor = "right";
|
|
117
|
+
if (prev && orientation !== "horizontal")
|
|
118
|
+
anchor = "bottom";
|
|
119
|
+
if (!prev && orientation === "horizontal")
|
|
120
|
+
anchor = "left";
|
|
121
|
+
if (!prev && orientation !== "horizontal")
|
|
122
|
+
anchor = "top";
|
|
123
|
+
referenceElement = prev ?? nextOrParent;
|
|
124
|
+
}
|
|
125
|
+
measuredZones.push({
|
|
126
|
+
placeholder,
|
|
127
|
+
position,
|
|
128
|
+
index,
|
|
129
|
+
element: referenceElement,
|
|
130
|
+
anchor,
|
|
131
|
+
description,
|
|
54
132
|
});
|
|
55
|
-
|
|
133
|
+
placeholder.components.forEach((component) => {
|
|
134
|
+
const componentRect = measureComponentRect(iframe, component, metrics);
|
|
135
|
+
if (!componentRect)
|
|
136
|
+
return;
|
|
137
|
+
const position = getPositionFromRect(componentRect.rect, orientation);
|
|
138
|
+
index++;
|
|
139
|
+
measuredZones.push({
|
|
140
|
+
placeholder,
|
|
141
|
+
position,
|
|
142
|
+
index,
|
|
143
|
+
anchor: orientation === "horizontal" ? "right" : "bottom",
|
|
144
|
+
element: componentRect.elements[componentRect.elements.length - 1],
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
});
|
|
56
148
|
const zonesWithoutBeforeFirstLayout = measuredZones.filter((z) => {
|
|
57
149
|
const components = z.placeholder.components;
|
|
58
150
|
const firstLayoutIndex = components.findIndex((c) => !!c.layoutId);
|
|
@@ -73,19 +165,17 @@ export function PlaceholderDropZones({ size, pageViewContext, }) {
|
|
|
73
165
|
return true;
|
|
74
166
|
})
|
|
75
167
|
: zonesWithoutBeforeFirstLayout;
|
|
76
|
-
const contentWidth = measuredZones.reduce((max, zone) => Math.max(max, zone.position.x + 20), scrollWidth);
|
|
77
|
-
const contentHeight = measuredZones.reduce((max, zone) => Math.max(max, zone.position.y + 20), scrollHeight);
|
|
78
168
|
const usedPositions = new Map();
|
|
79
169
|
const DROPZONE_SIZE = 32;
|
|
80
170
|
const OVERLAP_THRESHOLD = DROPZONE_SIZE;
|
|
81
171
|
return filteredZones.map((zone) => {
|
|
82
|
-
let x = Math.min(
|
|
83
|
-
let y = Math.min(
|
|
172
|
+
let x = Math.min(scrollWidth - 20, Math.max(20, zone.position.x));
|
|
173
|
+
let y = Math.min(scrollHeight - 20, Math.max(20, zone.position.y));
|
|
84
174
|
const posKey = `${Math.round(x / OVERLAP_THRESHOLD)}_${Math.round(y / OVERLAP_THRESHOLD)}`;
|
|
85
175
|
const overlapCount = usedPositions.get(posKey) || 0;
|
|
86
176
|
if (overlapCount > 0) {
|
|
87
177
|
x = x + overlapCount * (DROPZONE_SIZE + 8);
|
|
88
|
-
if (x >
|
|
178
|
+
if (x > scrollWidth - 20) {
|
|
89
179
|
x = 20 + ((overlapCount - 1) % 5) * (DROPZONE_SIZE + 8);
|
|
90
180
|
y = y + Math.floor((overlapCount - 1) / 5) * (DROPZONE_SIZE + 8);
|
|
91
181
|
}
|
|
@@ -99,7 +189,7 @@ export function PlaceholderDropZones({ size, pageViewContext, }) {
|
|
|
99
189
|
}, [
|
|
100
190
|
slotContext?.isActive,
|
|
101
191
|
pageViewContext,
|
|
102
|
-
|
|
192
|
+
iframe,
|
|
103
193
|
editContext?.dragObject,
|
|
104
194
|
editContext?.selectedForInsertion,
|
|
105
195
|
editContext?.insertMode,
|
|
@@ -136,7 +226,7 @@ function placeholderZonesEqual(previous, next) {
|
|
|
136
226
|
const nextZone = next[i];
|
|
137
227
|
if (previousZone.placeholder.key !== nextZone.placeholder.key ||
|
|
138
228
|
previousZone.index !== nextZone.index ||
|
|
139
|
-
|
|
229
|
+
previousZone.element !== nextZone.element ||
|
|
140
230
|
previousZone.anchor !== nextZone.anchor ||
|
|
141
231
|
previousZone.description !== nextZone.description ||
|
|
142
232
|
!rectEquals({ ...previousZone.position, width: 0, height: 0 }, { ...nextZone.position, width: 0, height: 0 })) {
|
|
@@ -145,6 +235,12 @@ function placeholderZonesEqual(previous, next) {
|
|
|
145
235
|
}
|
|
146
236
|
return true;
|
|
147
237
|
}
|
|
238
|
+
function getPreviousElement(element) {
|
|
239
|
+
return getPreviousNonChromeMarkerElement(element);
|
|
240
|
+
}
|
|
241
|
+
function getNextElement(element) {
|
|
242
|
+
return getNextNonChromeMarkerElement(element);
|
|
243
|
+
}
|
|
148
244
|
function getPositionFromRect(rect, orientation) {
|
|
149
245
|
const position = orientation === "horizontal"
|
|
150
246
|
? {
|
|
@@ -157,79 +253,46 @@ function getPositionFromRect(rect, orientation) {
|
|
|
157
253
|
};
|
|
158
254
|
return position;
|
|
159
255
|
}
|
|
160
|
-
function
|
|
161
|
-
|
|
162
|
-
const
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
return zones;
|
|
176
|
-
const isUsingParentBounds = !placeholderMeasurement?.rect &&
|
|
177
|
-
!firstComponentMeasurement?.rect &&
|
|
178
|
-
!!parentMeasurement?.rect;
|
|
179
|
-
const position = isUsingParentBounds || placeholder.components.length === 0
|
|
180
|
-
? {
|
|
181
|
-
x: referenceRect.x + referenceRect.width / 2,
|
|
182
|
-
y: referenceRect.y + referenceRect.height / 2,
|
|
256
|
+
function detectOrientation(placeholderElement, components) {
|
|
257
|
+
// Check parent element for flex/grid direction
|
|
258
|
+
const parentElement = placeholderElement.parentElement;
|
|
259
|
+
if (parentElement) {
|
|
260
|
+
const parentStyle = window.getComputedStyle(parentElement);
|
|
261
|
+
const display = parentStyle.getPropertyValue("display");
|
|
262
|
+
// Check for flex direction
|
|
263
|
+
if (display === "flex" || display === "inline-flex") {
|
|
264
|
+
const flexDirection = parentStyle.getPropertyValue("flex-direction");
|
|
265
|
+
if (flexDirection === "row" || flexDirection === "row-reverse") {
|
|
266
|
+
return "horizontal";
|
|
267
|
+
}
|
|
268
|
+
if (flexDirection === "column" || flexDirection === "column-reverse") {
|
|
269
|
+
return "vertical";
|
|
270
|
+
}
|
|
183
271
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
placeholder.components.forEach((component, index) => {
|
|
194
|
-
const componentMeasurement = measureBridgeComponentRect(geometry, component, metrics);
|
|
195
|
-
if (!componentMeasurement?.rect)
|
|
196
|
-
return;
|
|
197
|
-
zones.push({
|
|
198
|
-
placeholder,
|
|
199
|
-
position: getPositionFromRect(componentMeasurement.rect, orientation),
|
|
200
|
-
index: index + 1,
|
|
201
|
-
element: null,
|
|
202
|
-
anchor: orientation === "horizontal" ? "right" : "bottom",
|
|
203
|
-
description: placeholderMeasurement?.target.description,
|
|
204
|
-
});
|
|
205
|
-
});
|
|
206
|
-
return zones;
|
|
207
|
-
}
|
|
208
|
-
function getBeforePositionFromRect(rect, orientation) {
|
|
209
|
-
return orientation === "horizontal"
|
|
210
|
-
? {
|
|
211
|
-
x: rect.x,
|
|
212
|
-
y: rect.y + rect.height / 2,
|
|
272
|
+
// Check for grid layout
|
|
273
|
+
if (display === "grid" || display === "inline-grid") {
|
|
274
|
+
const gridAutoFlow = parentStyle.getPropertyValue("grid-auto-flow");
|
|
275
|
+
if (gridAutoFlow.includes("column")) {
|
|
276
|
+
return "horizontal";
|
|
277
|
+
}
|
|
278
|
+
if (gridAutoFlow.includes("row")) {
|
|
279
|
+
return "vertical";
|
|
280
|
+
}
|
|
213
281
|
}
|
|
214
|
-
: {
|
|
215
|
-
x: rect.x + rect.width / 2,
|
|
216
|
-
y: rect.y,
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
function getBridgePlaceholderOrientation(placeholder, geometry, metrics, explicitOrientation) {
|
|
220
|
-
if (explicitOrientation === "horizontal" ||
|
|
221
|
-
explicitOrientation === "vertical") {
|
|
222
|
-
return explicitOrientation;
|
|
223
282
|
}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
const
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
283
|
+
// Analyze sibling positions if available
|
|
284
|
+
if (components.length > 1) {
|
|
285
|
+
const prevRect = components[0]?.firstDOMElement?.getBoundingClientRect();
|
|
286
|
+
const nextRect = components[1]?.firstDOMElement?.getBoundingClientRect();
|
|
287
|
+
if (!prevRect || !nextRect)
|
|
288
|
+
return "horizontal";
|
|
289
|
+
// Compare the position differences
|
|
290
|
+
const horizontalDiff = Math.abs(nextRect.x - prevRect.x);
|
|
291
|
+
const verticalDiff = Math.abs(nextRect.y - prevRect.y);
|
|
292
|
+
// If horizontal difference is greater, it's likely a horizontal layout
|
|
293
|
+
return horizontalDiff > verticalDiff ? "horizontal" : "vertical";
|
|
232
294
|
}
|
|
295
|
+
// Default to vertical if we can't determine
|
|
233
296
|
return "vertical";
|
|
234
297
|
}
|
|
235
298
|
function isInsideLayoutComponent(component) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaceholderDropZones.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/PlaceholderDropZones.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PlaceholderDropZones.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/PlaceholderDropZones.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export declare function SuggestionHighlightings({ pageViewContext, variant, }: {
|
|
4
|
-
pageViewContext: PageViewContext;
|
|
5
|
-
variant?: FeedbackHighlightVariant;
|
|
1
|
+
export declare function SuggestionHighlightings({ iframe, }: {
|
|
2
|
+
iframe: HTMLIFrameElement;
|
|
6
3
|
}): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useMemo,
|
|
2
|
+
import { useEffect, useMemo, useState } from "react";
|
|
3
3
|
import { useEditContext, useFieldsEditContext } from "../client/editContext";
|
|
4
|
+
import { findFieldElement } from "../utils";
|
|
4
5
|
import * as DiffLib from "diff";
|
|
5
6
|
import { SuggestionDisplayPopover } from "../reviews/SuggestionDisplayPopover";
|
|
6
|
-
import {
|
|
7
|
+
import { measureElementRect, measureTextRangeRects, rectListEquals, } from "./overlay/geometry";
|
|
8
|
+
import { getAccessibleIframeDocument } from "./overlay/iframeAccess";
|
|
7
9
|
import { useOverlayMeasurement } from "./overlay/useOverlayMeasurement";
|
|
8
10
|
import { dedupeFeedbackHighlightItems, FeedbackHighlightBadge, FeedbackHighlightBadgeTray, } from "./FeedbackHighlightBadge";
|
|
9
|
-
const SUGGESTION_BRIDGE_SOURCE = "suggestions";
|
|
10
11
|
function suggestionMeasurementsEqual(previous, next) {
|
|
11
12
|
const previousKeys = Object.keys(previous);
|
|
12
13
|
const nextKeys = Object.keys(next);
|
|
@@ -24,15 +25,9 @@ function suggestionMeasurementsEqual(previous, next) {
|
|
|
24
25
|
}
|
|
25
26
|
return true;
|
|
26
27
|
}
|
|
27
|
-
export function SuggestionHighlightings({
|
|
28
|
+
export function SuggestionHighlightings({ iframe, }) {
|
|
28
29
|
const editContext = useEditContext();
|
|
29
30
|
const modifiedFields = useFieldsEditContext();
|
|
30
|
-
const lastMeasurementsRef = useRef({});
|
|
31
|
-
const bridgeTextRangeRequestRef = useRef({
|
|
32
|
-
signature: "",
|
|
33
|
-
requestedSignature: "",
|
|
34
|
-
hasSeenAnyTarget: false,
|
|
35
|
-
});
|
|
36
31
|
const [rangeDataBySuggestionId, setRangeDataBySuggestionId] = useState({});
|
|
37
32
|
const suggestions = useMemo(() => (editContext?.suggestedEdits || []).filter((suggestion) => suggestion.status !== "applied" && suggestion.status !== "rejected"), [editContext?.suggestedEdits]);
|
|
38
33
|
useEffect(() => {
|
|
@@ -104,133 +99,57 @@ export function SuggestionHighlightings({ pageViewContext, variant = "default",
|
|
|
104
99
|
newText: newValue,
|
|
105
100
|
};
|
|
106
101
|
}));
|
|
107
|
-
if (!cancelled)
|
|
102
|
+
if (!cancelled)
|
|
108
103
|
setRangeDataBySuggestionId(nextRangeData);
|
|
109
|
-
}
|
|
110
104
|
};
|
|
111
105
|
resolveRanges();
|
|
112
106
|
return () => {
|
|
113
107
|
cancelled = true;
|
|
114
108
|
};
|
|
115
109
|
}, [editContext, suggestions]);
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const rangeData = rangeDataBySuggestionId[suggestion.id];
|
|
120
|
-
if (!rangeData)
|
|
121
|
-
return [];
|
|
122
|
-
const ranges = rangeData.newRanges.length > 0
|
|
123
|
-
? rangeData.newRanges
|
|
124
|
-
: rangeData.oldRanges;
|
|
125
|
-
return ranges.map(([start, end]) => ({
|
|
126
|
-
key: getSuggestionTextRangeKey(suggestion),
|
|
127
|
-
fieldId: suggestion.fieldId,
|
|
128
|
-
item: {
|
|
129
|
-
id: suggestion.itemId,
|
|
130
|
-
language: suggestion.mainItemLanguage,
|
|
131
|
-
version: suggestion.mainItemVersion,
|
|
132
|
-
},
|
|
133
|
-
start,
|
|
134
|
-
end,
|
|
135
|
-
}));
|
|
136
|
-
}), [rangeDataBySuggestionId, suggestions]);
|
|
137
|
-
const bridgeTextRangeSignature = useMemo(() => bridgeTextRanges
|
|
138
|
-
.map((range) => [
|
|
139
|
-
range.key,
|
|
140
|
-
range.fieldId,
|
|
141
|
-
range.item.id,
|
|
142
|
-
range.item.language,
|
|
143
|
-
range.item.version,
|
|
144
|
-
range.start,
|
|
145
|
-
range.end,
|
|
146
|
-
].join(":"))
|
|
147
|
-
.join("|"), [bridgeTextRanges]);
|
|
148
|
-
useEffect(() => {
|
|
149
|
-
const requestState = bridgeTextRangeRequestRef.current;
|
|
150
|
-
if (!pageViewContext.bridgeReady || bridgeTextRanges.length === 0) {
|
|
151
|
-
if (pageViewContext.bridgeReady && requestState.signature !== "") {
|
|
152
|
-
// Drop our contribution from the shared union so the highlights clear
|
|
153
|
-
// instead of lingering as phantom geometry targets.
|
|
154
|
-
pageViewContext.requestBridgeGeometry?.({
|
|
155
|
-
source: SUGGESTION_BRIDGE_SOURCE,
|
|
156
|
-
textRanges: [],
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
requestState.signature = "";
|
|
160
|
-
requestState.requestedSignature = "";
|
|
161
|
-
requestState.hasSeenAnyTarget = false;
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
const signatureChanged = requestState.signature !== bridgeTextRangeSignature;
|
|
165
|
-
if (signatureChanged) {
|
|
166
|
-
requestState.signature = bridgeTextRangeSignature;
|
|
167
|
-
requestState.requestedSignature = "";
|
|
168
|
-
requestState.hasSeenAnyTarget = false;
|
|
169
|
-
}
|
|
170
|
-
const bridgeGeometry = pageViewContext.bridgeGeometry;
|
|
171
|
-
const hasAnyTarget = hasAnyExpectedBridgeTextRange(bridgeGeometry, bridgeTextRanges);
|
|
172
|
-
const hasAllTargets = hasAllExpectedBridgeTextRanges(bridgeGeometry, bridgeTextRanges);
|
|
173
|
-
if (hasAnyTarget) {
|
|
174
|
-
requestState.hasSeenAnyTarget = true;
|
|
175
|
-
}
|
|
176
|
-
if (hasAllTargets && !signatureChanged) {
|
|
177
|
-
requestState.requestedSignature = "";
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
const shouldRequest = signatureChanged ||
|
|
181
|
-
requestState.requestedSignature !== bridgeTextRangeSignature ||
|
|
182
|
-
(requestState.hasSeenAnyTarget && !hasAnyTarget);
|
|
183
|
-
if (!shouldRequest)
|
|
184
|
-
return;
|
|
185
|
-
requestState.requestedSignature = bridgeTextRangeSignature;
|
|
186
|
-
pageViewContext.requestBridgeGeometry?.({
|
|
187
|
-
source: SUGGESTION_BRIDGE_SOURCE,
|
|
188
|
-
textRanges: bridgeTextRanges,
|
|
189
|
-
});
|
|
190
|
-
}, [
|
|
191
|
-
pageViewContext,
|
|
192
|
-
pageViewContext.bridgeReady,
|
|
193
|
-
pageViewContext.bridgeGeometry,
|
|
194
|
-
bridgeTextRanges,
|
|
195
|
-
bridgeTextRangeSignature,
|
|
196
|
-
]);
|
|
197
|
-
const measurements = useOverlayMeasurement((metrics, reasons) => {
|
|
198
|
-
const bridgeGeometry = pageViewContext.bridgeGeometry;
|
|
199
|
-
if (!bridgeGeometry)
|
|
110
|
+
const measurements = useOverlayMeasurement((metrics) => {
|
|
111
|
+
const iframeDocument = getAccessibleIframeDocument(iframe);
|
|
112
|
+
if (!iframeDocument?.body)
|
|
200
113
|
return {};
|
|
201
|
-
const canReusePreviousMeasurement = !reasons.has("viewport") &&
|
|
202
|
-
!reasons.has("layout") &&
|
|
203
|
-
!reasons.has("text");
|
|
204
114
|
const nextMeasurements = {};
|
|
205
115
|
for (const suggestion of suggestions) {
|
|
206
116
|
if (!suggestion.fieldId)
|
|
207
117
|
continue;
|
|
208
|
-
|
|
118
|
+
const fieldElement = findFieldElement(iframe, {
|
|
119
|
+
item: {
|
|
120
|
+
id: suggestion.itemId,
|
|
121
|
+
language: suggestion.mainItemLanguage,
|
|
122
|
+
version: suggestion.mainItemVersion,
|
|
123
|
+
},
|
|
124
|
+
fieldId: suggestion.fieldId,
|
|
125
|
+
});
|
|
126
|
+
if (!fieldElement)
|
|
209
127
|
continue;
|
|
210
|
-
const
|
|
211
|
-
if (
|
|
212
|
-
const previousMeasurement = lastMeasurementsRef.current[suggestion.id];
|
|
213
|
-
if (canReusePreviousMeasurement &&
|
|
214
|
-
previousMeasurement?.isTextRange &&
|
|
215
|
-
previousMeasurement.rects.length) {
|
|
216
|
-
nextMeasurements[suggestion.id] = previousMeasurement;
|
|
217
|
-
}
|
|
128
|
+
const rangeData = rangeDataBySuggestionId[suggestion.id];
|
|
129
|
+
if (!rangeData)
|
|
218
130
|
continue;
|
|
131
|
+
const ranges = getRangesForRenderedSuggestionText(rangeData, fieldElement.textContent || "");
|
|
132
|
+
const rects = [];
|
|
133
|
+
let isTextRange = false;
|
|
134
|
+
for (const [start, end] of ranges) {
|
|
135
|
+
rects.push(...measureTextRangeRects(iframeDocument, fieldElement, start, end, metrics));
|
|
136
|
+
}
|
|
137
|
+
isTextRange = rects.length > 0;
|
|
138
|
+
if (rects.length === 0 && rangeData.oldText !== rangeData.newText) {
|
|
139
|
+
const fallbackRect = measureElementRect(fieldElement, metrics);
|
|
140
|
+
if (fallbackRect)
|
|
141
|
+
rects.push(fallbackRect);
|
|
142
|
+
}
|
|
143
|
+
if (rects.length > 0) {
|
|
144
|
+
nextMeasurements[suggestion.id] = { rects, isTextRange };
|
|
219
145
|
}
|
|
220
|
-
nextMeasurements[suggestion.id] = {
|
|
221
|
-
rects,
|
|
222
|
-
isTextRange: true,
|
|
223
|
-
};
|
|
224
146
|
}
|
|
225
147
|
return nextMeasurements;
|
|
226
|
-
}, [
|
|
148
|
+
}, [iframe, suggestions, rangeDataBySuggestionId], {
|
|
227
149
|
initialValue: {},
|
|
228
150
|
equals: suggestionMeasurementsEqual,
|
|
229
151
|
interests: ["viewport", "layout", "text", "adornment-data"],
|
|
230
152
|
});
|
|
231
|
-
useEffect(() => {
|
|
232
|
-
lastMeasurementsRef.current = measurements;
|
|
233
|
-
}, [measurements]);
|
|
234
153
|
const overlayGroups = useMemo(() => {
|
|
235
154
|
const groups = new Map();
|
|
236
155
|
for (const suggestion of suggestions) {
|
|
@@ -262,18 +181,11 @@ export function SuggestionHighlightings({ pageViewContext, variant = "default",
|
|
|
262
181
|
left: rect.x,
|
|
263
182
|
width: rect.width,
|
|
264
183
|
height: rect.height,
|
|
265
|
-
zIndex: 20,
|
|
266
184
|
pointerEvents: "none",
|
|
267
|
-
}, children: [index === 0 && (_jsx(FeedbackHighlightBadgeTray, {
|
|
268
|
-
top:
|
|
269
|
-
left:
|
|
270
|
-
|
|
271
|
-
? -4
|
|
272
|
-
: 4
|
|
273
|
-
: group.isTextRange
|
|
274
|
-
? -9
|
|
275
|
-
: 8,
|
|
276
|
-
}, children: badgeSuggestions.map((suggestion, badgeIndex) => (_jsx(SuggestionDisplayPopover, { suggestion: suggestion, onSuggestionUpdated: () => { }, children: _jsx(FeedbackHighlightBadge, { item: suggestion, variant: variant, minimapColorClassName: "bg-component-suggestions", zIndex: badgeSuggestions.length - badgeIndex + 100, testId: "suggestion-highlight-icon", ariaSubject: "suggestion", onClick: () => {
|
|
185
|
+
}, children: [index === 0 && (_jsx(FeedbackHighlightBadgeTray, { style: {
|
|
186
|
+
top: -38,
|
|
187
|
+
left: group.isTextRange ? -9 : 8,
|
|
188
|
+
}, children: badgeSuggestions.map((suggestion, badgeIndex) => (_jsx(SuggestionDisplayPopover, { suggestion: suggestion, onSuggestionUpdated: () => { }, children: _jsx(FeedbackHighlightBadge, { item: suggestion, zIndex: badgeSuggestions.length - badgeIndex + 100, testId: "suggestion-highlight-icon", ariaSubject: "suggestion", onClick: () => {
|
|
277
189
|
editContext.select([suggestion.itemId]);
|
|
278
190
|
modifiedFields?.setFocusedField({
|
|
279
191
|
item: {
|
|
@@ -288,23 +200,6 @@ export function SuggestionHighlightings({ pageViewContext, variant = "default",
|
|
|
288
200
|
: "bg-feedback-green/10 absolute inset-0 rounded-[3px]" })] }, `${group.key}-${index}`)));
|
|
289
201
|
}) }));
|
|
290
202
|
}
|
|
291
|
-
function getSuggestionTextRangeKey(suggestion) {
|
|
292
|
-
return `suggestion:${suggestion.id}`;
|
|
293
|
-
}
|
|
294
|
-
function hasAnyExpectedBridgeTextRange(geometry, textRanges) {
|
|
295
|
-
if (!geometry)
|
|
296
|
-
return false;
|
|
297
|
-
const expectedKeys = new Set(textRanges.map((range) => range.key));
|
|
298
|
-
return geometry.targets.some((target) => target.kind === "textRange" && expectedKeys.has(target.key));
|
|
299
|
-
}
|
|
300
|
-
function hasAllExpectedBridgeTextRanges(geometry, textRanges) {
|
|
301
|
-
if (!geometry)
|
|
302
|
-
return false;
|
|
303
|
-
const availableKeys = new Set(geometry.targets
|
|
304
|
-
.filter((target) => target.kind === "textRange")
|
|
305
|
-
.map((target) => target.key));
|
|
306
|
-
return textRanges.every((range) => availableKeys.has(range.key));
|
|
307
|
-
}
|
|
308
203
|
function toPlainSuggestionText(value) {
|
|
309
204
|
if (!value || !/[<&]/.test(value))
|
|
310
205
|
return value || "";
|
|
@@ -312,6 +207,27 @@ function toPlainSuggestionText(value) {
|
|
|
312
207
|
template.innerHTML = value;
|
|
313
208
|
return template.content.textContent || "";
|
|
314
209
|
}
|
|
210
|
+
function getRangesForRenderedSuggestionText(rangeData, renderedText) {
|
|
211
|
+
if (renderedText === rangeData.newText)
|
|
212
|
+
return rangeData.newRanges;
|
|
213
|
+
if (renderedText === rangeData.oldText)
|
|
214
|
+
return rangeData.oldRanges;
|
|
215
|
+
const newIndex = rangeData.newText
|
|
216
|
+
? renderedText.indexOf(rangeData.newText)
|
|
217
|
+
: -1;
|
|
218
|
+
if (newIndex >= 0) {
|
|
219
|
+
return offsetRanges(rangeData.newRanges, newIndex);
|
|
220
|
+
}
|
|
221
|
+
const oldIndex = rangeData.oldText
|
|
222
|
+
? renderedText.indexOf(rangeData.oldText)
|
|
223
|
+
: -1;
|
|
224
|
+
if (oldIndex >= 0) {
|
|
225
|
+
return offsetRanges(rangeData.oldRanges, oldIndex);
|
|
226
|
+
}
|
|
227
|
+
const preferNew = rangeData.newRanges.length > 0 ||
|
|
228
|
+
renderedText.length >= rangeData.newText.length;
|
|
229
|
+
return preferNew ? rangeData.newRanges : rangeData.oldRanges;
|
|
230
|
+
}
|
|
315
231
|
function getSuggestionMeasurementKey(measurement) {
|
|
316
232
|
const rectKey = measurement.rects
|
|
317
233
|
.map((rect) => `${roundMeasurement(rect.x)}:${roundMeasurement(rect.y)}:${roundMeasurement(rect.width)}:${roundMeasurement(rect.height)}`)
|
|
@@ -321,6 +237,9 @@ function getSuggestionMeasurementKey(measurement) {
|
|
|
321
237
|
function roundMeasurement(value) {
|
|
322
238
|
return Math.round(value * 2) / 2;
|
|
323
239
|
}
|
|
240
|
+
function offsetRanges(ranges, offset) {
|
|
241
|
+
return ranges.map(([start, end]) => [start + offset, end + offset]);
|
|
242
|
+
}
|
|
324
243
|
function mergeRanges(changeRanges) {
|
|
325
244
|
const mergedRanges = [];
|
|
326
245
|
if (changeRanges.length === 0)
|