@parhelia/core 0.3.12832 → 0.3.12833

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 (472) hide show
  1. package/dist/components/emoji/EmojiPicker.d.ts +18 -0
  2. package/dist/components/emoji/EmojiPicker.js +102 -0
  3. package/dist/components/emoji/EmojiPicker.js.map +1 -0
  4. package/dist/components/emoji/EmojiText.d.ts +19 -0
  5. package/dist/components/emoji/EmojiText.js +30 -0
  6. package/dist/components/emoji/EmojiText.js.map +1 -0
  7. package/dist/components/emoji/emojiData.generated.d.ts +2 -0
  8. package/dist/components/emoji/emojiData.generated.js +1878 -0
  9. package/dist/components/emoji/emojiData.generated.js.map +1 -0
  10. package/dist/components/emoji/emojiIndex.d.ts +46 -0
  11. package/dist/components/emoji/emojiIndex.js +173 -0
  12. package/dist/components/emoji/emojiIndex.js.map +1 -0
  13. package/dist/components/emoji/emoticons.d.ts +21 -0
  14. package/dist/components/emoji/emoticons.js +167 -0
  15. package/dist/components/emoji/emoticons.js.map +1 -0
  16. package/dist/components/emoji/textareaInsert.d.ts +19 -0
  17. package/dist/components/emoji/textareaInsert.js +29 -0
  18. package/dist/components/emoji/textareaInsert.js.map +1 -0
  19. package/dist/components/emoji/twemoji.d.ts +30 -0
  20. package/dist/components/emoji/twemoji.js +84 -0
  21. package/dist/components/emoji/twemoji.js.map +1 -0
  22. package/dist/editor/agent-changes/agentChangeTargets.js +6 -0
  23. package/dist/editor/agent-changes/agentChangeTargets.js.map +1 -1
  24. package/dist/editor/agent-changes/agentChangeTextHighlight.d.ts +48 -4
  25. package/dist/editor/agent-changes/agentChangeTextHighlight.js +67 -9
  26. package/dist/editor/agent-changes/agentChangeTextHighlight.js.map +1 -1
  27. package/dist/editor/ai/AgentImagePreview.d.ts +13 -0
  28. package/dist/editor/ai/AgentImagePreview.js +41 -0
  29. package/dist/editor/ai/AgentImagePreview.js.map +1 -0
  30. package/dist/editor/ai/terminal/components/CreateItemToolCallContent.js +1 -1
  31. package/dist/editor/ai/terminal/components/CreateItemToolCallContent.js.map +1 -1
  32. package/dist/editor/ai/terminal/components/ResponseTurnDuration.js +1 -2
  33. package/dist/editor/ai/terminal/components/ResponseTurnDuration.js.map +1 -1
  34. package/dist/editor/ai/terminal/components/ToolCallDiagnosticsPanel.d.ts +6 -0
  35. package/dist/editor/ai/terminal/components/ToolCallDiagnosticsPanel.js +61 -0
  36. package/dist/editor/ai/terminal/components/ToolCallDiagnosticsPanel.js.map +1 -0
  37. package/dist/editor/ai/terminal/toolCallDiagnostics.d.ts +34 -0
  38. package/dist/editor/ai/terminal/toolCallDiagnostics.js +218 -0
  39. package/dist/editor/ai/terminal/toolCallDiagnostics.js.map +1 -0
  40. package/dist/editor/bridge/linkDownload.d.ts +3 -0
  41. package/dist/editor/bridge/linkDownload.js +52 -0
  42. package/dist/editor/bridge/linkDownload.js.map +1 -0
  43. package/dist/editor/client/clipboardStorage.d.ts +10 -0
  44. package/dist/editor/client/clipboardStorage.js +57 -0
  45. package/dist/editor/client/clipboardStorage.js.map +1 -0
  46. package/dist/editor/client/hooks/useRepositoryItemRefresh.d.ts +4 -0
  47. package/dist/editor/client/hooks/useRepositoryItemRefresh.js +62 -0
  48. package/dist/editor/client/hooks/useRepositoryItemRefresh.js.map +1 -0
  49. package/dist/editor/client/liveEditState.d.ts +16 -0
  50. package/dist/editor/client/liveEditState.js +25 -0
  51. package/dist/editor/client/liveEditState.js.map +1 -0
  52. package/dist/editor/client/liveSessionState.d.ts +6 -0
  53. package/dist/editor/client/liveSessionState.js +20 -0
  54. package/dist/editor/client/liveSessionState.js.map +1 -0
  55. package/dist/editor/client/valueStore.d.ts +22 -0
  56. package/dist/editor/client/valueStore.js +29 -0
  57. package/dist/editor/client/valueStore.js.map +1 -0
  58. package/dist/editor/commands/componentClipboardCommands.d.ts +35 -0
  59. package/dist/editor/commands/componentClipboardCommands.js +271 -0
  60. package/dist/editor/commands/componentClipboardCommands.js.map +1 -0
  61. package/dist/editor/commands/componentMenuGroups.d.ts +2 -0
  62. package/dist/editor/commands/componentMenuGroups.js +43 -0
  63. package/dist/editor/commands/componentMenuGroups.js.map +1 -0
  64. package/dist/editor/component-conversion/ComponentTypePickerDialog.d.ts +12 -0
  65. package/dist/editor/component-conversion/ComponentTypePickerDialog.js +40 -0
  66. package/dist/editor/component-conversion/ComponentTypePickerDialog.js.map +1 -0
  67. package/dist/editor/component-conversion/ConversionAiDebugButton.d.ts +17 -0
  68. package/dist/editor/component-conversion/ConversionAiDebugButton.js +80 -0
  69. package/dist/editor/component-conversion/ConversionAiDebugButton.js.map +1 -0
  70. package/dist/editor/component-conversion/ConvertComponentDialog.d.ts +28 -0
  71. package/dist/editor/component-conversion/ConvertComponentDialog.js +633 -0
  72. package/dist/editor/component-conversion/ConvertComponentDialog.js.map +1 -0
  73. package/dist/editor/component-conversion/conversionModel.d.ts +109 -0
  74. package/dist/editor/component-conversion/conversionModel.js +519 -0
  75. package/dist/editor/component-conversion/conversionModel.js.map +1 -0
  76. package/dist/editor/component-conversion/conversionService.d.ts +12 -0
  77. package/dist/editor/component-conversion/conversionService.js +16 -0
  78. package/dist/editor/component-conversion/conversionService.js.map +1 -0
  79. package/dist/editor/component-conversion/conversionTypes.d.ts +214 -0
  80. package/dist/editor/component-conversion/conversionTypes.js +2 -0
  81. package/dist/editor/component-conversion/conversionTypes.js.map +1 -0
  82. package/dist/editor/component-conversion/convertComponentsCommand.d.ts +25 -0
  83. package/dist/editor/component-conversion/convertComponentsCommand.js +196 -0
  84. package/dist/editor/component-conversion/convertComponentsCommand.js.map +1 -0
  85. package/dist/editor/field-types/FieldHistoryBoundary.js +28 -7
  86. package/dist/editor/field-types/FieldHistoryBoundary.js.map +1 -1
  87. package/dist/editor/field-types/fieldStyles.d.ts +21 -0
  88. package/dist/editor/field-types/fieldStyles.js +22 -0
  89. package/dist/editor/field-types/fieldStyles.js.map +1 -0
  90. package/dist/editor/field-types/richtext/utils/changeHighlight.d.ts +14 -0
  91. package/dist/editor/field-types/richtext/utils/changeHighlight.js +12 -1
  92. package/dist/editor/field-types/richtext/utils/changeHighlight.js.map +1 -1
  93. package/dist/editor/field-types/richtext/utils/spellCheckText.d.ts +31 -0
  94. package/dist/editor/field-types/richtext/utils/spellCheckText.js +82 -0
  95. package/dist/editor/field-types/richtext/utils/spellCheckText.js.map +1 -0
  96. package/dist/editor/field-types/useFocusedFieldInput.d.ts +13 -0
  97. package/dist/editor/field-types/useFocusedFieldInput.js +50 -0
  98. package/dist/editor/field-types/useFocusedFieldInput.js.map +1 -0
  99. package/dist/editor/field-types/useFormFieldSelectionRange.d.ts +43 -0
  100. package/dist/editor/field-types/useFormFieldSelectionRange.js +149 -0
  101. package/dist/editor/field-types/useFormFieldSelectionRange.js.map +1 -0
  102. package/dist/editor/find-replace/FindReplacePanel.d.ts +11 -0
  103. package/dist/editor/find-replace/FindReplacePanel.js +311 -0
  104. package/dist/editor/find-replace/FindReplacePanel.js.map +1 -0
  105. package/dist/editor/find-replace/findReplaceCommand.d.ts +8 -0
  106. package/dist/editor/find-replace/findReplaceCommand.js +25 -0
  107. package/dist/editor/find-replace/findReplaceCommand.js.map +1 -0
  108. package/dist/editor/find-replace/findReplaceMatches.d.ts +42 -0
  109. package/dist/editor/find-replace/findReplaceMatches.js +66 -0
  110. package/dist/editor/find-replace/findReplaceMatches.js.map +1 -0
  111. package/dist/editor/find-replace/findReplaceStore.d.ts +30 -0
  112. package/dist/editor/find-replace/findReplaceStore.js +61 -0
  113. package/dist/editor/find-replace/findReplaceStore.js.map +1 -0
  114. package/dist/editor/find-replace/findReplaceTargets.d.ts +51 -0
  115. package/dist/editor/find-replace/findReplaceTargets.js +110 -0
  116. package/dist/editor/find-replace/findReplaceTargets.js.map +1 -0
  117. package/dist/editor/find-replace/findReplaceText.d.ts +50 -0
  118. package/dist/editor/find-replace/findReplaceText.js +189 -0
  119. package/dist/editor/find-replace/findReplaceText.js.map +1 -0
  120. package/dist/editor/itemContextMenuGroups.js +10 -1
  121. package/dist/editor/itemContextMenuGroups.js.map +1 -1
  122. package/dist/editor/media-selector/MediaDetailsView.d.ts +14 -0
  123. package/dist/editor/media-selector/MediaDetailsView.js +152 -0
  124. package/dist/editor/media-selector/MediaDetailsView.js.map +1 -0
  125. package/dist/editor/media-selector/useMediaFolderDrag.d.ts +26 -0
  126. package/dist/editor/media-selector/useMediaFolderDrag.js +153 -0
  127. package/dist/editor/media-selector/useMediaFolderDrag.js.map +1 -0
  128. package/dist/editor/menubar/toolbar-sections/CommentsToggleControl.d.ts +11 -0
  129. package/dist/editor/menubar/toolbar-sections/CommentsToggleControl.js +65 -0
  130. package/dist/editor/menubar/toolbar-sections/CommentsToggleControl.js.map +1 -0
  131. package/dist/editor/menubar/toolbar-sections/FindReplaceControls.d.ts +6 -0
  132. package/dist/editor/menubar/toolbar-sections/FindReplaceControls.js +31 -0
  133. package/dist/editor/menubar/toolbar-sections/FindReplaceControls.js.map +1 -0
  134. package/dist/editor/menubar/toolbar-sections/SpellCheckToggleControl.d.ts +5 -0
  135. package/dist/editor/menubar/toolbar-sections/SpellCheckToggleControl.js +16 -0
  136. package/dist/editor/menubar/toolbar-sections/SpellCheckToggleControl.js.map +1 -0
  137. package/dist/editor/mobileBottomPanel.d.ts +40 -0
  138. package/dist/editor/mobileBottomPanel.js +63 -0
  139. package/dist/editor/mobileBottomPanel.js.map +1 -0
  140. package/dist/editor/page-editor-chrome/AgentChangeHighlightings.d.ts +3 -6
  141. package/dist/editor/page-editor-chrome/AgentChangeHighlightings.js +8 -6
  142. package/dist/editor/page-editor-chrome/AgentChangeHighlightings.js.map +1 -1
  143. package/dist/editor/page-editor-chrome/BridgePasteCleanupOverlay.d.ts +6 -0
  144. package/dist/editor/page-editor-chrome/BridgePasteCleanupOverlay.js +100 -0
  145. package/dist/editor/page-editor-chrome/BridgePasteCleanupOverlay.js.map +1 -0
  146. package/dist/editor/page-editor-chrome/CanvasOverviewRulerBinding.d.ts +9 -0
  147. package/dist/editor/page-editor-chrome/CanvasOverviewRulerBinding.js +32 -0
  148. package/dist/editor/page-editor-chrome/CanvasOverviewRulerBinding.js.map +1 -0
  149. package/dist/editor/page-editor-chrome/CommentTargetPickerCanvasLayer.d.ts +14 -0
  150. package/dist/editor/page-editor-chrome/CommentTargetPickerCanvasLayer.js +110 -0
  151. package/dist/editor/page-editor-chrome/CommentTargetPickerCanvasLayer.js.map +1 -0
  152. package/dist/editor/page-editor-chrome/ConversionIndicators.d.ts +8 -0
  153. package/dist/editor/page-editor-chrome/ConversionIndicators.js +75 -0
  154. package/dist/editor/page-editor-chrome/ConversionIndicators.js.map +1 -0
  155. package/dist/editor/page-editor-chrome/DiffHighlightOverlay.d.ts +9 -13
  156. package/dist/editor/page-editor-chrome/DiffHighlightOverlay.js +25 -20
  157. package/dist/editor/page-editor-chrome/DiffHighlightOverlay.js.map +1 -1
  158. package/dist/editor/page-editor-chrome/FeedbackLeaderCanvasSegment.d.ts +15 -0
  159. package/dist/editor/page-editor-chrome/FeedbackLeaderCanvasSegment.js +31 -0
  160. package/dist/editor/page-editor-chrome/FeedbackLeaderCanvasSegment.js.map +1 -0
  161. package/dist/editor/page-editor-chrome/FindReplaceHighlightings.d.ts +11 -0
  162. package/dist/editor/page-editor-chrome/FindReplaceHighlightings.js +120 -0
  163. package/dist/editor/page-editor-chrome/FindReplaceHighlightings.js.map +1 -0
  164. package/dist/editor/page-editor-chrome/SpellCheckHighlightings.d.ts +12 -0
  165. package/dist/editor/page-editor-chrome/SpellCheckHighlightings.js +197 -0
  166. package/dist/editor/page-editor-chrome/SpellCheckHighlightings.js.map +1 -0
  167. package/dist/editor/page-editor-chrome/ValidationRulerMarks.d.ts +11 -0
  168. package/dist/editor/page-editor-chrome/ValidationRulerMarks.js +56 -0
  169. package/dist/editor/page-editor-chrome/ValidationRulerMarks.js.map +1 -0
  170. package/dist/editor/page-editor-chrome/overlay/feedbackAnchorMeasurements.d.ts +44 -0
  171. package/dist/editor/page-editor-chrome/overlay/feedbackAnchorMeasurements.js +89 -0
  172. package/dist/editor/page-editor-chrome/overlay/feedbackAnchorMeasurements.js.map +1 -0
  173. package/dist/editor/page-editor-chrome/overlay/feedbackAnchorStore.d.ts +17 -0
  174. package/dist/editor/page-editor-chrome/overlay/feedbackAnchorStore.js +53 -0
  175. package/dist/editor/page-editor-chrome/overlay/feedbackAnchorStore.js.map +1 -0
  176. package/dist/editor/page-editor-chrome/overlay/useBridgeTextRangeRequest.d.ts +11 -0
  177. package/dist/editor/page-editor-chrome/overlay/useBridgeTextRangeRequest.js +84 -0
  178. package/dist/editor/page-editor-chrome/overlay/useBridgeTextRangeRequest.js.map +1 -0
  179. package/dist/editor/page-editor-chrome/overlay/useCommentAnchorMeasurements.d.ts +34 -0
  180. package/dist/editor/page-editor-chrome/overlay/useCommentAnchorMeasurements.js +229 -0
  181. package/dist/editor/page-editor-chrome/overlay/useCommentAnchorMeasurements.js.map +1 -0
  182. package/dist/editor/page-editor-chrome/overlay/useOverlayViewportRight.d.ts +9 -0
  183. package/dist/editor/page-editor-chrome/overlay/useOverlayViewportRight.js +34 -0
  184. package/dist/editor/page-editor-chrome/overlay/useOverlayViewportRight.js.map +1 -0
  185. package/dist/editor/page-editor-chrome/overlay/useSuggestionAnchorMeasurements.d.ts +49 -0
  186. package/dist/editor/page-editor-chrome/overlay/useSuggestionAnchorMeasurements.js +241 -0
  187. package/dist/editor/page-editor-chrome/overlay/useSuggestionAnchorMeasurements.js.map +1 -0
  188. package/dist/editor/page-viewer/CanvasOverviewRuler.d.ts +11 -0
  189. package/dist/editor/page-viewer/CanvasOverviewRuler.js +65 -0
  190. package/dist/editor/page-viewer/CanvasOverviewRuler.js.map +1 -0
  191. package/dist/editor/page-viewer/DynamicRenderingsBar.d.ts +23 -0
  192. package/dist/editor/page-viewer/DynamicRenderingsBar.js +28 -0
  193. package/dist/editor/page-viewer/DynamicRenderingsBar.js.map +1 -0
  194. package/dist/editor/page-viewer/DynamicRenderingsStrip.d.ts +18 -0
  195. package/dist/editor/page-viewer/DynamicRenderingsStrip.js +29 -0
  196. package/dist/editor/page-viewer/DynamicRenderingsStrip.js.map +1 -0
  197. package/dist/editor/page-viewer/FeedbackMargin.d.ts +57 -0
  198. package/dist/editor/page-viewer/FeedbackMargin.js +377 -0
  199. package/dist/editor/page-viewer/FeedbackMargin.js.map +1 -0
  200. package/dist/editor/page-viewer/FeedbackMarginController.d.ts +76 -0
  201. package/dist/editor/page-viewer/FeedbackMarginController.js +241 -0
  202. package/dist/editor/page-viewer/FeedbackMarginController.js.map +1 -0
  203. package/dist/editor/page-viewer/FeedbackMarginMarker.d.ts +16 -0
  204. package/dist/editor/page-viewer/FeedbackMarginMarker.js +24 -0
  205. package/dist/editor/page-viewer/FeedbackMarginMarker.js.map +1 -0
  206. package/dist/editor/page-viewer/FeedbackMarginResizeHandle.d.ts +23 -0
  207. package/dist/editor/page-viewer/FeedbackMarginResizeHandle.js +105 -0
  208. package/dist/editor/page-viewer/FeedbackMarginResizeHandle.js.map +1 -0
  209. package/dist/editor/page-viewer/InteractivePreviewBar.d.ts +24 -0
  210. package/dist/editor/page-viewer/InteractivePreviewBar.js +31 -0
  211. package/dist/editor/page-viewer/InteractivePreviewBar.js.map +1 -0
  212. package/dist/editor/page-viewer/MobileCommentsPanel.d.ts +16 -0
  213. package/dist/editor/page-viewer/MobileCommentsPanel.js +112 -0
  214. package/dist/editor/page-viewer/MobileCommentsPanel.js.map +1 -0
  215. package/dist/editor/page-viewer/RenderingAiCheck.d.ts +18 -0
  216. package/dist/editor/page-viewer/RenderingAiCheck.js +45 -0
  217. package/dist/editor/page-viewer/RenderingAiCheck.js.map +1 -0
  218. package/dist/editor/page-viewer/RenderingApprovalDialog.d.ts +32 -0
  219. package/dist/editor/page-viewer/RenderingApprovalDialog.js +191 -0
  220. package/dist/editor/page-viewer/RenderingApprovalDialog.js.map +1 -0
  221. package/dist/editor/page-viewer/SealedClientCodePreview.d.ts +17 -0
  222. package/dist/editor/page-viewer/SealedClientCodePreview.js +38 -0
  223. package/dist/editor/page-viewer/SealedClientCodePreview.js.map +1 -0
  224. package/dist/editor/page-viewer/canvasFrameNavigation.d.ts +18 -0
  225. package/dist/editor/page-viewer/canvasFrameNavigation.js +36 -0
  226. package/dist/editor/page-viewer/canvasFrameNavigation.js.map +1 -0
  227. package/dist/editor/page-viewer/canvasLoadSettling.d.ts +42 -0
  228. package/dist/editor/page-viewer/canvasLoadSettling.js +46 -0
  229. package/dist/editor/page-viewer/canvasLoadSettling.js.map +1 -0
  230. package/dist/editor/page-viewer/canvasScrollHandoff.d.ts +34 -0
  231. package/dist/editor/page-viewer/canvasScrollHandoff.js +55 -0
  232. package/dist/editor/page-viewer/canvasScrollHandoff.js.map +1 -0
  233. package/dist/editor/page-viewer/compareFrameWidth.d.ts +8 -0
  234. package/dist/editor/page-viewer/compareFrameWidth.js +25 -0
  235. package/dist/editor/page-viewer/compareFrameWidth.js.map +1 -0
  236. package/dist/editor/page-viewer/feedbackMarginLayout.d.ts +119 -0
  237. package/dist/editor/page-viewer/feedbackMarginLayout.js +155 -0
  238. package/dist/editor/page-viewer/feedbackMarginLayout.js.map +1 -0
  239. package/dist/editor/page-viewer/feedbackMarginSources.d.ts +36 -0
  240. package/dist/editor/page-viewer/feedbackMarginSources.js +196 -0
  241. package/dist/editor/page-viewer/feedbackMarginSources.js.map +1 -0
  242. package/dist/editor/page-viewer/feedbackMarginWidth.d.ts +43 -0
  243. package/dist/editor/page-viewer/feedbackMarginWidth.js +107 -0
  244. package/dist/editor/page-viewer/feedbackMarginWidth.js.map +1 -0
  245. package/dist/editor/page-viewer/interactivePreview.d.ts +168 -0
  246. package/dist/editor/page-viewer/interactivePreview.js +344 -0
  247. package/dist/editor/page-viewer/interactivePreview.js.map +1 -0
  248. package/dist/editor/page-viewer/minimapViewport.d.ts +2 -0
  249. package/dist/editor/page-viewer/minimapViewport.js +34 -0
  250. package/dist/editor/page-viewer/minimapViewport.js.map +1 -0
  251. package/dist/editor/page-viewer/openPageItems.d.ts +29 -0
  252. package/dist/editor/page-viewer/openPageItems.js +73 -0
  253. package/dist/editor/page-viewer/openPageItems.js.map +1 -0
  254. package/dist/editor/page-viewer/overviewRuler.d.ts +128 -0
  255. package/dist/editor/page-viewer/overviewRuler.js +226 -0
  256. package/dist/editor/page-viewer/overviewRuler.js.map +1 -0
  257. package/dist/editor/page-viewer/renderingApproval.d.ts +59 -0
  258. package/dist/editor/page-viewer/renderingApproval.js +186 -0
  259. package/dist/editor/page-viewer/renderingApproval.js.map +1 -0
  260. package/dist/editor/page-viewer/renderingChanges.d.ts +29 -0
  261. package/dist/editor/page-viewer/renderingChanges.js +40 -0
  262. package/dist/editor/page-viewer/renderingChanges.js.map +1 -0
  263. package/dist/editor/page-viewer/scrollIntoViewTextRanges.d.ts +23 -0
  264. package/dist/editor/page-viewer/scrollIntoViewTextRanges.js +26 -0
  265. package/dist/editor/page-viewer/scrollIntoViewTextRanges.js.map +1 -0
  266. package/dist/editor/page-viewer/useInteractivePreview.d.ts +77 -0
  267. package/dist/editor/page-viewer/useInteractivePreview.js +210 -0
  268. package/dist/editor/page-viewer/useInteractivePreview.js.map +1 -0
  269. package/dist/editor/reviews/CollapsibleText.d.ts +13 -0
  270. package/dist/editor/reviews/CollapsibleText.js +41 -0
  271. package/dist/editor/reviews/CollapsibleText.js.map +1 -0
  272. package/dist/editor/reviews/CommentImageAttachments.d.ts +12 -0
  273. package/dist/editor/reviews/CommentImageAttachments.js +19 -0
  274. package/dist/editor/reviews/CommentImageAttachments.js.map +1 -0
  275. package/dist/editor/reviews/CommentQuote.d.ts +13 -0
  276. package/dist/editor/reviews/CommentQuote.js +35 -0
  277. package/dist/editor/reviews/CommentQuote.js.map +1 -0
  278. package/dist/editor/reviews/CommentTargetOutline.d.ts +13 -0
  279. package/dist/editor/reviews/CommentTargetOutline.js +21 -0
  280. package/dist/editor/reviews/CommentTargetOutline.js.map +1 -0
  281. package/dist/editor/reviews/CommentTargetPickerDomLayer.d.ts +7 -0
  282. package/dist/editor/reviews/CommentTargetPickerDomLayer.js +117 -0
  283. package/dist/editor/reviews/CommentTargetPickerDomLayer.js.map +1 -0
  284. package/dist/editor/reviews/CommentThreadAgentLink.d.ts +28 -0
  285. package/dist/editor/reviews/CommentThreadAgentLink.js +37 -0
  286. package/dist/editor/reviews/CommentThreadAgentLink.js.map +1 -0
  287. package/dist/editor/reviews/CommentThreadCard.d.ts +34 -0
  288. package/dist/editor/reviews/CommentThreadCard.js +156 -0
  289. package/dist/editor/reviews/CommentThreadCard.js.map +1 -0
  290. package/dist/editor/reviews/SuggestionThreadCard.d.ts +19 -0
  291. package/dist/editor/reviews/SuggestionThreadCard.js +25 -0
  292. package/dist/editor/reviews/SuggestionThreadCard.js.map +1 -0
  293. package/dist/editor/reviews/addCommentOnTarget.d.ts +22 -0
  294. package/dist/editor/reviews/addCommentOnTarget.js +32 -0
  295. package/dist/editor/reviews/addCommentOnTarget.js.map +1 -0
  296. package/dist/editor/reviews/balloonLayout.d.ts +51 -0
  297. package/dist/editor/reviews/balloonLayout.js +101 -0
  298. package/dist/editor/reviews/balloonLayout.js.map +1 -0
  299. package/dist/editor/reviews/commentAgentAttachments.d.ts +5 -0
  300. package/dist/editor/reviews/commentAgentAttachments.js +51 -0
  301. package/dist/editor/reviews/commentAgentAttachments.js.map +1 -0
  302. package/dist/editor/reviews/commentImages.d.ts +48 -0
  303. package/dist/editor/reviews/commentImages.js +128 -0
  304. package/dist/editor/reviews/commentImages.js.map +1 -0
  305. package/dist/editor/reviews/commentTargetPicker.d.ts +114 -0
  306. package/dist/editor/reviews/commentTargetPicker.js +153 -0
  307. package/dist/editor/reviews/commentTargetPicker.js.map +1 -0
  308. package/dist/editor/reviews/feedbackBalloonDate.d.ts +8 -0
  309. package/dist/editor/reviews/feedbackBalloonDate.js +22 -0
  310. package/dist/editor/reviews/feedbackBalloonDate.js.map +1 -0
  311. package/dist/editor/reviews/feedbackDrafts.d.ts +49 -0
  312. package/dist/editor/reviews/feedbackDrafts.js +74 -0
  313. package/dist/editor/reviews/feedbackDrafts.js.map +1 -0
  314. package/dist/editor/reviews/feedbackHoverState.d.ts +18 -0
  315. package/dist/editor/reviews/feedbackHoverState.js +35 -0
  316. package/dist/editor/reviews/feedbackHoverState.js.map +1 -0
  317. package/dist/editor/reviews/feedbackPersonFilter.d.ts +3 -0
  318. package/dist/editor/reviews/feedbackPersonFilter.js +32 -0
  319. package/dist/editor/reviews/feedbackPersonFilter.js.map +1 -0
  320. package/dist/editor/reviews/feedbackThreadSelection.d.ts +10 -0
  321. package/dist/editor/reviews/feedbackThreadSelection.js +31 -0
  322. package/dist/editor/reviews/feedbackThreadSelection.js.map +1 -0
  323. package/dist/editor/reviews/feedbackThreads.d.ts +50 -0
  324. package/dist/editor/reviews/feedbackThreads.js +135 -0
  325. package/dist/editor/reviews/feedbackThreads.js.map +1 -0
  326. package/dist/editor/reviews/feedbackWheelForwarding.d.ts +34 -0
  327. package/dist/editor/reviews/feedbackWheelForwarding.js +108 -0
  328. package/dist/editor/reviews/feedbackWheelForwarding.js.map +1 -0
  329. package/dist/editor/reviews/reviewUrlScope.d.ts +23 -0
  330. package/dist/editor/reviews/reviewUrlScope.js +86 -0
  331. package/dist/editor/reviews/reviewUrlScope.js.map +1 -0
  332. package/dist/editor/reviews/scrollWithin.d.ts +29 -0
  333. package/dist/editor/reviews/scrollWithin.js +87 -0
  334. package/dist/editor/reviews/scrollWithin.js.map +1 -0
  335. package/dist/editor/reviews/subtreeFeedback.d.ts +57 -0
  336. package/dist/editor/reviews/subtreeFeedback.js +137 -0
  337. package/dist/editor/reviews/subtreeFeedback.js.map +1 -0
  338. package/dist/editor/reviews/useCommentImagePaste.d.ts +80 -0
  339. package/dist/editor/reviews/useCommentImagePaste.js +252 -0
  340. package/dist/editor/reviews/useCommentImagePaste.js.map +1 -0
  341. package/dist/editor/reviews/useFeedbackThreads.d.ts +35 -0
  342. package/dist/editor/reviews/useFeedbackThreads.js +137 -0
  343. package/dist/editor/reviews/useFeedbackThreads.js.map +1 -0
  344. package/dist/editor/reviews/useMeasuredHeights.d.ts +25 -0
  345. package/dist/editor/reviews/useMeasuredHeights.js +176 -0
  346. package/dist/editor/reviews/useMeasuredHeights.js.map +1 -0
  347. package/dist/editor/reviews/usePendingFeedbackFocus.d.ts +7 -0
  348. package/dist/editor/reviews/usePendingFeedbackFocus.js +42 -0
  349. package/dist/editor/reviews/usePendingFeedbackFocus.js.map +1 -0
  350. package/dist/editor/services/mcpAccessService.d.ts +93 -0
  351. package/dist/editor/services/mcpAccessService.js +41 -0
  352. package/dist/editor/services/mcpAccessService.js.map +1 -0
  353. package/dist/editor/services/previewTokenService.d.ts +14 -0
  354. package/dist/editor/services/previewTokenService.js +34 -0
  355. package/dist/editor/services/previewTokenService.js.map +1 -0
  356. package/dist/editor/services/renderingsService.d.ts +117 -0
  357. package/dist/editor/services/renderingsService.js +245 -0
  358. package/dist/editor/services/renderingsService.js.map +1 -0
  359. package/dist/editor/services/spellCheckService.d.ts +13 -0
  360. package/dist/editor/services/spellCheckService.js +33 -0
  361. package/dist/editor/services/spellCheckService.js.map +1 -0
  362. package/dist/editor/settings/panels/McpAccessPanel.d.ts +7 -0
  363. package/dist/editor/settings/panels/McpAccessPanel.js +95 -0
  364. package/dist/editor/settings/panels/McpAccessPanel.js.map +1 -0
  365. package/dist/editor/settings/panels/McpAccessSettingsView.d.ts +8 -0
  366. package/dist/editor/settings/panels/McpAccessSettingsView.js +221 -0
  367. package/dist/editor/settings/panels/McpAccessSettingsView.js.map +1 -0
  368. package/dist/editor/settings/panels/SpellCheckPanel.d.ts +8 -0
  369. package/dist/editor/settings/panels/SpellCheckPanel.js +253 -0
  370. package/dist/editor/settings/panels/SpellCheckPanel.js.map +1 -0
  371. package/dist/editor/sidebar/FeedbackSidebar.d.ts +7 -0
  372. package/dist/editor/sidebar/FeedbackSidebar.js +300 -0
  373. package/dist/editor/sidebar/FeedbackSidebar.js.map +1 -0
  374. package/dist/editor/sidebar/OperationDetailsContent.js +50 -0
  375. package/dist/editor/sidebar/OperationDetailsContent.js.map +1 -1
  376. package/dist/editor/sidebar/liveComponentThumbnails.d.ts +19 -6
  377. package/dist/editor/sidebar/liveComponentThumbnails.js +39 -18
  378. package/dist/editor/sidebar/liveComponentThumbnails.js.map +1 -1
  379. package/dist/editor/spellcheck/canvasSpellCheckContextMenu.d.ts +30 -0
  380. package/dist/editor/spellcheck/canvasSpellCheckContextMenu.js +69 -0
  381. package/dist/editor/spellcheck/canvasSpellCheckContextMenu.js.map +1 -0
  382. package/dist/editor/spellcheck/htmlSpellDocument.d.ts +60 -0
  383. package/dist/editor/spellcheck/htmlSpellDocument.js +181 -0
  384. package/dist/editor/spellcheck/htmlSpellDocument.js.map +1 -0
  385. package/dist/editor/spellcheck/htmlSpellTokenizer.d.ts +45 -0
  386. package/dist/editor/spellcheck/htmlSpellTokenizer.js +277 -0
  387. package/dist/editor/spellcheck/htmlSpellTokenizer.js.map +1 -0
  388. package/dist/editor/spellcheck/replacementGuard.d.ts +27 -0
  389. package/dist/editor/spellcheck/replacementGuard.js +29 -0
  390. package/dist/editor/spellcheck/replacementGuard.js.map +1 -0
  391. package/dist/editor/spellcheck/spellCheckCanvasStore.d.ts +17 -0
  392. package/dist/editor/spellcheck/spellCheckCanvasStore.js +37 -0
  393. package/dist/editor/spellcheck/spellCheckCanvasStore.js.map +1 -0
  394. package/dist/editor/spellcheck/spellCheckCanvasTargets.d.ts +71 -0
  395. package/dist/editor/spellcheck/spellCheckCanvasTargets.js +126 -0
  396. package/dist/editor/spellcheck/spellCheckCanvasTargets.js.map +1 -0
  397. package/dist/editor/spellcheck/spellCheckClient.d.ts +66 -0
  398. package/dist/editor/spellcheck/spellCheckClient.js +0 -0
  399. package/dist/editor/spellcheck/spellCheckClient.js.map +1 -0
  400. package/dist/editor/spellcheck/spellCheckContextMenu.d.ts +52 -0
  401. package/dist/editor/spellcheck/spellCheckContextMenu.js +120 -0
  402. package/dist/editor/spellcheck/spellCheckContextMenu.js.map +1 -0
  403. package/dist/editor/spellcheck/spellCheckReplace.d.ts +8 -0
  404. package/dist/editor/spellcheck/spellCheckReplace.js +20 -0
  405. package/dist/editor/spellcheck/spellCheckReplace.js.map +1 -0
  406. package/dist/editor/spellcheck/spellCheckStyles.d.ts +11 -0
  407. package/dist/editor/spellcheck/spellCheckStyles.js +12 -0
  408. package/dist/editor/spellcheck/spellCheckStyles.js.map +1 -0
  409. package/dist/editor/spellcheck/spellCheckTypes.d.ts +94 -0
  410. package/dist/editor/spellcheck/spellCheckTypes.js +2 -0
  411. package/dist/editor/spellcheck/spellCheckTypes.js.map +1 -0
  412. package/dist/editor/spellcheck/textMarkHitTest.d.ts +14 -0
  413. package/dist/editor/spellcheck/textMarkHitTest.js +39 -0
  414. package/dist/editor/spellcheck/textMarkHitTest.js.map +1 -0
  415. package/dist/editor/spellcheck/useSpellCheck.d.ts +16 -0
  416. package/dist/editor/spellcheck/useSpellCheck.js +57 -0
  417. package/dist/editor/spellcheck/useSpellCheck.js.map +1 -0
  418. package/dist/editor/ui/DynamicRenderingsPublishWarning.d.ts +14 -0
  419. package/dist/editor/ui/DynamicRenderingsPublishWarning.js +40 -0
  420. package/dist/editor/ui/DynamicRenderingsPublishWarning.js.map +1 -0
  421. package/dist/editor/ui/ParheliaMark.d.ts +15 -0
  422. package/dist/editor/ui/ParheliaMark.js +12 -0
  423. package/dist/editor/ui/ParheliaMark.js.map +1 -0
  424. package/dist/editor/ui/RootItemPicker.d.ts +18 -0
  425. package/dist/editor/ui/RootItemPicker.js +112 -0
  426. package/dist/editor/ui/RootItemPicker.js.map +1 -0
  427. package/dist/editor/undoEligibility.d.ts +2 -0
  428. package/dist/editor/undoEligibility.js +8 -0
  429. package/dist/editor/undoEligibility.js.map +1 -0
  430. package/dist/editor/utils/dataTransferImages.d.ts +7 -0
  431. package/dist/editor/utils/dataTransferImages.js +43 -0
  432. package/dist/editor/utils/dataTransferImages.js.map +1 -0
  433. package/dist/editor/validation/navigateToValidationIssue.d.ts +2 -2
  434. package/dist/editor/validation/navigateToValidationIssue.js +1 -1
  435. package/dist/editor/validation/navigateToValidationIssue.js.map +1 -1
  436. package/dist/editor/validation/validationRulerIssues.d.ts +17 -0
  437. package/dist/editor/validation/validationRulerIssues.js +44 -0
  438. package/dist/editor/validation/validationRulerIssues.js.map +1 -0
  439. package/dist/revision.d.ts +2 -2
  440. package/dist/revision.js +2 -2
  441. package/dist/task-board/components/AttentionPromptDialog.d.ts +13 -0
  442. package/dist/task-board/components/AttentionPromptDialog.js +45 -0
  443. package/dist/task-board/components/AttentionPromptDialog.js.map +1 -0
  444. package/dist/task-board/components/GoalFindingsTable.d.ts +43 -0
  445. package/dist/task-board/components/GoalFindingsTable.js +160 -0
  446. package/dist/task-board/components/GoalFindingsTable.js.map +1 -0
  447. package/dist/task-board/components/IssuePanel.d.ts +31 -0
  448. package/dist/task-board/components/IssuePanel.js +268 -0
  449. package/dist/task-board/components/IssuePanel.js.map +1 -0
  450. package/dist/task-board/components/SubgoalFindings.d.ts +40 -0
  451. package/dist/task-board/components/SubgoalFindings.js +88 -0
  452. package/dist/task-board/components/SubgoalFindings.js.map +1 -0
  453. package/dist/task-board/services/issueService.d.ts +193 -0
  454. package/dist/task-board/services/issueService.js +97 -0
  455. package/dist/task-board/services/issueService.js.map +1 -0
  456. package/dist/task-board/taskBlockers.d.ts +10 -0
  457. package/dist/task-board/taskBlockers.js +66 -0
  458. package/dist/task-board/taskBlockers.js.map +1 -0
  459. package/dist/task-board/utils/projectDashboardModel.js +14 -0
  460. package/dist/task-board/utils/projectDashboardModel.js.map +1 -1
  461. package/dist/task-board/views/ProjectDashboardView.js +5 -13
  462. package/dist/task-board/views/ProjectDashboardView.js.map +1 -1
  463. package/dist/tour/sandbox-tour-copy.d.ts +8 -0
  464. package/dist/tour/sandbox-tour-copy.js +8 -0
  465. package/dist/tour/sandbox-tour-copy.js.map +1 -1
  466. package/dist/tour/sandbox-tour.d.ts +3 -0
  467. package/dist/tour/sandbox-tour.js +107 -3
  468. package/dist/tour/sandbox-tour.js.map +1 -1
  469. package/package.json +1 -1
  470. package/dist/editor/page-editor-chrome/bridgeLinkValue.d.ts +0 -10
  471. package/dist/editor/page-editor-chrome/bridgeLinkValue.js +0 -55
  472. package/dist/editor/page-editor-chrome/bridgeLinkValue.js.map +0 -1
@@ -0,0 +1,100 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef } from "react";
3
+ import { createPortal } from "react-dom";
4
+ import { getViewportClipPath } from "../../lib/viewportClip";
5
+ import { useOverlayMeasurement } from "./overlay/useOverlayMeasurement";
6
+ export function BridgePasteCleanupOverlay({ iframe, menu, onCommand, }) {
7
+ const menuRef = useRef(null);
8
+ const layout = useOverlayMeasurement(() => {
9
+ if (!iframe || !menu.width || !menu.height)
10
+ return null;
11
+ const frame = iframe.getBoundingClientRect();
12
+ const scaleX = frame.width / menu.viewport.width;
13
+ const scaleY = frame.height / menu.viewport.height;
14
+ const rect = {
15
+ left: frame.left + menu.rect.left * scaleX,
16
+ top: frame.top + menu.rect.top * scaleY,
17
+ width: menu.rect.width * scaleX,
18
+ height: menu.rect.height * scaleY,
19
+ };
20
+ return {
21
+ ...rect,
22
+ scaleX: rect.width / menu.width,
23
+ scaleY: rect.height / menu.height,
24
+ clipPath: getViewportClipPath(rect, frame),
25
+ };
26
+ }, [iframe, menu], {
27
+ initialValue: null,
28
+ equals: (previous, next) => JSON.stringify(previous) === JSON.stringify(next),
29
+ interests: ["viewport", "layout"],
30
+ validateBeforePaint: true,
31
+ });
32
+ useEffect(() => {
33
+ const dismiss = () => onCommand({ id: menu.id, mode: "dismiss" });
34
+ const handlePointerDown = (event) => {
35
+ if (!menuRef.current?.contains(event.target))
36
+ dismiss();
37
+ };
38
+ const handleKeyDown = (event) => {
39
+ if (event.key === "Escape") {
40
+ event.preventDefault();
41
+ dismiss();
42
+ }
43
+ };
44
+ document.addEventListener("pointerdown", handlePointerDown, true);
45
+ document.addEventListener("keydown", handleKeyDown, true);
46
+ return () => {
47
+ document.removeEventListener("pointerdown", handlePointerDown, true);
48
+ document.removeEventListener("keydown", handleKeyDown, true);
49
+ };
50
+ }, [menu.id, onCommand]);
51
+ if (!layout)
52
+ return null;
53
+ return createPortal(_jsx("div", { ref: menuRef, "data-parhelia-paste-cleanup": "true", role: "menu", "aria-label": "Clean up pasted text",
54
+ // Keep the caret and focus in the inline field when choosing cleanup.
55
+ onMouseDown: (event) => event.preventDefault(), style: {
56
+ position: "fixed",
57
+ // Above canvas chrome and inline toolbars, below modal dialogs.
58
+ zIndex: 95,
59
+ left: layout.left,
60
+ top: layout.top,
61
+ width: layout.width,
62
+ height: layout.height,
63
+ clipPath: layout.clipPath,
64
+ pointerEvents: "auto",
65
+ }, children: _jsxs("div", { style: {
66
+ width: menu.width,
67
+ minHeight: menu.height,
68
+ transform: `scale(${layout.scaleX}, ${layout.scaleY})`,
69
+ transformOrigin: "top left",
70
+ boxSizing: "border-box",
71
+ padding: 6,
72
+ border: "1px solid var(--color-border-default)",
73
+ borderRadius: 6,
74
+ background: "var(--color-white)",
75
+ boxShadow: "0 8px 24px color-mix(in srgb, var(--color-neutral-grey-100) 16%, transparent)",
76
+ color: "var(--color-neutral-grey-100)",
77
+ fontFamily: "Inter, ui-sans-serif, sans-serif",
78
+ lineHeight: "normal",
79
+ }, children: [_jsx("div", { style: {
80
+ padding: "3px 9px 5px",
81
+ color: "var(--color-neutral-grey-50)",
82
+ fontSize: 11,
83
+ fontWeight: 600,
84
+ }, children: "Clean up pasted text" }), [
85
+ ["text", "Text only"],
86
+ ["basic", "Basic formatting only"],
87
+ ].map(([mode, label]) => (_jsx("button", { type: "button", role: "menuitem", "data-paste-cleanup-mode": mode, className: "hover:bg-neutral-grey-5", onClick: () => onCommand({ id: menu.id, mode }), style: {
88
+ display: "block",
89
+ width: "100%",
90
+ border: 0,
91
+ borderRadius: 4,
92
+ padding: "7px 9px",
93
+ color: "var(--color-neutral-grey-100)",
94
+ font: "500 12px/1.25 Inter, ui-sans-serif, sans-serif",
95
+ textAlign: "left",
96
+ whiteSpace: "nowrap",
97
+ cursor: "pointer",
98
+ }, children: label }, mode)))] }) }), document.body);
99
+ }
100
+ //# sourceMappingURL=BridgePasteCleanupOverlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BridgePasteCleanupOverlay.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/BridgePasteCleanupOverlay.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,MAAM,UAAU,yBAAyB,CAAC,EACxC,MAAM,EACN,IAAI,EACJ,SAAS,GAKV;IACC,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,qBAAqB,CAClC,GAAG,EAAE;QACH,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACxD,MAAM,KAAK,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnD,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM;YAC1C,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM;YACvC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM;YAC/B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM;SAClC,CAAC;QACF,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;YACjC,QAAQ,EAAE,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC;SAC3C,CAAC;IACJ,CAAC,EACD,CAAC,MAAM,EAAE,IAAI,CAAC,EACd;QACE,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CACzB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QACnD,SAAS,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;QACjC,mBAAmB,EAAE,IAAI;KAC1B,CACF,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAClE,MAAM,iBAAiB,GAAG,CAAC,KAAmB,EAAE,EAAE;YAChD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC;gBAAE,OAAO,EAAE,CAAC;QAClE,CAAC,CAAC;QACF,MAAM,aAAa,GAAG,CAAC,KAAoB,EAAE,EAAE;YAC7C,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC3B,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAClE,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QAC1D,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;YACrE,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QAC/D,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;IAEzB,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,OAAO,YAAY,CACjB,cACE,GAAG,EAAE,OAAO,iCACgB,MAAM,EAClC,IAAI,EAAC,MAAM,gBACA,sBAAsB;QACjC,sEAAsE;QACtE,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,EAC9C,KAAK,EAAE;YACL,QAAQ,EAAE,OAAO;YACjB,gEAAgE;YAChE,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,aAAa,EAAE,MAAM;SACtB,YAED,eACE,KAAK,EAAE;gBACL,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,SAAS,EAAE,IAAI,CAAC,MAAM;gBACtB,SAAS,EAAE,SAAS,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,GAAG;gBACtD,eAAe,EAAE,UAAU;gBAC3B,SAAS,EAAE,YAAY;gBACvB,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,uCAAuC;gBAC/C,YAAY,EAAE,CAAC;gBACf,UAAU,EAAE,oBAAoB;gBAChC,SAAS,EACP,+EAA+E;gBACjF,KAAK,EAAE,+BAA+B;gBACtC,UAAU,EAAE,kCAAkC;gBAC9C,UAAU,EAAE,QAAQ;aACrB,aAED,cACE,KAAK,EAAE;wBACL,OAAO,EAAE,aAAa;wBACtB,KAAK,EAAE,8BAA8B;wBACrC,QAAQ,EAAE,EAAE;wBACZ,UAAU,EAAE,GAAG;qBAChB,qCAGG,EAEJ;oBACE,CAAC,MAAM,EAAE,WAAW,CAAC;oBACrB,CAAC,OAAO,EAAE,uBAAuB,CAAC;iBAErC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACvB,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,UAAU,6BACU,IAAI,EAC7B,SAAS,EAAC,yBAAyB,EACnC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAC/C,KAAK,EAAE;wBACL,OAAO,EAAE,OAAO;wBAChB,KAAK,EAAE,MAAM;wBACb,MAAM,EAAE,CAAC;wBACT,YAAY,EAAE,CAAC;wBACf,OAAO,EAAE,SAAS;wBAClB,KAAK,EAAE,+BAA+B;wBACtC,IAAI,EAAE,gDAAgD;wBACtD,SAAS,EAAE,MAAM;wBACjB,UAAU,EAAE,QAAQ;wBACpB,MAAM,EAAE,SAAS;qBAClB,YAEA,KAAK,IAnBD,IAAI,CAoBF,CACV,CAAC,IACE,GACF,EACN,QAAQ,CAAC,IAAI,CACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { PageViewContext } from "../page-viewer/pageViewContext";
2
+ /**
3
+ * Connects the canvas overview ruler to the canvas: tells it how tall the
4
+ * page is in overlay pixels (the space the highlightings measure their marks
5
+ * in) and scrolls the canvas to a clicked mark.
6
+ */
7
+ export declare function CanvasOverviewRulerBinding({ pageViewContext, }: {
8
+ pageViewContext: PageViewContext;
9
+ }): null;
@@ -0,0 +1,32 @@
1
+ import { useCallback } from "react";
2
+ import { usePublishOverviewRulerCanvas, } from "../page-viewer/overviewRuler";
3
+ import { getOverlayLayerHeight } from "./overlay/geometry";
4
+ import { useIframeOverlay } from "./overlay/IframeOverlayProvider";
5
+ import { useOverlayMeasurement } from "./overlay/useOverlayMeasurement";
6
+ /**
7
+ * Connects the canvas overview ruler to the canvas: tells it how tall the
8
+ * page is in overlay pixels (the space the highlightings measure their marks
9
+ * in) and scrolls the canvas to a clicked mark.
10
+ */
11
+ export function CanvasOverviewRulerBinding({ pageViewContext, }) {
12
+ const overlay = useIframeOverlay();
13
+ const extent = useOverlayMeasurement((metrics) => getOverlayLayerHeight(metrics), [], {
14
+ initialValue: 0,
15
+ equals: Object.is,
16
+ interests: ["viewport", "layout"],
17
+ });
18
+ // The mark lands a third down the canvas, so the text above it stays
19
+ // readable.
20
+ const scrollToMark = useCallback((mark) => {
21
+ const metrics = overlay.getMetrics();
22
+ const scale = metrics.scrollScale * metrics.visualScale || 1;
23
+ const target = Math.max(0, mark.top - metrics.viewportHeight / 3);
24
+ pageViewContext.requestBridgeScrollBy?.({
25
+ y: target / scale - metrics.scrollTop,
26
+ behavior: "smooth",
27
+ });
28
+ }, [overlay, pageViewContext]);
29
+ usePublishOverviewRulerCanvas(extent, scrollToMark);
30
+ return null;
31
+ }
32
+ //# sourceMappingURL=CanvasOverviewRulerBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CanvasOverviewRulerBinding.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/CanvasOverviewRulerBinding.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGpC,OAAO,EAEL,6BAA6B,GAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,EACzC,eAAe,GAGhB;IACC,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,qBAAqB,CAClC,CAAC,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAC3C,EAAE,EACF;QACE,YAAY,EAAE,CAAC;QACf,MAAM,EAAE,MAAM,CAAC,EAAE;QACjB,SAAS,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;KAClC,CACF,CAAC;IAEF,qEAAqE;IACrE,YAAY;IACZ,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,IAAuB,EAAE,EAAE;QAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;QAClE,eAAe,CAAC,qBAAqB,EAAE,CAAC;YACtC,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,SAAS;YACrC,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;IACL,CAAC,EACD,CAAC,OAAO,EAAE,eAAe,CAAC,CAC3B,CAAC;IAEF,6BAA6B,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { InteractionEventPayload } from "../bridge/protocol";
2
+ import { type PageViewContext } from "../page-viewer/pageViewContext";
3
+ /**
4
+ * The canvas half of comment target picking: outlines and names what a click
5
+ * would comment on. It takes no pointer events. The page underneath stays
6
+ * fully interactive, so a passage can be selected to comment on it, and the
7
+ * picking itself runs on the host bridge's events (`handleCanvasPickInteraction`,
8
+ * `isCanvasPickSelection` in PageViewerFrame): what the bridge reports as
9
+ * hovered is exactly what its click will report.
10
+ */
11
+ export declare function CommentTargetPickerCanvasLayer({ pageViewContext, bridgeInteraction, }: {
12
+ pageViewContext: PageViewContext;
13
+ bridgeInteraction?: InteractionEventPayload;
14
+ }): import("react").JSX.Element | null;
@@ -0,0 +1,110 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from "react";
3
+ import { useEditContext } from "../client/editContext";
4
+ import { usePageViewState, } from "../page-viewer/pageViewContext";
5
+ import { CommentTargetOutline } from "../reviews/CommentTargetOutline";
6
+ import { normalizeMarkerId } from "../utils";
7
+ import { bridgeRectToOverlayRect } from "./overlay/geometry";
8
+ import { useOverlayMeasurement } from "./overlay/useOverlayMeasurement";
9
+ function outlinesEqual(a, b) {
10
+ if (!a || !b)
11
+ return a === b;
12
+ return (a.fieldKey === b.fieldKey &&
13
+ a.componentName === b.componentName &&
14
+ a.rect.x === b.rect.x &&
15
+ a.rect.y === b.rect.y &&
16
+ a.rect.width === b.rect.width &&
17
+ a.rect.height === b.rect.height);
18
+ }
19
+ /**
20
+ * The canvas half of comment target picking: outlines and names what a click
21
+ * would comment on. It takes no pointer events. The page underneath stays
22
+ * fully interactive, so a passage can be selected to comment on it, and the
23
+ * picking itself runs on the host bridge's events (`handleCanvasPickInteraction`,
24
+ * `isCanvasPickSelection` in PageViewerFrame): what the bridge reports as
25
+ * hovered is exactly what its click will report.
26
+ */
27
+ export function CommentTargetPickerCanvasLayer({ pageViewContext, bridgeInteraction, }) {
28
+ const geometry = usePageViewState(pageViewContext, (state) => state.bridgeGeometry);
29
+ const structure = usePageViewState(pageViewContext, (state) => state.bridgeStructure);
30
+ const editContext = useEditContext();
31
+ const [fieldNames, setFieldNames] = useState({});
32
+ const requestedFieldNamesRef = useRef(new Set());
33
+ const hover = bridgeInteraction?.kind === "hover" ? bridgeInteraction : undefined;
34
+ const outline = useOverlayMeasurement((metrics) => {
35
+ if (!hover || !geometry)
36
+ return null;
37
+ const componentId = normalizeMarkerId(hover.componentId);
38
+ const componentName = structure?.components.find((component) => normalizeMarkerId(component.id) === componentId)?.name;
39
+ // A field wins over the component around it, as it does for the click.
40
+ if (hover.fieldId && hover.item?.id) {
41
+ const fieldId = normalizeMarkerId(hover.fieldId);
42
+ const itemId = normalizeMarkerId(hover.item.id);
43
+ const field = geometry.targets.find((target) => target.kind === "field" &&
44
+ !target.decorationsSuppressed &&
45
+ (target.elementKey === hover.elementKey ||
46
+ (normalizeMarkerId(target.fieldId) === fieldId &&
47
+ normalizeMarkerId(target.item?.id) === itemId)));
48
+ if (field) {
49
+ return {
50
+ rect: bridgeRectToOverlayRect(geometry, field.rect, metrics),
51
+ fieldKey: `${itemId}:${fieldId}`,
52
+ componentName,
53
+ };
54
+ }
55
+ }
56
+ if (!componentId)
57
+ return null;
58
+ const component = geometry.targets.find((target) => target.kind === "component" &&
59
+ !target.decorationsSuppressed &&
60
+ (normalizeMarkerId(target.componentId) === componentId ||
61
+ normalizeMarkerId(target.key) === componentId));
62
+ if (!component)
63
+ return null;
64
+ return {
65
+ rect: bridgeRectToOverlayRect(geometry, component.rect, metrics),
66
+ componentName,
67
+ };
68
+ }, [hover, geometry, structure], {
69
+ initialValue: null,
70
+ equals: outlinesEqual,
71
+ interests: ["viewport", "layout"],
72
+ });
73
+ // The field's name for the label; the bridge only knows its id.
74
+ const fieldKey = outline?.fieldKey;
75
+ useEffect(() => {
76
+ if (!fieldKey || !editContext || !hover?.fieldId || !hover.item?.id)
77
+ return;
78
+ if (requestedFieldNamesRef.current.has(fieldKey))
79
+ return;
80
+ requestedFieldNamesRef.current.add(fieldKey);
81
+ const page = pageViewContext.getState().pageItemDescriptor;
82
+ // Cached even when the pointer has moved on: each field is asked once.
83
+ void editContext.itemsRepository
84
+ .getField({
85
+ fieldId: hover.fieldId,
86
+ item: {
87
+ id: hover.item.id,
88
+ language: hover.item.language ?? page?.language ?? "",
89
+ version: hover.item.version ?? page?.version ?? 0,
90
+ },
91
+ })
92
+ .then((field) => {
93
+ const name = field?.name;
94
+ if (!name)
95
+ return;
96
+ setFieldNames((current) => ({ ...current, [fieldKey]: name }));
97
+ })
98
+ .catch(() => { });
99
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- keyed by the field identity
100
+ }, [fieldKey, editContext]);
101
+ if (!outline)
102
+ return null;
103
+ const label = outline.fieldKey
104
+ ? [outline.componentName, fieldNames[outline.fieldKey]]
105
+ .filter(Boolean)
106
+ .join(" › ") || "Field"
107
+ : outline.componentName || "Component";
108
+ return (_jsx(CommentTargetOutline, { rect: outline.rect, label: label, position: "absolute", zIndex: 41 }));
109
+ }
110
+ //# sourceMappingURL=CommentTargetPickerCanvasLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentTargetPickerCanvasLayer.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/CommentTargetPickerCanvasLayer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type PageViewContext } from "../page-viewer/pageViewContext";
2
+ /**
3
+ * Frames the components a conversion just created and offers a one-click
4
+ * undo. The edit context clears the conversion on the next edit or page switch.
5
+ */
6
+ export declare function ConversionIndicators({ pageViewContext, }: {
7
+ pageViewContext: PageViewContext;
8
+ }): import("react").JSX.Element | null;
@@ -0,0 +1,75 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import { Undo2 } from "lucide-react";
4
+ import { useEditContext } from "../client/editContext";
5
+ import { usePageViewState, } from "../page-viewer/pageViewContext";
6
+ import { getComponentById } from "../componentTreeHelper";
7
+ import { useOverlayMeasurement } from "./overlay/useOverlayMeasurement";
8
+ import { measureBridgeComponentRect, rectEquals, } from "./overlay/geometry";
9
+ /**
10
+ * Frames the components a conversion just created and offers a one-click
11
+ * undo. The edit context clears the conversion on the next edit or page switch.
12
+ */
13
+ export function ConversionIndicators({ pageViewContext, }) {
14
+ const editContext = useEditContext();
15
+ const conversion = editContext?.recentConversion;
16
+ const [undoing, setUndoing] = useState(false);
17
+ const page = usePageViewState(pageViewContext, (state) => state.page);
18
+ const bridgeGeometry = usePageViewState(pageViewContext, (state) => state.bridgeGeometry);
19
+ const rects = useOverlayMeasurement((metrics) => {
20
+ if (!conversion || !page || !bridgeGeometry) {
21
+ return [];
22
+ }
23
+ return conversion.componentIds
24
+ .map((componentId) => {
25
+ const component = getComponentById(componentId, page);
26
+ if (!component)
27
+ return null;
28
+ const measurement = measureBridgeComponentRect(bridgeGeometry, component, metrics);
29
+ return measurement?.rect ? { componentId, rect: measurement.rect } : null;
30
+ })
31
+ .filter((entry) => entry !== null);
32
+ }, [conversion, bridgeGeometry, page], {
33
+ initialValue: [],
34
+ equals: (previous, next) => previous.length === next.length &&
35
+ previous.every((entry, index) => entry.componentId === next[index].componentId &&
36
+ rectEquals(entry.rect, next[index].rect)),
37
+ interests: ["viewport", "layout", "adornment-data"],
38
+ });
39
+ if (!conversion || rects.length === 0 || !editContext)
40
+ return null;
41
+ const undo = async () => {
42
+ if (undoing)
43
+ return;
44
+ setUndoing(true);
45
+ try {
46
+ const undone = await editContext.operations.undoOperations([conversion.operationId]);
47
+ if (undone)
48
+ editContext.setRecentConversion?.(undefined);
49
+ }
50
+ finally {
51
+ setUndoing(false);
52
+ }
53
+ };
54
+ return (_jsx(_Fragment, { children: rects.map(({ componentId, rect }, index) => (_jsxs("div", { children: [_jsx("div", { className: "border-feedback-green pointer-events-none absolute rounded-[3px] border-2", "data-testid": "component-conversion-frame", style: {
55
+ top: rect.y,
56
+ left: rect.x,
57
+ width: rect.width,
58
+ height: rect.height,
59
+ zIndex: 999,
60
+ } }), index === 0 && (_jsxs("div", { className: "border-border-default pointer-events-auto absolute flex items-center gap-2 rounded-[4px] border bg-white px-2 py-1 text-xs shadow-sm", "data-testid": "component-conversion-badge",
61
+ // Below the bottom-right corner: the selected component's frame
62
+ // menu owns the top edge and the insert handles the bottom center.
63
+ style: {
64
+ top: rect.y + rect.height + 6,
65
+ left: rect.x + rect.width,
66
+ transform: "translateX(-100%)",
67
+ zIndex: 1001,
68
+ whiteSpace: "nowrap",
69
+ }, children: [_jsxs("span", { className: "text-neutral-grey-100", children: ["Converted from ", conversion.fromName] }), _jsxs("button", { type: "button", className: "text-highlight-100 flex items-center gap-1 font-medium hover:underline disabled:opacity-50", disabled: undoing, onClick: (event) => {
70
+ event.preventDefault();
71
+ event.stopPropagation();
72
+ void undo();
73
+ }, "data-testid": "component-conversion-undo", children: [_jsx(Undo2, { className: "h-3.5 w-3.5", strokeWidth: 1.5 }), "Undo"] })] }))] }, componentId))) }));
74
+ }
75
+ //# sourceMappingURL=ConversionIndicators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConversionIndicators.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/ConversionIndicators.tsx"],"names":[],"mappings":"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"}
@@ -1,16 +1,7 @@
1
- import type { PageViewContext } from "../page-viewer/pageViewContext";
1
+ import { type PageViewContext } from "../page-viewer/pageViewContext";
2
2
  import { type ComponentDiffTarget, type DiffTarget } from "../version-diff/versionDiffTargets";
3
3
  import { type VersionDiffVariant } from "../version-diff/versionDiffGeometryKeys";
4
- /**
5
- * An overview ruler next to the highlights: a vertical bar with one dash per
6
- * run of changes, so edits are visible even where the thumbnail is too small
7
- * to show the highlight itself. Positioned in overlay-layer pixels.
8
- */
9
- export type DiffHighlightRuler = {
10
- left: number;
11
- width: number;
12
- testId?: string;
13
- };
4
+ import { type OverviewRulerSource } from "../page-viewer/overviewRuler";
14
5
  export type DiffHighlightOverlayProps = {
15
6
  pageViewContext: PageViewContext;
16
7
  variant?: VersionDiffVariant;
@@ -23,11 +14,16 @@ export type DiffHighlightOverlayProps = {
23
14
  targets: DiffTarget[];
24
15
  componentTargets: ComponentDiffTarget[];
25
16
  testId?: string;
26
- ruler?: DiffHighlightRuler;
17
+ /**
18
+ * Also marks the changes on the canvas overview ruler, as this source.
19
+ * The source stays published while the overlay is mounted, even with
20
+ * nothing measured.
21
+ */
22
+ rulerSource?: OverviewRulerSource;
27
23
  };
28
24
  /**
29
25
  * Publishes diff targets to the bridge geometry union and paints the measured
30
26
  * rects: shared by the version-diff (compare) highlights and the agent-change
31
27
  * highlights, which only differ in how they resolve their targets.
32
28
  */
33
- export declare function DiffHighlightOverlay({ pageViewContext, variant, scope, targets, componentTargets, testId, ruler, }: DiffHighlightOverlayProps): import("react").JSX.Element | null;
29
+ export declare function DiffHighlightOverlay({ pageViewContext, variant, scope, targets, componentTargets, testId, rulerSource, }: DiffHighlightOverlayProps): import("react").JSX.Element | null;
@@ -1,13 +1,13 @@
1
- import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useEffect, useMemo, useRef } from "react";
3
+ import { usePageViewState, } from "../page-viewer/pageViewContext";
3
4
  import { fieldKey, } from "../version-diff/versionDiffTargets";
4
5
  import { versionDiffHighlightClasses } from "../version-diff/versionDiffHighlightStyles";
5
6
  import { getDiffBridgeSource, getDiffInnerRangeKey, getDiffTextRangeKey, } from "../version-diff/versionDiffGeometryKeys";
6
7
  import { bridgeRectToOverlayRect, measureBridgeFieldRect, measureBridgeTextRangeRects, rectListEquals, } from "./overlay/geometry";
7
8
  import { useOverlayMeasurement } from "./overlay/useOverlayMeasurement";
8
9
  import { normalizeMarkerId } from "../utils";
9
- import { buildDiffRulerSegments } from "./diffRulerSegments";
10
- import { cn } from "../../lib/utils";
10
+ import { buildOverviewRulerMarks, usePublishOverviewRulerMarks, } from "../page-viewer/overviewRuler";
11
11
  function measuredDiffHighlightsEqual(previous, next) {
12
12
  if (previous.length !== next.length)
13
13
  return false;
@@ -29,8 +29,11 @@ function measuredDiffHighlightsEqual(previous, next) {
29
29
  * rects: shared by the version-diff (compare) highlights and the agent-change
30
30
  * highlights, which only differ in how they resolve their targets.
31
31
  */
32
- export function DiffHighlightOverlay({ pageViewContext, variant = "default", scope, targets, componentTargets, testId = "version-diff-highlight", ruler, }) {
32
+ export function DiffHighlightOverlay({ pageViewContext, variant = "default", scope, targets, componentTargets, testId = "version-diff-highlight", rulerSource, }) {
33
33
  const bridgeSource = getDiffBridgeSource(scope);
34
+ const bridgeReady = usePageViewState(pageViewContext, (state) => state.bridgeReady);
35
+ const bridgeGeometry = usePageViewState(pageViewContext, (state) => state.bridgeGeometry);
36
+ const bridgeStructure = usePageViewState(pageViewContext, (state) => state.bridgeStructure);
34
37
  const rangesByTargetKey = useMemo(() => new Map(targets.map((target) => [
35
38
  fieldKey(target.descriptor),
36
39
  target.hasDeletionOnlyChange
@@ -39,7 +42,7 @@ export function DiffHighlightOverlay({ pageViewContext, variant = "default", sco
39
42
  ])), [targets]);
40
43
  const lastBridgeTextRangeSignatureRef = useRef("");
41
44
  useEffect(() => {
42
- if (!pageViewContext.bridgeReady) {
45
+ if (!bridgeReady) {
43
46
  lastBridgeTextRangeSignatureRef.current = "";
44
47
  return;
45
48
  }
@@ -111,7 +114,7 @@ export function DiffHighlightOverlay({ pageViewContext, variant = "default", sco
111
114
  };
112
115
  }, [
113
116
  pageViewContext,
114
- pageViewContext.bridgeReady,
117
+ bridgeReady,
115
118
  rangesByTargetKey,
116
119
  targets,
117
120
  variant,
@@ -129,8 +132,6 @@ export function DiffHighlightOverlay({ pageViewContext, variant = "default", sco
129
132
  };
130
133
  }, [pageViewContext, bridgeSource]);
131
134
  const highlights = useOverlayMeasurement((metrics) => {
132
- const bridgeGeometry = pageViewContext.bridgeGeometry;
133
- const bridgeStructure = pageViewContext.bridgeStructure;
134
135
  if (!bridgeGeometry)
135
136
  return [];
136
137
  const isMini = variant === "minimap";
@@ -229,8 +230,8 @@ export function DiffHighlightOverlay({ pageViewContext, variant = "default", sco
229
230
  }
230
231
  return measured;
231
232
  }, [
232
- pageViewContext.bridgeGeometry,
233
- pageViewContext.bridgeStructure,
233
+ bridgeGeometry,
234
+ bridgeStructure,
234
235
  targets,
235
236
  componentTargets,
236
237
  rangesByTargetKey,
@@ -241,17 +242,21 @@ export function DiffHighlightOverlay({ pageViewContext, variant = "default", sco
241
242
  equals: measuredDiffHighlightsEqual,
242
243
  interests: ["viewport", "layout", "text", "adornment-data"],
243
244
  });
244
- const rulerSegments = useMemo(() => (ruler ? buildDiffRulerSegments(highlights) : []), [ruler, highlights]);
245
- if (highlights.length === 0 && !ruler)
245
+ const rulerMarks = useMemo(() => rulerSource
246
+ ? buildOverviewRulerMarks(highlights.map((highlight) => ({
247
+ tone: highlight.kind === "removed" ? "removed" : "added",
248
+ rects: highlight.rects,
249
+ })))
250
+ : null, [rulerSource, highlights]);
251
+ usePublishOverviewRulerMarks(rulerSource, rulerMarks);
252
+ if (highlights.length === 0)
246
253
  return null;
247
- return (_jsxs(_Fragment, { children: [ruler && (_jsx("div", { className: "bg-neutral-grey-10 pointer-events-none absolute top-0 bottom-0", "data-testid": ruler.testId ?? `${testId}-ruler`, style: { left: ruler.left, width: ruler.width }, children: rulerSegments.map((segment, index) => (_jsx("div", { className: cn("absolute inset-x-0 rounded-full", segment.kind === "removed"
248
- ? "bg-feedback-red"
249
- : "bg-feedback-green"), "data-testid": `${ruler.testId ?? `${testId}-ruler`}-dash`, "data-diff-kind": segment.kind, style: { top: segment.top, height: segment.height } }, index))) })), highlights.flatMap((highlight) => highlight.rects.map((rect, index) => (_jsx("div", { className: highlight.className, "data-testid": testId, "data-diff-kind": highlight.kind, "data-diff-tier": highlight.tier, style: {
250
- top: rect.y,
251
- left: rect.x,
252
- width: Math.max(rect.width, 2),
253
- height: Math.max(rect.height, 2),
254
- } }, `${highlight.key}-${index}`))))] }));
254
+ return (_jsx(_Fragment, { children: highlights.flatMap((highlight) => highlight.rects.map((rect, index) => (_jsx("div", { className: highlight.className, "data-testid": testId, "data-diff-kind": highlight.kind, "data-diff-tier": highlight.tier, style: {
255
+ top: rect.y,
256
+ left: rect.x,
257
+ width: Math.max(rect.width, 2),
258
+ height: Math.max(rect.height, 2),
259
+ } }, `${highlight.key}-${index}`)))) }));
255
260
  }
256
261
  function isUniformRange(range) {
257
262
  return (range.innerRanges.length === 1 &&
@@ -1 +1 @@
1
- {"version":3,"file":"DiffHighlightOverlay.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/DiffHighlightOverlay.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAGnD,OAAO,EACL,QAAQ,GAKT,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GAEpB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAE3B,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAoCrC,SAAS,2BAA2B,CAClC,QAAiC,EACjC,IAA6B;IAE7B,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QAC1B,IACE,YAAY,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG;YACjC,YAAY,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS;YAC7C,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;YACnC,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;YACnC,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EACnD,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,EACnC,eAAe,EACf,OAAO,GAAG,SAAS,EACnB,KAAK,EACL,OAAO,EACP,gBAAgB,EAChB,MAAM,GAAG,wBAAwB,EACjC,KAAK,GACqB;IAC1B,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,iBAAiB,GAAG,OAAO,CAC/B,GAAG,EAAE,CACH,IAAI,GAAG,CACL,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QACtB,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;QAC3B,MAAM,CAAC,qBAAqB;YAC1B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;KAC7D,CAAC,CACH,EACH,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,MAAM,+BAA+B,GAAG,MAAM,CAAS,EAAE,CAAC,CAAC;IAE3D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;YACjC,+BAA+B,CAAC,OAAO,GAAG,EAAE,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5C,IAAI,MAAM,CAAC,qBAAqB;gBAAE,OAAO,EAAE,CAAC;YAE5C,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC9C,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACtD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACrC,MAAM,OAAO,GAAG;oBACd;wBACE,GAAG,EAAE,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC;wBACjD,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;wBAClC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI;wBAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,GAAG,EAAE,KAAK,CAAC,GAAG;qBACf;iBACF,CAAC;gBACF,oEAAoE;gBACpE,mDAAmD;gBACnD,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;oBACpD,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,EAAE;wBACrD,OAAO,CAAC,IAAI,CAAC;4BACX,GAAG,EAAE,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC;4BAC9D,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO;4BAClC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI;4BAC5B,KAAK;4BACL,GAAG;yBACJ,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,wEAAwE;QACxE,sDAAsD;QACtD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,IAAI,SAAS,KAAK,+BAA+B,CAAC,OAAO;YAAE,OAAO;QAElE,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,UAA8B,CAAC;QACnC,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,iBAAiB,GAAG,GAAG,EAAE;YAC7B,IAAI,SAAS;gBAAE,OAAO;YAEtB,mEAAmE;YACnE,2EAA2E;YAC3E,4EAA4E;YAC5E,4EAA4E;YAC5E,8EAA8E;YAC9E,8DAA8D;YAC9D,MAAM,QAAQ,GAAG,eAAe,CAAC,qBAAqB,EAAE,CAAC;gBACvD,MAAM,EAAE,YAAY;gBACpB,UAAU;aACX,CAAC,CAAC;YACH,IAAI,QAAQ,EAAE,CAAC;gBACb,+BAA+B,CAAC,OAAO,GAAG,SAAS,CAAC;gBACpD,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,UAAU,EAAE,GAAG,CAAC,CAAC;YAClD,UAAU,IAAI,CAAC,CAAC;YAChB,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC,CAAC;QAEF,iBAAiB,EAAE,CAAC;QACpB,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,IAAI,UAAU,KAAK,SAAS;gBAAE,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAChE,CAAC,CAAC;IACJ,CAAC,EAAE;QACD,eAAe;QACf,eAAe,CAAC,WAAW;QAC3B,iBAAiB;QACjB,OAAO;QACP,OAAO;QACP,KAAK;QACL,YAAY;KACb,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,qEAAqE;YACrE,uDAAuD;YACvD,eAAe,CAAC,qBAAqB,EAAE,CAAC;gBACtC,MAAM,EAAE,YAAY;gBACpB,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC;IAEpC,MAAM,UAAU,GAAG,qBAAqB,CACtC,CAAC,OAAO,EAAE,EAAE;QACV,MAAM,cAAc,GAAG,eAAe,CAAC,cAAc,CAAC;QACtD,MAAM,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC;QACxD,IAAI,CAAC,cAAc;YAAE,OAAO,EAAE,CAAC;QAE/B,MAAM,MAAM,GAAG,OAAO,KAAK,SAAS,CAAC;QACrC,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAE7C,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,8BAA8B,CAChD,cAAc,EACd,MAAM,EACN,OAAO,CACR,CAAC;YACF,IAAI,CAAC,WAAW;gBAAE,SAAS;YAC3B,QAAQ,CAAC,IAAI,CAAC;gBACZ,GAAG,EAAE,aAAa,MAAM,CAAC,EAAE,EAAE;gBAC7B,SAAS,EACP,MAAM,CAAC,IAAI,KAAK,SAAS;oBACvB,CAAC,CAAC,MAAM;wBACN,CAAC,CAAC,2BAA2B,CAAC,oBAAoB;wBAClD,CAAC,CAAC,2BAA2B,CAAC,gBAAgB;oBAChD,CAAC,CAAC,MAAM;wBACN,CAAC,CAAC,2BAA2B,CAAC,aAAa;wBAC3C,CAAC,CAAC,2BAA2B,CAAC,SAAS;gBAC7C,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,CAAC,WAAW,CAAC;aACrB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC9C,MAAM,WAAW,GACf,MAAM,CAAC,SAAS,KAAK,SAAS;gBAC5B,CAAC,CAAC,MAAM;oBACN,CAAC,CAAC,2BAA2B,CAAC,eAAe;oBAC7C,CAAC,CAAC,2BAA2B,CAAC,WAAW;gBAC3C,CAAC,CAAC,MAAM;oBACN,CAAC,CAAC,2BAA2B,CAAC,QAAQ;oBACtC,CAAC,CAAC,2BAA2B,CAAC,IAAI,CAAC;YACzC,MAAM,SAAS,GACb,MAAM,CAAC,SAAS,KAAK,SAAS;gBAC5B,CAAC,CAAC,2BAA2B,CAAC,eAAe;gBAC7C,CAAC,CAAC,2BAA2B,CAAC,QAAQ,CAAC;YAE3C,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,sBAAsB,CACjC,cAAc,EACd,eAAe,EACf,MAAM,CAAC,UAAU,EACjB,OAAO,CACR,CAAC;gBACF,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACpB,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,SAAS;oBACd,SAAS,EAAE,MAAM;wBACf,CAAC,CAAC,2BAA2B,CAAC,gBAAgB;wBAC9C,CAAC,CAAC,2BAA2B,CAAC,YAAY;oBAC5C,IAAI,EAAE,MAAM,CAAC,SAAS;oBACtB,KAAK,EAAE,CAAC,IAAI,CAAC;iBACd,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAkB,EAAE,CAAC;YACpC,MAAM,SAAS,GAAkB,EAAE,CAAC;YACpC,MAAM,SAAS,GAAkB,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAEtD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC9B,MAAM,UAAU,GAAG,2BAA2B,CAC5C,cAAc,EACd,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,EAC5C,OAAO,CACR,CAAC;gBACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5B,MAAM,YAAY,GAAG,sBAAsB,CACzC,cAAc,EACd,eAAe,EACf,MAAM,CAAC,UAAU,EACjB,OAAO,CACR,CAAC;oBACF,IAAI,YAAY;wBAAE,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC/C,OAAO;gBACT,CAAC;gBAED,IAAI,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;oBACpC,SAAS,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;oBAC9B,OAAO;gBACT,CAAC;gBAED,SAAS,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;gBAC9B,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE;oBAC1C,SAAS,CAAC,IAAI,CACZ,GAAG,2BAA2B,CAC5B,cAAc,EACd,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,EACzD,OAAO,CACR,CACF,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,GAAG,SAAS,OAAO;oBACxB,SAAS,EAAE,SAAS;oBACpB,IAAI,EAAE,MAAM,CAAC,SAAS;oBACtB,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,SAAS;iBACjB,CAAC,CAAC;YACL,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,GAAG,SAAS,OAAO;oBACxB,SAAS,EAAE,WAAW;oBACtB,IAAI,EAAE,MAAM,CAAC,SAAS;oBACtB,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,SAAS;iBACjB,CAAC,CAAC;YACL,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,SAAS;oBACd,SAAS,EAAE,WAAW;oBACtB,IAAI,EAAE,MAAM,CAAC,SAAS;oBACtB,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,SAAS;iBACjB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD;QACE,eAAe,CAAC,cAAc;QAC9B,eAAe,CAAC,eAAe;QAC/B,OAAO;QACP,gBAAgB;QAChB,iBAAiB;QACjB,OAAO;QACP,KAAK;KACN,EACD;QACE,YAAY,EAAE,EAAE;QAChB,MAAM,EAAE,2BAA2B;QACnC,SAAS,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC;KAC5D,CACF,CAAC;IAEF,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EACvD,CAAC,KAAK,EAAE,UAAU,CAAC,CACpB,CAAC;IAEF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAEnD,OAAO,CACL,8BACG,KAAK,IAAI,CACR,cACE,SAAS,EAAC,gEAAgE,iBAC7D,KAAK,CAAC,MAAM,IAAI,GAAG,MAAM,QAAQ,EAC9C,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,YAE9C,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CACrC,cAEE,SAAS,EAAE,EAAE,CACX,iCAAiC,EACjC,OAAO,CAAC,IAAI,KAAK,SAAS;wBACxB,CAAC,CAAC,iBAAiB;wBACnB,CAAC,CAAC,mBAAmB,CACxB,iBACY,GAAG,KAAK,CAAC,MAAM,IAAI,GAAG,MAAM,QAAQ,OAAO,oBACxC,OAAO,CAAC,IAAI,EAC5B,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAT9C,KAAK,CAUV,CACH,CAAC,GACE,CACP,EACA,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAChC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CACnC,cAEE,SAAS,EAAE,SAAS,CAAC,SAAS,iBACjB,MAAM,oBACH,SAAS,CAAC,IAAI,oBACd,SAAS,CAAC,IAAI,EAC9B,KAAK,EAAE;oBACL,GAAG,EAAE,IAAI,CAAC,CAAC;oBACX,IAAI,EAAE,IAAI,CAAC,CAAC;oBACZ,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC9B,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;iBACjC,IAVI,GAAG,SAAS,CAAC,GAAG,IAAI,KAAK,EAAE,CAWhC,CACH,CAAC,CACH,IACA,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAgB;IACtC,OAAO,CACL,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;QAC9B,KAAK,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK;QACxC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,GAAG,CACvC,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CACrC,QAA2C,EAC3C,MAA2B,EAC3B,OAAsD;IAEtD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,YAAY,GAAG;QACnB,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,EAAE;QACT,MAAM,CAAC,UAAU;QACjB,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,UAAU;QACjB,MAAM,CAAC,uBAAuB;KAC/B;SACE,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAE1B,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;QACzD,IAAI,SAAS,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QACjD,MAAM,aAAa,GAAG;YACpB,SAAS,CAAC,WAAW;YACrB,SAAS,CAAC,GAAG;YACb,SAAS,CAAC,UAAU;SACrB;aACE,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC1B,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,cAAc,EAAE,IAAI;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,uBAAuB,CAAC,QAAQ,EAAE,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"DiffHighlightOverlay.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/DiffHighlightOverlay.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { FeedbackAnchor } from "./overlay/feedbackAnchorMeasurements";
2
+ /**
3
+ * The canvas half of a Word-style leader line: a tick at the start of the
4
+ * anchored text and a dashed rule from the end of its first line to the right
5
+ * edge of the visible viewport, where the comment margin's half continues to
6
+ * the card. Both halves derive their y from the same measured rect, so they
7
+ * meet at the iframe edge.
8
+ */
9
+ export declare function FeedbackLeaderCanvasSegment({ anchor, viewportRight, color, emphasis, testId, }: {
10
+ anchor: FeedbackAnchor;
11
+ viewportRight: number;
12
+ color: string;
13
+ emphasis: "selected" | "hovered";
14
+ testId?: string;
15
+ }): import("react").JSX.Element;
@@ -0,0 +1,31 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * The canvas half of a Word-style leader line: a tick at the start of the
4
+ * anchored text and a dashed rule from the end of its first line to the right
5
+ * edge of the visible viewport, where the comment margin's half continues to
6
+ * the card. Both halves derive their y from the same measured rect, so they
7
+ * meet at the iframe edge.
8
+ */
9
+ export function FeedbackLeaderCanvasSegment({ anchor, viewportRight, color, emphasis, testId = "feedback-leader-canvas", }) {
10
+ const left = anchor.xEnd + 2;
11
+ const width = viewportRight - left;
12
+ const opacity = emphasis === "selected" ? 0.9 : 0.5;
13
+ return (_jsxs(_Fragment, { children: [_jsx("div", { "data-testid": `${testId}-tick`, className: "pointer-events-none absolute", style: {
14
+ top: anchor.y,
15
+ left: anchor.xStart - 4,
16
+ width: 2,
17
+ height: Math.max(anchor.height, 10),
18
+ background: color,
19
+ opacity,
20
+ zIndex: 3,
21
+ } }), width > 0 && (_jsx("div", { "data-testid": testId, "data-feedback-leader": emphasis, className: "pointer-events-none absolute", style: {
22
+ top: anchor.lineMidY,
23
+ left,
24
+ width,
25
+ height: 0,
26
+ borderTop: `1.5px dashed ${color}`,
27
+ opacity,
28
+ zIndex: 3,
29
+ } }))] }));
30
+ }
31
+ //# sourceMappingURL=FeedbackLeaderCanvasSegment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeedbackLeaderCanvasSegment.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/FeedbackLeaderCanvasSegment.tsx"],"names":[],"mappings":";AAEA;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CAAC,EAC1C,MAAM,EACN,aAAa,EACb,KAAK,EACL,QAAQ,EACR,MAAM,GAAG,wBAAwB,GAOlC;IACC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,aAAa,GAAG,IAAI,CAAC;IACnC,MAAM,OAAO,GAAG,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAEpD,OAAO,CACL,8BACE,6BACe,GAAG,MAAM,OAAO,EAC7B,SAAS,EAAC,8BAA8B,EACxC,KAAK,EAAE;oBACL,GAAG,EAAE,MAAM,CAAC,CAAC;oBACb,IAAI,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC;oBACvB,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;oBACnC,UAAU,EAAE,KAAK;oBACjB,OAAO;oBACP,MAAM,EAAE,CAAC;iBACV,GACD,EACD,KAAK,GAAG,CAAC,IAAI,CACZ,6BACe,MAAM,0BACG,QAAQ,EAC9B,SAAS,EAAC,8BAA8B,EACxC,KAAK,EAAE;oBACL,GAAG,EAAE,MAAM,CAAC,QAAQ;oBACpB,IAAI;oBACJ,KAAK;oBACL,MAAM,EAAE,CAAC;oBACT,SAAS,EAAE,gBAAgB,KAAK,EAAE;oBAClC,OAAO;oBACP,MAAM,EAAE,CAAC;iBACV,GACD,CACH,IACA,CACJ,CAAC;AACJ,CAAC"}