@parhelia/core 0.4.12818 → 0.4.12825

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 (197) hide show
  1. package/dist/config/config.js +3 -0
  2. package/dist/config/config.js.map +1 -1
  3. package/dist/editor/ai/AgentStatusBadge.js +11 -9
  4. package/dist/editor/ai/AgentStatusBadge.js.map +1 -1
  5. package/dist/editor/ai/Agents.js +2 -2
  6. package/dist/editor/ai/Agents.js.map +1 -1
  7. package/dist/editor/ai/agentDiagnostics.d.ts +1 -1
  8. package/dist/editor/ai/agentDiagnostics.js +8 -0
  9. package/dist/editor/ai/agentDiagnostics.js.map +1 -1
  10. package/dist/editor/ai/terminal/agentSessionSnapshot.d.ts +15 -0
  11. package/dist/editor/ai/terminal/agentSessionSnapshot.js +103 -3
  12. package/dist/editor/ai/terminal/agentSessionSnapshot.js.map +1 -1
  13. package/dist/editor/ai/terminal/agentSessionState.js +5 -1
  14. package/dist/editor/ai/terminal/agentSessionState.js.map +1 -1
  15. package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.js +5 -5
  16. package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.js.map +1 -1
  17. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js +1 -1
  18. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js.map +1 -1
  19. package/dist/editor/ai/terminal/components/AgentSkillSettingsSection.js +2 -2
  20. package/dist/editor/ai/terminal/components/AgentSkillSettingsSection.js.map +1 -1
  21. package/dist/editor/ai/terminal/components/AiResponseMessage.js +8 -7
  22. package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
  23. package/dist/editor/ai/terminal/components/ContextInfoBar.js +1 -1
  24. package/dist/editor/ai/terminal/components/ContextInfoBar.js.map +1 -1
  25. package/dist/editor/ai/terminal/useAgentEditorContext.js +13 -3
  26. package/dist/editor/ai/terminal/useAgentEditorContext.js.map +1 -1
  27. package/dist/editor/ai/terminal/useAgentOperationHistoryLoader.js +5 -1
  28. package/dist/editor/ai/terminal/useAgentOperationHistoryLoader.js.map +1 -1
  29. package/dist/editor/ai/terminal/useAgentOperationSocketHandler.js +33 -1
  30. package/dist/editor/ai/terminal/useAgentOperationSocketHandler.js.map +1 -1
  31. package/dist/editor/ai/terminal/useAgentServerReconciler.js +11 -0
  32. package/dist/editor/ai/terminal/useAgentServerReconciler.js.map +1 -1
  33. package/dist/editor/ai/terminal/useAgentSubmitHandlers.d.ts +1 -0
  34. package/dist/editor/ai/terminal/useAgentSubmitHandlers.js +6 -2
  35. package/dist/editor/ai/terminal/useAgentSubmitHandlers.js.map +1 -1
  36. package/dist/editor/ai/terminal/useAgentTerminalController.js +4 -0
  37. package/dist/editor/ai/terminal/useAgentTerminalController.js.map +1 -1
  38. package/dist/editor/bridge/protocol.d.ts +5 -0
  39. package/dist/editor/bridge/protocol.js.map +1 -1
  40. package/dist/editor/client/EditorShell.js +4 -3
  41. package/dist/editor/client/EditorShell.js.map +1 -1
  42. package/dist/editor/client/hooks/useSocketMessageHandler.js +3 -1
  43. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  44. package/dist/editor/client/operations.js +34 -2
  45. package/dist/editor/client/operations.js.map +1 -1
  46. package/dist/editor/commands/commands.d.ts +6 -0
  47. package/dist/editor/commands/commands.js.map +1 -1
  48. package/dist/editor/field-types/RichTextEditorComponent.js +10 -1
  49. package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
  50. package/dist/editor/field-types/richtext/components/ReactSlate.js +8 -2
  51. package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
  52. package/dist/editor/field-types/useFormFieldCaretPresence.js +1 -0
  53. package/dist/editor/field-types/useFormFieldCaretPresence.js.map +1 -1
  54. package/dist/editor/find-replace/FindReplacePanel.d.ts +11 -0
  55. package/dist/editor/find-replace/FindReplacePanel.js +311 -0
  56. package/dist/editor/find-replace/FindReplacePanel.js.map +1 -0
  57. package/dist/editor/find-replace/findReplaceCommand.d.ts +8 -0
  58. package/dist/editor/find-replace/findReplaceCommand.js +25 -0
  59. package/dist/editor/find-replace/findReplaceCommand.js.map +1 -0
  60. package/dist/editor/find-replace/findReplaceMatches.d.ts +42 -0
  61. package/dist/editor/find-replace/findReplaceMatches.js +66 -0
  62. package/dist/editor/find-replace/findReplaceMatches.js.map +1 -0
  63. package/dist/editor/find-replace/findReplaceStore.d.ts +30 -0
  64. package/dist/editor/find-replace/findReplaceStore.js +61 -0
  65. package/dist/editor/find-replace/findReplaceStore.js.map +1 -0
  66. package/dist/editor/find-replace/findReplaceTargets.d.ts +49 -0
  67. package/dist/editor/find-replace/findReplaceTargets.js +110 -0
  68. package/dist/editor/find-replace/findReplaceTargets.js.map +1 -0
  69. package/dist/editor/find-replace/findReplaceText.d.ts +50 -0
  70. package/dist/editor/find-replace/findReplaceText.js +189 -0
  71. package/dist/editor/find-replace/findReplaceText.js.map +1 -0
  72. package/dist/editor/menubar/ActiveUsers.js +1 -1
  73. package/dist/editor/menubar/ActiveUsers.js.map +1 -1
  74. package/dist/editor/menubar/ToolbarFactory.js +9 -1
  75. package/dist/editor/menubar/ToolbarFactory.js.map +1 -1
  76. package/dist/editor/menubar/VersionSelector.js +2 -2
  77. package/dist/editor/menubar/VersionSelector.js.map +1 -1
  78. package/dist/editor/menubar/toolbar-sections/FindReplaceControls.d.ts +6 -0
  79. package/dist/editor/menubar/toolbar-sections/FindReplaceControls.js +31 -0
  80. package/dist/editor/menubar/toolbar-sections/FindReplaceControls.js.map +1 -0
  81. package/dist/editor/menubar/toolbar-sections/index.d.ts +1 -0
  82. package/dist/editor/menubar/toolbar-sections/index.js +1 -0
  83. package/dist/editor/menubar/toolbar-sections/index.js.map +1 -1
  84. package/dist/editor/page-editor-chrome/FieldActionIndicator.js +8 -4
  85. package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
  86. package/dist/editor/page-editor-chrome/FindReplaceHighlightings.d.ts +11 -0
  87. package/dist/editor/page-editor-chrome/FindReplaceHighlightings.js +117 -0
  88. package/dist/editor/page-editor-chrome/FindReplaceHighlightings.js.map +1 -0
  89. package/dist/editor/page-editor-chrome/PageEditorChrome.js +2 -1
  90. package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
  91. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +8 -1
  92. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -1
  93. package/dist/editor/page-viewer/MiniMap.d.ts +6 -2
  94. package/dist/editor/page-viewer/MiniMap.js +139 -21
  95. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  96. package/dist/editor/page-viewer/PageViewerFrame.js +21 -5
  97. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  98. package/dist/editor/page-viewer/bridgeKeyboardShortcuts.d.ts +6 -0
  99. package/dist/editor/page-viewer/bridgeKeyboardShortcuts.js +19 -1
  100. package/dist/editor/page-viewer/bridgeKeyboardShortcuts.js.map +1 -1
  101. package/dist/editor/page-viewer/minimapViewport.d.ts +2 -0
  102. package/dist/editor/page-viewer/minimapViewport.js +31 -0
  103. package/dist/editor/page-viewer/minimapViewport.js.map +1 -0
  104. package/dist/editor/reviews/CommentEditor.js +34 -29
  105. package/dist/editor/reviews/CommentEditor.js.map +1 -1
  106. package/dist/editor/reviews/CommentImageAttachments.d.ts +12 -0
  107. package/dist/editor/reviews/CommentImageAttachments.js +19 -0
  108. package/dist/editor/reviews/CommentImageAttachments.js.map +1 -0
  109. package/dist/editor/reviews/SuggestionDisplayPopover.d.ts +3 -1
  110. package/dist/editor/reviews/SuggestionDisplayPopover.js +7 -2
  111. package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
  112. package/dist/editor/reviews/commentAgentAttachments.d.ts +5 -0
  113. package/dist/editor/reviews/commentAgentAttachments.js +51 -0
  114. package/dist/editor/reviews/commentAgentAttachments.js.map +1 -0
  115. package/dist/editor/reviews/commentAi.d.ts +4 -2
  116. package/dist/editor/reviews/commentAi.js +19 -12
  117. package/dist/editor/reviews/commentAi.js.map +1 -1
  118. package/dist/editor/reviews/useCommentImagePaste.d.ts +41 -14
  119. package/dist/editor/reviews/useCommentImagePaste.js +102 -63
  120. package/dist/editor/reviews/useCommentImagePaste.js.map +1 -1
  121. package/dist/editor/services/agentStatus.d.ts +1 -0
  122. package/dist/editor/services/agentStatus.js +14 -0
  123. package/dist/editor/services/agentStatus.js.map +1 -1
  124. package/dist/editor/settings/index/RecentBatchesList.js +2 -1
  125. package/dist/editor/settings/index/RecentBatchesList.js.map +1 -1
  126. package/dist/editor/sidebar/ComponentTree.js +6 -3
  127. package/dist/editor/sidebar/ComponentTree.js.map +1 -1
  128. package/dist/editor/sidebar/OperationItem.js +2 -1
  129. package/dist/editor/sidebar/OperationItem.js.map +1 -1
  130. package/dist/editor/sidebar/liveComponentThumbnails.d.ts +6 -2
  131. package/dist/editor/sidebar/liveComponentThumbnails.js +7 -2
  132. package/dist/editor/sidebar/liveComponentThumbnails.js.map +1 -1
  133. package/dist/editor/ui/ParheliaMark.d.ts +15 -0
  134. package/dist/editor/ui/ParheliaMark.js +12 -0
  135. package/dist/editor/ui/ParheliaMark.js.map +1 -0
  136. package/dist/editor/undoEligibility.d.ts +2 -0
  137. package/dist/editor/undoEligibility.js +8 -0
  138. package/dist/editor/undoEligibility.js.map +1 -0
  139. package/dist/editor/utils/keyboardNavigation.js +16 -0
  140. package/dist/editor/utils/keyboardNavigation.js.map +1 -1
  141. package/dist/index.d.ts +1 -0
  142. package/dist/index.js +1 -0
  143. package/dist/index.js.map +1 -1
  144. package/dist/lib/utils.d.ts +5 -0
  145. package/dist/lib/utils.js +7 -0
  146. package/dist/lib/utils.js.map +1 -1
  147. package/dist/revision.d.ts +2 -2
  148. package/dist/revision.js +2 -2
  149. package/dist/splash-screen/ModernSplashScreen.js +4 -3
  150. package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
  151. package/dist/splash-screen/RecentPages.js +3 -3
  152. package/dist/splash-screen/RecentPages.js.map +1 -1
  153. package/dist/task-board/TaskBoardWorkspace.js +179 -33
  154. package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
  155. package/dist/task-board/components/AttentionPromptDialog.d.ts +13 -0
  156. package/dist/task-board/components/AttentionPromptDialog.js +45 -0
  157. package/dist/task-board/components/AttentionPromptDialog.js.map +1 -0
  158. package/dist/task-board/components/GoalDataView.d.ts +22 -1
  159. package/dist/task-board/components/GoalDataView.js +63 -17
  160. package/dist/task-board/components/GoalDataView.js.map +1 -1
  161. package/dist/task-board/components/GoalFindingsTable.d.ts +43 -0
  162. package/dist/task-board/components/GoalFindingsTable.js +160 -0
  163. package/dist/task-board/components/GoalFindingsTable.js.map +1 -0
  164. package/dist/task-board/components/GoalsMatrix.js +33 -6
  165. package/dist/task-board/components/GoalsMatrix.js.map +1 -1
  166. package/dist/task-board/components/IssuePanel.d.ts +31 -0
  167. package/dist/task-board/components/IssuePanel.js +268 -0
  168. package/dist/task-board/components/IssuePanel.js.map +1 -0
  169. package/dist/task-board/components/ProjectGoalsPanel.js +66 -13
  170. package/dist/task-board/components/ProjectGoalsPanel.js.map +1 -1
  171. package/dist/task-board/components/SubgoalFindings.d.ts +40 -0
  172. package/dist/task-board/components/SubgoalFindings.js +88 -0
  173. package/dist/task-board/components/SubgoalFindings.js.map +1 -0
  174. package/dist/task-board/components/TaskAgentPanel.d.ts +2 -0
  175. package/dist/task-board/components/TaskAgentPanel.js +5 -4
  176. package/dist/task-board/components/TaskAgentPanel.js.map +1 -1
  177. package/dist/task-board/components/TaskDetailPanel.js +8 -12
  178. package/dist/task-board/components/TaskDetailPanel.js.map +1 -1
  179. package/dist/task-board/components/WizardCommunicationCenter.d.ts +2 -0
  180. package/dist/task-board/components/WizardCommunicationCenter.js +5 -3
  181. package/dist/task-board/components/WizardCommunicationCenter.js.map +1 -1
  182. package/dist/task-board/components/WizardCommunicationShared.js +2 -1
  183. package/dist/task-board/components/WizardCommunicationShared.js.map +1 -1
  184. package/dist/task-board/components/WizardTask.d.ts +2 -0
  185. package/dist/task-board/components/WizardTask.js +2 -2
  186. package/dist/task-board/components/WizardTask.js.map +1 -1
  187. package/dist/task-board/components/WizardTaskDetailsPanel.d.ts +4 -0
  188. package/dist/task-board/components/WizardTaskDetailsPanel.js +16 -3
  189. package/dist/task-board/components/WizardTaskDetailsPanel.js.map +1 -1
  190. package/dist/task-board/services/issueService.d.ts +193 -0
  191. package/dist/task-board/services/issueService.js +97 -0
  192. package/dist/task-board/services/issueService.js.map +1 -0
  193. package/dist/task-board/types.d.ts +24 -0
  194. package/dist/task-board/utils/projectDashboardModel.js +8 -0
  195. package/dist/task-board/utils/projectDashboardModel.js.map +1 -1
  196. package/package.json +1 -1
  197. package/styles.css +57 -3
@@ -12,4 +12,10 @@ export declare function isBridgeUndoRedoKeyboardShortcut(interaction: Interactio
12
12
  * keyboard layouts where bracket keys need AltGr.
13
13
  */
14
14
  export declare function getBridgeFieldHistoryStepDirection(interaction: InteractionEventPayload): "older" | "newer" | undefined;
15
+ /** Ctrl+H / Cmd+H: the "Find and replace" command (editor/find-replace). */
16
+ export declare function isBridgeFindReplaceKeyboardShortcut(interaction: InteractionEventPayload): boolean;
17
+ /**
18
+ * Keystrokes the bridge cancels inside the canvas and the host replays on
19
+ * `window`, where the keyboard command bindings listen.
20
+ */
15
21
  export declare function createKeyboardEventFromBridgeInteraction(interaction: InteractionEventPayload): KeyboardEvent | undefined;
@@ -11,6 +11,8 @@ function getBridgeKeyboardKey(interaction) {
11
11
  return interaction.shiftKey ? "Z" : "z";
12
12
  if (interaction.code === "KeyY")
13
13
  return interaction.shiftKey ? "Y" : "y";
14
+ if (interaction.code === "KeyH")
15
+ return interaction.shiftKey ? "H" : "h";
14
16
  return "";
15
17
  }
16
18
  export function isBridgeUndoRedoKeyboardShortcut(interaction) {
@@ -46,9 +48,25 @@ export function getBridgeFieldHistoryStepDirection(interaction) {
46
48
  }
47
49
  return undefined;
48
50
  }
51
+ /** Ctrl+H / Cmd+H: the "Find and replace" command (editor/find-replace). */
52
+ export function isBridgeFindReplaceKeyboardShortcut(interaction) {
53
+ if (interaction.kind !== "keydown")
54
+ return false;
55
+ if (!interaction.ctrlKey && !interaction.metaKey)
56
+ return false;
57
+ if (interaction.altKey || interaction.shiftKey)
58
+ return false;
59
+ return getBridgeKeyboardKey(interaction).toLowerCase() === "h";
60
+ }
61
+ /**
62
+ * Keystrokes the bridge cancels inside the canvas and the host replays on
63
+ * `window`, where the keyboard command bindings listen.
64
+ */
49
65
  export function createKeyboardEventFromBridgeInteraction(interaction) {
50
- if (!isBridgeUndoRedoKeyboardShortcut(interaction))
66
+ if (!isBridgeUndoRedoKeyboardShortcut(interaction) &&
67
+ !isBridgeFindReplaceKeyboardShortcut(interaction)) {
51
68
  return undefined;
69
+ }
52
70
  return new KeyboardEvent("keydown", {
53
71
  bubbles: true,
54
72
  cancelable: true,
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeKeyboardShortcuts.js","sourceRoot":"","sources":["../../../src/editor/page-viewer/bridgeKeyboardShortcuts.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,6BAA6B,CAAC;AAE7E,SAAS,oBAAoB,CAAC,WAAoC;IAChE,IAAI,WAAW,CAAC,GAAG;QAAE,OAAO,WAAW,CAAC,GAAG,CAAC;IAC5C,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACzE,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACzE,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,WAAoC;IAEpC,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACjD,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC/D,IAAI,WAAW,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAErC,MAAM,GAAG,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5D,IAAI,GAAG,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kCAAkC,CAChD,WAAoC;IAEpC,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACrD,IAAI,CAAC,WAAW,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;QACvE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,WAAW,CAAC,GAAG,KAAK,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACxE,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,WAAW,CAAC,GAAG,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACpE,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,wCAAwC,CACtD,WAAoC;IAEpC,IAAI,CAAC,gCAAgC,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAC;IAErE,OAAO,IAAI,aAAa,CAAC,SAAS,EAAE;QAClC,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;QAChB,GAAG,EAAE,oBAAoB,CAAC,WAAW,CAAC;QACtC,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,EAAE;QAC5B,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO;QAC9B,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ;QAChC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM;QAC5B,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO;KAC/B,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"bridgeKeyboardShortcuts.js","sourceRoot":"","sources":["../../../src/editor/page-viewer/bridgeKeyboardShortcuts.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,6BAA6B,CAAC;AAE7E,SAAS,oBAAoB,CAAC,WAAoC;IAChE,IAAI,WAAW,CAAC,GAAG;QAAE,OAAO,WAAW,CAAC,GAAG,CAAC;IAC5C,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACzE,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACzE,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACzE,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,WAAoC;IAEpC,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACjD,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC/D,IAAI,WAAW,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAErC,MAAM,GAAG,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5D,IAAI,GAAG,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kCAAkC,CAChD,WAAoC;IAEpC,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACrD,IAAI,CAAC,WAAW,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;QACvE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,WAAW,CAAC,GAAG,KAAK,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACxE,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,WAAW,CAAC,GAAG,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACpE,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,mCAAmC,CACjD,WAAoC;IAEpC,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACjD,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC/D,IAAI,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC7D,OAAO,oBAAoB,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wCAAwC,CACtD,WAAoC;IAEpC,IACE,CAAC,gCAAgC,CAAC,WAAW,CAAC;QAC9C,CAAC,mCAAmC,CAAC,WAAW,CAAC,EACjD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,aAAa,CAAC,SAAS,EAAE;QAClC,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;QAChB,GAAG,EAAE,oBAAoB,CAAC,WAAW,CAAC;QACtC,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,EAAE;QAC5B,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO;QAC9B,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ;QAChC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM;QAC5B,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO;KAC/B,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function resolveMinimapViewportUnits(css: string, width: number, height: number): string;
2
+ export declare function preserveMinimapViewport(doc: Document, width: number, height: number): void;
@@ -0,0 +1,31 @@
1
+ // A minimap iframe is as tall as the whole page. Resolve viewport units before
2
+ // loading it so nested cards, spacing and backgrounds retain the live layout.
3
+ export function resolveMinimapViewportUnits(css, width, height) {
4
+ // Consume strings, comments, URLs and identifiers intact, including escaped
5
+ // Tailwind selectors. Only CSS dimension tokens should be rewritten.
6
+ return css.replace(/\/\*[\s\S]*?\*\/|"(?:\\[\s\S]|[^"\\])*"|'(?:\\[\s\S]|[^'\\])*'|url\((?:\\[\s\S]|[^)\\])*\)|[+-]?(?:\d*\.\d+|\d+\.?\d*)(?:e[+-]?\d+)?(?:[a-zA-Z_\u0080-\uFFFF]|\\[^\r\n])(?:[\w\u0080-\uFFFF-]|\\[^\r\n])*|(?:[a-zA-Z_\u0080-\uFFFF-]|\\[^\r\n])(?:[\w\u0080-\uFFFF-]|\\[^\r\n])*/gi, (token) => {
7
+ const dimension = token.match(/^([+-]?(?:\d*\.\d+|\d+\.?\d*)(?:e[+-]?\d+)?)([dls]?v[wh]|[dls]?vmin|[dls]?vmax)$/i);
8
+ if (!dimension)
9
+ return token;
10
+ const unit = dimension[2].toLowerCase();
11
+ const size = unit.endsWith("min")
12
+ ? Math.min(width, height)
13
+ : unit.endsWith("max")
14
+ ? Math.max(width, height)
15
+ : unit.endsWith("h")
16
+ ? height
17
+ : width;
18
+ if (!Number.isFinite(size) || size <= 0)
19
+ return token;
20
+ return `${Math.round(((Number(dimension[1]) * size) / 100) * 1000) / 1000}px`;
21
+ });
22
+ }
23
+ export function preserveMinimapViewport(doc, width, height) {
24
+ doc.querySelectorAll("style").forEach((style) => {
25
+ style.textContent = resolveMinimapViewportUnits(style.textContent || "", width, height);
26
+ });
27
+ doc.querySelectorAll("[style]").forEach((element) => {
28
+ element.setAttribute("style", resolveMinimapViewportUnits(element.getAttribute("style") || "", width, height));
29
+ });
30
+ }
31
+ //# sourceMappingURL=minimapViewport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimapViewport.js","sourceRoot":"","sources":["../../../src/editor/page-viewer/minimapViewport.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,8EAA8E;AAC9E,MAAM,UAAU,2BAA2B,CACzC,GAAW,EACX,KAAa,EACb,MAAc;IAEd,4EAA4E;IAC5E,qEAAqE;IACrE,OAAO,GAAG,CAAC,OAAO,CAChB,oRAAoR,EACpR,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAC3B,mFAAmF,CACpF,CAAC;QACF,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC/B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;YACzB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;gBACzB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAClB,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,KAAK,CAAC;QACd,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACtD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC;IAChF,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,GAAa,EACb,KAAa,EACb,MAAc;IAEd,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9C,KAAK,CAAC,WAAW,GAAG,2BAA2B,CAC7C,KAAK,CAAC,WAAW,IAAI,EAAE,EACvB,KAAK,EACL,MAAM,CACP,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAClD,OAAO,CAAC,YAAY,CAClB,OAAO,EACP,2BAA2B,CACzB,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,EACnC,KAAK,EACL,MAAM,CACP,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -5,14 +5,18 @@ import { Button } from "../../components/ui/button";
5
5
  import { MentionTextarea } from "../../components/ui/mention-textarea";
6
6
  import { cn } from "../../lib/utils";
7
7
  import { useEditContext } from "../client/editContext";
8
- import { ArrowUp, ImageUp, Loader2, X } from "lucide-react";
9
- import { useCommentImagePaste } from "./useCommentImagePaste";
8
+ import { ArrowUp, X } from "lucide-react";
9
+ import { splitInitialCommentText, useCommentImagePaste, } from "./useCommentImagePaste";
10
+ import { CommentImageAttachments } from "./CommentImageAttachments";
10
11
  const COMMENT_TEXTAREA_MIN_HEIGHT = 32;
11
12
  export const COMMENT_INPUT_PLACEHOLDER = "Add a comment and notify others with @";
12
13
  export function CommentEditor({ editContext: externalEditContext, initialText = "", onSave, onCancel, isSaving = false, availableTags = [], selectedTags: initialSelectedTags = [], placeholder = COMMENT_INPUT_PLACEHOLDER, autoFocus = true, submitLabel = "Save", cancelLabel = "Cancel", showTagSelector = true, compact = false, showCancelButton = true, clearOnSave = false, onKeyDown, }) {
13
14
  const contextFromHook = useEditContext();
14
15
  const editContext = externalEditContext || contextFromHook;
15
- const [text, setText] = React.useState(initialText);
16
+ // Image references in an edited comment become thumbnails, not text.
17
+ const [text, setText] = React.useState(() => splitInitialCommentText(initialText).text);
18
+ const textRef = React.useRef(text);
19
+ textRef.current = text;
16
20
  const [selectedTags, setSelectedTags] = React.useState(initialSelectedTags);
17
21
  const textareaRef = React.useRef(null);
18
22
  const currentSession = editContext?.activeSessions.find((session) => session.sessionId === editContext?.sessionId);
@@ -20,7 +24,6 @@ export function CommentEditor({ editContext: externalEditContext, initialText =
20
24
  const userName = currentUser?.fullName?.trim() || currentUser?.name?.trim() || "User";
21
25
  const avatarUrl = currentSession?.user.avatarUrl ?? editContext?.user?.avatarUrl;
22
26
  const avatarFallbackColor = currentSession?.color;
23
- const hasCommentText = text.trim().length > 0;
24
27
  const resizeTextarea = React.useCallback(() => {
25
28
  const textarea = textareaRef.current;
26
29
  if (!textarea)
@@ -58,7 +61,7 @@ export function CommentEditor({ editContext: externalEditContext, initialText =
58
61
  // Escape to cancel
59
62
  else if (e.key === "Escape" && !e.defaultPrevented) {
60
63
  e.preventDefault();
61
- onCancel();
64
+ handleCancel();
62
65
  }
63
66
  };
64
67
  const handleTextChange = (value) => {
@@ -69,17 +72,16 @@ export function CommentEditor({ editContext: externalEditContext, initialText =
69
72
  scope: "review",
70
73
  scopeId: editContext?.currentItemDescriptor?.id ?? null,
71
74
  scopeLanguage: editContext?.currentItemDescriptor?.language ?? null,
72
- textareaRef,
73
- value: text,
74
- onValueChange: handleTextChange,
75
+ initialText,
75
76
  disabled: isSaving,
76
77
  });
78
+ const hasCommentText = text.trim().length > 0 || imagePaste.readyCount > 0;
77
79
  const submitQueuedRef = React.useRef(false);
78
80
  const handleSave = async () => {
79
81
  if (isSaving || submitQueuedRef.current)
80
82
  return;
81
83
  // A submit while a pasted image is still uploading waits for the image
82
- // reference to land in the text instead of posting without it.
84
+ // to finish instead of posting without it.
83
85
  if (imagePaste.uploading) {
84
86
  submitQueuedRef.current = true;
85
87
  try {
@@ -89,32 +91,35 @@ export function CommentEditor({ editContext: externalEditContext, initialText =
89
91
  submitQueuedRef.current = false;
90
92
  }
91
93
  }
92
- const trimmedText = imagePaste.getValue().trim();
93
- if (!trimmedText)
94
+ const submitText = imagePaste.buildSubmitText(textRef.current);
95
+ if (!submitText)
94
96
  return;
95
- await onSave(trimmedText, selectedTags);
97
+ await onSave(submitText, selectedTags);
96
98
  if (clearOnSave) {
97
99
  setText("");
98
100
  setSelectedTags([]);
101
+ imagePaste.clearAttachments();
99
102
  }
100
103
  };
101
- return (_jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "flex items-start gap-3", children: [_jsx(Avatar, { src: avatarUrl, name: userName, size: "sm", fallbackColor: avatarFallbackColor, fallbackClassName: "bg-highlight-100 text-white", title: userName, className: "!text-[10px] font-medium" }), _jsxs("div", { className: cn("border-border-default focus-within:border-neutral-grey-15 flex flex-1 items-end overflow-hidden rounded-lg border bg-white p-2 transition-colors"), children: [_jsx(MentionTextarea, { ref: textareaRef, "data-testid": "add-comment-textarea", value: text, onValueChange: handleTextChange, onKeyDown: handleKeyDown, onPaste: imagePaste.onPaste, onDragOver: imagePaste.onDragOver, onDrop: imagePaste.onDrop, placeholder: placeholder, className: cn("text-neutral-grey-100 placeholder:text-neutral-grey-50 !field-sizing-fixed h-8 !min-h-8 flex-1 resize-none appearance-none overflow-hidden !rounded-none !border-0 !bg-transparent !p-0 text-sm leading-4 !shadow-none !transition-none !outline-none focus:!border-0 focus:!shadow-none focus:!ring-0 focus:!outline-none focus-visible:!border-0 focus-visible:!shadow-none focus-visible:!ring-0 focus-visible:!outline-none"), style: {
102
- backgroundColor: "transparent",
103
- border: "none",
104
- height: 32,
105
- boxShadow: "none",
106
- outline: "none",
107
- }, rows: 1, disabled: isSaving, autoFocus: autoFocus }), _jsxs("div", { className: "flex shrink-0 items-end gap-1", children: [showCancelButton && (_jsx("button", { type: "button", onClick: onCancel, disabled: isSaving, className: "text-neutral-grey-100 hover:bg-neutral-grey-5 disabled:text-neutral-grey-50 inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md bg-white transition-colors", "data-testid": "add-comment-cancel", "aria-label": cancelLabel, title: cancelLabel, children: _jsx(X, { className: "h-4 w-4", strokeWidth: 1 }) })), hasCommentText && (_jsx("button", { type: "button", onClick: handleSave, disabled: isSaving || imagePaste.uploading, className: "bg-neutral-grey-100 hover:bg-neutral-grey-100/90 focus-visible:ring-neutral-grey-100/30 disabled:bg-neutral-grey-5 disabled:text-neutral-grey-50 disabled:hover:bg-neutral-grey-5 ml-2 inline-flex h-8 w-8 shrink-0 items-center justify-center rounded text-white shadow-sm transition-colors focus-visible:ring-2 focus-visible:outline-none disabled:cursor-default disabled:shadow-none", "data-testid": "add-comment-submit", "aria-label": isSaving
108
- ? "Saving comment"
109
- : imagePaste.uploading
110
- ? "Waiting for image upload"
111
- : submitLabel, title: isSaving
112
- ? "Saving..."
113
- : imagePaste.uploading
114
- ? "Waiting for image upload"
115
- : submitLabel, children: _jsx(ArrowUp, { className: "h-4 w-4", strokeWidth: 1 }) }))] })] })] }), (imagePaste.uploading || imagePaste.error) && (_jsxs("div", { className: cn("flex items-center gap-1.5 pl-11 text-xs", imagePaste.error ? "text-destructive" : "text-neutral-grey-50"), "data-testid": imagePaste.error
116
- ? "comment-image-upload-error"
117
- : "comment-image-uploading", role: "status", children: [imagePaste.error ? (_jsx(ImageUp, { className: "h-3.5 w-3.5 shrink-0", strokeWidth: 1 })) : (_jsx(Loader2, { className: "h-3.5 w-3.5 shrink-0 animate-spin", strokeWidth: 1 })), _jsx("span", { children: imagePaste.error ?? "Uploading image…" })] })), showTagSelector && availableTags.length > 0 && (_jsxs("div", { className: "space-y-2", children: [_jsx("div", { className: "text-muted-foreground text-xs", children: "Tags" }), _jsx("div", { className: "flex flex-wrap gap-2", children: availableTags.map((tag) => {
104
+ const handleCancel = () => {
105
+ imagePaste.clearAttachments();
106
+ onCancel();
107
+ };
108
+ return (_jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "flex items-start gap-3", children: [_jsx(Avatar, { src: avatarUrl, name: userName, size: "sm", fallbackColor: avatarFallbackColor, fallbackClassName: "bg-highlight-100 text-white", title: userName, className: "!text-[10px] font-medium" }), _jsxs("div", { className: cn("border-border-default focus-within:border-neutral-grey-15 flex min-w-0 flex-1 flex-col gap-2 overflow-hidden rounded-lg border bg-white p-2 transition-colors"), children: [_jsx(CommentImageAttachments, { attachments: imagePaste.attachments, onRemove: imagePaste.removeAttachment, disabled: isSaving }), _jsxs("div", { className: "flex items-end", children: [_jsx(MentionTextarea, { ref: textareaRef, "data-testid": "add-comment-textarea", value: text, onValueChange: handleTextChange, onKeyDown: handleKeyDown, onPaste: imagePaste.onPaste, onDragOver: imagePaste.onDragOver, onDrop: imagePaste.onDrop, placeholder: placeholder, className: cn("text-neutral-grey-100 placeholder:text-neutral-grey-50 !field-sizing-fixed h-8 !min-h-8 flex-1 resize-none appearance-none overflow-hidden !rounded-none !border-0 !bg-transparent !p-0 text-sm leading-4 !shadow-none !transition-none !outline-none focus:!border-0 focus:!shadow-none focus:!ring-0 focus:!outline-none focus-visible:!border-0 focus-visible:!shadow-none focus-visible:!ring-0 focus-visible:!outline-none"), style: {
109
+ backgroundColor: "transparent",
110
+ border: "none",
111
+ height: 32,
112
+ boxShadow: "none",
113
+ outline: "none",
114
+ }, rows: 1, disabled: isSaving, autoFocus: autoFocus }), _jsxs("div", { className: "flex shrink-0 items-end gap-1", children: [showCancelButton && (_jsx("button", { type: "button", onClick: handleCancel, disabled: isSaving, className: "text-neutral-grey-100 hover:bg-neutral-grey-5 disabled:text-neutral-grey-50 inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md bg-white transition-colors", "data-testid": "add-comment-cancel", "aria-label": cancelLabel, title: cancelLabel, children: _jsx(X, { className: "h-4 w-4", strokeWidth: 1 }) })), hasCommentText && (_jsx("button", { type: "button", onClick: handleSave, disabled: isSaving || imagePaste.uploading, className: "bg-neutral-grey-100 hover:bg-neutral-grey-100/90 focus-visible:ring-neutral-grey-100/30 disabled:bg-neutral-grey-5 disabled:text-neutral-grey-50 disabled:hover:bg-neutral-grey-5 ml-2 inline-flex h-8 w-8 shrink-0 items-center justify-center rounded text-white shadow-sm transition-colors focus-visible:ring-2 focus-visible:outline-none disabled:cursor-default disabled:shadow-none", "data-testid": "add-comment-submit", "aria-label": isSaving
115
+ ? "Saving comment"
116
+ : imagePaste.uploading
117
+ ? "Waiting for image upload"
118
+ : submitLabel, title: isSaving
119
+ ? "Saving..."
120
+ : imagePaste.uploading
121
+ ? "Waiting for image upload…"
122
+ : submitLabel, children: _jsx(ArrowUp, { className: "h-4 w-4", strokeWidth: 1 }) }))] })] })] })] }), showTagSelector && availableTags.length > 0 && (_jsxs("div", { className: "space-y-2", children: [_jsx("div", { className: "text-muted-foreground text-xs", children: "Tags" }), _jsx("div", { className: "flex flex-wrap gap-2", children: availableTags.map((tag) => {
118
123
  const isSelected = selectedTags.includes(tag.label);
119
124
  return (_jsx(Button, { type: "button", size: "sm", variant: isSelected ? "secondary" : "outline", className: "h-6 px-2 text-xs", onClick: () => {
120
125
  setSelectedTags((prev) => prev.includes(tag.label)
@@ -1 +1 @@
1
- {"version":3,"file":"CommentEditor.js","sourceRoot":"","sources":["../../../src/editor/reviews/CommentEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommentEditor.js","sourceRoot":"","sources":["../../../src/editor/reviews/CommentEditor.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { CommentImageAttachment } from "./useCommentImagePaste";
2
+ /**
3
+ * Thumbnail strip shown above a comment composer for pasted or dropped
4
+ * screenshots. Uploading thumbs show a spinner, failed ones a red frame with
5
+ * the error as tooltip; finished ones open the shared image viewer.
6
+ */
7
+ export declare function CommentImageAttachments({ attachments, onRemove, disabled, className, }: {
8
+ attachments: CommentImageAttachment[];
9
+ onRemove: (key: string) => void;
10
+ disabled?: boolean;
11
+ className?: string;
12
+ }): import("react").JSX.Element | null;
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Loader2, X } from "lucide-react";
4
+ import { cn } from "../../lib/utils";
5
+ import { AgentImagePreview } from "../ai/AgentImagePreview";
6
+ /**
7
+ * Thumbnail strip shown above a comment composer for pasted or dropped
8
+ * screenshots. Uploading thumbs show a spinner, failed ones a red frame with
9
+ * the error as tooltip; finished ones open the shared image viewer.
10
+ */
11
+ export function CommentImageAttachments({ attachments, onRemove, disabled = false, className, }) {
12
+ if (attachments.length === 0)
13
+ return null;
14
+ return (_jsx("div", { className: cn("flex flex-wrap items-start gap-2", className), "data-testid": "comment-image-attachments", children: attachments.map((attachment) => {
15
+ const thumb = (_jsx("img", { src: attachment.previewUrl, alt: attachment.fileName, className: cn("h-12 w-12 rounded-md object-cover", attachment.status !== "done" && "opacity-60"), draggable: false }));
16
+ return (_jsxs("div", { className: cn("border-border-default group relative shrink-0 overflow-hidden rounded-md border bg-white", attachment.status === "error" && "border-destructive"), "data-testid": "comment-image-attachment", "data-status": attachment.status, "data-image-id": attachment.imageId, title: attachment.error ?? attachment.fileName, children: [attachment.status === "done" ? (_jsx(AgentImagePreview, { src: attachment.previewUrl, alt: attachment.fileName, fileName: attachment.fileName, overlayClassName: "z-[300]", contentClassName: "z-[301]", portalContainer: typeof document === "undefined" ? null : document.body, children: _jsx("button", { type: "button", className: "block cursor-zoom-in", "aria-label": `Preview ${attachment.fileName}`, children: thumb }) })) : (thumb), attachment.status === "uploading" && (_jsx("div", { className: "absolute inset-0 flex items-center justify-center bg-white/60", "data-testid": "comment-image-uploading", role: "status", "aria-label": "Uploading image", children: _jsx(Loader2, { className: "text-neutral-grey-100 h-4 w-4 animate-spin", strokeWidth: 1.5 }) })), attachment.status === "error" && (_jsx("div", { className: "bg-destructive/80 absolute inset-x-0 bottom-0 truncate px-1 text-[9px] leading-4 text-white", "data-testid": "comment-image-upload-error", role: "alert", children: "Upload failed" })), !disabled && (_jsx("button", { type: "button", onClick: () => onRemove(attachment.key), className: "bg-neutral-grey-100 hover:bg-neutral-grey-100/90 absolute top-0.5 right-0.5 inline-flex h-4 w-4 items-center justify-center rounded-full text-white shadow-sm", "aria-label": "Remove image", title: "Remove image", "data-testid": "comment-image-remove", children: _jsx(X, { className: "h-3 w-3", strokeWidth: 2 }) }))] }, attachment.key));
17
+ }) }));
18
+ }
19
+ //# sourceMappingURL=CommentImageAttachments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentImageAttachments.js","sourceRoot":"","sources":["../../../src/editor/reviews/CommentImageAttachments.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,EACtC,WAAW,EACX,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,SAAS,GAMV;IACC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE1C,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CAAC,kCAAkC,EAAE,SAAS,CAAC,iBAChD,2BAA2B,YAEtC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAC9B,MAAM,KAAK,GAAG,CACZ,cACE,GAAG,EAAE,UAAU,CAAC,UAAU,EAC1B,GAAG,EAAE,UAAU,CAAC,QAAQ,EACxB,SAAS,EAAE,EAAE,CACX,mCAAmC,EACnC,UAAU,CAAC,MAAM,KAAK,MAAM,IAAI,YAAY,CAC7C,EACD,SAAS,EAAE,KAAK,GAChB,CACH,CAAC;YAEF,OAAO,CACL,eAEE,SAAS,EAAE,EAAE,CACX,0FAA0F,EAC1F,UAAU,CAAC,MAAM,KAAK,OAAO,IAAI,oBAAoB,CACtD,iBACW,0BAA0B,iBACzB,UAAU,CAAC,MAAM,mBACf,UAAU,CAAC,OAAO,EACjC,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,QAAQ,aAE7C,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAC9B,KAAC,iBAAiB,IAChB,GAAG,EAAE,UAAU,CAAC,UAAU,EAC1B,GAAG,EAAE,UAAU,CAAC,QAAQ,EACxB,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAC7B,gBAAgB,EAAC,SAAS,EAC1B,gBAAgB,EAAC,SAAS,EAC1B,eAAe,EACb,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,YAGxD,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,sBAAsB,gBACpB,WAAW,UAAU,CAAC,QAAQ,EAAE,YAE3C,KAAK,GACC,GACS,CACrB,CAAC,CAAC,CAAC,CACF,KAAK,CACN,EAEA,UAAU,CAAC,MAAM,KAAK,WAAW,IAAI,CACpC,cACE,SAAS,EAAC,+DAA+D,iBAC7D,yBAAyB,EACrC,IAAI,EAAC,QAAQ,gBACF,iBAAiB,YAE5B,KAAC,OAAO,IACN,SAAS,EAAC,4CAA4C,EACtD,WAAW,EAAE,GAAG,GAChB,GACE,CACP,EACA,UAAU,CAAC,MAAM,KAAK,OAAO,IAAI,CAChC,cACE,SAAS,EAAC,6FAA6F,iBAC3F,4BAA4B,EACxC,IAAI,EAAC,OAAO,8BAGR,CACP,EAEA,CAAC,QAAQ,IAAI,CACZ,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EACvC,SAAS,EAAC,+JAA+J,gBAC9J,cAAc,EACzB,KAAK,EAAC,cAAc,iBACR,sBAAsB,YAElC,KAAC,CAAC,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,CAAC,GAAI,GAClC,CACV,KAnEI,UAAU,CAAC,GAAG,CAoEf,CACP,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import * as React from "react";
2
2
  import { SuggestedEdit } from "../../types";
3
3
  interface SuggestionDisplayPopoverProps {
4
+ open?: boolean;
5
+ onOpenChange?: (open: boolean) => void;
4
6
  suggestion: SuggestedEdit;
5
7
  children: React.ReactNode;
6
8
  onSuggestionUpdated?: () => void;
7
9
  }
8
- export declare function SuggestionDisplayPopover({ suggestion, children, onSuggestionUpdated, }: SuggestionDisplayPopoverProps): React.JSX.Element;
10
+ export declare function SuggestionDisplayPopover({ suggestion, children, onSuggestionUpdated, open, onOpenChange, }: SuggestionDisplayPopoverProps): React.JSX.Element;
9
11
  export {};
@@ -22,11 +22,16 @@ import { markSuggestedEditRemoved } from "./suggestedEditState";
22
22
  import { applySuggestedEditPatch, replaceSuggestedEditCompletely, } from "./applySuggestedEditActions";
23
23
  import { getConflictingSuggestionPeers, getSuggestedEditItemLanguage, getSuggestedEditItemVersion, getSuggestionDisplayValue, getSuggestionSelectionKey, } from "./suggestionDisplayValue";
24
24
  import { applySuggestionPatchToValue } from "./suggestionPatch";
25
- export function SuggestionDisplayPopover({ suggestion, children, onSuggestionUpdated, }) {
25
+ export function SuggestionDisplayPopover({ suggestion, children, onSuggestionUpdated, open, onOpenChange, }) {
26
26
  const editContext = useEditContext();
27
27
  const fieldsContext = useFieldsEditContext();
28
28
  const author = useFeedbackAuthor(suggestion);
29
- const [isOpen, setIsOpen] = useState(false);
29
+ const [localOpen, setLocalOpen] = useState(false);
30
+ const isOpen = open ?? localOpen;
31
+ const setIsOpen = (value) => {
32
+ setLocalOpen(value);
33
+ onOpenChange?.(value);
34
+ };
30
35
  const [isApplying, setIsApplying] = useState(false);
31
36
  const [item, setItem] = useState(null);
32
37
  const [patchPossible, setPatchPossible] = useState(true);
@@ -1 +1 @@
1
- {"version":3,"file":"SuggestionDisplayPopover.js","sourceRoot":"","sources":["../../../src/editor/reviews/SuggestionDisplayPopover.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SuggestionDisplayPopover.js","sourceRoot":"","sources":["../../../src/editor/reviews/SuggestionDisplayPopover.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type AgentMessageAttachment, type AgentMetadata } from "../services/agentService";
2
+ /** Copy authorized comment images into the agent document store, whose images
3
+ * are included as visual inputs by the backend message builder. Keep successful
4
+ * uploads in the caller's cache so a failed submission can be retried. */
5
+ export declare function prepareCommentAgentAttachments(agentId: string, comment: AgentMetadata["comment"], profileId: string | undefined, cache: Map<string, AgentMessageAttachment>): Promise<AgentMessageAttachment[]>;
@@ -0,0 +1,51 @@
1
+ import { uploadDocument, } from "../services/agentService";
2
+ import { COMMENT_IMAGE_MAX_BYTES, splitCommentImages } from "./commentImages";
3
+ /** Copy authorized comment images into the agent document store, whose images
4
+ * are included as visual inputs by the backend message builder. Keep successful
5
+ * uploads in the caller's cache so a failed submission can be retried. */
6
+ export async function prepareCommentAgentAttachments(agentId, comment, profileId, cache) {
7
+ const images = new Map();
8
+ for (const entry of comment?.thread ?? (comment ? [comment] : [])) {
9
+ for (const segment of splitCommentImages(entry.text || "")) {
10
+ if (segment.type === "image")
11
+ images.set(segment.imageId, segment.src);
12
+ }
13
+ }
14
+ const attachments = [];
15
+ for (const [imageId, src] of images) {
16
+ const key = `${agentId}:${imageId}`;
17
+ const cached = cache.get(key);
18
+ if (cached) {
19
+ attachments.push(cached);
20
+ continue;
21
+ }
22
+ // Only the recognized local comment-image endpoint is fetched. It enforces
23
+ // the current user's access to the comment before returning image bytes.
24
+ const response = await fetch(src, { credentials: "include" });
25
+ if (!response.ok) {
26
+ throw new Error("Could not load a comment screenshot. Please try again.");
27
+ }
28
+ const blob = await response.blob();
29
+ const extension = {
30
+ "image/png": "png",
31
+ "image/jpeg": "jpg",
32
+ "image/gif": "gif",
33
+ "image/webp": "webp",
34
+ }[blob.type];
35
+ if (!extension || !blob.size || blob.size > COMMENT_IMAGE_MAX_BYTES) {
36
+ throw new Error("A comment screenshot is invalid or too large to attach.");
37
+ }
38
+ const file = new File([blob], `comment-image-${imageId}.${extension}`, {
39
+ type: blob.type,
40
+ });
41
+ const result = await uploadDocument(agentId, file, profileId);
42
+ if (!result.success || !result.document) {
43
+ throw new Error(result.error || "Could not attach a comment screenshot.");
44
+ }
45
+ const { extractedText: _extractedText, ...attachment } = result.document;
46
+ cache.set(key, attachment);
47
+ attachments.push(attachment);
48
+ }
49
+ return attachments;
50
+ }
51
+ //# sourceMappingURL=commentAgentAttachments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commentAgentAttachments.js","sourceRoot":"","sources":["../../../src/editor/reviews/commentAgentAttachments.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,GAGf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE9E;;0EAE0E;AAC1E,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,OAAe,EACf,OAAiC,EACjC,SAA6B,EAC7B,KAA0C;IAE1C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAClE,KAAK,MAAM,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;YAC3D,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;gBAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAA6B,EAAE,CAAC;IACjD,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,OAAO,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,MAAM,EAAE,CAAC;YACX,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QAED,2EAA2E;QAC3E,yEAAyE;QACzE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG;YAChB,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,KAAK;YACnB,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,MAAM;SACrB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,uBAAuB,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,iBAAiB,OAAO,IAAI,SAAS,EAAE,EAAE;YACrE,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,wCAAwC,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;QACzE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC3B,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -19,8 +19,10 @@ export type CommentThreadEntry = {
19
19
  };
20
20
  export declare function buildCommentThreadEntries(orderedThread: readonly CommentType[], resolvedAuthorNames?: Record<string, string>): CommentThreadEntry[];
21
21
  /**
22
- * Prompt for the agent: the target of the thread (page, component, field,
23
- * selected text) followed by every comment of the conversation in order.
22
+ * Context message for the agent: human-readable target names and selected
23
+ * text followed by every comment of the conversation in order. Structured
24
+ * item, component, and field identifiers are supplied through AgentMetadata,
25
+ * while general workflow instructions belong to the Resolve Comments profile.
24
26
  */
25
27
  export declare function buildCommentThreadPrompt(rootComment: CommentType, orderedThread: readonly CommentType[], resolvedAuthorNames?: Record<string, string>): string;
26
28
  /**
@@ -1,6 +1,7 @@
1
1
  import { getComponentById } from "../componentTreeHelper";
2
2
  import { formatDate } from "../utils";
3
3
  import { getFeedbackAuthorName } from "./feedbackAvatar";
4
+ import { splitCommentImages } from "./commentImages";
4
5
  function idsMatch(left, right) {
5
6
  const normalize = (value) => (value ?? "").replace(/[{}-]/g, "").toLowerCase();
6
7
  const a = normalize(left);
@@ -16,14 +17,16 @@ function buildCommentTargetPromptParts(comment) {
16
17
  const parts = [];
17
18
  const mainItemId = comment.mainItemId;
18
19
  const targetItemId = comment.itemId;
19
- if (comment.mainItemName || mainItemId) {
20
- parts.push(`Page: ${comment.mainItemName || "unknown"}${mainItemId ? ` (${mainItemId})` : ""}`);
20
+ if (comment.mainItemName) {
21
+ parts.push(`Page: ${comment.mainItemName}`);
21
22
  }
22
- if (targetItemId && !idsMatch(targetItemId, mainItemId)) {
23
- parts.push(`Anchored item/component: ${comment.itemName || "unknown"} (${targetItemId})`);
23
+ if (targetItemId &&
24
+ !idsMatch(targetItemId, mainItemId) &&
25
+ comment.itemName) {
26
+ parts.push(`Anchored item/component: ${comment.itemName}`);
24
27
  }
25
- if (comment.fieldId || comment.fieldName) {
26
- parts.push(`Field: ${comment.fieldName || "unknown"}${comment.fieldId ? ` (${comment.fieldId})` : ""}`);
28
+ if (comment.fieldName) {
29
+ parts.push(`Field: ${comment.fieldName}`);
27
30
  }
28
31
  return parts;
29
32
  }
@@ -91,8 +94,10 @@ export function buildCommentThreadEntries(orderedThread, resolvedAuthorNames) {
91
94
  }));
92
95
  }
93
96
  /**
94
- * Prompt for the agent: the target of the thread (page, component, field,
95
- * selected text) followed by every comment of the conversation in order.
97
+ * Context message for the agent: human-readable target names and selected
98
+ * text followed by every comment of the conversation in order. Structured
99
+ * item, component, and field identifiers are supplied through AgentMetadata,
100
+ * while general workflow instructions belong to the Resolve Comments profile.
96
101
  */
97
102
  export function buildCommentThreadPrompt(rootComment, orderedThread, resolvedAuthorNames) {
98
103
  const targetParts = buildCommentTargetPromptParts(rootComment);
@@ -109,18 +114,20 @@ export function buildCommentThreadPrompt(rootComment, orderedThread, resolvedAut
109
114
  const replyTo = entry.parentCommentId && entry.parentCommentId !== rootComment.id
110
115
  ? ` [in reply to ${nameById.get(entry.parentCommentId) || "an earlier comment"}]`
111
116
  : "";
112
- const text = (entry.text || "").trim() || "(no text)";
117
+ const text = splitCommentImages(entry.text || "")
118
+ .map((segment) => segment.type === "image"
119
+ ? `[Attached image: comment-image-${segment.imageId} (${segment.alt})]`
120
+ : segment.value)
121
+ .join("\n")
122
+ .trim() || "(no text)";
113
123
  return `${index + 1}. ${entry.authorDisplayName}${when}${replyTo}: ${text}`;
114
124
  });
115
125
  const count = entries.length;
116
126
  return [
117
- "Please help resolve this review comment thread.",
118
127
  ...(targetParts.length > 0 ? [targetParts.join(" | ")] : []),
119
128
  "",
120
129
  `Conversation (${count} ${count === 1 ? "comment" : "comments"}, oldest first):`,
121
130
  ...lines,
122
- "",
123
- `When the changes are done, ask me whether I am satisfied with them and whether you should add a reply to this thread that summarizes the changes. Only after I confirm, add that reply with the add-comment tool using parentCommentId=${rootComment.id}. Do not add it unasked.`,
124
131
  ].join("\n");
125
132
  }
126
133
  /**