@parhelia/core 0.1.12882 → 0.1.12884

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 (414) hide show
  1. package/dist/agents-view/AgentsSidebar.js +1 -1
  2. package/dist/agents-view/AgentsSidebar.js.map +1 -1
  3. package/dist/agents-view/AgentsTitlebar.d.ts +1 -1
  4. package/dist/agents-view/AgentsTitlebar.js +3 -6
  5. package/dist/agents-view/AgentsTitlebar.js.map +1 -1
  6. package/dist/agents-view/AgentsView.d.ts +2 -2
  7. package/dist/agents-view/AgentsView.js +2 -2
  8. package/dist/agents-view/AgentsView.js.map +1 -1
  9. package/dist/agents-view/AgentsWorkspaceView.js +1 -12
  10. package/dist/agents-view/AgentsWorkspaceView.js.map +1 -1
  11. package/dist/agents-view/CreateAgentView.d.ts +1 -1
  12. package/dist/agents-view/CreateAgentView.js +1 -1
  13. package/dist/agents-view/DateAgentsGroup.js +12 -1
  14. package/dist/agents-view/DateAgentsGroup.js.map +1 -1
  15. package/dist/agents-view/ProfileAgentsGroup.js +16 -4
  16. package/dist/agents-view/ProfileAgentsGroup.js.map +1 -1
  17. package/dist/components/ui/card.d.ts +3 -1
  18. package/dist/components/ui/card.js +2 -2
  19. package/dist/components/ui/card.js.map +1 -1
  20. package/dist/components/ui/checkbox.js +1 -1
  21. package/dist/components/ui/checkbox.js.map +1 -1
  22. package/dist/components/ui/context-menu.d.ts +2 -1
  23. package/dist/components/ui/context-menu.js +6 -3
  24. package/dist/components/ui/context-menu.js.map +1 -1
  25. package/dist/components/ui/input.js +2 -2
  26. package/dist/components/ui/input.js.map +1 -1
  27. package/dist/components/ui/select.js +1 -1
  28. package/dist/components/ui/select.js.map +1 -1
  29. package/dist/components/ui/textarea.js +2 -2
  30. package/dist/components/ui/textarea.js.map +1 -1
  31. package/dist/config/config.js +107 -12
  32. package/dist/config/config.js.map +1 -1
  33. package/dist/editor/ContextMenu.d.ts +1 -0
  34. package/dist/editor/ContextMenu.js +4 -4
  35. package/dist/editor/ContextMenu.js.map +1 -1
  36. package/dist/editor/FieldActionsOverlay.d.ts +0 -1
  37. package/dist/editor/FieldActionsOverlay.js +1 -45
  38. package/dist/editor/FieldActionsOverlay.js.map +1 -1
  39. package/dist/editor/FieldHistory.d.ts +2 -1
  40. package/dist/editor/FieldHistory.js +13 -12
  41. package/dist/editor/FieldHistory.js.map +1 -1
  42. package/dist/editor/FieldListField.d.ts +1 -1
  43. package/dist/editor/FieldListField.js +24 -36
  44. package/dist/editor/FieldListField.js.map +1 -1
  45. package/dist/editor/ImageEditor.d.ts +6 -1
  46. package/dist/editor/ImageEditor.js +19 -3
  47. package/dist/editor/ImageEditor.js.map +1 -1
  48. package/dist/editor/LinkEditorDialog.d.ts +9 -2
  49. package/dist/editor/LinkEditorDialog.js +174 -70
  50. package/dist/editor/LinkEditorDialog.js.map +1 -1
  51. package/dist/editor/MainLayout.js +49 -6
  52. package/dist/editor/MainLayout.js.map +1 -1
  53. package/dist/editor/MobileLayout.js +33 -1
  54. package/dist/editor/MobileLayout.js.map +1 -1
  55. package/dist/editor/PictureCropper.js +45 -28
  56. package/dist/editor/PictureCropper.js.map +1 -1
  57. package/dist/editor/PictureEditor.d.ts +2 -1
  58. package/dist/editor/PictureEditor.js +5 -14
  59. package/dist/editor/PictureEditor.js.map +1 -1
  60. package/dist/editor/ai/AgentProfileSelector.js +7 -7
  61. package/dist/editor/ai/AgentProfileSelector.js.map +1 -1
  62. package/dist/editor/ai/Agents.js +20 -6
  63. package/dist/editor/ai/Agents.js.map +1 -1
  64. package/dist/editor/ai/GuidanceOverlay.js +1 -11
  65. package/dist/editor/ai/GuidanceOverlay.js.map +1 -1
  66. package/dist/editor/ai/InlineAiDialog.d.ts +1 -0
  67. package/dist/editor/ai/InlineAiDialog.js +254 -202
  68. package/dist/editor/ai/InlineAiDialog.js.map +1 -1
  69. package/dist/editor/ai/InlineAiTextEditTooltip.d.ts +8 -0
  70. package/dist/editor/ai/InlineAiTextEditTooltip.js +10 -0
  71. package/dist/editor/ai/InlineAiTextEditTooltip.js.map +1 -0
  72. package/dist/editor/ai/InlineAiTrigger.js +158 -31
  73. package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
  74. package/dist/editor/ai/dialogs/capturePageDom.js +66 -36
  75. package/dist/editor/ai/dialogs/capturePageDom.js.map +1 -1
  76. package/dist/editor/ai/dialogs/capturePageScreenshot.js +281 -162
  77. package/dist/editor/ai/dialogs/capturePageScreenshot.js.map +1 -1
  78. package/dist/editor/ai/inlineAiTextEditLabels.d.ts +2 -0
  79. package/dist/editor/ai/inlineAiTextEditLabels.js +8 -0
  80. package/dist/editor/ai/inlineAiTextEditLabels.js.map +1 -0
  81. package/dist/editor/ai/prepareInlineAiTextSelection.d.ts +5 -0
  82. package/dist/editor/ai/prepareInlineAiTextSelection.js +86 -0
  83. package/dist/editor/ai/prepareInlineAiTextSelection.js.map +1 -0
  84. package/dist/editor/ai/terminal/agentSessionState.d.ts +3 -0
  85. package/dist/editor/ai/terminal/agentSessionState.js +3 -1
  86. package/dist/editor/ai/terminal/agentSessionState.js.map +1 -1
  87. package/dist/editor/ai/terminal/agentStartRequest.d.ts +2 -1
  88. package/dist/editor/ai/terminal/agentStartRequest.js +2 -1
  89. package/dist/editor/ai/terminal/agentStartRequest.js.map +1 -1
  90. package/dist/editor/ai/terminal/components/AgentCostDisplay.js +1 -1
  91. package/dist/editor/ai/terminal/components/AgentCostDisplay.js.map +1 -1
  92. package/dist/editor/ai/terminal/components/AgentDocumentList.d.ts +7 -0
  93. package/dist/editor/ai/terminal/components/AgentDocumentList.js +55 -13
  94. package/dist/editor/ai/terminal/components/AgentDocumentList.js.map +1 -1
  95. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.d.ts +5 -0
  96. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js +12 -0
  97. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js.map +1 -0
  98. package/dist/editor/ai/terminal/components/AgentFullPromptControls.d.ts +3 -1
  99. package/dist/editor/ai/terminal/components/AgentFullPromptControls.js +22 -14
  100. package/dist/editor/ai/terminal/components/AgentFullPromptControls.js.map +1 -1
  101. package/dist/editor/ai/terminal/components/AgentModeSelector.js +4 -4
  102. package/dist/editor/ai/terminal/components/AgentModeSelector.js.map +1 -1
  103. package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js +4 -4
  104. package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js.map +1 -1
  105. package/dist/editor/ai/terminal/components/AgentPromptComposer.js +1 -1
  106. package/dist/editor/ai/terminal/components/AgentPromptComposer.js.map +1 -1
  107. package/dist/editor/ai/terminal/components/AgentPromptInputArea.d.ts +2 -1
  108. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js +8 -11
  109. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js.map +1 -1
  110. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.d.ts +1 -4
  111. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js +31 -14
  112. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js.map +1 -1
  113. package/dist/editor/ai/terminal/components/AgentSettingsPopover.js +1 -1
  114. package/dist/editor/ai/terminal/components/AgentSettingsPopover.js.map +1 -1
  115. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.d.ts +2 -1
  116. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js +2 -4
  117. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js.map +1 -1
  118. package/dist/editor/ai/terminal/components/AgentTerminalMessageGroups.js +1 -1
  119. package/dist/editor/ai/terminal/components/AgentTerminalMessageGroups.js.map +1 -1
  120. package/dist/editor/ai/terminal/components/AgentTerminalView.js +13 -2
  121. package/dist/editor/ai/terminal/components/AgentTerminalView.js.map +1 -1
  122. package/dist/editor/ai/terminal/components/AiResponseMessage.js +11 -9
  123. package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
  124. package/dist/editor/ai/terminal/components/ContextInfoBar.js +22 -2
  125. package/dist/editor/ai/terminal/components/ContextInfoBar.js.map +1 -1
  126. package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js +37 -26
  127. package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js.map +1 -1
  128. package/dist/editor/ai/terminal/components/ToolCallDisplay.js +3 -1
  129. package/dist/editor/ai/terminal/components/ToolCallDisplay.js.map +1 -1
  130. package/dist/editor/ai/terminal/components/UserMessage.d.ts +2 -1
  131. package/dist/editor/ai/terminal/components/UserMessage.js +144 -8
  132. package/dist/editor/ai/terminal/components/UserMessage.js.map +1 -1
  133. package/dist/editor/ai/terminal/useAgentPromptComposerHandlers.js +1 -1
  134. package/dist/editor/ai/terminal/useAgentPromptComposerHandlers.js.map +1 -1
  135. package/dist/editor/ai/terminal/useAgentSessionSync.d.ts +1 -0
  136. package/dist/editor/ai/terminal/useAgentSubmitHandlers.d.ts +3 -1
  137. package/dist/editor/ai/terminal/useAgentSubmitHandlers.js +9 -3
  138. package/dist/editor/ai/terminal/useAgentSubmitHandlers.js.map +1 -1
  139. package/dist/editor/ai/terminal/useAgentTerminalController.js +7 -0
  140. package/dist/editor/ai/terminal/useAgentTerminalController.js.map +1 -1
  141. package/dist/editor/ai/terminal/useAgentTerminalUiState.js +1 -1
  142. package/dist/editor/ai/terminal/useAgentTerminalUiState.js.map +1 -1
  143. package/dist/editor/ai/terminal/useAgentUserMessageSocketHandler.js +3 -1
  144. package/dist/editor/ai/terminal/useAgentUserMessageSocketHandler.js.map +1 -1
  145. package/dist/editor/ai/useActiveAgentConversation.d.ts +3 -0
  146. package/dist/editor/ai/useActiveAgentConversation.js +32 -0
  147. package/dist/editor/ai/useActiveAgentConversation.js.map +1 -0
  148. package/dist/editor/ai/useInlineAiPosition.d.ts +10 -2
  149. package/dist/editor/ai/useInlineAiPosition.js +32 -71
  150. package/dist/editor/ai/useInlineAiPosition.js.map +1 -1
  151. package/dist/editor/ai-image-editor/AiImageResultOverlay.js +30 -62
  152. package/dist/editor/ai-image-editor/AiImageResultOverlay.js.map +1 -1
  153. package/dist/editor/bridge/BridgeClient.d.ts +80 -0
  154. package/dist/editor/bridge/BridgeClient.js +417 -0
  155. package/dist/editor/bridge/BridgeClient.js.map +1 -0
  156. package/dist/editor/client/EditorShell.d.ts +5 -1
  157. package/dist/editor/client/EditorShell.js +295 -127
  158. package/dist/editor/client/EditorShell.js.map +1 -1
  159. package/dist/editor/client/editContext.d.ts +58 -5
  160. package/dist/editor/client/editContext.js.map +1 -1
  161. package/dist/editor/client/fieldModificationStore.d.ts +1 -0
  162. package/dist/editor/client/fieldModificationStore.js +7 -2
  163. package/dist/editor/client/fieldModificationStore.js.map +1 -1
  164. package/dist/editor/client/hooks/useSocketMessageHandler.js +14 -17
  165. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  166. package/dist/editor/client/itemsRepository.d.ts +2 -0
  167. package/dist/editor/client/itemsRepository.js +18 -9
  168. package/dist/editor/client/itemsRepository.js.map +1 -1
  169. package/dist/editor/client/operations.d.ts +1 -1
  170. package/dist/editor/client/operations.js +67 -21
  171. package/dist/editor/client/operations.js.map +1 -1
  172. package/dist/editor/client/pageModelBuilder.js +24 -7
  173. package/dist/editor/client/pageModelBuilder.js.map +1 -1
  174. package/dist/editor/client/ui/EditorChrome.js +1 -1
  175. package/dist/editor/client/ui/EditorChrome.js.map +1 -1
  176. package/dist/editor/commands/componentCommands.d.ts +3 -1
  177. package/dist/editor/commands/componentCommands.js +8 -3
  178. package/dist/editor/commands/componentCommands.js.map +1 -1
  179. package/dist/editor/field-types/DateFieldEditor.js +1 -1
  180. package/dist/editor/field-types/DateFieldEditor.js.map +1 -1
  181. package/dist/editor/field-types/DateTimeFieldEditor.js +1 -1
  182. package/dist/editor/field-types/DateTimeFieldEditor.js.map +1 -1
  183. package/dist/editor/field-types/DropLinkEditor.js +1 -1
  184. package/dist/editor/field-types/DropLinkEditor.js.map +1 -1
  185. package/dist/editor/field-types/DropListEditor.js +1 -1
  186. package/dist/editor/field-types/DropListEditor.js.map +1 -1
  187. package/dist/editor/field-types/ImageFieldEditor.js +1 -1
  188. package/dist/editor/field-types/ImageFieldEditor.js.map +1 -1
  189. package/dist/editor/field-types/InternalLinkFieldEditor.js +1 -1
  190. package/dist/editor/field-types/InternalLinkFieldEditor.js.map +1 -1
  191. package/dist/editor/field-types/LinkFieldEditor.js +15 -3
  192. package/dist/editor/field-types/LinkFieldEditor.js.map +1 -1
  193. package/dist/editor/field-types/MultiLineText.js +11 -4
  194. package/dist/editor/field-types/MultiLineText.js.map +1 -1
  195. package/dist/editor/field-types/NameValueListEditor.js +1 -1
  196. package/dist/editor/field-types/NameValueListEditor.js.map +1 -1
  197. package/dist/editor/field-types/PictureFieldEditor.js +2 -2
  198. package/dist/editor/field-types/PictureFieldEditor.js.map +1 -1
  199. package/dist/editor/field-types/RawEditor.js +9 -2
  200. package/dist/editor/field-types/RawEditor.js.map +1 -1
  201. package/dist/editor/field-types/RichTextEditorComponent.js +170 -77
  202. package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
  203. package/dist/editor/field-types/SingleLineText.js +10 -3
  204. package/dist/editor/field-types/SingleLineText.js.map +1 -1
  205. package/dist/editor/field-types/TreeListEditor.js +1 -1
  206. package/dist/editor/field-types/TreeListEditor.js.map +1 -1
  207. package/dist/editor/field-types/richtext/bridgeRichTextProfile.d.ts +21 -0
  208. package/dist/editor/field-types/richtext/bridgeRichTextProfile.js +96 -0
  209. package/dist/editor/field-types/richtext/bridgeRichTextProfile.js.map +1 -0
  210. package/dist/editor/field-types/richtext/components/ReactSlate.css +44 -6
  211. package/dist/editor/field-types/richtext/components/ReactSlate.js +191 -36
  212. package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
  213. package/dist/editor/field-types/richtext/components/SimpleRichTextEditor.css +5 -2
  214. package/dist/editor/field-types/richtext/components/SimpleToolbar.js +5 -4
  215. package/dist/editor/field-types/richtext/components/SimpleToolbar.js.map +1 -1
  216. package/dist/editor/field-types/richtext/contextMenuFactory.d.ts +2 -15
  217. package/dist/editor/field-types/richtext/contextMenuFactory.js +4 -435
  218. package/dist/editor/field-types/richtext/contextMenuFactory.js.map +1 -1
  219. package/dist/editor/field-types/richtext/richTextToolbarIcons.d.ts +7 -0
  220. package/dist/editor/field-types/richtext/richTextToolbarIcons.js +49 -0
  221. package/dist/editor/field-types/richtext/richTextToolbarIcons.js.map +1 -0
  222. package/dist/editor/field-types/richtext/types.d.ts +2 -0
  223. package/dist/editor/field-types/richtext/types.js.map +1 -1
  224. package/dist/editor/field-types/richtext/utils/conversion.js +23 -2
  225. package/dist/editor/field-types/richtext/utils/conversion.js.map +1 -1
  226. package/dist/editor/field-types/useFormFieldCaretPresence.d.ts +13 -0
  227. package/dist/editor/field-types/useFormFieldCaretPresence.js +92 -0
  228. package/dist/editor/field-types/useFormFieldCaretPresence.js.map +1 -0
  229. package/dist/editor/fieldTypes.d.ts +2 -0
  230. package/dist/editor/media-selector/TreeSelector.js +15 -15
  231. package/dist/editor/media-selector/TreeSelector.js.map +1 -1
  232. package/dist/editor/menubar/PageSelector.js +8 -2
  233. package/dist/editor/menubar/PageSelector.js.map +1 -1
  234. package/dist/editor/menubar/VersionPreviewCard.js +4 -249
  235. package/dist/editor/menubar/VersionPreviewCard.js.map +1 -1
  236. package/dist/editor/menubar/toolbar-sections/EditControls.js +2 -2
  237. package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
  238. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +338 -187
  239. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
  240. package/dist/editor/menubar/toolbar-sections/UtilityControls.js +3 -1
  241. package/dist/editor/menubar/toolbar-sections/UtilityControls.js.map +1 -1
  242. package/dist/editor/menubar/toolbar-sections/ViewportControls.js +1 -1
  243. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.d.ts +8 -0
  244. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js +407 -0
  245. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js.map +1 -0
  246. package/dist/editor/page-editor-chrome/CommentHighlightings.d.ts +5 -2
  247. package/dist/editor/page-editor-chrome/CommentHighlightings.js +340 -215
  248. package/dist/editor/page-editor-chrome/CommentHighlightings.js.map +1 -1
  249. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.d.ts +5 -1
  250. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js +11 -4
  251. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js.map +1 -1
  252. package/dist/editor/page-editor-chrome/FieldActionIndicator.js +21 -13
  253. package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
  254. package/dist/editor/page-editor-chrome/FieldEditedIndicator.js +23 -29
  255. package/dist/editor/page-editor-chrome/FieldEditedIndicator.js.map +1 -1
  256. package/dist/editor/page-editor-chrome/FrameMenu.js +110 -19
  257. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  258. package/dist/editor/page-editor-chrome/LockedFieldIndicator.d.ts +3 -2
  259. package/dist/editor/page-editor-chrome/LockedFieldIndicator.js +148 -45
  260. package/dist/editor/page-editor-chrome/LockedFieldIndicator.js.map +1 -1
  261. package/dist/editor/page-editor-chrome/PageEditorChrome.d.ts +2 -0
  262. package/dist/editor/page-editor-chrome/PageEditorChrome.js +25 -21
  263. package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
  264. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js +163 -128
  265. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js.map +1 -1
  266. package/dist/editor/page-editor-chrome/PlaceholderDropZone.d.ts +1 -1
  267. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +6 -3
  268. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
  269. package/dist/editor/page-editor-chrome/PlaceholderDropZones.d.ts +1 -2
  270. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +83 -146
  271. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
  272. package/dist/editor/page-editor-chrome/SuggestionHighlightings.d.ts +5 -2
  273. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +144 -63
  274. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -1
  275. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.d.ts +1 -2
  276. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js +101 -30
  277. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js.map +1 -1
  278. package/dist/editor/page-editor-chrome/bridgeInlineFormatToolbarLayout.d.ts +24 -0
  279. package/dist/editor/page-editor-chrome/bridgeInlineFormatToolbarLayout.js +89 -0
  280. package/dist/editor/page-editor-chrome/bridgeInlineFormatToolbarLayout.js.map +1 -0
  281. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.d.ts +10 -1
  282. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js +105 -122
  283. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js.map +1 -1
  284. package/dist/editor/page-editor-chrome/overlay/geometry.d.ts +11 -4
  285. package/dist/editor/page-editor-chrome/overlay/geometry.js +139 -36
  286. package/dist/editor/page-editor-chrome/overlay/geometry.js.map +1 -1
  287. package/dist/editor/page-editor-chrome/useBridgeInlineEditing.d.ts +26 -0
  288. package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js +228 -0
  289. package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js.map +1 -0
  290. package/dist/editor/page-viewer/EditorForm.js +17 -1
  291. package/dist/editor/page-viewer/EditorForm.js.map +1 -1
  292. package/dist/editor/page-viewer/MiniMap.d.ts +2 -2
  293. package/dist/editor/page-viewer/MiniMap.js +176 -364
  294. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  295. package/dist/editor/page-viewer/PageViewer.js +63 -17
  296. package/dist/editor/page-viewer/PageViewer.js.map +1 -1
  297. package/dist/editor/page-viewer/PageViewerFrame.d.ts +0 -5
  298. package/dist/editor/page-viewer/PageViewerFrame.js +1685 -1512
  299. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  300. package/dist/editor/page-viewer/bridgeFieldPatch.d.ts +20 -0
  301. package/dist/editor/page-viewer/bridgeFieldPatch.js +33 -0
  302. package/dist/editor/page-viewer/bridgeFieldPatch.js.map +1 -0
  303. package/dist/editor/page-viewer/pageViewContext.d.ts +32 -0
  304. package/dist/editor/page-viewer/pageViewContext.js +37 -6
  305. package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
  306. package/dist/editor/reviews/Comment.d.ts +2 -1
  307. package/dist/editor/reviews/Comment.js +10 -5
  308. package/dist/editor/reviews/Comment.js.map +1 -1
  309. package/dist/editor/reviews/CommentDisplayPopover.js +2 -1
  310. package/dist/editor/reviews/CommentDisplayPopover.js.map +1 -1
  311. package/dist/editor/reviews/CommentEditor.d.ts +1 -0
  312. package/dist/editor/reviews/CommentEditor.js +3 -2
  313. package/dist/editor/reviews/CommentEditor.js.map +1 -1
  314. package/dist/editor/reviews/CommentPopover.js +69 -10
  315. package/dist/editor/reviews/CommentPopover.js.map +1 -1
  316. package/dist/editor/reviews/CommentView.js +24 -4
  317. package/dist/editor/reviews/CommentView.js.map +1 -1
  318. package/dist/editor/reviews/Comments.d.ts +0 -2
  319. package/dist/editor/reviews/Comments.js +31 -31
  320. package/dist/editor/reviews/Comments.js.map +1 -1
  321. package/dist/editor/reviews/FeedbackCard.d.ts +4 -2
  322. package/dist/editor/reviews/FeedbackCard.js +8 -10
  323. package/dist/editor/reviews/FeedbackCard.js.map +1 -1
  324. package/dist/editor/reviews/SuggestedEdit.js +4 -6
  325. package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
  326. package/dist/editor/reviews/SuggestionCommentThread.js +3 -3
  327. package/dist/editor/reviews/SuggestionCommentThread.js.map +1 -1
  328. package/dist/editor/reviews/SuggestionDisplayPopover.js +3 -2
  329. package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
  330. package/dist/editor/reviews/commentAi.js +96 -27
  331. package/dist/editor/reviews/commentAi.js.map +1 -1
  332. package/dist/editor/reviews/commentTransientSelection.d.ts +23 -0
  333. package/dist/editor/reviews/commentTransientSelection.js +7 -0
  334. package/dist/editor/reviews/commentTransientSelection.js.map +1 -0
  335. package/dist/editor/reviews/feedbackOrdering.d.ts +5 -0
  336. package/dist/editor/reviews/feedbackOrdering.js +27 -0
  337. package/dist/editor/reviews/feedbackOrdering.js.map +1 -0
  338. package/dist/editor/reviews/feedbackSelection.js +32 -4
  339. package/dist/editor/reviews/feedbackSelection.js.map +1 -1
  340. package/dist/editor/reviews/suggestedEditState.d.ts +12 -0
  341. package/dist/editor/reviews/suggestedEditState.js +90 -0
  342. package/dist/editor/reviews/suggestedEditState.js.map +1 -0
  343. package/dist/editor/reviews/suggestionDisplayValue.d.ts +43 -0
  344. package/dist/editor/reviews/suggestionDisplayValue.js +93 -0
  345. package/dist/editor/reviews/suggestionDisplayValue.js.map +1 -0
  346. package/dist/editor/services/agentService.d.ts +15 -0
  347. package/dist/editor/services/agentService.js +11 -1
  348. package/dist/editor/services/agentService.js.map +1 -1
  349. package/dist/editor/services/reviewsService.d.ts +2 -2
  350. package/dist/editor/services/reviewsService.js.map +1 -1
  351. package/dist/editor/settings/SettingsView.js +2 -2
  352. package/dist/editor/settings/SettingsView.js.map +1 -1
  353. package/dist/editor/settings/panels/ProjectTemplatesPanel.js +1 -1
  354. package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
  355. package/dist/editor/settings/panels/ProvidersPanel.js +2 -3
  356. package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -1
  357. package/dist/editor/sidebar/MorePanelsButton.js +1 -1
  358. package/dist/editor/sidebar/MorePanelsButton.js.map +1 -1
  359. package/dist/editor/sidebar/Validation.js +4 -1
  360. package/dist/editor/sidebar/Validation.js.map +1 -1
  361. package/dist/editor/sidebar/Workbox.js +1 -1
  362. package/dist/editor/sidebar/Workbox.js.map +1 -1
  363. package/dist/editor/template-wizard/TemplateStructureInlineEditor.js +1 -1
  364. package/dist/editor/template-wizard/TemplateStructureInlineEditor.js.map +1 -1
  365. package/dist/editor/ui/IconSelectorDialog.js +1 -1
  366. package/dist/editor/ui/IconSelectorDialog.js.map +1 -1
  367. package/dist/editor/ui/SimpleIconButton.d.ts +2 -2
  368. package/dist/editor/ui/SimpleIconButton.js +7 -1
  369. package/dist/editor/ui/SimpleIconButton.js.map +1 -1
  370. package/dist/editor/ui/Splitter.d.ts +1 -0
  371. package/dist/editor/ui/Splitter.js +12 -2
  372. package/dist/editor/ui/Splitter.js.map +1 -1
  373. package/dist/editor/ui/animationSettle.d.ts +32 -0
  374. package/dist/editor/ui/animationSettle.js +85 -0
  375. package/dist/editor/ui/animationSettle.js.map +1 -0
  376. package/dist/editor/utils/expandSelectionAtCaret.d.ts +15 -0
  377. package/dist/editor/utils/expandSelectionAtCaret.js +183 -0
  378. package/dist/editor/utils/expandSelectionAtCaret.js.map +1 -0
  379. package/dist/editor/utils.d.ts +1 -17
  380. package/dist/editor/utils.js +0 -143
  381. package/dist/editor/utils.js.map +1 -1
  382. package/dist/editor/version-diff/versionDiffTargets.d.ts +3 -8
  383. package/dist/editor/version-diff/versionDiffTargets.js +37 -94
  384. package/dist/editor/version-diff/versionDiffTargets.js.map +1 -1
  385. package/dist/revision.d.ts +2 -2
  386. package/dist/revision.js +2 -2
  387. package/dist/splash-screen/ModernSplashScreen.js +11 -3
  388. package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
  389. package/dist/splash-screen/NewPage.js +7 -5
  390. package/dist/splash-screen/NewPage.js.map +1 -1
  391. package/dist/splash-screen/OpenPage.js +5 -3
  392. package/dist/splash-screen/OpenPage.js.map +1 -1
  393. package/dist/splash-screen/RecentPages.js +3 -3
  394. package/dist/splash-screen/RecentPages.js.map +1 -1
  395. package/dist/task-board/components/TaskDetailPanel.js +2 -1
  396. package/dist/task-board/components/TaskDetailPanel.js.map +1 -1
  397. package/dist/task-board/views/DependencyGraphView.d.ts +42 -1
  398. package/dist/task-board/views/DependencyGraphView.js +94 -0
  399. package/dist/task-board/views/DependencyGraphView.js.map +1 -1
  400. package/dist/types.d.ts +1 -0
  401. package/package.json +2 -1
  402. package/styles.css +96 -0
  403. package/dist/editor/page-editor-chrome/InlineEditor.d.ts +0 -7
  404. package/dist/editor/page-editor-chrome/InlineEditor.js +0 -1719
  405. package/dist/editor/page-editor-chrome/InlineEditor.js.map +0 -1
  406. package/dist/editor/page-editor-chrome/overlay/iframeAccess.d.ts +0 -2
  407. package/dist/editor/page-editor-chrome/overlay/iframeAccess.js +0 -21
  408. package/dist/editor/page-editor-chrome/overlay/iframeAccess.js.map +0 -1
  409. package/dist/editor/page-editor-chrome/useInlineAICompletion.d.ts +0 -7
  410. package/dist/editor/page-editor-chrome/useInlineAICompletion.js +0 -758
  411. package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +0 -1
  412. package/dist/editor/page-viewer/pageModelSkeletonBuilder.d.ts +0 -3
  413. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js +0 -796
  414. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js.map +0 -1
@@ -5,10 +5,9 @@ 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 { measureComponentRect, measureElementRect, rectEquals, } from "./overlay/geometry";
8
+ import { measureBridgeComponentRect, measureBridgePlaceholderRect, rectEquals, } from "./overlay/geometry";
9
9
  import { useOverlayMeasurement } from "./overlay/useOverlayMeasurement";
10
- import { findElementByNormalizedDataAttribute, getNextNonChromeMarkerElement, getPreviousNonChromeMarkerElement, } from "../utils";
11
- export function PlaceholderDropZones({ iframe, size, pageViewContext, }) {
10
+ export function PlaceholderDropZones({ size, pageViewContext, }) {
12
11
  const [placeholders, setPlaceholders] = useState([]);
13
12
  const editContext = useEditContext();
14
13
  const slotContext = useSlotContext();
@@ -20,7 +19,6 @@ export function PlaceholderDropZones({ iframe, size, pageViewContext, }) {
20
19
  const zones = useOverlayMeasurement((metrics) => {
21
20
  if (!slotContext?.isActive ||
22
21
  !pageViewContext ||
23
- !iframe ||
24
22
  (!editContext?.dragObject &&
25
23
  !editContext?.selectedForInsertion &&
26
24
  !editContext?.insertMode)) {
@@ -49,102 +47,12 @@ export function PlaceholderDropZones({ iframe, size, pageViewContext, }) {
49
47
  const measuredZones = [];
50
48
  const scrollHeight = metrics.scrollHeight * metrics.visualScale;
51
49
  const scrollWidth = metrics.scrollWidth * metrics.visualScale;
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,
132
- });
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
- });
50
+ const bridgeGeometry = pageViewContext.bridgeGeometry;
51
+ if (bridgeGeometry) {
52
+ matchingPlaceholders.forEach((placeholder) => {
53
+ measuredZones.push(...measureBridgePlaceholderZones(placeholder, bridgeGeometry, metrics));
146
54
  });
147
- });
55
+ }
148
56
  const zonesWithoutBeforeFirstLayout = measuredZones.filter((z) => {
149
57
  const components = z.placeholder.components;
150
58
  const firstLayoutIndex = components.findIndex((c) => !!c.layoutId);
@@ -165,17 +73,19 @@ export function PlaceholderDropZones({ iframe, size, pageViewContext, }) {
165
73
  return true;
166
74
  })
167
75
  : 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);
168
78
  const usedPositions = new Map();
169
79
  const DROPZONE_SIZE = 32;
170
80
  const OVERLAP_THRESHOLD = DROPZONE_SIZE;
171
81
  return filteredZones.map((zone) => {
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));
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));
174
84
  const posKey = `${Math.round(x / OVERLAP_THRESHOLD)}_${Math.round(y / OVERLAP_THRESHOLD)}`;
175
85
  const overlapCount = usedPositions.get(posKey) || 0;
176
86
  if (overlapCount > 0) {
177
87
  x = x + overlapCount * (DROPZONE_SIZE + 8);
178
- if (x > scrollWidth - 20) {
88
+ if (x > contentWidth - 20) {
179
89
  x = 20 + ((overlapCount - 1) % 5) * (DROPZONE_SIZE + 8);
180
90
  y = y + Math.floor((overlapCount - 1) / 5) * (DROPZONE_SIZE + 8);
181
91
  }
@@ -189,7 +99,7 @@ export function PlaceholderDropZones({ iframe, size, pageViewContext, }) {
189
99
  }, [
190
100
  slotContext?.isActive,
191
101
  pageViewContext,
192
- iframe,
102
+ pageViewContext?.bridgeGeometry,
193
103
  editContext?.dragObject,
194
104
  editContext?.selectedForInsertion,
195
105
  editContext?.insertMode,
@@ -226,7 +136,7 @@ function placeholderZonesEqual(previous, next) {
226
136
  const nextZone = next[i];
227
137
  if (previousZone.placeholder.key !== nextZone.placeholder.key ||
228
138
  previousZone.index !== nextZone.index ||
229
- previousZone.element !== nextZone.element ||
139
+ (previousZone.element ?? null) !== (nextZone.element ?? null) ||
230
140
  previousZone.anchor !== nextZone.anchor ||
231
141
  previousZone.description !== nextZone.description ||
232
142
  !rectEquals({ ...previousZone.position, width: 0, height: 0 }, { ...nextZone.position, width: 0, height: 0 })) {
@@ -235,12 +145,6 @@ function placeholderZonesEqual(previous, next) {
235
145
  }
236
146
  return true;
237
147
  }
238
- function getPreviousElement(element) {
239
- return getPreviousNonChromeMarkerElement(element);
240
- }
241
- function getNextElement(element) {
242
- return getNextNonChromeMarkerElement(element);
243
- }
244
148
  function getPositionFromRect(rect, orientation) {
245
149
  const position = orientation === "horizontal"
246
150
  ? {
@@ -253,46 +157,79 @@ function getPositionFromRect(rect, orientation) {
253
157
  };
254
158
  return position;
255
159
  }
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
- }
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,
271
183
  }
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
- }
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,
281
213
  }
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;
282
223
  }
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";
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
+ }
294
232
  }
295
- // Default to vertical if we can't determine
296
233
  return "vertical";
297
234
  }
298
235
  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,3 +1,6 @@
1
- export declare function SuggestionHighlightings({ iframe, }: {
2
- iframe: HTMLIFrameElement;
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;
3
6
  }): import("react/jsx-runtime").JSX.Element | null;
@@ -1,13 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useEffect, useMemo, useState } from "react";
2
+ import { useEffect, useMemo, useRef, useState } from "react";
3
3
  import { useEditContext, useFieldsEditContext } from "../client/editContext";
4
- import { findFieldElement } from "../utils";
5
4
  import * as DiffLib from "diff";
6
5
  import { SuggestionDisplayPopover } from "../reviews/SuggestionDisplayPopover";
7
- import { measureElementRect, measureTextRangeRects, rectListEquals, } from "./overlay/geometry";
8
- import { getAccessibleIframeDocument } from "./overlay/iframeAccess";
6
+ import { measureBridgeTextRangeRects, rectListEquals, } from "./overlay/geometry";
9
7
  import { useOverlayMeasurement } from "./overlay/useOverlayMeasurement";
10
8
  import { dedupeFeedbackHighlightItems, FeedbackHighlightBadge, FeedbackHighlightBadgeTray, } from "./FeedbackHighlightBadge";
9
+ const SUGGESTION_BRIDGE_SOURCE = "suggestions";
11
10
  function suggestionMeasurementsEqual(previous, next) {
12
11
  const previousKeys = Object.keys(previous);
13
12
  const nextKeys = Object.keys(next);
@@ -25,9 +24,15 @@ function suggestionMeasurementsEqual(previous, next) {
25
24
  }
26
25
  return true;
27
26
  }
28
- export function SuggestionHighlightings({ iframe, }) {
27
+ export function SuggestionHighlightings({ pageViewContext, variant = "default", }) {
29
28
  const editContext = useEditContext();
30
29
  const modifiedFields = useFieldsEditContext();
30
+ const lastMeasurementsRef = useRef({});
31
+ const bridgeTextRangeRequestRef = useRef({
32
+ signature: "",
33
+ requestedSignature: "",
34
+ hasSeenAnyTarget: false,
35
+ });
31
36
  const [rangeDataBySuggestionId, setRangeDataBySuggestionId] = useState({});
32
37
  const suggestions = useMemo(() => (editContext?.suggestedEdits || []).filter((suggestion) => suggestion.status !== "applied" && suggestion.status !== "rejected"), [editContext?.suggestedEdits]);
33
38
  useEffect(() => {
@@ -99,57 +104,133 @@ export function SuggestionHighlightings({ iframe, }) {
99
104
  newText: newValue,
100
105
  };
101
106
  }));
102
- if (!cancelled)
107
+ if (!cancelled) {
103
108
  setRangeDataBySuggestionId(nextRangeData);
109
+ }
104
110
  };
105
111
  resolveRanges();
106
112
  return () => {
107
113
  cancelled = true;
108
114
  };
109
115
  }, [editContext, suggestions]);
110
- const measurements = useOverlayMeasurement((metrics) => {
111
- const iframeDocument = getAccessibleIframeDocument(iframe);
112
- if (!iframeDocument?.body)
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)
113
200
  return {};
201
+ const canReusePreviousMeasurement = !reasons.has("viewport") &&
202
+ !reasons.has("layout") &&
203
+ !reasons.has("text");
114
204
  const nextMeasurements = {};
115
205
  for (const suggestion of suggestions) {
116
206
  if (!suggestion.fieldId)
117
207
  continue;
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)
208
+ if (!rangeDataBySuggestionId[suggestion.id])
127
209
  continue;
128
- const rangeData = rangeDataBySuggestionId[suggestion.id];
129
- if (!rangeData)
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
+ }
130
218
  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 };
145
219
  }
220
+ nextMeasurements[suggestion.id] = {
221
+ rects,
222
+ isTextRange: true,
223
+ };
146
224
  }
147
225
  return nextMeasurements;
148
- }, [iframe, suggestions, rangeDataBySuggestionId], {
226
+ }, [pageViewContext.bridgeGeometry, suggestions, rangeDataBySuggestionId], {
149
227
  initialValue: {},
150
228
  equals: suggestionMeasurementsEqual,
151
229
  interests: ["viewport", "layout", "text", "adornment-data"],
152
230
  });
231
+ useEffect(() => {
232
+ lastMeasurementsRef.current = measurements;
233
+ }, [measurements]);
153
234
  const overlayGroups = useMemo(() => {
154
235
  const groups = new Map();
155
236
  for (const suggestion of suggestions) {
@@ -181,11 +262,18 @@ export function SuggestionHighlightings({ iframe, }) {
181
262
  left: rect.x,
182
263
  width: rect.width,
183
264
  height: rect.height,
265
+ zIndex: 20,
184
266
  pointerEvents: "none",
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: () => {
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: () => {
189
277
  editContext.select([suggestion.itemId]);
190
278
  modifiedFields?.setFocusedField({
191
279
  item: {
@@ -200,6 +288,23 @@ export function SuggestionHighlightings({ iframe, }) {
200
288
  : "bg-feedback-green/10 absolute inset-0 rounded-[3px]" })] }, `${group.key}-${index}`)));
201
289
  }) }));
202
290
  }
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
+ }
203
308
  function toPlainSuggestionText(value) {
204
309
  if (!value || !/[<&]/.test(value))
205
310
  return value || "";
@@ -207,27 +312,6 @@ function toPlainSuggestionText(value) {
207
312
  template.innerHTML = value;
208
313
  return template.content.textContent || "";
209
314
  }
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
- }
231
315
  function getSuggestionMeasurementKey(measurement) {
232
316
  const rectKey = measurement.rects
233
317
  .map((rect) => `${roundMeasurement(rect.x)}:${roundMeasurement(rect.y)}:${roundMeasurement(rect.width)}:${roundMeasurement(rect.height)}`)
@@ -237,9 +321,6 @@ function getSuggestionMeasurementKey(measurement) {
237
321
  function roundMeasurement(value) {
238
322
  return Math.round(value * 2) / 2;
239
323
  }
240
- function offsetRanges(ranges, offset) {
241
- return ranges.map(([start, end]) => [start + offset, end + offset]);
242
- }
243
324
  function mergeRanges(changeRanges) {
244
325
  const mergedRanges = [];
245
326
  if (changeRanges.length === 0)