@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.
Files changed (307) hide show
  1. package/dist/components/ui/card.d.ts +1 -3
  2. package/dist/components/ui/card.js +2 -2
  3. package/dist/components/ui/card.js.map +1 -1
  4. package/dist/components/ui/context-menu.js +2 -2
  5. package/dist/config/config.js +7 -8
  6. package/dist/config/config.js.map +1 -1
  7. package/dist/config/types.d.ts +7 -0
  8. package/dist/config/types.js.map +1 -1
  9. package/dist/editor/FieldActionsOverlay.d.ts +1 -0
  10. package/dist/editor/FieldActionsOverlay.js +45 -1
  11. package/dist/editor/FieldActionsOverlay.js.map +1 -1
  12. package/dist/editor/FieldListField.d.ts +1 -1
  13. package/dist/editor/FieldListField.js +18 -20
  14. package/dist/editor/FieldListField.js.map +1 -1
  15. package/dist/editor/ImageEditor.d.ts +1 -6
  16. package/dist/editor/ImageEditor.js +3 -19
  17. package/dist/editor/ImageEditor.js.map +1 -1
  18. package/dist/editor/PictureEditor.d.ts +1 -2
  19. package/dist/editor/PictureEditor.js +14 -5
  20. package/dist/editor/PictureEditor.js.map +1 -1
  21. package/dist/editor/ai/Agents.js +2 -2
  22. package/dist/editor/ai/Agents.js.map +1 -1
  23. package/dist/editor/ai/GuidanceOverlay.js +11 -1
  24. package/dist/editor/ai/GuidanceOverlay.js.map +1 -1
  25. package/dist/editor/ai/InlineAiDialog.js +11 -22
  26. package/dist/editor/ai/InlineAiDialog.js.map +1 -1
  27. package/dist/editor/ai/InlineAiTrigger.js +57 -17
  28. package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
  29. package/dist/editor/ai/dialogs/capturePageDom.js +36 -66
  30. package/dist/editor/ai/dialogs/capturePageDom.js.map +1 -1
  31. package/dist/editor/ai/dialogs/capturePageScreenshot.js +162 -281
  32. package/dist/editor/ai/dialogs/capturePageScreenshot.js.map +1 -1
  33. package/dist/editor/ai/terminal/agentSessionState.d.ts +0 -3
  34. package/dist/editor/ai/terminal/agentSessionState.js +1 -3
  35. package/dist/editor/ai/terminal/agentSessionState.js.map +1 -1
  36. package/dist/editor/ai/terminal/agentStartRequest.d.ts +1 -2
  37. package/dist/editor/ai/terminal/agentStartRequest.js +1 -2
  38. package/dist/editor/ai/terminal/agentStartRequest.js.map +1 -1
  39. package/dist/editor/ai/terminal/components/AgentCostDisplay.js +1 -1
  40. package/dist/editor/ai/terminal/components/AgentCostDisplay.js.map +1 -1
  41. package/dist/editor/ai/terminal/components/AgentDocumentList.d.ts +0 -7
  42. package/dist/editor/ai/terminal/components/AgentDocumentList.js +13 -55
  43. package/dist/editor/ai/terminal/components/AgentDocumentList.js.map +1 -1
  44. package/dist/editor/ai/terminal/components/AgentFullPromptControls.d.ts +1 -3
  45. package/dist/editor/ai/terminal/components/AgentFullPromptControls.js +14 -22
  46. package/dist/editor/ai/terminal/components/AgentFullPromptControls.js.map +1 -1
  47. package/dist/editor/ai/terminal/components/AgentModeSelector.js +4 -4
  48. package/dist/editor/ai/terminal/components/AgentModeSelector.js.map +1 -1
  49. package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js +4 -4
  50. package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js.map +1 -1
  51. package/dist/editor/ai/terminal/components/AgentPromptComposer.js +1 -1
  52. package/dist/editor/ai/terminal/components/AgentPromptComposer.js.map +1 -1
  53. package/dist/editor/ai/terminal/components/AgentPromptInputArea.d.ts +1 -2
  54. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js +11 -8
  55. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js.map +1 -1
  56. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.d.ts +4 -1
  57. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js +14 -31
  58. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js.map +1 -1
  59. package/dist/editor/ai/terminal/components/AgentSettingsPopover.js +1 -1
  60. package/dist/editor/ai/terminal/components/AgentSettingsPopover.js.map +1 -1
  61. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.d.ts +1 -2
  62. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js +4 -2
  63. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js.map +1 -1
  64. package/dist/editor/ai/terminal/components/AgentTerminalMessageGroups.js +1 -1
  65. package/dist/editor/ai/terminal/components/AgentTerminalMessageGroups.js.map +1 -1
  66. package/dist/editor/ai/terminal/components/AgentTerminalView.js +2 -13
  67. package/dist/editor/ai/terminal/components/AgentTerminalView.js.map +1 -1
  68. package/dist/editor/ai/terminal/components/AiResponseMessage.js +14 -16
  69. package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
  70. package/dist/editor/ai/terminal/components/ContextInfoBar.js +2 -22
  71. package/dist/editor/ai/terminal/components/ContextInfoBar.js.map +1 -1
  72. package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js +26 -37
  73. package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js.map +1 -1
  74. package/dist/editor/ai/terminal/components/UserMessage.d.ts +1 -2
  75. package/dist/editor/ai/terminal/components/UserMessage.js +8 -144
  76. package/dist/editor/ai/terminal/components/UserMessage.js.map +1 -1
  77. package/dist/editor/ai/terminal/useAgentPromptComposerHandlers.js +1 -1
  78. package/dist/editor/ai/terminal/useAgentPromptComposerHandlers.js.map +1 -1
  79. package/dist/editor/ai/terminal/useAgentSessionSync.d.ts +0 -1
  80. package/dist/editor/ai/terminal/useAgentSubmitHandlers.d.ts +1 -3
  81. package/dist/editor/ai/terminal/useAgentSubmitHandlers.js +3 -9
  82. package/dist/editor/ai/terminal/useAgentSubmitHandlers.js.map +1 -1
  83. package/dist/editor/ai/terminal/useAgentTerminalController.js +0 -7
  84. package/dist/editor/ai/terminal/useAgentTerminalController.js.map +1 -1
  85. package/dist/editor/ai/terminal/useAgentTerminalUiState.js +1 -1
  86. package/dist/editor/ai/terminal/useAgentTerminalUiState.js.map +1 -1
  87. package/dist/editor/ai/terminal/useAgentUserMessageSocketHandler.js +1 -3
  88. package/dist/editor/ai/terminal/useAgentUserMessageSocketHandler.js.map +1 -1
  89. package/dist/editor/ai/useInlineAiPosition.d.ts +1 -1
  90. package/dist/editor/ai/useInlineAiPosition.js +52 -22
  91. package/dist/editor/ai/useInlineAiPosition.js.map +1 -1
  92. package/dist/editor/ai-image-editor/AiImageResultOverlay.js +62 -30
  93. package/dist/editor/ai-image-editor/AiImageResultOverlay.js.map +1 -1
  94. package/dist/editor/client/EditorShell.d.ts +1 -5
  95. package/dist/editor/client/EditorShell.js +136 -285
  96. package/dist/editor/client/EditorShell.js.map +1 -1
  97. package/dist/editor/client/editContext.d.ts +5 -33
  98. package/dist/editor/client/editContext.js.map +1 -1
  99. package/dist/editor/client/hooks/useSocketMessageHandler.js +17 -14
  100. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  101. package/dist/editor/client/itemsRepository.d.ts +0 -2
  102. package/dist/editor/client/itemsRepository.js +8 -15
  103. package/dist/editor/client/itemsRepository.js.map +1 -1
  104. package/dist/editor/client/operations.d.ts +1 -1
  105. package/dist/editor/client/operations.js +17 -41
  106. package/dist/editor/client/operations.js.map +1 -1
  107. package/dist/editor/client/pageModelBuilder.js +7 -24
  108. package/dist/editor/client/pageModelBuilder.js.map +1 -1
  109. package/dist/editor/commands/handlers/uiActionHandlers.js +5 -1
  110. package/dist/editor/commands/handlers/uiActionHandlers.js.map +1 -1
  111. package/dist/editor/editor-warnings/FinalWorkflowStateReadOnly.js +5 -0
  112. package/dist/editor/editor-warnings/FinalWorkflowStateReadOnly.js.map +1 -1
  113. package/dist/editor/editor-warnings/ItemLocked.js +6 -3
  114. package/dist/editor/editor-warnings/ItemLocked.js.map +1 -1
  115. package/dist/editor/field-types/MultiLineText.js +3 -10
  116. package/dist/editor/field-types/MultiLineText.js.map +1 -1
  117. package/dist/editor/field-types/RawEditor.js +1 -8
  118. package/dist/editor/field-types/RawEditor.js.map +1 -1
  119. package/dist/editor/field-types/RichTextEditorComponent.js +45 -156
  120. package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
  121. package/dist/editor/field-types/SingleLineText.js +3 -10
  122. package/dist/editor/field-types/SingleLineText.js.map +1 -1
  123. package/dist/editor/field-types/richtext/components/ReactSlate.js +2 -8
  124. package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
  125. package/dist/editor/field-types/richtext/contextMenuFactory.d.ts +2 -1
  126. package/dist/editor/field-types/richtext/contextMenuFactory.js +303 -100
  127. package/dist/editor/field-types/richtext/contextMenuFactory.js.map +1 -1
  128. package/dist/editor/field-types/richtext/types.d.ts +0 -2
  129. package/dist/editor/field-types/richtext/types.js.map +1 -1
  130. package/dist/editor/media-selector/MediaFolderBrowser.d.ts +2 -1
  131. package/dist/editor/media-selector/MediaFolderBrowser.js +19 -9
  132. package/dist/editor/media-selector/MediaFolderBrowser.js.map +1 -1
  133. package/dist/editor/media-selector/TreeSelector.js +30 -24
  134. package/dist/editor/media-selector/TreeSelector.js.map +1 -1
  135. package/dist/editor/media-selector/UploadZone.d.ts +2 -1
  136. package/dist/editor/media-selector/UploadZone.js +21 -9
  137. package/dist/editor/media-selector/UploadZone.js.map +1 -1
  138. package/dist/editor/menubar/PageSelector.js +2 -8
  139. package/dist/editor/menubar/PageSelector.js.map +1 -1
  140. package/dist/editor/menubar/VersionPreviewCard.js +249 -4
  141. package/dist/editor/menubar/VersionPreviewCard.js.map +1 -1
  142. package/dist/editor/menubar/toolbar-sections/EditControls.js +2 -2
  143. package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
  144. package/dist/editor/menubar/toolbar-sections/ManualBrowser.d.ts +10 -0
  145. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +462 -63
  146. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
  147. package/dist/editor/menubar/toolbar-sections/ViewportControls.js +1 -1
  148. package/dist/editor/page-editor-chrome/CommentHighlightings.d.ts +2 -5
  149. package/dist/editor/page-editor-chrome/CommentHighlightings.js +215 -340
  150. package/dist/editor/page-editor-chrome/CommentHighlightings.js.map +1 -1
  151. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.d.ts +1 -5
  152. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js +4 -11
  153. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js.map +1 -1
  154. package/dist/editor/page-editor-chrome/FieldActionIndicator.js +13 -21
  155. package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
  156. package/dist/editor/page-editor-chrome/FieldEditedIndicator.js +29 -23
  157. package/dist/editor/page-editor-chrome/FieldEditedIndicator.js.map +1 -1
  158. package/dist/editor/page-editor-chrome/FrameMenu.js +19 -110
  159. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  160. package/dist/editor/page-editor-chrome/InlineEditor.d.ts +7 -0
  161. package/dist/editor/page-editor-chrome/InlineEditor.js +1719 -0
  162. package/dist/editor/page-editor-chrome/InlineEditor.js.map +1 -0
  163. package/dist/editor/page-editor-chrome/LockedFieldIndicator.d.ts +2 -3
  164. package/dist/editor/page-editor-chrome/LockedFieldIndicator.js +45 -148
  165. package/dist/editor/page-editor-chrome/LockedFieldIndicator.js.map +1 -1
  166. package/dist/editor/page-editor-chrome/PageEditorChrome.d.ts +0 -2
  167. package/dist/editor/page-editor-chrome/PageEditorChrome.js +21 -25
  168. package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
  169. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js +128 -163
  170. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js.map +1 -1
  171. package/dist/editor/page-editor-chrome/PlaceholderDropZone.d.ts +1 -1
  172. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +3 -6
  173. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
  174. package/dist/editor/page-editor-chrome/PlaceholderDropZones.d.ts +2 -1
  175. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +146 -83
  176. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
  177. package/dist/editor/page-editor-chrome/SuggestionHighlightings.d.ts +2 -5
  178. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +63 -144
  179. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -1
  180. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.d.ts +2 -1
  181. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js +30 -101
  182. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js.map +1 -1
  183. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.d.ts +1 -10
  184. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js +122 -105
  185. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js.map +1 -1
  186. package/dist/editor/page-editor-chrome/overlay/geometry.d.ts +4 -11
  187. package/dist/editor/page-editor-chrome/overlay/geometry.js +36 -139
  188. package/dist/editor/page-editor-chrome/overlay/geometry.js.map +1 -1
  189. package/dist/editor/page-editor-chrome/overlay/iframeAccess.d.ts +2 -0
  190. package/dist/editor/page-editor-chrome/overlay/iframeAccess.js +21 -0
  191. package/dist/editor/page-editor-chrome/overlay/iframeAccess.js.map +1 -0
  192. package/dist/editor/page-editor-chrome/useInlineAICompletion.d.ts +7 -0
  193. package/dist/editor/page-editor-chrome/useInlineAICompletion.js +758 -0
  194. package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +1 -0
  195. package/dist/editor/page-viewer/EditorForm.js +1 -17
  196. package/dist/editor/page-viewer/EditorForm.js.map +1 -1
  197. package/dist/editor/page-viewer/MiniMap.d.ts +2 -2
  198. package/dist/editor/page-viewer/MiniMap.js +364 -176
  199. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  200. package/dist/editor/page-viewer/PageViewer.js +13 -40
  201. package/dist/editor/page-viewer/PageViewer.js.map +1 -1
  202. package/dist/editor/page-viewer/PageViewerFrame.d.ts +5 -0
  203. package/dist/editor/page-viewer/PageViewerFrame.js +1509 -1527
  204. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  205. package/dist/editor/page-viewer/pageModelSkeletonBuilder.d.ts +3 -0
  206. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js +796 -0
  207. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js.map +1 -0
  208. package/dist/editor/page-viewer/pageViewContext.d.ts +0 -32
  209. package/dist/editor/page-viewer/pageViewContext.js +6 -37
  210. package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
  211. package/dist/editor/reviews/Comment.d.ts +1 -2
  212. package/dist/editor/reviews/Comment.js +4 -9
  213. package/dist/editor/reviews/Comment.js.map +1 -1
  214. package/dist/editor/reviews/CommentEditor.js +1 -1
  215. package/dist/editor/reviews/CommentEditor.js.map +1 -1
  216. package/dist/editor/reviews/CommentPopover.js +9 -68
  217. package/dist/editor/reviews/CommentPopover.js.map +1 -1
  218. package/dist/editor/reviews/CommentView.js +4 -24
  219. package/dist/editor/reviews/CommentView.js.map +1 -1
  220. package/dist/editor/reviews/Comments.d.ts +2 -0
  221. package/dist/editor/reviews/Comments.js +30 -29
  222. package/dist/editor/reviews/Comments.js.map +1 -1
  223. package/dist/editor/reviews/FeedbackCard.d.ts +2 -4
  224. package/dist/editor/reviews/FeedbackCard.js +5 -5
  225. package/dist/editor/reviews/FeedbackCard.js.map +1 -1
  226. package/dist/editor/reviews/SuggestedEdit.js +6 -4
  227. package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
  228. package/dist/editor/reviews/SuggestionDisplayPopover.js +2 -3
  229. package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
  230. package/dist/editor/reviews/commentAi.js +27 -96
  231. package/dist/editor/reviews/commentAi.js.map +1 -1
  232. package/dist/editor/reviews/feedbackSelection.js +4 -32
  233. package/dist/editor/reviews/feedbackSelection.js.map +1 -1
  234. package/dist/editor/services/agentService.d.ts +0 -15
  235. package/dist/editor/services/agentService.js +1 -11
  236. package/dist/editor/services/agentService.js.map +1 -1
  237. package/dist/editor/services/contentService.d.ts +1 -0
  238. package/dist/editor/services/contentService.js.map +1 -1
  239. package/dist/editor/services/reviewsService.d.ts +2 -2
  240. package/dist/editor/services/reviewsService.js.map +1 -1
  241. package/dist/editor/settings/SettingsView.js +2 -2
  242. package/dist/editor/settings/SettingsView.js.map +1 -1
  243. package/dist/editor/settings/panels/ProjectTemplatesPanel.js +1 -1
  244. package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
  245. package/dist/editor/settings/panels/ProvidersPanel.js +3 -2
  246. package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -1
  247. package/dist/editor/sidebar/MorePanelsButton.js +1 -1
  248. package/dist/editor/sidebar/MorePanelsButton.js.map +1 -1
  249. package/dist/editor/sidebar/Workbox.js +1 -1
  250. package/dist/editor/sidebar/Workbox.js.map +1 -1
  251. package/dist/editor/ui/IconSelectorDialog.js +1 -1
  252. package/dist/editor/ui/IconSelectorDialog.js.map +1 -1
  253. package/dist/editor/ui/SimpleIconButton.d.ts +2 -2
  254. package/dist/editor/ui/SimpleIconButton.js +1 -1
  255. package/dist/editor/ui/SimpleIconButton.js.map +1 -1
  256. package/dist/editor/utils.d.ts +17 -1
  257. package/dist/editor/utils.js +143 -0
  258. package/dist/editor/utils.js.map +1 -1
  259. package/dist/editor/version-diff/versionDiffTargets.d.ts +8 -3
  260. package/dist/editor/version-diff/versionDiffTargets.js +94 -37
  261. package/dist/editor/version-diff/versionDiffTargets.js.map +1 -1
  262. package/dist/editor/views/MediaFolderEditView.js +1 -1
  263. package/dist/editor/views/MediaFolderEditView.js.map +1 -1
  264. package/dist/revision.d.ts +2 -2
  265. package/dist/revision.js +2 -2
  266. package/dist/splash-screen/DialogWrappers.js +2 -2
  267. package/dist/splash-screen/DialogWrappers.js.map +1 -1
  268. package/dist/splash-screen/ModernSplashScreen.js +3 -11
  269. package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
  270. package/dist/splash-screen/NewPage.js +5 -7
  271. package/dist/splash-screen/NewPage.js.map +1 -1
  272. package/dist/splash-screen/OpenPage.js +3 -5
  273. package/dist/splash-screen/OpenPage.js.map +1 -1
  274. package/dist/splash-screen/RecentPages.js +3 -3
  275. package/dist/splash-screen/RecentPages.js.map +1 -1
  276. package/package.json +1 -2
  277. package/styles.css +0 -49
  278. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.d.ts +0 -5
  279. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js +0 -12
  280. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js.map +0 -1
  281. package/dist/editor/bridge/BridgeClient.d.ts +0 -80
  282. package/dist/editor/bridge/BridgeClient.js +0 -417
  283. package/dist/editor/bridge/BridgeClient.js.map +0 -1
  284. package/dist/editor/field-types/useFormFieldCaretPresence.d.ts +0 -13
  285. package/dist/editor/field-types/useFormFieldCaretPresence.js +0 -92
  286. package/dist/editor/field-types/useFormFieldCaretPresence.js.map +0 -1
  287. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.d.ts +0 -6
  288. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js +0 -123
  289. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js.map +0 -1
  290. package/dist/editor/page-editor-chrome/useBridgeInlineEditing.d.ts +0 -26
  291. package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js +0 -222
  292. package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js.map +0 -1
  293. package/dist/editor/page-viewer/bridgeFieldPatch.d.ts +0 -20
  294. package/dist/editor/page-viewer/bridgeFieldPatch.js +0 -33
  295. package/dist/editor/page-viewer/bridgeFieldPatch.js.map +0 -1
  296. package/dist/editor/reviews/commentTransientSelection.d.ts +0 -23
  297. package/dist/editor/reviews/commentTransientSelection.js +0 -7
  298. package/dist/editor/reviews/commentTransientSelection.js.map +0 -1
  299. package/dist/editor/reviews/feedbackOrdering.d.ts +0 -5
  300. package/dist/editor/reviews/feedbackOrdering.js +0 -27
  301. package/dist/editor/reviews/feedbackOrdering.js.map +0 -1
  302. package/dist/editor/reviews/suggestedEditState.d.ts +0 -12
  303. package/dist/editor/reviews/suggestedEditState.js +0 -90
  304. package/dist/editor/reviews/suggestedEditState.js.map +0 -1
  305. package/dist/editor/reviews/suggestionDisplayValue.d.ts +0 -43
  306. package/dist/editor/reviews/suggestionDisplayValue.js +0 -93
  307. 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 { measureBridgeComponentRect, measureBridgePlaceholderRect, rectEquals, } from "./overlay/geometry";
8
+ import { measureComponentRect, measureElementRect, rectEquals, } from "./overlay/geometry";
9
9
  import { useOverlayMeasurement } from "./overlay/useOverlayMeasurement";
10
- export function PlaceholderDropZones({ size, pageViewContext, }) {
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
- const bridgeGeometry = pageViewContext.bridgeGeometry;
51
- if (bridgeGeometry) {
52
- matchingPlaceholders.forEach((placeholder) => {
53
- measuredZones.push(...measureBridgePlaceholderZones(placeholder, bridgeGeometry, metrics));
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(contentWidth - 20, Math.max(20, zone.position.x));
83
- let y = Math.min(contentHeight - 20, Math.max(20, zone.position.y));
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 > contentWidth - 20) {
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
- pageViewContext?.bridgeGeometry,
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
- (previousZone.element ?? null) !== (nextZone.element ?? null) ||
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 measureBridgePlaceholderZones(placeholder, geometry, metrics) {
161
- const zones = [];
162
- const placeholderMeasurement = measureBridgePlaceholderRect(geometry, placeholder.key, metrics);
163
- const orientation = getBridgePlaceholderOrientation(placeholder, geometry, metrics, placeholderMeasurement?.target.orientation);
164
- const firstComponent = placeholder.components[0];
165
- const firstComponentMeasurement = firstComponent
166
- ? measureBridgeComponentRect(geometry, firstComponent, metrics)
167
- : null;
168
- const parentMeasurement = placeholder.parentComponent
169
- ? measureBridgeComponentRect(geometry, placeholder.parentComponent, metrics)
170
- : null;
171
- const referenceRect = placeholderMeasurement?.rect ??
172
- firstComponentMeasurement?.rect ??
173
- parentMeasurement?.rect;
174
- if (!referenceRect)
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
- : getBeforePositionFromRect(referenceRect, orientation);
185
- zones.push({
186
- placeholder,
187
- position,
188
- index: 0,
189
- element: null,
190
- anchor: isUsingParentBounds || orientation !== "horizontal" ? "top" : "left",
191
- description: placeholderMeasurement?.target.description,
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
- if (placeholder.components.length > 1) {
225
- const first = measureBridgeComponentRect(geometry, placeholder.components[0], metrics);
226
- const second = measureBridgeComponentRect(geometry, placeholder.components[1], metrics);
227
- if (first?.rect && second?.rect) {
228
- const horizontalDiff = Math.abs(second.rect.x - first.rect.x);
229
- const verticalDiff = Math.abs(second.rect.y - first.rect.y);
230
- return horizontalDiff > verticalDiff ? "horizontal" : "vertical";
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
- import { PageViewContext } from "../page-viewer/pageViewContext";
2
- import { type FeedbackHighlightVariant } from "./FeedbackHighlightBadge";
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, useRef, useState } from "react";
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 { measureBridgeTextRangeRects, rectListEquals, } from "./overlay/geometry";
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({ pageViewContext, variant = "default", }) {
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 bridgeTextRanges = useMemo(() => suggestions.flatMap((suggestion) => {
117
- if (!suggestion.fieldId)
118
- return [];
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
- if (!rangeDataBySuggestionId[suggestion.id])
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 rects = measureBridgeTextRangeRects(bridgeGeometry, getSuggestionTextRangeKey(suggestion), metrics);
211
- if (rects.length === 0) {
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
- }, [pageViewContext.bridgeGeometry, suggestions, rangeDataBySuggestionId], {
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, { variant: variant, style: {
268
- top: variant === "minimap" ? -12 : -38,
269
- left: variant === "minimap"
270
- ? group.isTextRange
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)