@parhelia/core 0.1.12895 → 0.1.12901

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 (552) hide show
  1. package/dist/agents-view/AgentCard.js +1 -1
  2. package/dist/agents-view/AgentCard.js.map +1 -1
  3. package/dist/agents-view/AgentProfileIcon.d.ts +1 -1
  4. package/dist/agents-view/AgentProfileIcon.js +4 -0
  5. package/dist/agents-view/AgentProfileIcon.js.map +1 -1
  6. package/dist/agents-view/AgentsWorkspaceView.js +10 -24
  7. package/dist/agents-view/AgentsWorkspaceView.js.map +1 -1
  8. package/dist/agents-view/ProfileAgentsGroup.js +2 -3
  9. package/dist/agents-view/ProfileAgentsGroup.js.map +1 -1
  10. package/dist/components/MarkdownDisplay.js +1 -1
  11. package/dist/components/MarkdownDisplay.js.map +1 -1
  12. package/dist/components/SearchInput.d.ts +1 -0
  13. package/dist/components/SearchInput.js +2 -2
  14. package/dist/components/SearchInput.js.map +1 -1
  15. package/dist/components/ui/LanguageSelectionGrid.js +2 -1
  16. package/dist/components/ui/LanguageSelectionGrid.js.map +1 -1
  17. package/dist/components/ui/LanguageSelector.d.ts +2 -1
  18. package/dist/components/ui/LanguageSelector.js +3 -3
  19. package/dist/components/ui/LanguageSelector.js.map +1 -1
  20. package/dist/components/ui/badge.d.ts +5 -1
  21. package/dist/components/ui/badge.js +8 -3
  22. package/dist/components/ui/badge.js.map +1 -1
  23. package/dist/components/ui/button.js +4 -5
  24. package/dist/components/ui/button.js.map +1 -1
  25. package/dist/components/ui/checkbox.js +1 -1
  26. package/dist/components/ui/checkbox.js.map +1 -1
  27. package/dist/components/ui/command.js +1 -1
  28. package/dist/components/ui/command.js.map +1 -1
  29. package/dist/components/ui/context-menu.d.ts +13 -0
  30. package/dist/components/ui/context-menu.js +61 -57
  31. package/dist/components/ui/context-menu.js.map +1 -1
  32. package/dist/components/ui/dropdown-menu.js +4 -4
  33. package/dist/components/ui/dropdown-menu.js.map +1 -1
  34. package/dist/components/ui/input.js +2 -2
  35. package/dist/components/ui/input.js.map +1 -1
  36. package/dist/components/ui/switch.js +1 -1
  37. package/dist/components/ui/switch.js.map +1 -1
  38. package/dist/components/ui/textarea.js +1 -1
  39. package/dist/components/ui/textarea.js.map +1 -1
  40. package/dist/config/config.js +40 -15
  41. package/dist/config/config.js.map +1 -1
  42. package/dist/config/notificationRoutes.js +2 -2
  43. package/dist/config/notificationRoutes.js.map +1 -1
  44. package/dist/editor/ContentTree.js +13 -5
  45. package/dist/editor/ContentTree.js.map +1 -1
  46. package/dist/editor/ContextMenu.js +4 -6
  47. package/dist/editor/ContextMenu.js.map +1 -1
  48. package/dist/editor/FieldListField.js +14 -7
  49. package/dist/editor/FieldListField.js.map +1 -1
  50. package/dist/editor/GlobalMenuBar.js +1 -2
  51. package/dist/editor/GlobalMenuBar.js.map +1 -1
  52. package/dist/editor/ImageEditor.js +1 -1
  53. package/dist/editor/ImageEditor.js.map +1 -1
  54. package/dist/editor/LinkEditorDialog.js +13 -0
  55. package/dist/editor/LinkEditorDialog.js.map +1 -1
  56. package/dist/editor/MainLayout.js +66 -9
  57. package/dist/editor/MainLayout.js.map +1 -1
  58. package/dist/editor/Titlebar.js +1 -1
  59. package/dist/editor/Titlebar.js.map +1 -1
  60. package/dist/editor/WorkspaceTitleSwitcher.js +12 -31
  61. package/dist/editor/WorkspaceTitleSwitcher.js.map +1 -1
  62. package/dist/editor/ai/AgentProfileSelector.js +2 -2
  63. package/dist/editor/ai/AgentProfileSelector.js.map +1 -1
  64. package/dist/editor/ai/AgentStatusBadge.js +3 -11
  65. package/dist/editor/ai/AgentStatusBadge.js.map +1 -1
  66. package/dist/editor/ai/Agents.js +46 -41
  67. package/dist/editor/ai/Agents.js.map +1 -1
  68. package/dist/editor/ai/InlineAiDialog.js +24 -26
  69. package/dist/editor/ai/InlineAiDialog.js.map +1 -1
  70. package/dist/editor/ai/InlineAiTrigger.js +30 -1
  71. package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
  72. package/dist/editor/ai/agentActivitySummary.d.ts +108 -0
  73. package/dist/editor/ai/agentActivitySummary.js +390 -0
  74. package/dist/editor/ai/agentActivitySummary.js.map +1 -0
  75. package/dist/editor/ai/terminal/agentContextMerge.d.ts +19 -0
  76. package/dist/editor/ai/terminal/agentContextMerge.js +88 -0
  77. package/dist/editor/ai/terminal/agentContextMerge.js.map +1 -0
  78. package/dist/editor/ai/terminal/components/ActivitySummaryCell.d.ts +21 -0
  79. package/dist/editor/ai/terminal/components/ActivitySummaryCell.js +133 -0
  80. package/dist/editor/ai/terminal/components/ActivitySummaryCell.js.map +1 -0
  81. package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.d.ts +7 -0
  82. package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.js +145 -0
  83. package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.js.map +1 -0
  84. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js +1 -1
  85. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js.map +1 -1
  86. package/dist/editor/ai/terminal/components/AgentFullPromptControls.d.ts +2 -1
  87. package/dist/editor/ai/terminal/components/AgentFullPromptControls.js +13 -13
  88. package/dist/editor/ai/terminal/components/AgentFullPromptControls.js.map +1 -1
  89. package/dist/editor/ai/terminal/components/AgentGreeting.js +2 -2
  90. package/dist/editor/ai/terminal/components/AgentGreeting.js.map +1 -1
  91. package/dist/editor/ai/terminal/components/AgentMobileStatusPopover.js +1 -1
  92. package/dist/editor/ai/terminal/components/AgentMobileStatusPopover.js.map +1 -1
  93. package/dist/editor/ai/terminal/components/AgentModeSelector.d.ts +1 -1
  94. package/dist/editor/ai/terminal/components/AgentModeSelector.js +86 -9
  95. package/dist/editor/ai/terminal/components/AgentModeSelector.js.map +1 -1
  96. package/dist/editor/ai/terminal/components/AgentPredefinedPromptsButton.js +1 -1
  97. package/dist/editor/ai/terminal/components/AgentPredefinedPromptsButton.js.map +1 -1
  98. package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js +2 -2
  99. package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js.map +1 -1
  100. package/dist/editor/ai/terminal/components/AgentPromptInputArea.d.ts +2 -2
  101. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js +4 -27
  102. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js.map +1 -1
  103. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.d.ts +2 -2
  104. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js +15 -12
  105. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js.map +1 -1
  106. package/dist/editor/ai/terminal/components/AgentSettingsPopover.js +1 -1
  107. package/dist/editor/ai/terminal/components/AgentSettingsPopover.js.map +1 -1
  108. package/dist/editor/ai/terminal/components/AgentSummaryAssistantResponse.d.ts +2 -0
  109. package/dist/editor/ai/terminal/components/AgentSummaryAssistantResponse.js.map +1 -1
  110. package/dist/editor/ai/terminal/components/AgentTerminalContextChrome.d.ts +1 -3
  111. package/dist/editor/ai/terminal/components/AgentTerminalContextChrome.js.map +1 -1
  112. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.d.ts +10 -10
  113. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js +17 -3
  114. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js.map +1 -1
  115. package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.d.ts +2 -1
  116. package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.js +59 -5
  117. package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.js.map +1 -1
  118. package/dist/editor/ai/terminal/components/AgentTerminalView.d.ts +3 -2
  119. package/dist/editor/ai/terminal/components/AgentTerminalView.js +5 -4
  120. package/dist/editor/ai/terminal/components/AgentTerminalView.js.map +1 -1
  121. package/dist/editor/ai/terminal/components/AiResponseMessage.d.ts +2 -0
  122. package/dist/editor/ai/terminal/components/AiResponseMessage.js +84 -28
  123. package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
  124. package/dist/editor/ai/terminal/components/ContextInfoBar.d.ts +2 -4
  125. package/dist/editor/ai/terminal/components/ContextInfoBar.js +93 -223
  126. package/dist/editor/ai/terminal/components/ContextInfoBar.js.map +1 -1
  127. package/dist/editor/ai/terminal/useAgentDraftInitializer.js +7 -45
  128. package/dist/editor/ai/terminal/useAgentDraftInitializer.js.map +1 -1
  129. package/dist/editor/ai/terminal/useAgentEditorContextPipeline.d.ts +0 -4
  130. package/dist/editor/ai/terminal/useAgentEditorContextPipeline.js +1 -7
  131. package/dist/editor/ai/terminal/useAgentEditorContextPipeline.js.map +1 -1
  132. package/dist/editor/ai/terminal/useAgentPromptComposerSurface.d.ts +2 -2
  133. package/dist/editor/ai/terminal/useAgentQuickActions.d.ts +2 -2
  134. package/dist/editor/ai/terminal/useAgentQuickActions.js +61 -3
  135. package/dist/editor/ai/terminal/useAgentQuickActions.js.map +1 -1
  136. package/dist/editor/ai/terminal/useAgentSettingsPanel.js +0 -2
  137. package/dist/editor/ai/terminal/useAgentSettingsPanel.js.map +1 -1
  138. package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.js +3 -3
  139. package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.js.map +1 -1
  140. package/dist/editor/ai/terminal/useAgentSkillActions.d.ts +0 -3
  141. package/dist/editor/ai/terminal/useAgentSkillActions.js +8 -26
  142. package/dist/editor/ai/terminal/useAgentSkillActions.js.map +1 -1
  143. package/dist/editor/ai/terminal/useAgentSubmitContextBuilder.d.ts +1 -5
  144. package/dist/editor/ai/terminal/useAgentSubmitContextBuilder.js +6 -19
  145. package/dist/editor/ai/terminal/useAgentSubmitContextBuilder.js.map +1 -1
  146. package/dist/editor/ai/terminal/useAgentTerminalChrome.d.ts +1 -3
  147. package/dist/editor/ai/terminal/useAgentTerminalChrome.js +2 -2
  148. package/dist/editor/ai/terminal/useAgentTerminalChrome.js.map +1 -1
  149. package/dist/editor/ai/terminal/useAgentTerminalController.js +18 -22
  150. package/dist/editor/ai/terminal/useAgentTerminalController.js.map +1 -1
  151. package/dist/editor/ai/terminal/useAgentTerminalViewProps.d.ts +1 -1
  152. package/dist/editor/ai/terminal/useAgentTerminalViewProps.js +2 -2
  153. package/dist/editor/ai/terminal/useAgentTerminalViewProps.js.map +1 -1
  154. package/dist/editor/ai/terminal/useAgentTerminalViewState.d.ts +0 -6
  155. package/dist/editor/ai/terminal/useAgentTerminalViewState.js +2 -16
  156. package/dist/editor/ai/terminal/useAgentTerminalViewState.js.map +1 -1
  157. package/dist/editor/ai/useActiveAgentConversation.d.ts +2 -0
  158. package/dist/editor/ai/useActiveAgentConversation.js +20 -0
  159. package/dist/editor/ai/useActiveAgentConversation.js.map +1 -1
  160. package/dist/editor/bridge/protocol.d.ts +48 -0
  161. package/dist/editor/bridge/protocol.js +13 -1
  162. package/dist/editor/bridge/protocol.js.map +1 -1
  163. package/dist/editor/client/EditorShell.d.ts +2 -0
  164. package/dist/editor/client/EditorShell.js +129 -29
  165. package/dist/editor/client/EditorShell.js.map +1 -1
  166. package/dist/editor/client/editContext.d.ts +30 -4
  167. package/dist/editor/client/editContext.js.map +1 -1
  168. package/dist/editor/client/hooks/useReducedMotion.d.ts +8 -0
  169. package/dist/editor/client/hooks/useReducedMotion.js +12 -0
  170. package/dist/editor/client/hooks/useReducedMotion.js.map +1 -0
  171. package/dist/editor/client/manualShowMeFocus.d.ts +17 -0
  172. package/dist/editor/client/manualShowMeFocus.js +32 -0
  173. package/dist/editor/client/manualShowMeFocus.js.map +1 -0
  174. package/dist/editor/client/ui/FullscreenControls.js +5 -5
  175. package/dist/editor/client/ui/FullscreenControls.js.map +1 -1
  176. package/dist/editor/commands/componentCommands.js +30 -1
  177. package/dist/editor/commands/componentCommands.js.map +1 -1
  178. package/dist/editor/commands/keyboardCommands.d.ts +6 -0
  179. package/dist/editor/commands/keyboardCommands.js +74 -0
  180. package/dist/editor/commands/keyboardCommands.js.map +1 -1
  181. package/dist/editor/commands/reorderComponent.d.ts +20 -0
  182. package/dist/editor/commands/reorderComponent.js +40 -0
  183. package/dist/editor/commands/reorderComponent.js.map +1 -0
  184. package/dist/editor/commands/undo.js +3 -3
  185. package/dist/editor/commands/undo.js.map +1 -1
  186. package/dist/editor/componentFrameColors.d.ts +11 -0
  187. package/dist/editor/componentFrameColors.js +47 -0
  188. package/dist/editor/componentFrameColors.js.map +1 -0
  189. package/dist/editor/field-types/RichTextEditor.js +25 -6
  190. package/dist/editor/field-types/RichTextEditor.js.map +1 -1
  191. package/dist/editor/field-types/RichTextEditorComponent.js +14 -1
  192. package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
  193. package/dist/editor/field-types/richtext/hooks/useRichTextProfile.d.ts +4 -1
  194. package/dist/editor/field-types/richtext/hooks/useRichTextProfile.js +33 -5
  195. package/dist/editor/field-types/richtext/hooks/useRichTextProfile.js.map +1 -1
  196. package/dist/editor/insertMenuItems.d.ts +11 -0
  197. package/dist/editor/insertMenuItems.js +9 -0
  198. package/dist/editor/insertMenuItems.js.map +1 -1
  199. package/dist/editor/menubar/ActiveUsers.js +3 -3
  200. package/dist/editor/menubar/ActiveUsers.js.map +1 -1
  201. package/dist/editor/menubar/FavoritesControls.js +46 -27
  202. package/dist/editor/menubar/FavoritesControls.js.map +1 -1
  203. package/dist/editor/menubar/GenericToolbar.js +2 -1
  204. package/dist/editor/menubar/GenericToolbar.js.map +1 -1
  205. package/dist/editor/menubar/ItemLanguageVersion.js +7 -5
  206. package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -1
  207. package/dist/editor/menubar/PageSelector.js +1 -1
  208. package/dist/editor/menubar/PageSelector.js.map +1 -1
  209. package/dist/editor/menubar/PreviewDatePicker.js +40 -21
  210. package/dist/editor/menubar/PreviewDatePicker.js.map +1 -1
  211. package/dist/editor/menubar/Separator.d.ts +2 -1
  212. package/dist/editor/menubar/Separator.js +2 -2
  213. package/dist/editor/menubar/Separator.js.map +1 -1
  214. package/dist/editor/menubar/ToolbarFactory.js +24 -17
  215. package/dist/editor/menubar/ToolbarFactory.js.map +1 -1
  216. package/dist/editor/menubar/VersionSelector.d.ts +2 -1
  217. package/dist/editor/menubar/VersionSelector.js +3 -3
  218. package/dist/editor/menubar/VersionSelector.js.map +1 -1
  219. package/dist/editor/menubar/WorkflowButton.js +17 -25
  220. package/dist/editor/menubar/WorkflowButton.js.map +1 -1
  221. package/dist/editor/menubar/toolbar-sections/ContentTreeToggle.d.ts +1 -0
  222. package/dist/editor/menubar/toolbar-sections/ContentTreeToggle.js +13 -0
  223. package/dist/editor/menubar/toolbar-sections/ContentTreeToggle.js.map +1 -0
  224. package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js +1 -1
  225. package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js.map +1 -1
  226. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js +104 -9
  227. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js.map +1 -1
  228. package/dist/editor/menubar/toolbar-sections/EditControls.d.ts +4 -2
  229. package/dist/editor/menubar/toolbar-sections/EditControls.js +78 -11
  230. package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
  231. package/dist/editor/menubar/toolbar-sections/FullscreenControl.d.ts +1 -0
  232. package/dist/editor/menubar/toolbar-sections/FullscreenControl.js +15 -0
  233. package/dist/editor/menubar/toolbar-sections/FullscreenControl.js.map +1 -0
  234. package/dist/editor/menubar/toolbar-sections/InsertControls.js +1 -1
  235. package/dist/editor/menubar/toolbar-sections/InsertControls.js.map +1 -1
  236. package/dist/editor/menubar/toolbar-sections/ManualBrowser.d.ts +12 -0
  237. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +169 -26
  238. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
  239. package/dist/editor/menubar/toolbar-sections/ReviewCommands.js +2 -1
  240. package/dist/editor/menubar/toolbar-sections/ReviewCommands.js.map +1 -1
  241. package/dist/editor/menubar/toolbar-sections/UtilityControls.d.ts +3 -1
  242. package/dist/editor/menubar/toolbar-sections/UtilityControls.js +11 -3
  243. package/dist/editor/menubar/toolbar-sections/UtilityControls.js.map +1 -1
  244. package/dist/editor/menubar/toolbar-sections/ViewportControls.d.ts +1 -0
  245. package/dist/editor/menubar/toolbar-sections/ViewportControls.js +48 -29
  246. package/dist/editor/menubar/toolbar-sections/ViewportControls.js.map +1 -1
  247. package/dist/editor/menubar/toolbar-sections/index.d.ts +2 -1
  248. package/dist/editor/menubar/toolbar-sections/index.js +2 -1
  249. package/dist/editor/menubar/toolbar-sections/index.js.map +1 -1
  250. package/dist/editor/notifications/NotificationCenter.d.ts +4 -1
  251. package/dist/editor/notifications/NotificationCenter.js +13 -4
  252. package/dist/editor/notifications/NotificationCenter.js.map +1 -1
  253. package/dist/editor/notifications/WatchButton.d.ts +4 -2
  254. package/dist/editor/notifications/WatchButton.js +78 -20
  255. package/dist/editor/notifications/WatchButton.js.map +1 -1
  256. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js +71 -6
  257. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js.map +1 -1
  258. package/dist/editor/page-editor-chrome/CommentHighlightings.js +36 -40
  259. package/dist/editor/page-editor-chrome/CommentHighlightings.js.map +1 -1
  260. package/dist/editor/page-editor-chrome/DragInsertionOverlay.d.ts +36 -0
  261. package/dist/editor/page-editor-chrome/DragInsertionOverlay.js +879 -0
  262. package/dist/editor/page-editor-chrome/DragInsertionOverlay.js.map +1 -0
  263. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.d.ts +1 -0
  264. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js +3 -3
  265. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js.map +1 -1
  266. package/dist/editor/page-editor-chrome/FrameMenu.d.ts +3 -2
  267. package/dist/editor/page-editor-chrome/FrameMenu.js +49 -119
  268. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  269. package/dist/editor/page-editor-chrome/FrameMenus.d.ts +1 -1
  270. package/dist/editor/page-editor-chrome/FrameMenus.js +65 -15
  271. package/dist/editor/page-editor-chrome/FrameMenus.js.map +1 -1
  272. package/dist/editor/page-editor-chrome/InsertComponentMenu.d.ts +25 -0
  273. package/dist/editor/page-editor-chrome/InsertComponentMenu.js +30 -0
  274. package/dist/editor/page-editor-chrome/InsertComponentMenu.js.map +1 -0
  275. package/dist/editor/page-editor-chrome/PageEditorChrome.js +14 -2
  276. package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
  277. package/dist/editor/page-editor-chrome/PlaceholderDropZone.d.ts +33 -2
  278. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +94 -71
  279. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
  280. package/dist/editor/page-editor-chrome/PlaceholderDropZones.d.ts +13 -2
  281. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +105 -203
  282. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
  283. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +51 -88
  284. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -1
  285. package/dist/editor/page-editor-chrome/bridgeInlineFormatToolbarLayout.js +2 -1
  286. package/dist/editor/page-editor-chrome/bridgeInlineFormatToolbarLayout.js.map +1 -1
  287. package/dist/editor/page-editor-chrome/componentDragObject.d.ts +10 -0
  288. package/dist/editor/page-editor-chrome/componentDragObject.js +22 -0
  289. package/dist/editor/page-editor-chrome/componentDragObject.js.map +1 -0
  290. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.d.ts +32 -0
  291. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js +8 -0
  292. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js.map +1 -1
  293. package/dist/editor/page-editor-chrome/overlay/InsertionLine.d.ts +44 -0
  294. package/dist/editor/page-editor-chrome/overlay/InsertionLine.js +160 -0
  295. package/dist/editor/page-editor-chrome/overlay/InsertionLine.js.map +1 -0
  296. package/dist/editor/page-editor-chrome/overlay/geometry.d.ts +39 -0
  297. package/dist/editor/page-editor-chrome/overlay/geometry.js +67 -10
  298. package/dist/editor/page-editor-chrome/overlay/geometry.js.map +1 -1
  299. package/dist/editor/page-editor-chrome/overlay/placeholderZones.d.ts +66 -0
  300. package/dist/editor/page-editor-chrome/overlay/placeholderZones.js +274 -0
  301. package/dist/editor/page-editor-chrome/overlay/placeholderZones.js.map +1 -0
  302. package/dist/editor/page-editor-chrome/useComponentDragHandle.d.ts +23 -0
  303. package/dist/editor/page-editor-chrome/useComponentDragHandle.js +41 -0
  304. package/dist/editor/page-editor-chrome/useComponentDragHandle.js.map +1 -0
  305. package/dist/editor/page-editor-chrome/useDragInsertionGesture.d.ts +23 -0
  306. package/dist/editor/page-editor-chrome/useDragInsertionGesture.js +207 -0
  307. package/dist/editor/page-editor-chrome/useDragInsertionGesture.js.map +1 -0
  308. package/dist/editor/page-editor-chrome/usePinnedHoveredComponentId.d.ts +2 -0
  309. package/dist/editor/page-editor-chrome/usePinnedHoveredComponentId.js +18 -0
  310. package/dist/editor/page-editor-chrome/usePinnedHoveredComponentId.js.map +1 -0
  311. package/dist/editor/page-viewer/EditorForm.js +14 -12
  312. package/dist/editor/page-viewer/EditorForm.js.map +1 -1
  313. package/dist/editor/page-viewer/EditorFormHintPopover.d.ts +2 -2
  314. package/dist/editor/page-viewer/EditorFormHintPopover.js +4 -4
  315. package/dist/editor/page-viewer/EditorFormHintPopover.js.map +1 -1
  316. package/dist/editor/page-viewer/MiniMap.d.ts +6 -0
  317. package/dist/editor/page-viewer/MiniMap.js +97 -12
  318. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  319. package/dist/editor/page-viewer/MinimapDropTargets.d.ts +13 -0
  320. package/dist/editor/page-viewer/MinimapDropTargets.js +140 -0
  321. package/dist/editor/page-viewer/MinimapDropTargets.js.map +1 -0
  322. package/dist/editor/page-viewer/PageViewer.js +96 -10
  323. package/dist/editor/page-viewer/PageViewer.js.map +1 -1
  324. package/dist/editor/page-viewer/PageViewerFrame.js +263 -6
  325. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  326. package/dist/editor/page-viewer/pageViewContext.d.ts +4 -1
  327. package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
  328. package/dist/editor/reviews/Comment.js +2 -0
  329. package/dist/editor/reviews/Comment.js.map +1 -1
  330. package/dist/editor/reviews/CommentDisplayPopover.js +5 -2
  331. package/dist/editor/reviews/CommentDisplayPopover.js.map +1 -1
  332. package/dist/editor/reviews/CommentPopover.d.ts +4 -0
  333. package/dist/editor/reviews/CommentPopover.js +15 -1
  334. package/dist/editor/reviews/CommentPopover.js.map +1 -1
  335. package/dist/editor/reviews/Comments.js +61 -44
  336. package/dist/editor/reviews/Comments.js.map +1 -1
  337. package/dist/editor/reviews/DecisionsMatrix.js +3 -3
  338. package/dist/editor/reviews/DecisionsMatrix.js.map +1 -1
  339. package/dist/editor/reviews/FeedbackModeIntro.d.ts +15 -0
  340. package/dist/editor/reviews/FeedbackModeIntro.js +22 -0
  341. package/dist/editor/reviews/FeedbackModeIntro.js.map +1 -0
  342. package/dist/editor/reviews/LatestFeedback.js +8 -2
  343. package/dist/editor/reviews/LatestFeedback.js.map +1 -1
  344. package/dist/editor/reviews/ReviewersPanel.js +2 -1
  345. package/dist/editor/reviews/ReviewersPanel.js.map +1 -1
  346. package/dist/editor/reviews/SuggestedEdit.js +9 -7
  347. package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
  348. package/dist/editor/reviews/SuggestionDisplayPopover.js +3 -3
  349. package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
  350. package/dist/editor/reviews/feedbackScrollTarget.d.ts +19 -0
  351. package/dist/editor/reviews/feedbackScrollTarget.js +171 -0
  352. package/dist/editor/reviews/feedbackScrollTarget.js.map +1 -0
  353. package/dist/editor/reviews/feedbackSelection.js +4 -4
  354. package/dist/editor/reviews/feedbackSelection.js.map +1 -1
  355. package/dist/editor/reviews/latestFeedbackData.js +1 -1
  356. package/dist/editor/reviews/openCommentsFeedback.d.ts +35 -0
  357. package/dist/editor/reviews/openCommentsFeedback.js +89 -0
  358. package/dist/editor/reviews/openCommentsFeedback.js.map +1 -0
  359. package/dist/editor/services/agentService.d.ts +5 -0
  360. package/dist/editor/services/agentService.js.map +1 -1
  361. package/dist/editor/services/aiService.d.ts +0 -2
  362. package/dist/editor/services/aiService.js.map +1 -1
  363. package/dist/editor/services/editService.d.ts +1 -0
  364. package/dist/editor/services/editService.js +4 -0
  365. package/dist/editor/services/editService.js.map +1 -1
  366. package/dist/editor/settings/IndexOverview.js +2 -2
  367. package/dist/editor/settings/IndexOverview.js.map +1 -1
  368. package/dist/editor/settings/QuotaInfo.js +2 -2
  369. package/dist/editor/settings/QuotaInfo.js.map +1 -1
  370. package/dist/editor/settings/SettingsBreadcrumb.js +8 -2
  371. package/dist/editor/settings/SettingsBreadcrumb.js.map +1 -1
  372. package/dist/editor/settings/SettingsPanelLayout.js +1 -1
  373. package/dist/editor/settings/SettingsPanelLayout.js.map +1 -1
  374. package/dist/editor/settings/SettingsView.js +7 -9
  375. package/dist/editor/settings/SettingsView.js.map +1 -1
  376. package/dist/editor/settings/StatusSummary.js +7 -17
  377. package/dist/editor/settings/StatusSummary.js.map +1 -1
  378. package/dist/editor/settings/panels/AgentToolsPanel.js +2 -1
  379. package/dist/editor/settings/panels/AgentToolsPanel.js.map +1 -1
  380. package/dist/editor/settings/panels/ClusterInstancesPanel.js +2 -1
  381. package/dist/editor/settings/panels/ClusterInstancesPanel.js.map +1 -1
  382. package/dist/editor/settings/panels/FieldTypeSerializersPanel.js +2 -1
  383. package/dist/editor/settings/panels/FieldTypeSerializersPanel.js.map +1 -1
  384. package/dist/editor/settings/panels/GroupedFieldConfigPanel.js +3 -2
  385. package/dist/editor/settings/panels/GroupedFieldConfigPanel.js.map +1 -1
  386. package/dist/editor/settings/panels/ItemConfigPanel.js +3 -2
  387. package/dist/editor/settings/panels/ItemConfigPanel.js.map +1 -1
  388. package/dist/editor/settings/panels/JavaScriptToolAgentPanel.js +2 -1
  389. package/dist/editor/settings/panels/JavaScriptToolAgentPanel.js.map +1 -1
  390. package/dist/editor/settings/panels/NotificationSubscriptionsPanel.js +2 -1
  391. package/dist/editor/settings/panels/NotificationSubscriptionsPanel.js.map +1 -1
  392. package/dist/editor/settings/panels/PersistentLogsPanel.js +3 -2
  393. package/dist/editor/settings/panels/PersistentLogsPanel.js.map +1 -1
  394. package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js +2 -1
  395. package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js.map +1 -1
  396. package/dist/editor/settings/panels/ProjectTemplateSelectorList.js +3 -2
  397. package/dist/editor/settings/panels/ProjectTemplateSelectorList.js.map +1 -1
  398. package/dist/editor/settings/panels/ProjectTemplatesPanel.js +3 -3
  399. package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
  400. package/dist/editor/settings/panels/SearchConfigPanel.js +3 -2
  401. package/dist/editor/settings/panels/SearchConfigPanel.js.map +1 -1
  402. package/dist/editor/settings/panels/StatusPanel.js +3 -2
  403. package/dist/editor/settings/panels/StatusPanel.js.map +1 -1
  404. package/dist/editor/sidebar/ComponentPalette.d.ts +1 -1
  405. package/dist/editor/sidebar/ComponentPalette.js +58 -25
  406. package/dist/editor/sidebar/ComponentPalette.js.map +1 -1
  407. package/dist/editor/sidebar/ComponentTree.js +91 -7
  408. package/dist/editor/sidebar/ComponentTree.js.map +1 -1
  409. package/dist/editor/sidebar/ContentTreePanel.d.ts +3 -0
  410. package/dist/editor/sidebar/ContentTreePanel.js +14 -0
  411. package/dist/editor/sidebar/ContentTreePanel.js.map +1 -0
  412. package/dist/editor/sidebar/Favorites.js +2 -2
  413. package/dist/editor/sidebar/Favorites.js.map +1 -1
  414. package/dist/editor/sidebar/NavigationPanelItem.js +2 -1
  415. package/dist/editor/sidebar/NavigationPanelItem.js.map +1 -1
  416. package/dist/editor/sidebar/OperationItem.js +98 -17
  417. package/dist/editor/sidebar/OperationItem.js.map +1 -1
  418. package/dist/editor/sidebar/Workbox.js +14 -133
  419. package/dist/editor/sidebar/Workbox.js.map +1 -1
  420. package/dist/editor/sidebar/WorkspaceButton.js +1 -1
  421. package/dist/editor/sidebar/WorkspaceButton.js.map +1 -1
  422. package/dist/editor/sidebar/WorkspaceRail.js +12 -9
  423. package/dist/editor/sidebar/WorkspaceRail.js.map +1 -1
  424. package/dist/editor/sidebar/contentTreeConstants.d.ts +2 -0
  425. package/dist/editor/sidebar/contentTreeConstants.js +3 -0
  426. package/dist/editor/sidebar/contentTreeConstants.js.map +1 -0
  427. package/dist/editor/tree-indicators/GutterColumns.js +4 -14
  428. package/dist/editor/tree-indicators/GutterColumns.js.map +1 -1
  429. package/dist/editor/ui/ItemCollectionEditor.js +3 -2
  430. package/dist/editor/ui/ItemCollectionEditor.js.map +1 -1
  431. package/dist/editor/ui/LoadingState.d.ts +11 -0
  432. package/dist/editor/ui/LoadingState.js +27 -0
  433. package/dist/editor/ui/LoadingState.js.map +1 -0
  434. package/dist/editor/ui/PerfectTree.d.ts +22 -1
  435. package/dist/editor/ui/PerfectTree.js +17 -11
  436. package/dist/editor/ui/PerfectTree.js.map +1 -1
  437. package/dist/editor/ui/PublishDialog.d.ts +11 -0
  438. package/dist/editor/ui/PublishDialog.js +101 -0
  439. package/dist/editor/ui/PublishDialog.js.map +1 -0
  440. package/dist/editor/ui/PublishItemDialog.js +2 -1
  441. package/dist/editor/ui/PublishItemDialog.js.map +1 -1
  442. package/dist/editor/ui/PublishRestrictionsDialog.js +3 -2
  443. package/dist/editor/ui/PublishRestrictionsDialog.js.map +1 -1
  444. package/dist/editor/ui/SimpleIconButton.d.ts +6 -0
  445. package/dist/editor/ui/SimpleIconButton.js +13 -4
  446. package/dist/editor/ui/SimpleIconButton.js.map +1 -1
  447. package/dist/editor/ui/SimpleMenu.js +4 -4
  448. package/dist/editor/ui/SimpleMenu.js.map +1 -1
  449. package/dist/editor/ui/SimpleTabs.js +1 -1
  450. package/dist/editor/ui/Spinner.d.ts +14 -1
  451. package/dist/editor/ui/Spinner.js.map +1 -1
  452. package/dist/editor/ui/WorkboxItemsTable.d.ts +15 -0
  453. package/dist/editor/ui/WorkboxItemsTable.js +142 -0
  454. package/dist/editor/ui/WorkboxItemsTable.js.map +1 -0
  455. package/dist/index.d.ts +4 -0
  456. package/dist/index.js +2 -0
  457. package/dist/index.js.map +1 -1
  458. package/dist/lib/pointerDrag.d.ts +20 -0
  459. package/dist/lib/pointerDrag.js +57 -0
  460. package/dist/lib/pointerDrag.js.map +1 -0
  461. package/dist/logging/consolePrefix.d.ts +2 -0
  462. package/dist/logging/consolePrefix.js +49 -0
  463. package/dist/logging/consolePrefix.js.map +1 -0
  464. package/dist/logging/index.d.ts +1 -0
  465. package/dist/logging/index.js +2 -0
  466. package/dist/logging/index.js.map +1 -0
  467. package/dist/logging/install-browser-console.d.ts +1 -0
  468. package/dist/logging/install-browser-console.js +3 -0
  469. package/dist/logging/install-browser-console.js.map +1 -0
  470. package/dist/revision.d.ts +2 -2
  471. package/dist/revision.js +2 -2
  472. package/dist/splash-screen/ModernSplashScreen.js +2 -1
  473. package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
  474. package/dist/task-board/TaskBoardWorkspace.js +181 -35
  475. package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
  476. package/dist/task-board/components/CommentsList.js +20 -9
  477. package/dist/task-board/components/CommentsList.js.map +1 -1
  478. package/dist/task-board/components/FinishedProjectCard.d.ts +5 -0
  479. package/dist/task-board/components/FinishedProjectCard.js +8 -0
  480. package/dist/task-board/components/FinishedProjectCard.js.map +1 -0
  481. package/dist/task-board/components/ProjectDashboard.d.ts +10 -1
  482. package/dist/task-board/components/ProjectDashboard.js +90 -6
  483. package/dist/task-board/components/ProjectDashboard.js.map +1 -1
  484. package/dist/task-board/components/ProjectListContent.js +2 -1
  485. package/dist/task-board/components/ProjectListContent.js.map +1 -1
  486. package/dist/task-board/components/ProjectOverviewContent.js +2 -1
  487. package/dist/task-board/components/ProjectOverviewContent.js.map +1 -1
  488. package/dist/task-board/components/TaskAgentPanel.d.ts +4 -0
  489. package/dist/task-board/components/TaskAgentPanel.js +12 -6
  490. package/dist/task-board/components/TaskAgentPanel.js.map +1 -1
  491. package/dist/task-board/components/TaskAssigneeBadge.d.ts +16 -0
  492. package/dist/task-board/components/TaskAssigneeBadge.js +21 -0
  493. package/dist/task-board/components/TaskAssigneeBadge.js.map +1 -0
  494. package/dist/task-board/components/TaskAssigneePicker.js +12 -10
  495. package/dist/task-board/components/TaskAssigneePicker.js.map +1 -1
  496. package/dist/task-board/components/TaskAttachmentDropZone.d.ts +11 -0
  497. package/dist/task-board/components/TaskAttachmentDropZone.js +100 -0
  498. package/dist/task-board/components/TaskAttachmentDropZone.js.map +1 -0
  499. package/dist/task-board/components/TaskAttachmentsSection.d.ts +1 -0
  500. package/dist/task-board/components/TaskAttachmentsSection.js +15 -41
  501. package/dist/task-board/components/TaskAttachmentsSection.js.map +1 -1
  502. package/dist/task-board/components/TaskBoardFilterBox.d.ts +4 -0
  503. package/dist/task-board/components/TaskBoardFilterBox.js +7 -0
  504. package/dist/task-board/components/TaskBoardFilterBox.js.map +1 -0
  505. package/dist/task-board/components/TaskBoardProjectListSidebar.js +4 -5
  506. package/dist/task-board/components/TaskBoardProjectListSidebar.js.map +1 -1
  507. package/dist/task-board/components/TaskCard.js +26 -15
  508. package/dist/task-board/components/TaskCard.js.map +1 -1
  509. package/dist/task-board/components/TaskDetailPanel.d.ts +1 -0
  510. package/dist/task-board/components/TaskDetailPanel.js +15 -12
  511. package/dist/task-board/components/TaskDetailPanel.js.map +1 -1
  512. package/dist/task-board/components/TaskReviewActions.d.ts +1 -0
  513. package/dist/task-board/components/TaskReviewActions.js +4 -2
  514. package/dist/task-board/components/TaskReviewActions.js.map +1 -1
  515. package/dist/task-board/components/TaskRow.js +6 -12
  516. package/dist/task-board/components/TaskRow.js.map +1 -1
  517. package/dist/task-board/components/TaskboardPersistentLogPanel.js +3 -3
  518. package/dist/task-board/components/TaskboardPersistentLogPanel.js.map +1 -1
  519. package/dist/task-board/components/WizardCommunicationCards.js +1 -1
  520. package/dist/task-board/components/WizardCommunicationCards.js.map +1 -1
  521. package/dist/task-board/components/WizardCommunicationCenter.d.ts +7 -1
  522. package/dist/task-board/components/WizardCommunicationCenter.js +10 -6
  523. package/dist/task-board/components/WizardCommunicationCenter.js.map +1 -1
  524. package/dist/task-board/components/WizardCommunicationShared.js +5 -5
  525. package/dist/task-board/components/WizardCommunicationShared.js.map +1 -1
  526. package/dist/task-board/components/WizardTask.d.ts +5 -1
  527. package/dist/task-board/components/WizardTask.js +14 -30
  528. package/dist/task-board/components/WizardTask.js.map +1 -1
  529. package/dist/task-board/components/WizardTaskDetailsPanel.d.ts +10 -2
  530. package/dist/task-board/components/WizardTaskDetailsPanel.js +56 -11
  531. package/dist/task-board/components/WizardTaskDetailsPanel.js.map +1 -1
  532. package/dist/task-board/taskBoardNavStore.d.ts +3 -0
  533. package/dist/task-board/taskBoardNavStore.js +44 -0
  534. package/dist/task-board/taskBoardNavStore.js.map +1 -1
  535. package/dist/task-board/taskPriority.d.ts +4 -0
  536. package/dist/task-board/taskPriority.js +19 -0
  537. package/dist/task-board/taskPriority.js.map +1 -0
  538. package/dist/task-board/views/DependencyGraphView.js +48 -36
  539. package/dist/task-board/views/DependencyGraphView.js.map +1 -1
  540. package/dist/task-board/views/KanbanView.js +130 -96
  541. package/dist/task-board/views/KanbanView.js.map +1 -1
  542. package/dist/task-board/views/ListView.js +3 -3
  543. package/dist/task-board/views/ListView.js.map +1 -1
  544. package/dist/task-board/views/WizardView.js +7 -6
  545. package/dist/task-board/views/WizardView.js.map +1 -1
  546. package/dist/tour/default-tour.js +5 -5
  547. package/dist/tour/default-tour.js.map +1 -1
  548. package/package.json +11 -1
  549. package/styles.css +144 -0
  550. package/dist/editor/ai/terminal/useAgentEditorContextSync.d.ts +0 -19
  551. package/dist/editor/ai/terminal/useAgentEditorContextSync.js +0 -142
  552. package/dist/editor/ai/terminal/useAgentEditorContextSync.js.map +0 -1
@@ -1,14 +1,18 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useEffect, useState } from "react";
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from "react";
3
3
  import { useEditContext } from "../client/editContext";
4
4
  import { useSlotContext } from "../views/editorSlotContext";
5
- import { getVisibleInsertOptions } from "../insertMenuItems";
6
5
  import { getAllPlaceholders } from "../componentTreeHelper";
7
- import { PlaceholderDropZone } from "./PlaceholderDropZone";
8
- import { measureBridgeComponentRect, measureBridgePlaceholderRect, rectEquals, } from "./overlay/geometry";
6
+ import { PlaceholderDropZone, SMALL_DROPZONE_SCALE, } from "./PlaceholderDropZone";
9
7
  import { useOverlayMeasurement } from "./overlay/useOverlayMeasurement";
10
- export function PlaceholderDropZones({ size, pageViewContext, }) {
8
+ import { computePlaceholderZones, layoutAwareIndex, placeholderZonesEqual, } from "./overlay/placeholderZones";
9
+ import { getPlaceholderDropZoneColor } from "../componentFrameColors";
10
+ import { usePinnedHoveredComponentId } from "./usePinnedHoveredComponentId";
11
+ export function PlaceholderDropZones({ size, pageViewContext, scopeInsertModeToHoveredComponent = false, avoidOverlaps = true, activeTargetKey = null, }) {
11
12
  const [placeholders, setPlaceholders] = useState([]);
13
+ // Last good dot set captured during a drag, so a transient mid-drag
14
+ // measurement frame that drops gaps can't unmount/remount the dots.
15
+ const dragZonesSnapshotRef = useRef({ active: false, zones: [] });
12
16
  const editContext = useEditContext();
13
17
  const slotContext = useSlotContext();
14
18
  useEffect(() => {
@@ -16,86 +20,46 @@ export function PlaceholderDropZones({ size, pageViewContext, }) {
16
20
  return;
17
21
  setPlaceholders(getAllPlaceholders(pageViewContext.page));
18
22
  }, [pageViewContext?.page]);
23
+ const hoveredComponentId = usePinnedHoveredComponentId(pageViewContext);
19
24
  const zones = useOverlayMeasurement((metrics) => {
20
- if (!slotContext?.isActive ||
21
- !pageViewContext ||
22
- (!editContext?.dragObject &&
23
- !editContext?.selectedForInsertion &&
24
- !editContext?.insertMode)) {
25
+ if (!slotContext?.isActive || !pageViewContext)
25
26
  return [];
26
- }
27
- const showAllDueToInsertMode = !!editContext?.insertMode &&
28
- !editContext?.dragObject &&
29
- !editContext?.selectedForInsertion;
30
- const hasVisibleInsertOptions = (placeholder) => getVisibleInsertOptions(placeholder.insertOptions).length > 0;
31
- const matchingPlaceholders = placeholders
32
- .filter((x) => editContext?.showLayoutComponents === true ||
33
- !isInsideLayoutComponent(x.parentComponent))
34
- .filter((x) => {
35
- const visibleInsertOptions = getVisibleInsertOptions(x.insertOptions);
36
- return (x.editable &&
37
- hasVisibleInsertOptions(x) &&
38
- (showAllDueToInsertMode ||
39
- x.parentComponent?.id === editContext.selectedForInsertion ||
40
- visibleInsertOptions.find((y) => y.typeId === editContext.selectedForInsertion ||
41
- y.typeId === editContext.dragObject?.typeId ||
42
- y.typeId === editContext.dragObject?.templateId ||
43
- y.compatibleTypeIds?.find((z) => z == editContext.dragObject?.typeId) !== undefined ||
44
- y.typeId === editContext.dragObject?.templateId ||
45
- y.compatibleTypeIds?.find((z) => z == editContext.dragObject?.templateId) !== undefined)));
46
- });
47
- const measuredZones = [];
48
- const scrollHeight = metrics.scrollHeight * metrics.visualScale;
49
- const scrollWidth = metrics.scrollWidth * metrics.visualScale;
50
- const bridgeGeometry = pageViewContext.bridgeGeometry;
51
- if (bridgeGeometry) {
52
- matchingPlaceholders.forEach((placeholder) => {
53
- measuredZones.push(...measureBridgePlaceholderZones(placeholder, bridgeGeometry, metrics));
54
- });
55
- }
56
- const zonesWithoutBeforeFirstLayout = measuredZones.filter((z) => {
57
- const components = z.placeholder.components;
58
- const firstLayoutIndex = components.findIndex((c) => !!c.layoutId);
59
- if (firstLayoutIndex >= 0 && z.index <= firstLayoutIndex) {
60
- return false;
61
- }
62
- return true;
27
+ const filteredZones = computePlaceholderZones({
28
+ placeholders,
29
+ geometry: pageViewContext.bridgeGeometry,
30
+ metrics,
31
+ dragObject: editContext?.dragObject,
32
+ selectedForInsertion: editContext?.selectedForInsertion,
33
+ insertMode: editContext?.insertMode,
34
+ showLayoutComponents: editContext?.showLayoutComponents,
35
+ hoveredComponentId,
36
+ scopeInsertModeToHoveredComponent,
63
37
  });
64
- const filteredZones = editContext?.showLayoutComponents === false
65
- ? zonesWithoutBeforeFirstLayout.filter((z) => {
66
- const components = z.placeholder.components;
67
- if (z.index >= 1 && z.index < components.length) {
68
- const prev = components[z.index - 1];
69
- const next = components[z.index];
70
- if (prev?.layoutId && next?.layoutId)
71
- return false;
72
- }
73
- return true;
74
- })
75
- : zonesWithoutBeforeFirstLayout;
76
- const contentWidth = measuredZones.reduce((max, zone) => Math.max(max, zone.position.x + 20), scrollWidth);
77
- const contentHeight = measuredZones.reduce((max, zone) => Math.max(max, zone.position.y + 20), scrollHeight);
78
- const usedPositions = new Map();
79
- const DROPZONE_SIZE = 32;
80
- const OVERLAP_THRESHOLD = DROPZONE_SIZE;
81
- return filteredZones.map((zone) => {
82
- let x = Math.min(contentWidth - 20, Math.max(20, zone.position.x));
83
- let y = Math.min(contentHeight - 20, Math.max(20, zone.position.y));
84
- const posKey = `${Math.round(x / OVERLAP_THRESHOLD)}_${Math.round(y / OVERLAP_THRESHOLD)}`;
85
- const overlapCount = usedPositions.get(posKey) || 0;
86
- if (overlapCount > 0) {
87
- x = x + overlapCount * (DROPZONE_SIZE + 8);
88
- if (x > contentWidth - 20) {
89
- x = 20 + ((overlapCount - 1) % 5) * (DROPZONE_SIZE + 8);
90
- y = y + Math.floor((overlapCount - 1) / 5) * (DROPZONE_SIZE + 8);
91
- }
38
+ // Dots get presentation-only overlap avoidance so multiple "+" buttons at
39
+ // the same spot don't stack. Overview surfaces (minimap) opt out, and
40
+ // during a drag the dots sit at TRUE gap positions so the active "+"
41
+ // lines up exactly with the insertion line.
42
+ const displayZones = avoidOverlaps && !editContext?.dragObject
43
+ ? applyDropZoneOverlapAvoidance(filteredZones, metrics, getDropZoneOverlapOptions(size))
44
+ : filteredZones;
45
+ // Keep the dot set stable during a drag. A mid-drag measurement frame can
46
+ // momentarily drop a gap (auto-scroll / reflow leaves a component rect
47
+ // unmeasured), which would unmount and remount that dot - a hard pop,
48
+ // since the dots have no fade. Retain the last good set on any frame that
49
+ // drops gaps; accept frames that carry the full set so positions keep
50
+ // tracking the page. The baseline resets when a new drag begins.
51
+ const snap = dragZonesSnapshotRef.current;
52
+ if (editContext?.dragObject) {
53
+ if (snap.active && displayZones.length < snap.zones.length) {
54
+ return snap.zones;
92
55
  }
93
- usedPositions.set(posKey, overlapCount + 1);
94
- return {
95
- ...zone,
96
- position: { x, y },
97
- };
98
- });
56
+ dragZonesSnapshotRef.current = { active: true, zones: displayZones };
57
+ return displayZones;
58
+ }
59
+ if (snap.active) {
60
+ dragZonesSnapshotRef.current = { active: false, zones: [] };
61
+ }
62
+ return displayZones;
99
63
  }, [
100
64
  slotContext?.isActive,
101
65
  pageViewContext,
@@ -104,141 +68,79 @@ export function PlaceholderDropZones({ size, pageViewContext, }) {
104
68
  editContext?.selectedForInsertion,
105
69
  editContext?.insertMode,
106
70
  editContext?.showLayoutComponents,
71
+ hoveredComponentId,
72
+ scopeInsertModeToHoveredComponent,
73
+ avoidOverlaps,
74
+ size,
107
75
  placeholders,
108
76
  ], {
109
77
  initialValue: [],
110
78
  equals: placeholderZonesEqual,
111
79
  interests: ["viewport", "layout", "adornment-data"],
112
80
  });
81
+ // The "+" dots show for no-drag insert mode / click-to-insert AND, as
82
+ // visual-only affordances during a drag (interactive=false below makes them
83
+ // pointer-events-none), so every valid gap stays marked while the continuous
84
+ // insertion line (DragInsertionOverlay) keeps sole ownership of the drop.
113
85
  if (!zones.length || !editContext)
114
86
  return null;
115
- return zones.map((zone, index) => {
116
- const components = zone.placeholder.components;
117
- const prevComponent = zone.index >= 1 ? components[zone.index - 1] : null;
118
- const nextComponent = zone.index < components.length ? components[zone.index] : null;
119
- const isAdjacentToLayout = !!prevComponent?.layoutId || !!nextComponent?.layoutId;
120
- const isInsideLayout = isInsideLayoutComponent(zone.placeholder.parentComponent);
121
- const isLayoutZone = isInsideLayout || isAdjacentToLayout;
122
- const adjustedIndex = zone.placeholder.components
123
- .slice(0, zone.index)
124
- .filter((c) => !c.layoutId).length;
125
- return (_jsx(PlaceholderDropZone, { placeholder: zone.placeholder, spotPosition: {
126
- x: zone.position.x,
127
- y: zone.position.y,
128
- }, index: adjustedIndex, size: size, spotPositionElement: zone.element, spotPositionAnchor: zone.anchor, parentName: zone.placeholder.parentComponent?.name, description: zone.description || undefined, isLayoutZone: isLayoutZone }, index));
129
- });
87
+ const dragging = !!editContext.dragObject;
88
+ return (_jsx(_Fragment, { children: zones.map((zone) => {
89
+ const zoneKey = getPlaceholderZoneKey(zone);
90
+ const components = zone.placeholder.components;
91
+ const prevComponent = zone.index >= 1 ? components[zone.index - 1] : null;
92
+ const nextComponent = zone.index < components.length ? components[zone.index] : null;
93
+ const color = getPlaceholderDropZoneColor({
94
+ parentComponent: zone.placeholder.parentComponent,
95
+ prevComponent,
96
+ nextComponent,
97
+ });
98
+ const adjustedIndex = layoutAwareIndex(zone.placeholder.components, zone.index);
99
+ return (_jsx(PlaceholderDropZone, { placeholder: zone.placeholder, spotPosition: { x: zone.position.x, y: zone.position.y }, index: adjustedIndex, size: size, spotPositionElement: zone.element, spotPositionAnchor: zone.anchor, parentName: zone.placeholder.parentComponent?.name, description: zone.description || undefined, color: color, interactive: !dragging, isActiveTarget: !!activeTargetKey && zoneKey === activeTargetKey }, zoneKey));
100
+ }) }));
130
101
  }
131
- function placeholderZonesEqual(previous, next) {
132
- if (previous.length !== next.length)
133
- return false;
134
- for (let i = 0; i < previous.length; i++) {
135
- const previousZone = previous[i];
136
- const nextZone = next[i];
137
- if (previousZone.placeholder.key !== nextZone.placeholder.key ||
138
- previousZone.index !== nextZone.index ||
139
- (previousZone.element ?? null) !== (nextZone.element ?? null) ||
140
- previousZone.anchor !== nextZone.anchor ||
141
- previousZone.description !== nextZone.description ||
142
- !rectEquals({ ...previousZone.position, width: 0, height: 0 }, { ...nextZone.position, width: 0, height: 0 })) {
143
- return false;
144
- }
145
- }
146
- return true;
102
+ function getPlaceholderZoneKey(zone) {
103
+ return `${zone.placeholder.key}#${zone.index}`;
147
104
  }
148
- function getPositionFromRect(rect, orientation) {
149
- const position = orientation === "horizontal"
150
- ? {
151
- x: rect.x + rect.width,
152
- y: rect.y + rect.height / 2,
105
+ export function applyDropZoneOverlapAvoidance(zones, metrics, options = getDropZoneOverlapOptions("large")) {
106
+ const scrollHeight = metrics.scrollHeight * metrics.visualScale;
107
+ const scrollWidth = metrics.scrollWidth * metrics.visualScale;
108
+ const { edgePadding, overlapThreshold, shiftStep } = options;
109
+ const contentWidth = zones.reduce((max, zone) => Math.max(max, zone.position.x + edgePadding), scrollWidth);
110
+ const contentHeight = zones.reduce((max, zone) => Math.max(max, zone.position.y + edgePadding), scrollHeight);
111
+ const usedPositions = new Map();
112
+ return zones.map((zone) => {
113
+ let x = clampToDropZoneBounds(zone.position.x, contentWidth, edgePadding);
114
+ let y = clampToDropZoneBounds(zone.position.y, contentHeight, edgePadding);
115
+ const posKey = `${Math.round(x / overlapThreshold)}_${Math.round(y / overlapThreshold)}`;
116
+ const overlapCount = usedPositions.get(posKey) || 0;
117
+ if (overlapCount > 0) {
118
+ x = x + overlapCount * shiftStep;
119
+ if (x > contentWidth - edgePadding) {
120
+ x = edgePadding + ((overlapCount - 1) % 5) * shiftStep;
121
+ y = y + Math.floor((overlapCount - 1) / 5) * shiftStep;
122
+ }
153
123
  }
154
- : {
155
- x: rect.x + rect.width / 2,
156
- y: rect.y + rect.height,
124
+ usedPositions.set(posKey, overlapCount + 1);
125
+ return {
126
+ ...zone,
127
+ position: { x, y },
157
128
  };
158
- return position;
159
- }
160
- function measureBridgePlaceholderZones(placeholder, geometry, metrics) {
161
- const zones = [];
162
- const placeholderMeasurement = measureBridgePlaceholderRect(geometry, placeholder.key, metrics);
163
- const orientation = getBridgePlaceholderOrientation(placeholder, geometry, metrics, placeholderMeasurement?.target.orientation);
164
- const firstComponent = placeholder.components[0];
165
- const firstComponentMeasurement = firstComponent
166
- ? measureBridgeComponentRect(geometry, firstComponent, metrics)
167
- : null;
168
- const parentMeasurement = placeholder.parentComponent
169
- ? measureBridgeComponentRect(geometry, placeholder.parentComponent, metrics)
170
- : null;
171
- const referenceRect = placeholderMeasurement?.rect ??
172
- firstComponentMeasurement?.rect ??
173
- parentMeasurement?.rect;
174
- if (!referenceRect)
175
- return zones;
176
- const isUsingParentBounds = !placeholderMeasurement?.rect &&
177
- !firstComponentMeasurement?.rect &&
178
- !!parentMeasurement?.rect;
179
- const position = isUsingParentBounds || placeholder.components.length === 0
180
- ? {
181
- x: referenceRect.x + referenceRect.width / 2,
182
- y: referenceRect.y + referenceRect.height / 2,
183
- }
184
- : getBeforePositionFromRect(referenceRect, orientation);
185
- zones.push({
186
- placeholder,
187
- position,
188
- index: 0,
189
- element: null,
190
- anchor: isUsingParentBounds || orientation !== "horizontal" ? "top" : "left",
191
- description: placeholderMeasurement?.target.description,
192
- });
193
- placeholder.components.forEach((component, index) => {
194
- const componentMeasurement = measureBridgeComponentRect(geometry, component, metrics);
195
- if (!componentMeasurement?.rect)
196
- return;
197
- zones.push({
198
- placeholder,
199
- position: getPositionFromRect(componentMeasurement.rect, orientation),
200
- index: index + 1,
201
- element: null,
202
- anchor: orientation === "horizontal" ? "right" : "bottom",
203
- description: placeholderMeasurement?.target.description,
204
- });
205
129
  });
206
- return zones;
207
130
  }
208
- function getBeforePositionFromRect(rect, orientation) {
209
- return orientation === "horizontal"
210
- ? {
211
- x: rect.x,
212
- y: rect.y + rect.height / 2,
213
- }
214
- : {
215
- x: rect.x + rect.width / 2,
216
- y: rect.y,
217
- };
218
- }
219
- function getBridgePlaceholderOrientation(placeholder, geometry, metrics, explicitOrientation) {
220
- if (explicitOrientation === "horizontal" ||
221
- explicitOrientation === "vertical") {
222
- return explicitOrientation;
223
- }
224
- if (placeholder.components.length > 1) {
225
- const first = measureBridgeComponentRect(geometry, placeholder.components[0], metrics);
226
- const second = measureBridgeComponentRect(geometry, placeholder.components[1], metrics);
227
- if (first?.rect && second?.rect) {
228
- const horizontalDiff = Math.abs(second.rect.x - first.rect.x);
229
- const verticalDiff = Math.abs(second.rect.y - first.rect.y);
230
- return horizontalDiff > verticalDiff ? "horizontal" : "vertical";
231
- }
232
- }
233
- return "vertical";
131
+ function getDropZoneOverlapOptions(size) {
132
+ const visualSize = size === "small" ? 32 * SMALL_DROPZONE_SCALE : 32;
133
+ return {
134
+ edgePadding: Math.max(visualSize / 2 + 2, 6),
135
+ overlapThreshold: visualSize,
136
+ shiftStep: visualSize + (size === "small" ? 4 : 8),
137
+ };
234
138
  }
235
- function isInsideLayoutComponent(component) {
236
- let current = component;
237
- while (current) {
238
- if (current.layoutId)
239
- return true;
240
- current = current.parentPlaceholder?.parentComponent;
241
- }
242
- return false;
139
+ function clampToDropZoneBounds(value, contentSize, padding) {
140
+ const min = padding;
141
+ const max = contentSize - padding;
142
+ if (max < min)
143
+ return Math.max(0, contentSize / 2);
144
+ return Math.min(max, Math.max(min, value));
243
145
  }
244
146
  //# sourceMappingURL=PlaceholderDropZones.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlaceholderDropZones.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/PlaceholderDropZones.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlaceholderDropZones.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/PlaceholderDropZones.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useEffect, useMemo, useRef, useState } from "react";
3
3
  import { useEditContext, useFieldsEditContext } from "../client/editContext";
4
- import * as DiffLib from "diff";
5
4
  import { SuggestionDisplayPopover } from "../reviews/SuggestionDisplayPopover";
6
5
  import { measureBridgeTextRangeRects, rectListEquals, } from "./overlay/geometry";
7
6
  import { useOverlayMeasurement } from "./overlay/useOverlayMeasurement";
8
7
  import { dedupeFeedbackHighlightItems, FeedbackHighlightBadge, FeedbackHighlightBadgeTray, } from "./FeedbackHighlightBadge";
8
+ import { getSuggestedEditScrollIntoViewTarget, getSuggestedEditTextRangeKey, getSuggestionRangeData, } from "../reviews/feedbackScrollTarget";
9
9
  const SUGGESTION_BRIDGE_SOURCE = "suggestions";
10
10
  function suggestionMeasurementsEqual(previous, next) {
11
11
  const previousKeys = Object.keys(previous);
@@ -61,48 +61,7 @@ export function SuggestionHighlightings({ pageViewContext, variant = "default",
61
61
  },
62
62
  fieldId: suggestion.fieldId,
63
63
  });
64
- const oldValue = toPlainSuggestionText(suggestion.oldValue ?? field?.rawValue ?? "");
65
- const newValue = toPlainSuggestionText(suggestion.newValue ?? "");
66
- if (oldValue === newValue) {
67
- nextRangeData[suggestion.id] = {
68
- oldRanges: [],
69
- newRanges: [],
70
- oldText: oldValue,
71
- newText: newValue,
72
- };
73
- return;
74
- }
75
- const diffResult = DiffLib.diffChars(oldValue, newValue);
76
- const oldChangeRanges = [];
77
- const newChangeRanges = [];
78
- let positionInOld = 0;
79
- let positionInNew = 0;
80
- for (const part of diffResult) {
81
- if (part.removed) {
82
- oldChangeRanges.push([
83
- positionInOld,
84
- positionInOld + part.value.length,
85
- ]);
86
- positionInOld += part.value.length;
87
- }
88
- else if (part.added) {
89
- newChangeRanges.push([
90
- positionInNew,
91
- positionInNew + part.value.length,
92
- ]);
93
- positionInNew += part.value.length;
94
- }
95
- else {
96
- positionInOld += part.value.length;
97
- positionInNew += part.value.length;
98
- }
99
- }
100
- nextRangeData[suggestion.id] = {
101
- oldRanges: mergeRanges(oldChangeRanges),
102
- newRanges: mergeRanges(newChangeRanges),
103
- oldText: oldValue,
104
- newText: newValue,
105
- };
64
+ nextRangeData[suggestion.id] = getSuggestionRangeData(suggestion.oldValue ?? field?.rawValue ?? "", suggestion.newValue ?? "");
106
65
  }));
107
66
  if (!cancelled) {
108
67
  setRangeDataBySuggestionId(nextRangeData);
@@ -123,7 +82,7 @@ export function SuggestionHighlightings({ pageViewContext, variant = "default",
123
82
  ? rangeData.newRanges
124
83
  : rangeData.oldRanges;
125
84
  return ranges.map(([start, end]) => ({
126
- key: getSuggestionTextRangeKey(suggestion),
85
+ key: getSuggestedEditTextRangeKey(suggestion),
127
86
  fieldId: suggestion.fieldId,
128
87
  item: {
129
88
  id: suggestion.itemId,
@@ -207,7 +166,7 @@ export function SuggestionHighlightings({ pageViewContext, variant = "default",
207
166
  continue;
208
167
  if (!rangeDataBySuggestionId[suggestion.id])
209
168
  continue;
210
- const rects = measureBridgeTextRangeRects(bridgeGeometry, getSuggestionTextRangeKey(suggestion), metrics);
169
+ const rects = measureBridgeTextRangeRects(bridgeGeometry, getSuggestedEditTextRangeKey(suggestion), metrics);
211
170
  if (rects.length === 0) {
212
171
  const previousMeasurement = lastMeasurementsRef.current[suggestion.id];
213
172
  if (canReusePreviousMeasurement &&
@@ -254,6 +213,9 @@ export function SuggestionHighlightings({ pageViewContext, variant = "default",
254
213
  }, [suggestions, measurements]);
255
214
  if (!editContext)
256
215
  return null;
216
+ const selectedCommentId = editContext.selectedComment?.id;
217
+ const selectedSuggestedEditId = editContext.selectedSuggestedEdit?.id;
218
+ const hasSelectedFeedback = !!selectedCommentId || !!selectedSuggestedEditId;
257
219
  return (_jsx(_Fragment, { children: overlayGroups.flatMap((group) => {
258
220
  const badgeSuggestions = dedupeFeedbackHighlightItems(group.suggestions);
259
221
  return group.rects.map((rect, index) => (_jsxs("div", { style: {
@@ -273,24 +235,43 @@ export function SuggestionHighlightings({ pageViewContext, variant = "default",
273
235
  : group.isTextRange
274
236
  ? -9
275
237
  : 8,
276
- }, children: badgeSuggestions.map((suggestion, badgeIndex) => (_jsx(SuggestionDisplayPopover, { suggestion: suggestion, onSuggestionUpdated: () => { }, children: _jsx(FeedbackHighlightBadge, { item: suggestion, variant: variant, minimapColorClassName: "bg-component-suggestions", zIndex: badgeSuggestions.length - badgeIndex + 100, testId: "suggestion-highlight-icon", ariaSubject: "suggestion", onClick: () => {
277
- editContext.select([suggestion.itemId]);
278
- modifiedFields?.setFocusedField({
279
- item: {
280
- id: suggestion.itemId,
281
- language: suggestion.mainItemLanguage,
282
- version: suggestion.mainItemVersion,
283
- },
284
- fieldId: suggestion.fieldId,
285
- }, true);
286
- } }) }, suggestion.id))) })), _jsx("div", { "data-testid": "suggested-edit-highlight", className: group.isTextRange
287
- ? "bg-feedback-green/15 absolute inset-0 rounded-sm"
288
- : "bg-feedback-green/10 absolute inset-0 rounded-[3px]" })] }, `${group.key}-${index}`)));
238
+ }, children: badgeSuggestions.map((suggestion, badgeIndex) => {
239
+ const isSelected = suggestion.id === selectedSuggestedEditId;
240
+ const isDimmed = hasSelectedFeedback && !isSelected;
241
+ return (_jsx(SuggestionDisplayPopover, { suggestion: suggestion, onSuggestionUpdated: () => { }, children: _jsx(FeedbackHighlightBadge, { item: suggestion, isSelected: isSelected, isDimmed: isDimmed, variant: variant, minimapColorClassName: "bg-component-suggestions", zIndex: isSelected
242
+ ? badgeSuggestions.length + 101
243
+ : badgeSuggestions.length - badgeIndex + 100, testId: "suggestion-highlight-icon", ariaSubject: "suggestion", onClick: () => {
244
+ editContext.setSelectedComment(undefined);
245
+ editContext.setSelectedSuggestedEdit(suggestion);
246
+ editContext.setScrollIntoView(getSuggestedEditScrollIntoViewTarget(suggestion));
247
+ editContext.select([suggestion.itemId]);
248
+ modifiedFields?.setFocusedField({
249
+ item: {
250
+ id: suggestion.itemId,
251
+ language: suggestion.mainItemLanguage,
252
+ version: suggestion.mainItemVersion,
253
+ },
254
+ fieldId: suggestion.fieldId,
255
+ }, true);
256
+ } }) }, suggestion.id));
257
+ }) })), (hasSelectedFeedback
258
+ ? group.suggestions.map((suggestion) => [suggestion])
259
+ : [group.suggestions]).map((suggestions, highlightIndex) => {
260
+ const isSelected = suggestions.length === 1 &&
261
+ suggestions[0]?.id === selectedSuggestedEditId;
262
+ const isDimmed = hasSelectedFeedback && !isSelected;
263
+ const highlightKey = suggestions
264
+ .map((suggestion) => suggestion.id)
265
+ .join("-");
266
+ return (_jsx("div", { "data-testid": "suggested-edit-highlight", "data-feedback-selected": isSelected ? "true" : undefined, "data-feedback-dimmed": isDimmed ? "true" : undefined, className: group.isTextRange
267
+ ? "absolute inset-0 rounded-sm"
268
+ : "absolute inset-0 rounded-[3px]", style: {
269
+ ...getSuggestionHighlightStyle(isSelected, isDimmed),
270
+ zIndex: isSelected ? 2 : 0,
271
+ } }, highlightKey || highlightIndex));
272
+ })] }, `${group.key}-${index}`)));
289
273
  }) }));
290
274
  }
291
- function getSuggestionTextRangeKey(suggestion) {
292
- return `suggestion:${suggestion.id}`;
293
- }
294
275
  function hasAnyExpectedBridgeTextRange(geometry, textRanges) {
295
276
  if (!geometry)
296
277
  return false;
@@ -305,13 +286,6 @@ function hasAllExpectedBridgeTextRanges(geometry, textRanges) {
305
286
  .map((target) => target.key));
306
287
  return textRanges.every((range) => availableKeys.has(range.key));
307
288
  }
308
- function toPlainSuggestionText(value) {
309
- if (!value || !/[<&]/.test(value))
310
- return value || "";
311
- const template = document.createElement("template");
312
- template.innerHTML = value;
313
- return template.content.textContent || "";
314
- }
315
289
  function getSuggestionMeasurementKey(measurement) {
316
290
  const rectKey = measurement.rects
317
291
  .map((rect) => `${roundMeasurement(rect.x)}:${roundMeasurement(rect.y)}:${roundMeasurement(rect.width)}:${roundMeasurement(rect.height)}`)
@@ -321,25 +295,14 @@ function getSuggestionMeasurementKey(measurement) {
321
295
  function roundMeasurement(value) {
322
296
  return Math.round(value * 2) / 2;
323
297
  }
324
- function mergeRanges(changeRanges) {
325
- const mergedRanges = [];
326
- if (changeRanges.length === 0)
327
- return mergedRanges;
328
- changeRanges.sort((a, b) => a[0] - b[0]);
329
- let currentRange = [...changeRanges[0]];
330
- for (let i = 1; i < changeRanges.length; i++) {
331
- const nextRange = changeRanges[i];
332
- if (!nextRange)
333
- continue;
334
- if (nextRange[0] <= currentRange[1] + 3) {
335
- currentRange[1] = Math.max(currentRange[1], nextRange[1]);
336
- }
337
- else {
338
- mergedRanges.push([currentRange[0], currentRange[1]]);
339
- currentRange = [...nextRange];
340
- }
341
- }
342
- mergedRanges.push([currentRange[0], currentRange[1]]);
343
- return mergedRanges;
298
+ function getSuggestionHighlightStyle(isSelected, isDimmed) {
299
+ const fillStrength = isDimmed ? 6 : isSelected ? 28 : 15;
300
+ return {
301
+ background: `color-mix(in srgb, var(--color-feedback-green) ${fillStrength}%, transparent)`,
302
+ opacity: isDimmed ? 0.42 : 1,
303
+ boxShadow: isSelected
304
+ ? "0 1px 5px color-mix(in srgb, var(--color-feedback-green) 22%, transparent)"
305
+ : undefined,
306
+ };
344
307
  }
345
308
  //# sourceMappingURL=SuggestionHighlightings.js.map