@parhelia/core 0.1.12881 → 0.1.12882

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/dist/components/ui/card.d.ts +1 -3
  2. package/dist/components/ui/card.js +2 -2
  3. package/dist/components/ui/card.js.map +1 -1
  4. package/dist/components/ui/context-menu.js +2 -2
  5. package/dist/config/config.js +7 -8
  6. package/dist/config/config.js.map +1 -1
  7. package/dist/config/types.d.ts +7 -0
  8. package/dist/config/types.js.map +1 -1
  9. package/dist/editor/FieldActionsOverlay.d.ts +1 -0
  10. package/dist/editor/FieldActionsOverlay.js +45 -1
  11. package/dist/editor/FieldActionsOverlay.js.map +1 -1
  12. package/dist/editor/FieldListField.d.ts +1 -1
  13. package/dist/editor/FieldListField.js +18 -20
  14. package/dist/editor/FieldListField.js.map +1 -1
  15. package/dist/editor/ImageEditor.d.ts +1 -6
  16. package/dist/editor/ImageEditor.js +3 -19
  17. package/dist/editor/ImageEditor.js.map +1 -1
  18. package/dist/editor/PictureEditor.d.ts +1 -2
  19. package/dist/editor/PictureEditor.js +14 -5
  20. package/dist/editor/PictureEditor.js.map +1 -1
  21. package/dist/editor/ai/Agents.js +2 -2
  22. package/dist/editor/ai/Agents.js.map +1 -1
  23. package/dist/editor/ai/GuidanceOverlay.js +11 -1
  24. package/dist/editor/ai/GuidanceOverlay.js.map +1 -1
  25. package/dist/editor/ai/InlineAiDialog.js +11 -22
  26. package/dist/editor/ai/InlineAiDialog.js.map +1 -1
  27. package/dist/editor/ai/InlineAiTrigger.js +57 -17
  28. package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
  29. package/dist/editor/ai/dialogs/capturePageDom.js +36 -66
  30. package/dist/editor/ai/dialogs/capturePageDom.js.map +1 -1
  31. package/dist/editor/ai/dialogs/capturePageScreenshot.js +162 -281
  32. package/dist/editor/ai/dialogs/capturePageScreenshot.js.map +1 -1
  33. package/dist/editor/ai/terminal/agentSessionState.d.ts +0 -3
  34. package/dist/editor/ai/terminal/agentSessionState.js +1 -3
  35. package/dist/editor/ai/terminal/agentSessionState.js.map +1 -1
  36. package/dist/editor/ai/terminal/agentStartRequest.d.ts +1 -2
  37. package/dist/editor/ai/terminal/agentStartRequest.js +1 -2
  38. package/dist/editor/ai/terminal/agentStartRequest.js.map +1 -1
  39. package/dist/editor/ai/terminal/components/AgentCostDisplay.js +1 -1
  40. package/dist/editor/ai/terminal/components/AgentCostDisplay.js.map +1 -1
  41. package/dist/editor/ai/terminal/components/AgentDocumentList.d.ts +0 -7
  42. package/dist/editor/ai/terminal/components/AgentDocumentList.js +13 -55
  43. package/dist/editor/ai/terminal/components/AgentDocumentList.js.map +1 -1
  44. package/dist/editor/ai/terminal/components/AgentFullPromptControls.d.ts +1 -3
  45. package/dist/editor/ai/terminal/components/AgentFullPromptControls.js +14 -22
  46. package/dist/editor/ai/terminal/components/AgentFullPromptControls.js.map +1 -1
  47. package/dist/editor/ai/terminal/components/AgentModeSelector.js +4 -4
  48. package/dist/editor/ai/terminal/components/AgentModeSelector.js.map +1 -1
  49. package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js +4 -4
  50. package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js.map +1 -1
  51. package/dist/editor/ai/terminal/components/AgentPromptComposer.js +1 -1
  52. package/dist/editor/ai/terminal/components/AgentPromptComposer.js.map +1 -1
  53. package/dist/editor/ai/terminal/components/AgentPromptInputArea.d.ts +1 -2
  54. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js +11 -8
  55. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js.map +1 -1
  56. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.d.ts +4 -1
  57. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js +14 -31
  58. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js.map +1 -1
  59. package/dist/editor/ai/terminal/components/AgentSettingsPopover.js +1 -1
  60. package/dist/editor/ai/terminal/components/AgentSettingsPopover.js.map +1 -1
  61. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.d.ts +1 -2
  62. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js +4 -2
  63. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js.map +1 -1
  64. package/dist/editor/ai/terminal/components/AgentTerminalMessageGroups.js +1 -1
  65. package/dist/editor/ai/terminal/components/AgentTerminalMessageGroups.js.map +1 -1
  66. package/dist/editor/ai/terminal/components/AgentTerminalView.js +2 -13
  67. package/dist/editor/ai/terminal/components/AgentTerminalView.js.map +1 -1
  68. package/dist/editor/ai/terminal/components/AiResponseMessage.js +14 -16
  69. package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
  70. package/dist/editor/ai/terminal/components/ContextInfoBar.js +2 -22
  71. package/dist/editor/ai/terminal/components/ContextInfoBar.js.map +1 -1
  72. package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js +26 -37
  73. package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js.map +1 -1
  74. package/dist/editor/ai/terminal/components/UserMessage.d.ts +1 -2
  75. package/dist/editor/ai/terminal/components/UserMessage.js +8 -144
  76. package/dist/editor/ai/terminal/components/UserMessage.js.map +1 -1
  77. package/dist/editor/ai/terminal/useAgentPromptComposerHandlers.js +1 -1
  78. package/dist/editor/ai/terminal/useAgentPromptComposerHandlers.js.map +1 -1
  79. package/dist/editor/ai/terminal/useAgentSessionSync.d.ts +0 -1
  80. package/dist/editor/ai/terminal/useAgentSubmitHandlers.d.ts +1 -3
  81. package/dist/editor/ai/terminal/useAgentSubmitHandlers.js +3 -9
  82. package/dist/editor/ai/terminal/useAgentSubmitHandlers.js.map +1 -1
  83. package/dist/editor/ai/terminal/useAgentTerminalController.js +0 -7
  84. package/dist/editor/ai/terminal/useAgentTerminalController.js.map +1 -1
  85. package/dist/editor/ai/terminal/useAgentTerminalUiState.js +1 -1
  86. package/dist/editor/ai/terminal/useAgentTerminalUiState.js.map +1 -1
  87. package/dist/editor/ai/terminal/useAgentUserMessageSocketHandler.js +1 -3
  88. package/dist/editor/ai/terminal/useAgentUserMessageSocketHandler.js.map +1 -1
  89. package/dist/editor/ai/useInlineAiPosition.d.ts +1 -1
  90. package/dist/editor/ai/useInlineAiPosition.js +52 -22
  91. package/dist/editor/ai/useInlineAiPosition.js.map +1 -1
  92. package/dist/editor/ai-image-editor/AiImageResultOverlay.js +62 -30
  93. package/dist/editor/ai-image-editor/AiImageResultOverlay.js.map +1 -1
  94. package/dist/editor/client/EditorShell.d.ts +1 -5
  95. package/dist/editor/client/EditorShell.js +136 -285
  96. package/dist/editor/client/EditorShell.js.map +1 -1
  97. package/dist/editor/client/editContext.d.ts +5 -33
  98. package/dist/editor/client/editContext.js.map +1 -1
  99. package/dist/editor/client/hooks/useSocketMessageHandler.js +17 -14
  100. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  101. package/dist/editor/client/itemsRepository.d.ts +0 -2
  102. package/dist/editor/client/itemsRepository.js +8 -15
  103. package/dist/editor/client/itemsRepository.js.map +1 -1
  104. package/dist/editor/client/operations.d.ts +1 -1
  105. package/dist/editor/client/operations.js +17 -41
  106. package/dist/editor/client/operations.js.map +1 -1
  107. package/dist/editor/client/pageModelBuilder.js +7 -24
  108. package/dist/editor/client/pageModelBuilder.js.map +1 -1
  109. package/dist/editor/commands/handlers/uiActionHandlers.js +5 -1
  110. package/dist/editor/commands/handlers/uiActionHandlers.js.map +1 -1
  111. package/dist/editor/editor-warnings/FinalWorkflowStateReadOnly.js +5 -0
  112. package/dist/editor/editor-warnings/FinalWorkflowStateReadOnly.js.map +1 -1
  113. package/dist/editor/editor-warnings/ItemLocked.js +6 -3
  114. package/dist/editor/editor-warnings/ItemLocked.js.map +1 -1
  115. package/dist/editor/field-types/MultiLineText.js +3 -10
  116. package/dist/editor/field-types/MultiLineText.js.map +1 -1
  117. package/dist/editor/field-types/RawEditor.js +1 -8
  118. package/dist/editor/field-types/RawEditor.js.map +1 -1
  119. package/dist/editor/field-types/RichTextEditorComponent.js +45 -156
  120. package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
  121. package/dist/editor/field-types/SingleLineText.js +3 -10
  122. package/dist/editor/field-types/SingleLineText.js.map +1 -1
  123. package/dist/editor/field-types/richtext/components/ReactSlate.js +2 -8
  124. package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
  125. package/dist/editor/field-types/richtext/contextMenuFactory.d.ts +2 -1
  126. package/dist/editor/field-types/richtext/contextMenuFactory.js +303 -100
  127. package/dist/editor/field-types/richtext/contextMenuFactory.js.map +1 -1
  128. package/dist/editor/field-types/richtext/types.d.ts +0 -2
  129. package/dist/editor/field-types/richtext/types.js.map +1 -1
  130. package/dist/editor/media-selector/MediaFolderBrowser.d.ts +2 -1
  131. package/dist/editor/media-selector/MediaFolderBrowser.js +19 -9
  132. package/dist/editor/media-selector/MediaFolderBrowser.js.map +1 -1
  133. package/dist/editor/media-selector/TreeSelector.js +30 -24
  134. package/dist/editor/media-selector/TreeSelector.js.map +1 -1
  135. package/dist/editor/media-selector/UploadZone.d.ts +2 -1
  136. package/dist/editor/media-selector/UploadZone.js +21 -9
  137. package/dist/editor/media-selector/UploadZone.js.map +1 -1
  138. package/dist/editor/menubar/PageSelector.js +2 -8
  139. package/dist/editor/menubar/PageSelector.js.map +1 -1
  140. package/dist/editor/menubar/VersionPreviewCard.js +249 -4
  141. package/dist/editor/menubar/VersionPreviewCard.js.map +1 -1
  142. package/dist/editor/menubar/toolbar-sections/EditControls.js +2 -2
  143. package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
  144. package/dist/editor/menubar/toolbar-sections/ManualBrowser.d.ts +10 -0
  145. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +462 -63
  146. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
  147. package/dist/editor/menubar/toolbar-sections/ViewportControls.js +1 -1
  148. package/dist/editor/page-editor-chrome/CommentHighlightings.d.ts +2 -5
  149. package/dist/editor/page-editor-chrome/CommentHighlightings.js +215 -340
  150. package/dist/editor/page-editor-chrome/CommentHighlightings.js.map +1 -1
  151. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.d.ts +1 -5
  152. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js +4 -11
  153. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js.map +1 -1
  154. package/dist/editor/page-editor-chrome/FieldActionIndicator.js +13 -21
  155. package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
  156. package/dist/editor/page-editor-chrome/FieldEditedIndicator.js +29 -23
  157. package/dist/editor/page-editor-chrome/FieldEditedIndicator.js.map +1 -1
  158. package/dist/editor/page-editor-chrome/FrameMenu.js +19 -110
  159. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  160. package/dist/editor/page-editor-chrome/InlineEditor.d.ts +7 -0
  161. package/dist/editor/page-editor-chrome/InlineEditor.js +1719 -0
  162. package/dist/editor/page-editor-chrome/InlineEditor.js.map +1 -0
  163. package/dist/editor/page-editor-chrome/LockedFieldIndicator.d.ts +2 -3
  164. package/dist/editor/page-editor-chrome/LockedFieldIndicator.js +45 -148
  165. package/dist/editor/page-editor-chrome/LockedFieldIndicator.js.map +1 -1
  166. package/dist/editor/page-editor-chrome/PageEditorChrome.d.ts +0 -2
  167. package/dist/editor/page-editor-chrome/PageEditorChrome.js +21 -25
  168. package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
  169. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js +128 -163
  170. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js.map +1 -1
  171. package/dist/editor/page-editor-chrome/PlaceholderDropZone.d.ts +1 -1
  172. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +3 -6
  173. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
  174. package/dist/editor/page-editor-chrome/PlaceholderDropZones.d.ts +2 -1
  175. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +146 -83
  176. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
  177. package/dist/editor/page-editor-chrome/SuggestionHighlightings.d.ts +2 -5
  178. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +63 -144
  179. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -1
  180. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.d.ts +2 -1
  181. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js +30 -101
  182. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js.map +1 -1
  183. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.d.ts +1 -10
  184. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js +122 -105
  185. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js.map +1 -1
  186. package/dist/editor/page-editor-chrome/overlay/geometry.d.ts +4 -11
  187. package/dist/editor/page-editor-chrome/overlay/geometry.js +36 -139
  188. package/dist/editor/page-editor-chrome/overlay/geometry.js.map +1 -1
  189. package/dist/editor/page-editor-chrome/overlay/iframeAccess.d.ts +2 -0
  190. package/dist/editor/page-editor-chrome/overlay/iframeAccess.js +21 -0
  191. package/dist/editor/page-editor-chrome/overlay/iframeAccess.js.map +1 -0
  192. package/dist/editor/page-editor-chrome/useInlineAICompletion.d.ts +7 -0
  193. package/dist/editor/page-editor-chrome/useInlineAICompletion.js +758 -0
  194. package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +1 -0
  195. package/dist/editor/page-viewer/EditorForm.js +1 -17
  196. package/dist/editor/page-viewer/EditorForm.js.map +1 -1
  197. package/dist/editor/page-viewer/MiniMap.d.ts +2 -2
  198. package/dist/editor/page-viewer/MiniMap.js +364 -176
  199. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  200. package/dist/editor/page-viewer/PageViewer.js +13 -40
  201. package/dist/editor/page-viewer/PageViewer.js.map +1 -1
  202. package/dist/editor/page-viewer/PageViewerFrame.d.ts +5 -0
  203. package/dist/editor/page-viewer/PageViewerFrame.js +1509 -1527
  204. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  205. package/dist/editor/page-viewer/pageModelSkeletonBuilder.d.ts +3 -0
  206. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js +796 -0
  207. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js.map +1 -0
  208. package/dist/editor/page-viewer/pageViewContext.d.ts +0 -32
  209. package/dist/editor/page-viewer/pageViewContext.js +6 -37
  210. package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
  211. package/dist/editor/reviews/Comment.d.ts +1 -2
  212. package/dist/editor/reviews/Comment.js +4 -9
  213. package/dist/editor/reviews/Comment.js.map +1 -1
  214. package/dist/editor/reviews/CommentEditor.js +1 -1
  215. package/dist/editor/reviews/CommentEditor.js.map +1 -1
  216. package/dist/editor/reviews/CommentPopover.js +9 -68
  217. package/dist/editor/reviews/CommentPopover.js.map +1 -1
  218. package/dist/editor/reviews/CommentView.js +4 -24
  219. package/dist/editor/reviews/CommentView.js.map +1 -1
  220. package/dist/editor/reviews/Comments.d.ts +2 -0
  221. package/dist/editor/reviews/Comments.js +30 -29
  222. package/dist/editor/reviews/Comments.js.map +1 -1
  223. package/dist/editor/reviews/FeedbackCard.d.ts +2 -4
  224. package/dist/editor/reviews/FeedbackCard.js +5 -5
  225. package/dist/editor/reviews/FeedbackCard.js.map +1 -1
  226. package/dist/editor/reviews/SuggestedEdit.js +6 -4
  227. package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
  228. package/dist/editor/reviews/SuggestionDisplayPopover.js +2 -3
  229. package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
  230. package/dist/editor/reviews/commentAi.js +27 -96
  231. package/dist/editor/reviews/commentAi.js.map +1 -1
  232. package/dist/editor/reviews/feedbackSelection.js +4 -32
  233. package/dist/editor/reviews/feedbackSelection.js.map +1 -1
  234. package/dist/editor/services/agentService.d.ts +0 -15
  235. package/dist/editor/services/agentService.js +1 -11
  236. package/dist/editor/services/agentService.js.map +1 -1
  237. package/dist/editor/services/contentService.d.ts +1 -0
  238. package/dist/editor/services/contentService.js.map +1 -1
  239. package/dist/editor/services/reviewsService.d.ts +2 -2
  240. package/dist/editor/services/reviewsService.js.map +1 -1
  241. package/dist/editor/settings/SettingsView.js +2 -2
  242. package/dist/editor/settings/SettingsView.js.map +1 -1
  243. package/dist/editor/settings/panels/ProjectTemplatesPanel.js +1 -1
  244. package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
  245. package/dist/editor/settings/panels/ProvidersPanel.js +3 -2
  246. package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -1
  247. package/dist/editor/sidebar/MorePanelsButton.js +1 -1
  248. package/dist/editor/sidebar/MorePanelsButton.js.map +1 -1
  249. package/dist/editor/sidebar/Workbox.js +1 -1
  250. package/dist/editor/sidebar/Workbox.js.map +1 -1
  251. package/dist/editor/ui/IconSelectorDialog.js +1 -1
  252. package/dist/editor/ui/IconSelectorDialog.js.map +1 -1
  253. package/dist/editor/ui/SimpleIconButton.d.ts +2 -2
  254. package/dist/editor/ui/SimpleIconButton.js +1 -1
  255. package/dist/editor/ui/SimpleIconButton.js.map +1 -1
  256. package/dist/editor/utils.d.ts +17 -1
  257. package/dist/editor/utils.js +143 -0
  258. package/dist/editor/utils.js.map +1 -1
  259. package/dist/editor/version-diff/versionDiffTargets.d.ts +8 -3
  260. package/dist/editor/version-diff/versionDiffTargets.js +94 -37
  261. package/dist/editor/version-diff/versionDiffTargets.js.map +1 -1
  262. package/dist/editor/views/MediaFolderEditView.js +1 -1
  263. package/dist/editor/views/MediaFolderEditView.js.map +1 -1
  264. package/dist/revision.d.ts +2 -2
  265. package/dist/revision.js +2 -2
  266. package/dist/splash-screen/DialogWrappers.js +2 -2
  267. package/dist/splash-screen/DialogWrappers.js.map +1 -1
  268. package/dist/splash-screen/ModernSplashScreen.js +3 -11
  269. package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
  270. package/dist/splash-screen/NewPage.js +5 -7
  271. package/dist/splash-screen/NewPage.js.map +1 -1
  272. package/dist/splash-screen/OpenPage.js +3 -5
  273. package/dist/splash-screen/OpenPage.js.map +1 -1
  274. package/dist/splash-screen/RecentPages.js +3 -3
  275. package/dist/splash-screen/RecentPages.js.map +1 -1
  276. package/package.json +1 -2
  277. package/styles.css +0 -49
  278. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.d.ts +0 -5
  279. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js +0 -12
  280. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js.map +0 -1
  281. package/dist/editor/bridge/BridgeClient.d.ts +0 -80
  282. package/dist/editor/bridge/BridgeClient.js +0 -417
  283. package/dist/editor/bridge/BridgeClient.js.map +0 -1
  284. package/dist/editor/field-types/useFormFieldCaretPresence.d.ts +0 -13
  285. package/dist/editor/field-types/useFormFieldCaretPresence.js +0 -92
  286. package/dist/editor/field-types/useFormFieldCaretPresence.js.map +0 -1
  287. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.d.ts +0 -6
  288. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js +0 -123
  289. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js.map +0 -1
  290. package/dist/editor/page-editor-chrome/useBridgeInlineEditing.d.ts +0 -26
  291. package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js +0 -222
  292. package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js.map +0 -1
  293. package/dist/editor/page-viewer/bridgeFieldPatch.d.ts +0 -20
  294. package/dist/editor/page-viewer/bridgeFieldPatch.js +0 -33
  295. package/dist/editor/page-viewer/bridgeFieldPatch.js.map +0 -1
  296. package/dist/editor/reviews/commentTransientSelection.d.ts +0 -23
  297. package/dist/editor/reviews/commentTransientSelection.js +0 -7
  298. package/dist/editor/reviews/commentTransientSelection.js.map +0 -1
  299. package/dist/editor/reviews/feedbackOrdering.d.ts +0 -5
  300. package/dist/editor/reviews/feedbackOrdering.js +0 -27
  301. package/dist/editor/reviews/feedbackOrdering.js.map +0 -1
  302. package/dist/editor/reviews/suggestedEditState.d.ts +0 -12
  303. package/dist/editor/reviews/suggestedEditState.js +0 -90
  304. package/dist/editor/reviews/suggestedEditState.js.map +0 -1
  305. package/dist/editor/reviews/suggestionDisplayValue.d.ts +0 -43
  306. package/dist/editor/reviews/suggestionDisplayValue.js +0 -93
  307. package/dist/editor/reviews/suggestionDisplayValue.js.map +0 -1
@@ -4,14 +4,38 @@ import { useEffect, useMemo, useRef, useState } from "react";
4
4
  import { cn } from "../../lib/utils";
5
5
  import { useEditContext } from "../client/editContext";
6
6
  import { usePageViewContext } from "../page-viewer/pageViewContext";
7
+ import { fieldKey, findComponentRectById, findFieldElements, getTextNodeAtOffset, resolveVersionDiffTargets, } from "../version-diff/versionDiffTargets";
8
+ import { versionDiffHighlightClasses } from "../version-diff/versionDiffHighlightStyles";
7
9
  const SOURCE_WIDTH = 480;
8
10
  const SOURCE_HEIGHT = 720;
9
11
  const PREVIEW_SCALE = 0.2;
10
12
  const PREVIEW_WIDTH = SOURCE_WIDTH * PREVIEW_SCALE;
11
13
  const PREVIEW_HEIGHT = SOURCE_HEIGHT * PREVIEW_SCALE;
14
+ const SCROLL_PADDING_TOP = 16;
15
+ function getAccessibleIframeDocument(iframe) {
16
+ if (!iframe)
17
+ return null;
18
+ try {
19
+ return iframe.contentDocument || iframe.contentWindow?.document || null;
20
+ }
21
+ catch {
22
+ return null;
23
+ }
24
+ }
25
+ function getAccessibleIframeWindow(iframe) {
26
+ if (!iframe)
27
+ return null;
28
+ try {
29
+ return iframe.contentWindow;
30
+ }
31
+ catch {
32
+ return null;
33
+ }
34
+ }
12
35
  export function VersionPreviewCard({ itemDescriptor, version, className, }) {
13
36
  const rootRef = useRef(null);
14
37
  const [isInViewport, setIsInViewport] = useState(false);
38
+ const [iframe, setIframe] = useState(null);
15
39
  useEffect(() => {
16
40
  const element = rootRef.current;
17
41
  if (!element)
@@ -29,9 +53,35 @@ export function VersionPreviewCard({ itemDescriptor, version, className, }) {
29
53
  observer.observe(element);
30
54
  return () => observer.disconnect();
31
55
  }, []);
32
- return (_jsx("div", { ref: rootRef, className: cn("border-border-default relative shrink-0 overflow-hidden rounded border bg-white shadow-sm", className), "data-testid": "version-preview-card", style: { width: PREVIEW_WIDTH, height: PREVIEW_HEIGHT }, "aria-hidden": "true", children: isInViewport ? (_jsx(VersionPreviewCardContent, { itemDescriptor: itemDescriptor, version: version })) : (_jsx("div", { className: "bg-neutral-grey-5 absolute inset-0" })) }));
56
+ const handleWheel = (event) => {
57
+ const iframeWindow = getAccessibleIframeWindow(iframe);
58
+ const iframeDocument = getAccessibleIframeDocument(iframe);
59
+ const scrollElement = iframeDocument?.scrollingElement || iframeDocument?.documentElement;
60
+ if (!iframeWindow || !scrollElement)
61
+ return;
62
+ const canScrollY = scrollElement.scrollHeight > scrollElement.clientHeight &&
63
+ ((event.deltaY < 0 && scrollElement.scrollTop > 0) ||
64
+ (event.deltaY > 0 &&
65
+ scrollElement.scrollTop + scrollElement.clientHeight <
66
+ scrollElement.scrollHeight));
67
+ const canScrollX = scrollElement.scrollWidth > scrollElement.clientWidth &&
68
+ ((event.deltaX < 0 && scrollElement.scrollLeft > 0) ||
69
+ (event.deltaX > 0 &&
70
+ scrollElement.scrollLeft + scrollElement.clientWidth <
71
+ scrollElement.scrollWidth));
72
+ if (!canScrollY && !canScrollX)
73
+ return;
74
+ event.preventDefault();
75
+ event.stopPropagation();
76
+ iframeWindow.scrollBy({
77
+ top: event.deltaY,
78
+ left: event.deltaX,
79
+ behavior: "instant",
80
+ });
81
+ };
82
+ return (_jsx("div", { ref: rootRef, onWheel: handleWheel, className: cn("border-border-default relative shrink-0 overflow-hidden rounded border bg-white shadow-sm", className), "data-testid": "version-preview-card", style: { width: PREVIEW_WIDTH, height: PREVIEW_HEIGHT }, "aria-hidden": "true", children: isInViewport ? (_jsx(VersionPreviewCardContent, { itemDescriptor: itemDescriptor, version: version, iframe: iframe, setIframe: setIframe })) : (_jsx("div", { className: "bg-neutral-grey-5 absolute inset-0" })) }));
33
83
  }
34
- function VersionPreviewCardContent({ itemDescriptor, version, }) {
84
+ function VersionPreviewCardContent({ itemDescriptor, version, iframe, setIframe, }) {
35
85
  const editContext = useEditContext();
36
86
  const [loaded, setLoaded] = useState(false);
37
87
  const descriptor = useMemo(() => ({
@@ -54,15 +104,45 @@ function VersionPreviewCardContent({ itemDescriptor, version, }) {
54
104
  const previewSrc = pageView.editUrl || pageView.previewUrl;
55
105
  useEffect(() => {
56
106
  setLoaded(false);
107
+ setIframe(null);
57
108
  }, [previewSrc]);
58
109
  if (!previewSrc) {
59
110
  return (_jsx("div", { className: "bg-neutral-grey-5 text-neutral-grey-50 absolute inset-0 flex items-center justify-center text-[10px]", children: "No preview" }));
60
111
  }
61
- return (_jsxs(_Fragment, { children: [!loaded && (_jsx("div", { className: "bg-neutral-grey-5 absolute inset-0 z-10 animate-pulse" })), _jsx("iframe", { title: `Version ${version} preview`, src: previewSrc, tabIndex: -1, loading: "lazy", onLoad: () => setLoaded(true), className: "pointer-events-none origin-top-left border-0", style: {
112
+ return (_jsxs(_Fragment, { children: [!loaded && (_jsx("div", { className: "bg-neutral-grey-5 absolute inset-0 z-10 animate-pulse" })), _jsx("iframe", { ref: setIframe, title: `Version ${version} preview`, src: previewSrc, tabIndex: -1, loading: "lazy", onLoad: () => setLoaded(true), className: "pointer-events-none origin-top-left border-0", style: {
62
113
  width: SOURCE_WIDTH,
63
114
  height: SOURCE_HEIGHT,
64
115
  transform: `scale(${PREVIEW_SCALE})`,
65
- } }, previewSrc)] }));
116
+ } }, previewSrc), loaded && iframe && editContext?.itemsRepository && (_jsx(VersionPreviewDiffOverlay, { iframe: iframe, pageItem: descriptor, scale: PREVIEW_SCALE }))] }));
117
+ }
118
+ function scrollIframeToFirstTarget(iframe, fieldTargets, componentTargets) {
119
+ const win = iframe.contentWindow;
120
+ if (!win)
121
+ return;
122
+ const currentScroll = win.scrollY;
123
+ let topMost = null;
124
+ for (const target of componentTargets) {
125
+ const rect = findComponentRectById(iframe, target.visualId);
126
+ if (!rect)
127
+ continue;
128
+ const docTop = rect.top + currentScroll;
129
+ if (topMost == null || docTop < topMost)
130
+ topMost = docTop;
131
+ }
132
+ for (const target of fieldTargets) {
133
+ for (const element of findFieldElements(iframe, target.descriptor)) {
134
+ const docTop = element.getBoundingClientRect().top + currentScroll;
135
+ if (topMost == null || docTop < topMost)
136
+ topMost = docTop;
137
+ }
138
+ }
139
+ if (topMost == null)
140
+ return;
141
+ win.scrollTo({
142
+ top: Math.max(0, topMost - SCROLL_PADDING_TOP),
143
+ left: 0,
144
+ behavior: "instant",
145
+ });
66
146
  }
67
147
  function findScrollParent(element) {
68
148
  let parent = element.parentElement;
@@ -75,4 +155,169 @@ function findScrollParent(element) {
75
155
  }
76
156
  return null;
77
157
  }
158
+ function VersionPreviewDiffOverlay({ iframe, pageItem, scale, }) {
159
+ const editContext = useEditContext();
160
+ const itemsRepository = editContext?.itemsRepository;
161
+ const previousVersionCache = useRef(new Map());
162
+ const [targets, setTargets] = useState([]);
163
+ const [componentTargets, setComponentTargets] = useState([]);
164
+ useEffect(() => {
165
+ if (!itemsRepository) {
166
+ setTargets([]);
167
+ setComponentTargets([]);
168
+ return;
169
+ }
170
+ let cancelled = false;
171
+ const resolveTargets = async () => {
172
+ const nextTargets = await resolveVersionDiffTargets({
173
+ iframe,
174
+ pageItem,
175
+ getItem: itemsRepository.getItem,
176
+ baseline: { type: "previous" },
177
+ previousVersionCache: previousVersionCache.current,
178
+ });
179
+ if (cancelled)
180
+ return;
181
+ scrollIframeToFirstTarget(iframe, nextTargets.fieldTargets, nextTargets.componentTargets);
182
+ setTargets(nextTargets.fieldTargets);
183
+ setComponentTargets(nextTargets.componentTargets);
184
+ };
185
+ resolveTargets();
186
+ return () => {
187
+ cancelled = true;
188
+ };
189
+ }, [
190
+ iframe,
191
+ itemsRepository,
192
+ itemsRepository?.revision,
193
+ pageItem.database,
194
+ pageItem.id,
195
+ pageItem.language,
196
+ pageItem.version,
197
+ ]);
198
+ if (targets.length === 0 && componentTargets.length === 0)
199
+ return null;
200
+ return (_jsxs("div", { className: "pointer-events-none absolute inset-0", children: [componentTargets.map((target) => (_jsx(MiniComponentHighlight, { iframe: iframe, scale: scale, target: target }, target.id))), targets.map((target) => (_jsx(MiniFieldHighlight, { iframe: iframe, scale: scale, target: target }, fieldKey(target.descriptor))))] }));
201
+ }
202
+ function MiniComponentHighlight({ iframe, scale, target, }) {
203
+ const [rect, setRect] = useState(null);
204
+ useEffect(() => {
205
+ const iframeDoc = getAccessibleIframeDocument(iframe);
206
+ if (!iframeDoc?.body) {
207
+ setRect(null);
208
+ return;
209
+ }
210
+ let rafId = null;
211
+ const calculateRect = () => {
212
+ setRect(findComponentRectById(iframe, target.visualId));
213
+ };
214
+ const scheduleUpdate = () => {
215
+ if (rafId != null)
216
+ window.cancelAnimationFrame(rafId);
217
+ rafId = window.requestAnimationFrame(() => {
218
+ rafId = null;
219
+ calculateRect();
220
+ });
221
+ };
222
+ calculateRect();
223
+ const timeoutId = window.setTimeout(calculateRect, 300);
224
+ const scrollContainer = iframeDoc.scrollingElement || iframeDoc.body;
225
+ const iframeWindow = getAccessibleIframeWindow(iframe);
226
+ scrollContainer?.addEventListener("scroll", scheduleUpdate, {
227
+ passive: true,
228
+ });
229
+ iframeWindow?.addEventListener("scroll", scheduleUpdate, { passive: true });
230
+ iframeWindow?.addEventListener("resize", scheduleUpdate);
231
+ return () => {
232
+ if (rafId != null)
233
+ window.cancelAnimationFrame(rafId);
234
+ window.clearTimeout(timeoutId);
235
+ scrollContainer?.removeEventListener("scroll", scheduleUpdate);
236
+ iframeWindow?.removeEventListener("scroll", scheduleUpdate);
237
+ iframeWindow?.removeEventListener("resize", scheduleUpdate);
238
+ };
239
+ }, [iframe, target.visualId]);
240
+ if (!rect)
241
+ return null;
242
+ return (_jsx("div", { className: versionDiffHighlightClasses.componentMini, "data-testid": "version-preview-diff-highlight", style: {
243
+ top: rect.top * scale,
244
+ left: rect.left * scale,
245
+ width: Math.max(rect.width * scale, 2),
246
+ height: Math.max(rect.height * scale, 2),
247
+ } }));
248
+ }
249
+ function MiniFieldHighlight({ iframe, scale, target, }) {
250
+ const [rects, setRects] = useState([]);
251
+ useEffect(() => {
252
+ const iframeDoc = getAccessibleIframeDocument(iframe);
253
+ if (!iframeDoc?.body) {
254
+ setRects([]);
255
+ return;
256
+ }
257
+ let rafId = null;
258
+ const calculateRects = () => {
259
+ const elements = findFieldElements(iframe, target.descriptor);
260
+ const nextRects = [];
261
+ elements.forEach((element) => {
262
+ if (target.hasDeletionOnlyChange) {
263
+ nextRects.push(element.getBoundingClientRect());
264
+ return;
265
+ }
266
+ target.ranges
267
+ .filter(([start, end]) => start < end)
268
+ .forEach(([start, end]) => {
269
+ const startData = getTextNodeAtOffset(element, start);
270
+ const endData = getTextNodeAtOffset(element, end);
271
+ if (!startData || !endData)
272
+ return;
273
+ try {
274
+ const textRange = iframeDoc.createRange();
275
+ textRange.setStart(startData.node, startData.offset);
276
+ textRange.setEnd(endData.node, endData.offset);
277
+ nextRects.push(...Array.from(textRange.getClientRects()));
278
+ }
279
+ catch {
280
+ nextRects.push(element.getBoundingClientRect());
281
+ }
282
+ });
283
+ });
284
+ setRects(nextRects);
285
+ };
286
+ const scheduleUpdate = () => {
287
+ if (rafId != null)
288
+ window.cancelAnimationFrame(rafId);
289
+ rafId = window.requestAnimationFrame(() => {
290
+ rafId = null;
291
+ calculateRects();
292
+ });
293
+ };
294
+ calculateRects();
295
+ const timeoutId = window.setTimeout(calculateRects, 300);
296
+ const scrollContainer = iframeDoc.scrollingElement || iframeDoc.body;
297
+ const iframeWindow = getAccessibleIframeWindow(iframe);
298
+ scrollContainer?.addEventListener("scroll", scheduleUpdate, {
299
+ passive: true,
300
+ });
301
+ iframeWindow?.addEventListener("scroll", scheduleUpdate, { passive: true });
302
+ iframeWindow?.addEventListener("resize", scheduleUpdate);
303
+ return () => {
304
+ if (rafId != null)
305
+ window.cancelAnimationFrame(rafId);
306
+ window.clearTimeout(timeoutId);
307
+ scrollContainer?.removeEventListener("scroll", scheduleUpdate);
308
+ iframeWindow?.removeEventListener("scroll", scheduleUpdate);
309
+ iframeWindow?.removeEventListener("resize", scheduleUpdate);
310
+ };
311
+ }, [iframe, target]);
312
+ if (rects.length === 0)
313
+ return null;
314
+ return (_jsx(_Fragment, { children: rects.map((rect, index) => (_jsx("div", { className: target.hasDeletionOnlyChange
315
+ ? versionDiffHighlightClasses.deletionOnlyMini
316
+ : versionDiffHighlightClasses.textMini, "data-testid": "version-preview-diff-highlight", style: {
317
+ top: rect.top * scale,
318
+ left: rect.left * scale,
319
+ width: Math.max(rect.width * scale, 2),
320
+ height: Math.max(rect.height * scale, 2),
321
+ } }, index))) }));
322
+ }
78
323
  //# sourceMappingURL=VersionPreviewCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VersionPreviewCard.js","sourceRoot":"","sources":["../../../src/editor/menubar/VersionPreviewCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VersionPreviewCard.js","sourceRoot":"","sources":["../../../src/editor/menubar/VersionPreviewCard.tsx"],"names":[],"mappings":"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"}
@@ -10,8 +10,8 @@ export function EditControls({ hideSuggestions, hideEdit, hidePreview, } = {}) {
10
10
  const suggestionsCount = editContext.suggestedEdits?.filter((x) => x.status === "pending").length ||
11
11
  0;
12
12
  const totalCount = suggestionsCount;
13
- return (_jsxs(_Fragment, { children: [!hideEdit && !editContext.user?.isLimitedPreviewUser && (_jsx(SimpleIconButton, { icon: _jsx(Pencil, { className: "h-6 w-6 p-1", strokeWidth: 1 }), label: "Edit", size: "large", "data-testid": "edit-mode-button", selected: editContext.mode === "edit", onClick: () => void editContext.changeMode("edit", { reason: "toolbar" }) })), !hidePreview && (_jsx(SimpleIconButton, { icon: _jsx(EyeIcon, { className: "h-6 w-6 p-1", strokeWidth: 1 }), label: "Preview", showTooltip: false, size: "large", "data-testid": "preview-mode-button", selected: editContext.mode === "preview", onClick: () => void editContext.changeMode("preview", { reason: "toolbar" }) })), !hideSuggestions && (_jsx(SimpleIconButton, { className: "relative", selected: editContext?.mode === "suggestions", icon: _jsx(Lightbulb, { strokeWidth: 1, className: "h-6 w-6 p-1" }), label: "Write suggestions", size: "large", "data-testid": "suggestions-mode-button", onClick: () => {
14
- void editContext?.changeMode("suggestions", { reason: "toolbar" });
13
+ return (_jsxs(_Fragment, { children: [!hideEdit && !editContext.user?.isLimitedPreviewUser && (_jsx(SimpleIconButton, { icon: _jsx(Pencil, { className: "h-6 w-6 p-1", strokeWidth: 1 }), label: "Edit", size: "large", "data-testid": "edit-mode-button", selected: editContext.mode === "edit", onClick: () => editContext.setMode("edit") })), !hidePreview && (_jsx(SimpleIconButton, { icon: _jsx(EyeIcon, { className: "h-6 w-6 p-1", strokeWidth: 1 }), label: "Preview", showTooltip: false, size: "large", "data-testid": "preview-mode-button", selected: editContext.mode === "preview", onClick: () => editContext.setMode("preview") })), !hideSuggestions && (_jsx(SimpleIconButton, { className: "relative", selected: editContext?.mode === "suggestions", icon: _jsx(Lightbulb, { strokeWidth: 1, className: "h-6 w-6 p-1" }), label: "Write suggestions", size: "large", "data-testid": "suggestions-mode-button", onClick: () => {
14
+ editContext?.setMode("suggestions");
15
15
  editContext?.openSidebar("feedback");
16
16
  }, children: totalCount > 0 && (_jsx("div", { className: "bg-highlight-100 absolute -top-1 -right-1 h-4 min-w-[16px] rounded-full px-1 text-center text-[10px] leading-4 font-bold text-white tabular-nums", style: { paddingBottom: "1px" }, "data-affects-toolbar-height": true, children: totalCount > 99 ? "99+" : totalCount })) }))] }));
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EditControls.js","sourceRoot":"","sources":["../../../../src/editor/menubar/toolbar-sections/EditControls.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAQ7D,MAAM,UAAU,YAAY,CAAC,EAC3B,eAAe,EACf,QAAQ,EACR,WAAW,MACU,EAAE;IACvB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,oDAAoD;IAEpD,MAAM,gBAAgB,GACpB,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM;QACxE,CAAC,CAAC;IACJ,MAAM,UAAU,GAAG,gBAAgB,CAAC;IAEpC,OAAO,CACL,8BACG,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,oBAAoB,IAAI,CACvD,KAAC,gBAAgB,IACf,IAAI,EAAE,KAAC,MAAM,IAAC,SAAS,EAAC,aAAa,EAAC,WAAW,EAAE,CAAC,GAAI,EACxD,KAAK,EAAC,MAAM,EACZ,IAAI,EAAC,OAAO,iBACA,kBAAkB,EAC9B,QAAQ,EAAE,WAAW,CAAC,IAAI,KAAK,MAAM,EACrC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,GACzE,CACH,EAEA,CAAC,WAAW,IAAI,CACf,KAAC,gBAAgB,IACf,IAAI,EAAE,KAAC,OAAO,IAAC,SAAS,EAAC,aAAa,EAAC,WAAW,EAAE,CAAC,GAAI,EACzD,KAAK,EAAC,SAAS,EACf,WAAW,EAAE,KAAK,EAClB,IAAI,EAAC,OAAO,iBACA,qBAAqB,EACjC,QAAQ,EAAE,WAAW,CAAC,IAAI,KAAK,SAAS,EACxC,OAAO,EAAE,GAAG,EAAE,CACZ,KAAK,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,GAE/D,CACH,EAEA,CAAC,eAAe,IAAI,CACnB,KAAC,gBAAgB,IACf,SAAS,EAAC,UAAU,EACpB,QAAQ,EAAE,WAAW,EAAE,IAAI,KAAK,aAAa,EAC7C,IAAI,EAAE,KAAC,SAAS,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,aAAa,GAAG,EAC3D,KAAK,EAAC,mBAAmB,EACzB,IAAI,EAAC,OAAO,iBACA,yBAAyB,EACrC,OAAO,EAAE,GAAG,EAAE;oBACZ,KAAK,WAAW,EAAE,UAAU,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;oBACnE,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;gBACvC,CAAC,YAEA,UAAU,GAAG,CAAC,IAAI,CACjB,cACE,SAAS,EAAC,kJAAkJ,EAC5J,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,iDAG9B,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,GACjC,CACP,GACgB,CACpB,IACA,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"EditControls.js","sourceRoot":"","sources":["../../../../src/editor/menubar/toolbar-sections/EditControls.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAQ7D,MAAM,UAAU,YAAY,CAAC,EAC3B,eAAe,EACf,QAAQ,EACR,WAAW,MACU,EAAE;IACvB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,oDAAoD;IAEpD,MAAM,gBAAgB,GACpB,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM;QACxE,CAAC,CAAC;IACJ,MAAM,UAAU,GAAG,gBAAgB,CAAC;IAEpC,OAAO,CACL,8BACG,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,oBAAoB,IAAI,CACvD,KAAC,gBAAgB,IACf,IAAI,EAAE,KAAC,MAAM,IAAC,SAAS,EAAC,aAAa,EAAC,WAAW,EAAE,CAAC,GAAI,EACxD,KAAK,EAAC,MAAM,EACZ,IAAI,EAAC,OAAO,iBACA,kBAAkB,EAC9B,QAAQ,EAAE,WAAW,CAAC,IAAI,KAAK,MAAM,EACrC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,GAC1C,CACH,EAEA,CAAC,WAAW,IAAI,CACf,KAAC,gBAAgB,IACf,IAAI,EAAE,KAAC,OAAO,IAAC,SAAS,EAAC,aAAa,EAAC,WAAW,EAAE,CAAC,GAAI,EACzD,KAAK,EAAC,SAAS,EACf,WAAW,EAAE,KAAK,EAClB,IAAI,EAAC,OAAO,iBACA,qBAAqB,EACjC,QAAQ,EAAE,WAAW,CAAC,IAAI,KAAK,SAAS,EACxC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,GAC7C,CACH,EAEA,CAAC,eAAe,IAAI,CACnB,KAAC,gBAAgB,IACf,SAAS,EAAC,UAAU,EACpB,QAAQ,EAAE,WAAW,EAAE,IAAI,KAAK,aAAa,EAC7C,IAAI,EAAE,KAAC,SAAS,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,aAAa,GAAG,EAC3D,KAAK,EAAC,mBAAmB,EACzB,IAAI,EAAC,OAAO,iBACA,yBAAyB,EACrC,OAAO,EAAE,GAAG,EAAE;oBACZ,WAAW,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;oBACpC,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;gBACvC,CAAC,YAEA,UAAU,GAAG,CAAC,IAAI,CACjB,cACE,SAAS,EAAC,kJAAkJ,EAC5J,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,iDAG9B,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,GACjC,CACP,GACgB,CACpB,IACA,CACJ,CAAC;AACJ,CAAC"}
@@ -3,6 +3,16 @@ export type ParsedUiSelector = ManualSelectorDefinition;
3
3
  export declare function parseUiSelectors(uiSelectors: string | undefined): Map<string, ParsedUiSelector>;
4
4
  export declare function expandSelector(selectorShorthand: string): string;
5
5
  export declare function highlightElement(selector: string, duration?: number): Promise<void>;
6
+ export type SelectorState = "disabled" | "show" | "show-action";
7
+ export declare function deriveSelectorState(params: {
8
+ isSidebarOnly: boolean;
9
+ /** Anchor is present + visible (or, for sidebar-only without anchor, the open capability exists). */
10
+ isAnchorReachable: boolean;
11
+ /** The target element itself is present + visible. */
12
+ isTargetVisible: boolean;
13
+ /** There is a way to bring the (currently hidden) target into view. */
14
+ hasRevealPath: boolean;
15
+ }): SelectorState;
6
16
  export declare function ManualBrowser({ onClose }: {
7
17
  onClose?: () => void;
8
18
  }): import("react/jsx-runtime").JSX.Element;