@parhelia/core 0.1.12877 → 0.1.12880

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 (290) 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 +6 -23
  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 +13 -29
  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/QueuedPromptsPanel.js +26 -37
  71. package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js.map +1 -1
  72. package/dist/editor/ai/terminal/components/UserMessage.d.ts +1 -2
  73. package/dist/editor/ai/terminal/components/UserMessage.js +8 -130
  74. package/dist/editor/ai/terminal/components/UserMessage.js.map +1 -1
  75. package/dist/editor/ai/terminal/useAgentPromptComposerHandlers.js +1 -1
  76. package/dist/editor/ai/terminal/useAgentPromptComposerHandlers.js.map +1 -1
  77. package/dist/editor/ai/terminal/useAgentSessionSync.d.ts +0 -1
  78. package/dist/editor/ai/terminal/useAgentSubmitHandlers.d.ts +1 -3
  79. package/dist/editor/ai/terminal/useAgentSubmitHandlers.js +3 -9
  80. package/dist/editor/ai/terminal/useAgentSubmitHandlers.js.map +1 -1
  81. package/dist/editor/ai/terminal/useAgentTerminalController.js +0 -7
  82. package/dist/editor/ai/terminal/useAgentTerminalController.js.map +1 -1
  83. package/dist/editor/ai/terminal/useAgentTerminalUiState.js +1 -1
  84. package/dist/editor/ai/terminal/useAgentTerminalUiState.js.map +1 -1
  85. package/dist/editor/ai/terminal/useAgentUserMessageSocketHandler.js +1 -3
  86. package/dist/editor/ai/terminal/useAgentUserMessageSocketHandler.js.map +1 -1
  87. package/dist/editor/ai/useInlineAiPosition.d.ts +1 -1
  88. package/dist/editor/ai/useInlineAiPosition.js +52 -22
  89. package/dist/editor/ai/useInlineAiPosition.js.map +1 -1
  90. package/dist/editor/ai-image-editor/AiImageResultOverlay.js +62 -30
  91. package/dist/editor/ai-image-editor/AiImageResultOverlay.js.map +1 -1
  92. package/dist/editor/client/EditorShell.d.ts +1 -5
  93. package/dist/editor/client/EditorShell.js +126 -286
  94. package/dist/editor/client/EditorShell.js.map +1 -1
  95. package/dist/editor/client/editContext.d.ts +5 -37
  96. package/dist/editor/client/editContext.js.map +1 -1
  97. package/dist/editor/client/hooks/useSocketMessageHandler.js +17 -14
  98. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  99. package/dist/editor/client/itemsRepository.d.ts +0 -2
  100. package/dist/editor/client/itemsRepository.js +8 -15
  101. package/dist/editor/client/itemsRepository.js.map +1 -1
  102. package/dist/editor/client/operations.d.ts +1 -1
  103. package/dist/editor/client/operations.js +17 -41
  104. package/dist/editor/client/operations.js.map +1 -1
  105. package/dist/editor/client/pageModelBuilder.js +7 -24
  106. package/dist/editor/client/pageModelBuilder.js.map +1 -1
  107. package/dist/editor/field-types/MultiLineText.js +3 -10
  108. package/dist/editor/field-types/MultiLineText.js.map +1 -1
  109. package/dist/editor/field-types/RawEditor.js +1 -8
  110. package/dist/editor/field-types/RawEditor.js.map +1 -1
  111. package/dist/editor/field-types/RichTextEditorComponent.js +45 -156
  112. package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
  113. package/dist/editor/field-types/SingleLineText.js +3 -10
  114. package/dist/editor/field-types/SingleLineText.js.map +1 -1
  115. package/dist/editor/field-types/richtext/components/ReactSlate.js +2 -8
  116. package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
  117. package/dist/editor/field-types/richtext/contextMenuFactory.d.ts +2 -1
  118. package/dist/editor/field-types/richtext/contextMenuFactory.js +303 -100
  119. package/dist/editor/field-types/richtext/contextMenuFactory.js.map +1 -1
  120. package/dist/editor/field-types/richtext/types.d.ts +0 -2
  121. package/dist/editor/field-types/richtext/types.js.map +1 -1
  122. package/dist/editor/media-selector/TreeSelector.js +15 -15
  123. package/dist/editor/media-selector/TreeSelector.js.map +1 -1
  124. package/dist/editor/menubar/PageSelector.js +2 -8
  125. package/dist/editor/menubar/PageSelector.js.map +1 -1
  126. package/dist/editor/menubar/VersionPreviewCard.js +249 -4
  127. package/dist/editor/menubar/VersionPreviewCard.js.map +1 -1
  128. package/dist/editor/menubar/toolbar-sections/EditControls.js +2 -2
  129. package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
  130. package/dist/editor/menubar/toolbar-sections/ManualBrowser.d.ts +10 -0
  131. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +462 -63
  132. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
  133. package/dist/editor/menubar/toolbar-sections/ViewportControls.js +1 -1
  134. package/dist/editor/page-editor-chrome/CommentHighlightings.d.ts +2 -5
  135. package/dist/editor/page-editor-chrome/CommentHighlightings.js +215 -340
  136. package/dist/editor/page-editor-chrome/CommentHighlightings.js.map +1 -1
  137. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.d.ts +1 -5
  138. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js +4 -11
  139. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js.map +1 -1
  140. package/dist/editor/page-editor-chrome/FieldActionIndicator.js +13 -21
  141. package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
  142. package/dist/editor/page-editor-chrome/FieldEditedIndicator.js +29 -23
  143. package/dist/editor/page-editor-chrome/FieldEditedIndicator.js.map +1 -1
  144. package/dist/editor/page-editor-chrome/FrameMenu.js +19 -110
  145. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  146. package/dist/editor/page-editor-chrome/InlineEditor.d.ts +7 -0
  147. package/dist/editor/page-editor-chrome/InlineEditor.js +1719 -0
  148. package/dist/editor/page-editor-chrome/InlineEditor.js.map +1 -0
  149. package/dist/editor/page-editor-chrome/LockedFieldIndicator.d.ts +2 -3
  150. package/dist/editor/page-editor-chrome/LockedFieldIndicator.js +45 -148
  151. package/dist/editor/page-editor-chrome/LockedFieldIndicator.js.map +1 -1
  152. package/dist/editor/page-editor-chrome/PageEditorChrome.d.ts +0 -2
  153. package/dist/editor/page-editor-chrome/PageEditorChrome.js +21 -25
  154. package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
  155. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js +128 -163
  156. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js.map +1 -1
  157. package/dist/editor/page-editor-chrome/PlaceholderDropZone.d.ts +1 -1
  158. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +3 -6
  159. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
  160. package/dist/editor/page-editor-chrome/PlaceholderDropZones.d.ts +2 -1
  161. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +146 -83
  162. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
  163. package/dist/editor/page-editor-chrome/SuggestionHighlightings.d.ts +2 -5
  164. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +63 -144
  165. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -1
  166. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.d.ts +2 -1
  167. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js +30 -101
  168. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js.map +1 -1
  169. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.d.ts +1 -10
  170. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js +122 -105
  171. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js.map +1 -1
  172. package/dist/editor/page-editor-chrome/overlay/geometry.d.ts +4 -11
  173. package/dist/editor/page-editor-chrome/overlay/geometry.js +36 -139
  174. package/dist/editor/page-editor-chrome/overlay/geometry.js.map +1 -1
  175. package/dist/editor/page-editor-chrome/overlay/iframeAccess.d.ts +2 -0
  176. package/dist/editor/page-editor-chrome/overlay/iframeAccess.js +21 -0
  177. package/dist/editor/page-editor-chrome/overlay/iframeAccess.js.map +1 -0
  178. package/dist/editor/page-editor-chrome/useInlineAICompletion.d.ts +7 -0
  179. package/dist/editor/page-editor-chrome/useInlineAICompletion.js +758 -0
  180. package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +1 -0
  181. package/dist/editor/page-viewer/EditorForm.js +1 -17
  182. package/dist/editor/page-viewer/EditorForm.js.map +1 -1
  183. package/dist/editor/page-viewer/MiniMap.d.ts +2 -2
  184. package/dist/editor/page-viewer/MiniMap.js +364 -176
  185. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  186. package/dist/editor/page-viewer/PageViewer.js +13 -40
  187. package/dist/editor/page-viewer/PageViewer.js.map +1 -1
  188. package/dist/editor/page-viewer/PageViewerFrame.d.ts +5 -0
  189. package/dist/editor/page-viewer/PageViewerFrame.js +1513 -1529
  190. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  191. package/dist/editor/page-viewer/pageModelSkeletonBuilder.d.ts +3 -0
  192. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js +796 -0
  193. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js.map +1 -0
  194. package/dist/editor/page-viewer/pageViewContext.d.ts +0 -32
  195. package/dist/editor/page-viewer/pageViewContext.js +6 -37
  196. package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
  197. package/dist/editor/reviews/Comment.d.ts +1 -2
  198. package/dist/editor/reviews/Comment.js +4 -9
  199. package/dist/editor/reviews/Comment.js.map +1 -1
  200. package/dist/editor/reviews/CommentEditor.js +1 -1
  201. package/dist/editor/reviews/CommentEditor.js.map +1 -1
  202. package/dist/editor/reviews/CommentPopover.js +9 -68
  203. package/dist/editor/reviews/CommentPopover.js.map +1 -1
  204. package/dist/editor/reviews/CommentView.js +4 -24
  205. package/dist/editor/reviews/CommentView.js.map +1 -1
  206. package/dist/editor/reviews/Comments.d.ts +2 -0
  207. package/dist/editor/reviews/Comments.js +30 -29
  208. package/dist/editor/reviews/Comments.js.map +1 -1
  209. package/dist/editor/reviews/FeedbackCard.d.ts +2 -4
  210. package/dist/editor/reviews/FeedbackCard.js +5 -5
  211. package/dist/editor/reviews/FeedbackCard.js.map +1 -1
  212. package/dist/editor/reviews/SuggestedEdit.js +6 -4
  213. package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
  214. package/dist/editor/reviews/SuggestionDisplayPopover.js +2 -3
  215. package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
  216. package/dist/editor/reviews/feedbackSelection.js +4 -32
  217. package/dist/editor/reviews/feedbackSelection.js.map +1 -1
  218. package/dist/editor/services/agentService.d.ts +0 -14
  219. package/dist/editor/services/agentService.js +1 -11
  220. package/dist/editor/services/agentService.js.map +1 -1
  221. package/dist/editor/services/reviewsService.d.ts +2 -2
  222. package/dist/editor/services/reviewsService.js.map +1 -1
  223. package/dist/editor/settings/SettingsView.js +2 -2
  224. package/dist/editor/settings/SettingsView.js.map +1 -1
  225. package/dist/editor/settings/panels/ProjectTemplatesPanel.js +1 -1
  226. package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
  227. package/dist/editor/settings/panels/ProvidersPanel.js +3 -2
  228. package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -1
  229. package/dist/editor/sidebar/MorePanelsButton.js +1 -1
  230. package/dist/editor/sidebar/MorePanelsButton.js.map +1 -1
  231. package/dist/editor/sidebar/Workbox.js +1 -1
  232. package/dist/editor/sidebar/Workbox.js.map +1 -1
  233. package/dist/editor/ui/IconSelectorDialog.js +1 -1
  234. package/dist/editor/ui/IconSelectorDialog.js.map +1 -1
  235. package/dist/editor/ui/SimpleIconButton.d.ts +2 -2
  236. package/dist/editor/ui/SimpleIconButton.js +1 -1
  237. package/dist/editor/ui/SimpleIconButton.js.map +1 -1
  238. package/dist/editor/utils.d.ts +17 -1
  239. package/dist/editor/utils.js +143 -0
  240. package/dist/editor/utils.js.map +1 -1
  241. package/dist/editor/version-diff/versionDiffTargets.d.ts +8 -3
  242. package/dist/editor/version-diff/versionDiffTargets.js +94 -37
  243. package/dist/editor/version-diff/versionDiffTargets.js.map +1 -1
  244. package/dist/revision.d.ts +2 -2
  245. package/dist/revision.js +2 -2
  246. package/dist/splash-screen/DialogWrappers.js +2 -2
  247. package/dist/splash-screen/DialogWrappers.js.map +1 -1
  248. package/dist/splash-screen/ModernSplashScreen.js +3 -11
  249. package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
  250. package/dist/splash-screen/NewPage.js +5 -7
  251. package/dist/splash-screen/NewPage.js.map +1 -1
  252. package/dist/splash-screen/OpenPage.js +3 -5
  253. package/dist/splash-screen/OpenPage.js.map +1 -1
  254. package/dist/splash-screen/RecentPages.js +3 -3
  255. package/dist/splash-screen/RecentPages.js.map +1 -1
  256. package/package.json +1 -2
  257. package/styles.css +0 -49
  258. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.d.ts +0 -5
  259. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js +0 -12
  260. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js.map +0 -1
  261. package/dist/editor/bridge/BridgeClient.d.ts +0 -80
  262. package/dist/editor/bridge/BridgeClient.js +0 -416
  263. package/dist/editor/bridge/BridgeClient.js.map +0 -1
  264. package/dist/editor/field-types/useFormFieldCaretPresence.d.ts +0 -13
  265. package/dist/editor/field-types/useFormFieldCaretPresence.js +0 -92
  266. package/dist/editor/field-types/useFormFieldCaretPresence.js.map +0 -1
  267. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.d.ts +0 -6
  268. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js +0 -123
  269. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js.map +0 -1
  270. package/dist/editor/page-editor-chrome/useBridgeInlineEditing.d.ts +0 -26
  271. package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js +0 -222
  272. package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js.map +0 -1
  273. package/dist/editor/page-viewer/bridgeFieldPatch.d.ts +0 -20
  274. package/dist/editor/page-viewer/bridgeFieldPatch.js +0 -33
  275. package/dist/editor/page-viewer/bridgeFieldPatch.js.map +0 -1
  276. package/dist/editor/reviews/commentTransientSelection.d.ts +0 -23
  277. package/dist/editor/reviews/commentTransientSelection.js +0 -7
  278. package/dist/editor/reviews/commentTransientSelection.js.map +0 -1
  279. package/dist/editor/reviews/feedbackOrdering.d.ts +0 -5
  280. package/dist/editor/reviews/feedbackOrdering.js +0 -27
  281. package/dist/editor/reviews/feedbackOrdering.js.map +0 -1
  282. package/dist/editor/reviews/suggestedEditState.d.ts +0 -12
  283. package/dist/editor/reviews/suggestedEditState.js +0 -90
  284. package/dist/editor/reviews/suggestedEditState.js.map +0 -1
  285. package/dist/editor/reviews/suggestionDisplayValue.d.ts +0 -43
  286. package/dist/editor/reviews/suggestionDisplayValue.js +0 -93
  287. package/dist/editor/reviews/suggestionDisplayValue.js.map +0 -1
  288. package/dist/editor/sidebar/BridgeDiagnostics.d.ts +0 -1
  289. package/dist/editor/sidebar/BridgeDiagnostics.js +0 -41
  290. package/dist/editor/sidebar/BridgeDiagnostics.js.map +0 -1
@@ -1,12 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState } from "react";
3
- import { History } from "lucide-react";
4
- import { Button } from "../../../../components/ui/button";
5
- import { Popover, PopoverContent, PopoverTrigger, } from "../../../../components/ui/popover";
6
- import { AgentEditOperationsPanel } from "./EditOperationsPanel";
7
- export function AgentEditHistoryButton({ operations, }) {
8
- const [open, setOpen] = useState(false);
9
- const [actionsEl, setActionsEl] = useState(null);
10
- return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { size: "xs", variant: "outline", className: "text-neutral-grey-100 hover:bg-neutral-grey-20 h-8 rounded-md border-0 bg-transparent px-3 text-[12px] font-medium", "data-testid": "agent-edit-history-trigger", children: [_jsx(History, { className: "mr-1.5 h-4 w-4", strokeWidth: 1.75 }), "Edit history"] }) }), _jsxs(PopoverContent, { align: "end", side: "top", sideOffset: 6, className: "w-[420px] max-w-[90vw] p-0", children: [_jsxs("div", { className: "border-border-default flex items-center justify-between gap-2 border-b px-3 py-2", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx(History, { className: "text-neutral-grey-50 h-3.5 w-3.5", strokeWidth: 1.5 }), _jsx("span", { className: "text-neutral-grey-100 text-xs font-medium", children: "Edit History" })] }), _jsx("div", { ref: setActionsEl, className: "flex items-center gap-1" })] }), _jsx("div", { className: "max-h-[60vh] overflow-y-auto", children: _jsx(AgentEditOperationsPanel, { operations: operations, headerless: true, headerActionsContainer: actionsEl }) })] })] }));
11
- }
12
- //# sourceMappingURL=AgentEditHistoryButton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AgentEditHistoryButton.js","sourceRoot":"","sources":["../../../../../src/editor/ai/terminal/components/AgentEditHistoryButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAMjE,MAAM,UAAU,sBAAsB,CAAC,EACrC,UAAU,GACkB;IAC5B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAwB,IAAI,CAAC,CAAC;IAExE,OAAO,CACL,MAAC,OAAO,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,aACxC,KAAC,cAAc,IAAC,OAAO,kBACrB,MAAC,MAAM,IACL,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,oHAAoH,iBAClH,4BAA4B,aAExC,KAAC,OAAO,IAAC,SAAS,EAAC,gBAAgB,EAAC,WAAW,EAAE,IAAI,GAAI,oBAElD,GACM,EACjB,MAAC,cAAc,IACb,KAAK,EAAC,KAAK,EACX,IAAI,EAAC,KAAK,EACV,UAAU,EAAE,CAAC,EACb,SAAS,EAAC,4BAA4B,aAEtC,eAAK,SAAS,EAAC,kFAAkF,aAC/F,eAAK,SAAS,EAAC,2BAA2B,aACxC,KAAC,OAAO,IACN,SAAS,EAAC,kCAAkC,EAC5C,WAAW,EAAE,GAAG,GAChB,EACF,eAAM,SAAS,EAAC,2CAA2C,6BAEpD,IACH,EACN,cAAK,GAAG,EAAE,YAAY,EAAE,SAAS,EAAC,yBAAyB,GAAG,IAC1D,EACN,cAAK,SAAS,EAAC,8BAA8B,YAC3C,KAAC,wBAAwB,IACvB,UAAU,EAAE,UAAU,EACtB,UAAU,QACV,sBAAsB,EAAE,SAAS,GACjC,GACE,IACS,IACT,CACX,CAAC;AACJ,CAAC"}
@@ -1,80 +0,0 @@
1
- import { type BridgeCapability, type BridgeCapabilitySet, type BridgeCommandName, type BridgeCommandPayloadByName, type BridgeEvent, type BridgeEventName, type BridgeEventPayloadByName, type BridgeRuntimeInfo, type BridgeVersion } from "@parhelia/editor-bridge-head";
2
- export type BridgeConnectionStatus = "connecting" | "ready" | "incompatible" | "unreachable";
3
- export type BridgeDiagnostics = {
4
- status: BridgeConnectionStatus;
5
- editorVersion: BridgeVersion;
6
- hostVersion?: BridgeVersion;
7
- compatible?: boolean;
8
- hostOrigin?: string;
9
- hostAdvertisedCapabilities: BridgeCapabilitySet;
10
- acknowledgedCapabilities: BridgeCapabilitySet;
11
- runtime?: BridgeRuntimeInfo;
12
- lastError?: {
13
- message: string;
14
- at: number;
15
- };
16
- };
17
- export type BridgeClientOptions = {
18
- iframe: HTMLIFrameElement;
19
- editorOrigin: string;
20
- allowedHostOrigins: string[];
21
- /**
22
- * Absolute URL of the canonical bridge script, advertised on the `hello`
23
- * pump so a stub bootloader on the host can load the real bridge from the
24
- * editor origin. The full bridge ignores it.
25
- */
26
- bridgeUrl?: string;
27
- onEvent?: (event: BridgeEvent, client: BridgeClient) => void;
28
- onError?: (error: Error, client: BridgeClient) => void;
29
- onReadyChange?: (ready: boolean) => void;
30
- readyTimeoutMs?: number;
31
- };
32
- export declare class BridgeClient {
33
- private iframe;
34
- private editorOrigin;
35
- private allowedHostOrigins;
36
- private bridgeUrl?;
37
- private onEvent?;
38
- private onError?;
39
- private onReadyChange?;
40
- private readyTimeoutMs;
41
- private readyTimeoutId?;
42
- private hostOrigin?;
43
- private connected;
44
- private ready;
45
- private status;
46
- private hostVersion?;
47
- private compatible?;
48
- private hostAdvertisedCapabilities;
49
- private acknowledgedCapabilities;
50
- private hostRuntime?;
51
- private lastError?;
52
- private helloIntervalId?;
53
- private pendingRequests;
54
- constructor(options: BridgeClientOptions);
55
- connect(): void;
56
- disconnect(): void;
57
- isReady(): boolean;
58
- supportsCapability(capability: BridgeCapability): boolean;
59
- sendCommand<TName extends BridgeCommandName>(name: TName, payload: BridgeCommandPayloadByName[TName], options?: {
60
- requestId?: string;
61
- }): boolean;
62
- requestCommand<TCommandName extends BridgeCommandName, TEventName extends BridgeEventName>(name: TCommandName, payload: BridgeCommandPayloadByName[TCommandName], expectedEventName: TEventName, options?: {
63
- requestId?: string;
64
- timeoutMs?: number;
65
- }): Promise<BridgeEventPayloadByName[TEventName]>;
66
- getEditorOrigin(): string;
67
- getAcknowledgedCapabilities(): BridgeCapabilitySet;
68
- getDiagnostics(): BridgeDiagnostics;
69
- private handleMessage;
70
- private handleReady;
71
- private resolvePendingRequest;
72
- private rejectPendingRequests;
73
- private armReadyTimeout;
74
- private clearReadyTimeout;
75
- private armHelloHandshake;
76
- private sendHello;
77
- private clearHelloHandshake;
78
- private getAllowedOrigins;
79
- private getConfiguredHostOrigin;
80
- }
@@ -1,416 +0,0 @@
1
- import { BRIDGE_CAPABILITIES, PARHELIA_EDITING_BRIDGE_VERSION, createBridgeEnvelope, formatBridgeVersion, isAllowedOrigin, isBridgeMessageFromHost, isCompatibleBridgeVersion, isKnownBridgeEventName, negotiateCapabilities, } from "@parhelia/editor-bridge-head";
2
- // Capabilities this editor knows how to consume. The session set is the
3
- // intersection of this and what the host advertises in `ready`.
4
- const EDITOR_SUPPORTED_CAPABILITIES = Object.values(BRIDGE_CAPABILITIES);
5
- export class BridgeClient {
6
- iframe;
7
- editorOrigin;
8
- allowedHostOrigins;
9
- bridgeUrl;
10
- onEvent;
11
- onError;
12
- onReadyChange;
13
- readyTimeoutMs;
14
- readyTimeoutId;
15
- hostOrigin;
16
- connected = false;
17
- ready = false;
18
- status = "connecting";
19
- hostVersion;
20
- compatible;
21
- hostAdvertisedCapabilities = [];
22
- acknowledgedCapabilities = [];
23
- hostRuntime;
24
- lastError;
25
- helloIntervalId;
26
- pendingRequests = new Map();
27
- constructor(options) {
28
- this.iframe = options.iframe;
29
- this.editorOrigin = options.editorOrigin;
30
- this.allowedHostOrigins = options.allowedHostOrigins.filter(Boolean);
31
- this.bridgeUrl = options.bridgeUrl;
32
- this.onEvent = options.onEvent;
33
- this.onError = options.onError;
34
- this.onReadyChange = options.onReadyChange;
35
- this.readyTimeoutMs = options.readyTimeoutMs ?? 10_000;
36
- }
37
- connect() {
38
- if (this.connected)
39
- return;
40
- this.connected = true;
41
- window.addEventListener("message", this.handleMessage);
42
- this.armReadyTimeout();
43
- this.armHelloHandshake();
44
- logBridgeDiagnostic("client connected", {
45
- iframeSrc: this.iframe.getAttribute("src"),
46
- allowedHostOrigins: this.allowedHostOrigins,
47
- configuredHostOrigin: this.getConfiguredHostOrigin(),
48
- });
49
- }
50
- disconnect() {
51
- if (!this.connected)
52
- return;
53
- this.connected = false;
54
- this.ready = false;
55
- this.status = "connecting";
56
- this.compatible = undefined;
57
- this.hostVersion = undefined;
58
- this.hostAdvertisedCapabilities = [];
59
- this.acknowledgedCapabilities = [];
60
- this.hostRuntime = undefined;
61
- this.rejectPendingRequests(new Error("The Parhelia bridge disconnected before the host responded."));
62
- this.clearReadyTimeout();
63
- this.clearHelloHandshake();
64
- this.onReadyChange?.(false);
65
- window.removeEventListener("message", this.handleMessage);
66
- logBridgeDiagnostic("client disconnected");
67
- }
68
- isReady() {
69
- return this.ready;
70
- }
71
- supportsCapability(capability) {
72
- return this.ready && this.acknowledgedCapabilities.includes(capability);
73
- }
74
- sendCommand(name, payload, options) {
75
- const targetWindow = this.iframe.contentWindow;
76
- const targetOrigin = this.hostOrigin ?? this.getConfiguredHostOrigin();
77
- if (!targetWindow || !targetOrigin) {
78
- logBridgeDiagnostic("command skipped", {
79
- name,
80
- hasTargetWindow: Boolean(targetWindow),
81
- targetOrigin,
82
- iframeSrc: this.iframe.getAttribute("src"),
83
- });
84
- return false;
85
- }
86
- const message = createBridgeEnvelope(name, payload, {
87
- requestId: options?.requestId,
88
- });
89
- logBridgeMessage("parent -> host", message);
90
- targetWindow.postMessage(message, targetOrigin);
91
- return true;
92
- }
93
- requestCommand(name, payload, expectedEventName, options) {
94
- const requestId = options?.requestId ??
95
- extractPayloadRequestId(payload) ??
96
- createRequestId();
97
- const timeoutMs = options?.timeoutMs ?? 10_000;
98
- return new Promise((resolve, reject) => {
99
- const timeoutId = window.setTimeout(() => {
100
- this.pendingRequests.delete(requestId);
101
- reject(new Error(`Timed out waiting for Parhelia bridge event '${expectedEventName}'.`));
102
- }, timeoutMs);
103
- this.pendingRequests.set(requestId, {
104
- expectedEventName,
105
- resolve: (payload) => resolve(payload),
106
- reject,
107
- timeoutId,
108
- });
109
- const sent = this.sendCommand(name, payload, { requestId });
110
- if (!sent) {
111
- window.clearTimeout(timeoutId);
112
- this.pendingRequests.delete(requestId);
113
- reject(new Error(`Could not send Parhelia bridge command '${name}' to the host.`));
114
- }
115
- });
116
- }
117
- getEditorOrigin() {
118
- return this.editorOrigin;
119
- }
120
- getAcknowledgedCapabilities() {
121
- return [...this.acknowledgedCapabilities];
122
- }
123
- getDiagnostics() {
124
- return {
125
- status: this.status,
126
- editorVersion: PARHELIA_EDITING_BRIDGE_VERSION,
127
- hostVersion: this.hostVersion,
128
- compatible: this.compatible,
129
- hostOrigin: this.hostOrigin,
130
- hostAdvertisedCapabilities: [...this.hostAdvertisedCapabilities],
131
- acknowledgedCapabilities: [...this.acknowledgedCapabilities],
132
- runtime: this.hostRuntime,
133
- lastError: this.lastError,
134
- };
135
- }
136
- handleMessage = (event) => {
137
- if (event.source !== this.iframe.contentWindow) {
138
- if (isBridgeMessageFromHost(event.data)) {
139
- logBridgeDiagnostic("event ignored: source mismatch", {
140
- origin: event.origin,
141
- name: event.data.name,
142
- });
143
- }
144
- return;
145
- }
146
- const allowedOrigins = this.getAllowedOrigins();
147
- if (allowedOrigins.length > 0 &&
148
- !allowedOrigins.some((origin) => isAllowedOrigin(event.origin, [origin]))) {
149
- if (isBridgeMessageFromHost(event.data)) {
150
- logBridgeDiagnostic("event ignored: origin rejected", {
151
- origin: event.origin,
152
- allowedOrigins,
153
- name: event.data.name,
154
- });
155
- }
156
- return;
157
- }
158
- // Recognize any well-formed bridge message from the host (even with an
159
- // unknown name), so newer events surface in diagnostics rather than being
160
- // silently dropped.
161
- if (!isBridgeMessageFromHost(event.data)) {
162
- return;
163
- }
164
- this.hostOrigin = event.origin;
165
- // Dispatch only known event names; log + ignore unrecognized ones.
166
- if (!isKnownBridgeEventName(event.data.name)) {
167
- logBridgeDiagnostic("event ignored: unknown name", {
168
- origin: event.origin,
169
- name: event.data.name,
170
- hostVersion: event.data.version,
171
- });
172
- return;
173
- }
174
- const bridgeEvent = event.data;
175
- logBridgeMessage("host -> parent", bridgeEvent);
176
- this.resolvePendingRequest(bridgeEvent);
177
- if (bridgeEvent.name === "ready") {
178
- this.handleReady(bridgeEvent, event.origin);
179
- }
180
- this.onEvent?.(bridgeEvent, this);
181
- };
182
- handleReady(event, origin) {
183
- this.clearHelloHandshake();
184
- const payload = event.payload;
185
- const hostVersion = getReadyVersion(event);
186
- this.hostVersion = hostVersion;
187
- this.hostAdvertisedCapabilities = Array.isArray(payload.capabilities)
188
- ? payload.capabilities
189
- : [];
190
- this.hostRuntime = payload.runtime;
191
- if (!isCompatibleBridgeVersion(hostVersion)) {
192
- this.clearReadyTimeout();
193
- this.ready = false;
194
- this.compatible = false;
195
- this.status = "incompatible";
196
- this.acknowledgedCapabilities = [];
197
- const message = `Editing host bridge is v${formatBridgeVersion(hostVersion)}; this editor expects v${formatBridgeVersion(PARHELIA_EDITING_BRIDGE_VERSION)}. Redeploy the bridge to ${origin}.`;
198
- this.lastError = { message, at: Date.now() };
199
- logBridgeDiagnostic("ready rejected: version mismatch", {
200
- hostVersion,
201
- expectedVersion: PARHELIA_EDITING_BRIDGE_VERSION,
202
- origin,
203
- });
204
- this.onError?.(new Error(message), this);
205
- return;
206
- }
207
- this.clearReadyTimeout();
208
- this.compatible = true;
209
- this.status = "ready";
210
- this.acknowledgedCapabilities = negotiateCapabilities(EDITOR_SUPPORTED_CAPABILITIES, this.hostAdvertisedCapabilities);
211
- this.ready = true;
212
- this.lastError = undefined;
213
- this.onReadyChange?.(true);
214
- }
215
- resolvePendingRequest(event) {
216
- const requestId = getEventRequestId(event);
217
- if (!requestId)
218
- return;
219
- const pending = this.pendingRequests.get(requestId);
220
- if (!pending || pending.expectedEventName !== event.name)
221
- return;
222
- window.clearTimeout(pending.timeoutId);
223
- this.pendingRequests.delete(requestId);
224
- pending.resolve(event.payload);
225
- }
226
- rejectPendingRequests(error) {
227
- for (const [, pending] of this.pendingRequests) {
228
- window.clearTimeout(pending.timeoutId);
229
- pending.reject(error);
230
- }
231
- this.pendingRequests.clear();
232
- }
233
- armReadyTimeout() {
234
- this.clearReadyTimeout();
235
- if (this.readyTimeoutMs <= 0)
236
- return;
237
- this.readyTimeoutId = window.setTimeout(() => {
238
- this.readyTimeoutId = undefined;
239
- if (this.ready)
240
- return;
241
- this.clearHelloHandshake();
242
- this.status = "unreachable";
243
- const message = "Couldn't reach the editing host bridge - it may be missing or outdated.";
244
- this.lastError = { message, at: Date.now() };
245
- this.onError?.(new Error(message), this);
246
- }, this.readyTimeoutMs);
247
- }
248
- clearReadyTimeout() {
249
- if (this.readyTimeoutId === undefined)
250
- return;
251
- window.clearTimeout(this.readyTimeoutId);
252
- this.readyTimeoutId = undefined;
253
- }
254
- armHelloHandshake() {
255
- this.clearHelloHandshake();
256
- // The host posts `ready` only once on load. If this client attached after
257
- // that (a reconnect or a late attach), it would never see `ready` while
258
- // still receiving the ongoing event stream. Proactively ask the host to
259
- // re-announce by sending `hello` until we receive a `ready`.
260
- this.sendHello();
261
- this.helloIntervalId = window.setInterval(() => {
262
- if (this.ready) {
263
- this.clearHelloHandshake();
264
- return;
265
- }
266
- this.sendHello();
267
- }, 300);
268
- }
269
- sendHello() {
270
- this.sendCommand("hello", this.bridgeUrl ? { bridgeUrl: this.bridgeUrl } : {});
271
- }
272
- clearHelloHandshake() {
273
- if (this.helloIntervalId === undefined)
274
- return;
275
- window.clearInterval(this.helloIntervalId);
276
- this.helloIntervalId = undefined;
277
- }
278
- getAllowedOrigins() {
279
- const configuredOrigin = this.getConfiguredHostOrigin();
280
- const origins = [...this.allowedHostOrigins];
281
- if (configuredOrigin)
282
- origins.push(configuredOrigin);
283
- if (this.hostOrigin)
284
- origins.push(this.hostOrigin);
285
- return origins.filter((origin, index) => origin &&
286
- origins.findIndex((candidate) => candidate === origin) === index);
287
- }
288
- getConfiguredHostOrigin() {
289
- const src = this.iframe.getAttribute("src");
290
- if (!src)
291
- return undefined;
292
- try {
293
- const origin = new URL(src, window.location.href).origin;
294
- if (this.allowedHostOrigins.length === 0 ||
295
- this.allowedHostOrigins.some((allowed) => isAllowedOrigin(origin, [allowed]))) {
296
- return origin;
297
- }
298
- }
299
- catch {
300
- return undefined;
301
- }
302
- return undefined;
303
- }
304
- }
305
- function getReadyVersion(event) {
306
- return event.payload.version ?? event.version;
307
- }
308
- function extractPayloadRequestId(payload) {
309
- if (!payload || typeof payload !== "object" || !("requestId" in payload)) {
310
- return undefined;
311
- }
312
- const requestId = payload.requestId;
313
- return typeof requestId === "string" && requestId.length > 0
314
- ? requestId
315
- : undefined;
316
- }
317
- function getEventRequestId(event) {
318
- const payloadRequestId = extractPayloadRequestId(event.payload);
319
- if (payloadRequestId)
320
- return payloadRequestId;
321
- return event.requestId;
322
- }
323
- function createRequestId() {
324
- const cryptoObject = globalThis.crypto;
325
- if (cryptoObject?.randomUUID) {
326
- return cryptoObject.randomUUID();
327
- }
328
- return `bridge-request-${Date.now().toString(36)}-${Math.random()
329
- .toString(36)
330
- .slice(2)}`;
331
- }
332
- function isBridgeDebugEnabled() {
333
- try {
334
- const params = new URLSearchParams(window.location.search);
335
- if (params.get("parhelia_bridge_debug") === "1")
336
- return true;
337
- const stored = window.localStorage.getItem("parhelia:bridge:debug");
338
- return stored === "1" || stored === "true";
339
- }
340
- catch {
341
- return false;
342
- }
343
- }
344
- function logBridgeMessage(direction, message) {
345
- if (!shouldLogBridgeMessage(message))
346
- return;
347
- const safeMessage = redactSensitiveBridgeFields(message);
348
- const name = safeMessage &&
349
- typeof safeMessage === "object" &&
350
- "name" in safeMessage &&
351
- typeof safeMessage.name === "string"
352
- ? `: ${safeMessage.name}`
353
- : "";
354
- console.log(`[Parhelia bridge message] ${direction}${name}`, safeMessage);
355
- console.groupCollapsed(`[Parhelia bridge] ${direction}${name}`);
356
- console.log(safeMessage);
357
- console.groupEnd();
358
- }
359
- function shouldLogBridgeMessage(message) {
360
- if (!isBridgeDebugEnabled())
361
- return false;
362
- if (!isHighFrequencyBridgeMessage(message))
363
- return true;
364
- return isVerboseBridgeDebugEnabled();
365
- }
366
- function isHighFrequencyBridgeMessage(message) {
367
- if (!message || typeof message !== "object" || !("name" in message)) {
368
- return false;
369
- }
370
- return (message.name === "scrollChanged" ||
371
- message.name === "geometryUpdated" ||
372
- message.name === "domUpdated" ||
373
- message.name === "selectionChanged");
374
- }
375
- function isVerboseBridgeDebugEnabled() {
376
- try {
377
- const params = new URLSearchParams(window.location.search);
378
- if (params.get("parhelia_bridge_debug") === "verbose")
379
- return true;
380
- if (params.get("parhelia_bridge_verbose") === "1")
381
- return true;
382
- const stored = window.localStorage.getItem("parhelia:bridge:debug:verbose");
383
- return stored === "1" || stored === "true";
384
- }
385
- catch {
386
- return false;
387
- }
388
- }
389
- function logBridgeDiagnostic(message, details) {
390
- if (!isBridgeDebugEnabled())
391
- return;
392
- if (details === undefined) {
393
- console.debug(`[Parhelia bridge] ${message}`);
394
- return;
395
- }
396
- console.debug(`[Parhelia bridge] ${message}`, redactSensitiveBridgeFields(details));
397
- }
398
- function redactSensitiveBridgeFields(value) {
399
- if (Array.isArray(value)) {
400
- return value.map(redactSensitiveBridgeFields);
401
- }
402
- if (!value || typeof value !== "object") {
403
- return value;
404
- }
405
- const result = {};
406
- for (const [key, nestedValue] of Object.entries(value)) {
407
- if (/token|secret|signedContext|sessionId/i.test(key)) {
408
- result[key] = "[redacted]";
409
- }
410
- else {
411
- result[key] = redactSensitiveBridgeFields(nestedValue);
412
- }
413
- }
414
- return result;
415
- }
416
- //# sourceMappingURL=BridgeClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BridgeClient.js","sourceRoot":"","sources":["../../../src/editor/bridge/BridgeClient.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import type { RefObject } from "react";
2
- import type { Field } from "../pageModel";
3
- type TextFormControl = HTMLInputElement | HTMLTextAreaElement;
4
- export declare function useFormFieldCaretPresence({ field, inputRef, readOnly, }: {
5
- field: Field;
6
- inputRef: RefObject<TextFormControl | null>;
7
- readOnly?: boolean;
8
- }): {
9
- clearCaretPresence: () => void;
10
- publishCaretPresence: (element?: TextFormControl | null) => void;
11
- publishCaretPresenceAfterSelectionSettles: (element?: TextFormControl | null) => void;
12
- };
13
- export {};
@@ -1,92 +0,0 @@
1
- import { useCallback, useEffect, useRef } from "react";
2
- import { useEditContextRef } from "../client/editContext";
3
- export function useFormFieldCaretPresence({ field, inputRef, readOnly, }) {
4
- const editContextRef = useEditContextRef();
5
- const lastSentKeyRef = useRef("clear");
6
- const pendingPublishFrameRef = useRef(null);
7
- const clearCaretPresence = useCallback(() => {
8
- if (pendingPublishFrameRef.current != null) {
9
- window.cancelAnimationFrame(pendingPublishFrameRef.current);
10
- pendingPublishFrameRef.current = null;
11
- }
12
- const editor = editContextRef.current;
13
- if (!editor || lastSentKeyRef.current === "clear")
14
- return;
15
- editor.sendSocketMessage({
16
- type: "caret-position",
17
- payload: { offset: null, source: "form-field" },
18
- });
19
- lastSentKeyRef.current = "clear";
20
- }, [editContextRef]);
21
- const publishCaretPresence = useCallback((element = inputRef.current) => {
22
- const editor = editContextRef.current;
23
- const fieldItem = field.descriptor.item;
24
- if (!editor || !element || readOnly || !fieldItem?.id) {
25
- clearCaretPresence();
26
- return;
27
- }
28
- const startOffset = element.selectionStart;
29
- const endOffset = element.selectionEnd;
30
- if (startOffset == null ||
31
- endOffset == null ||
32
- startOffset !== endOffset) {
33
- clearCaretPresence();
34
- return;
35
- }
36
- const nextKey = [
37
- field.id,
38
- fieldItem.id,
39
- fieldItem.language,
40
- fieldItem.version,
41
- startOffset,
42
- ].join(":");
43
- if (lastSentKeyRef.current === nextKey)
44
- return;
45
- editor.sendSocketMessage({
46
- type: "caret-position",
47
- payload: {
48
- fieldId: field.id,
49
- item: fieldItem,
50
- offset: startOffset,
51
- value: element.value,
52
- source: "form-field",
53
- },
54
- });
55
- lastSentKeyRef.current = nextKey;
56
- }, [
57
- clearCaretPresence,
58
- editContextRef,
59
- field.descriptor.item,
60
- field.id,
61
- inputRef,
62
- readOnly,
63
- ]);
64
- const publishCaretPresenceAfterSelectionSettles = useCallback((element = inputRef.current) => {
65
- if (pendingPublishFrameRef.current != null) {
66
- window.cancelAnimationFrame(pendingPublishFrameRef.current);
67
- }
68
- pendingPublishFrameRef.current = window.requestAnimationFrame(() => {
69
- pendingPublishFrameRef.current = null;
70
- publishCaretPresence(element);
71
- });
72
- }, [inputRef, publishCaretPresence]);
73
- useEffect(() => {
74
- return () => {
75
- if (pendingPublishFrameRef.current != null) {
76
- window.cancelAnimationFrame(pendingPublishFrameRef.current);
77
- }
78
- clearCaretPresence();
79
- };
80
- }, [clearCaretPresence]);
81
- useEffect(() => {
82
- if (readOnly) {
83
- clearCaretPresence();
84
- }
85
- }, [clearCaretPresence, readOnly]);
86
- return {
87
- clearCaretPresence,
88
- publishCaretPresence,
89
- publishCaretPresenceAfterSelectionSettles,
90
- };
91
- }
92
- //# sourceMappingURL=useFormFieldCaretPresence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFormFieldCaretPresence.js","sourceRoot":"","sources":["../../../src/editor/field-types/useFormFieldCaretPresence.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { ApplyRichTextCommandPayload } from "@parhelia/editor-bridge-head";
2
- type BridgeInlineFormatOverlayProps = {
3
- onCommand?: (payload: ApplyRichTextCommandPayload) => boolean;
4
- };
5
- export declare function BridgeInlineFormatOverlay({ onCommand, }: BridgeInlineFormatOverlayProps): import("react").ReactPortal | null;
6
- export {};