@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.
- package/dist/components/ui/card.d.ts +1 -3
- package/dist/components/ui/card.js +2 -2
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/context-menu.js +2 -2
- package/dist/config/config.js +7 -8
- package/dist/config/config.js.map +1 -1
- package/dist/config/types.d.ts +7 -0
- package/dist/config/types.js.map +1 -1
- package/dist/editor/FieldActionsOverlay.d.ts +1 -0
- package/dist/editor/FieldActionsOverlay.js +45 -1
- package/dist/editor/FieldActionsOverlay.js.map +1 -1
- package/dist/editor/FieldListField.d.ts +1 -1
- package/dist/editor/FieldListField.js +18 -20
- package/dist/editor/FieldListField.js.map +1 -1
- package/dist/editor/ImageEditor.d.ts +1 -6
- package/dist/editor/ImageEditor.js +3 -19
- package/dist/editor/ImageEditor.js.map +1 -1
- package/dist/editor/PictureEditor.d.ts +1 -2
- package/dist/editor/PictureEditor.js +14 -5
- package/dist/editor/PictureEditor.js.map +1 -1
- package/dist/editor/ai/Agents.js +2 -2
- package/dist/editor/ai/Agents.js.map +1 -1
- package/dist/editor/ai/GuidanceOverlay.js +11 -1
- package/dist/editor/ai/GuidanceOverlay.js.map +1 -1
- package/dist/editor/ai/InlineAiDialog.js +11 -22
- package/dist/editor/ai/InlineAiDialog.js.map +1 -1
- package/dist/editor/ai/InlineAiTrigger.js +57 -17
- package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
- package/dist/editor/ai/dialogs/capturePageDom.js +36 -66
- package/dist/editor/ai/dialogs/capturePageDom.js.map +1 -1
- package/dist/editor/ai/dialogs/capturePageScreenshot.js +162 -281
- package/dist/editor/ai/dialogs/capturePageScreenshot.js.map +1 -1
- package/dist/editor/ai/terminal/agentSessionState.d.ts +0 -3
- package/dist/editor/ai/terminal/agentSessionState.js +1 -3
- package/dist/editor/ai/terminal/agentSessionState.js.map +1 -1
- package/dist/editor/ai/terminal/agentStartRequest.d.ts +1 -2
- package/dist/editor/ai/terminal/agentStartRequest.js +1 -2
- package/dist/editor/ai/terminal/agentStartRequest.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentCostDisplay.js +1 -1
- package/dist/editor/ai/terminal/components/AgentCostDisplay.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentDocumentList.d.ts +0 -7
- package/dist/editor/ai/terminal/components/AgentDocumentList.js +13 -55
- package/dist/editor/ai/terminal/components/AgentDocumentList.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentFullPromptControls.d.ts +1 -3
- package/dist/editor/ai/terminal/components/AgentFullPromptControls.js +14 -22
- package/dist/editor/ai/terminal/components/AgentFullPromptControls.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentModeSelector.js +4 -4
- package/dist/editor/ai/terminal/components/AgentModeSelector.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js +4 -4
- package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptComposer.js +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptComposer.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptInputArea.d.ts +1 -2
- package/dist/editor/ai/terminal/components/AgentPromptInputArea.js +11 -8
- package/dist/editor/ai/terminal/components/AgentPromptInputArea.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.d.ts +4 -1
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js +14 -31
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentSettingsPopover.js +1 -1
- package/dist/editor/ai/terminal/components/AgentSettingsPopover.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.d.ts +1 -2
- package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js +4 -2
- package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalMessageGroups.js +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalMessageGroups.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalView.js +2 -13
- package/dist/editor/ai/terminal/components/AgentTerminalView.js.map +1 -1
- package/dist/editor/ai/terminal/components/AiResponseMessage.js +14 -16
- package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
- package/dist/editor/ai/terminal/components/ContextInfoBar.js +2 -22
- package/dist/editor/ai/terminal/components/ContextInfoBar.js.map +1 -1
- package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js +26 -37
- package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js.map +1 -1
- package/dist/editor/ai/terminal/components/UserMessage.d.ts +1 -2
- package/dist/editor/ai/terminal/components/UserMessage.js +8 -144
- package/dist/editor/ai/terminal/components/UserMessage.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentPromptComposerHandlers.js +1 -1
- package/dist/editor/ai/terminal/useAgentPromptComposerHandlers.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentSessionSync.d.ts +0 -1
- package/dist/editor/ai/terminal/useAgentSubmitHandlers.d.ts +1 -3
- package/dist/editor/ai/terminal/useAgentSubmitHandlers.js +3 -9
- package/dist/editor/ai/terminal/useAgentSubmitHandlers.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalController.js +0 -7
- package/dist/editor/ai/terminal/useAgentTerminalController.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalUiState.js +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalUiState.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentUserMessageSocketHandler.js +1 -3
- package/dist/editor/ai/terminal/useAgentUserMessageSocketHandler.js.map +1 -1
- package/dist/editor/ai/useInlineAiPosition.d.ts +1 -1
- package/dist/editor/ai/useInlineAiPosition.js +52 -22
- package/dist/editor/ai/useInlineAiPosition.js.map +1 -1
- package/dist/editor/ai-image-editor/AiImageResultOverlay.js +62 -30
- package/dist/editor/ai-image-editor/AiImageResultOverlay.js.map +1 -1
- package/dist/editor/client/EditorShell.d.ts +1 -5
- package/dist/editor/client/EditorShell.js +136 -285
- package/dist/editor/client/EditorShell.js.map +1 -1
- package/dist/editor/client/editContext.d.ts +5 -33
- package/dist/editor/client/editContext.js.map +1 -1
- package/dist/editor/client/hooks/useSocketMessageHandler.js +17 -14
- package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
- package/dist/editor/client/itemsRepository.d.ts +0 -2
- package/dist/editor/client/itemsRepository.js +8 -15
- package/dist/editor/client/itemsRepository.js.map +1 -1
- package/dist/editor/client/operations.d.ts +1 -1
- package/dist/editor/client/operations.js +17 -41
- package/dist/editor/client/operations.js.map +1 -1
- package/dist/editor/client/pageModelBuilder.js +7 -24
- package/dist/editor/client/pageModelBuilder.js.map +1 -1
- package/dist/editor/commands/handlers/uiActionHandlers.js +5 -1
- package/dist/editor/commands/handlers/uiActionHandlers.js.map +1 -1
- package/dist/editor/editor-warnings/FinalWorkflowStateReadOnly.js +5 -0
- package/dist/editor/editor-warnings/FinalWorkflowStateReadOnly.js.map +1 -1
- package/dist/editor/editor-warnings/ItemLocked.js +6 -3
- package/dist/editor/editor-warnings/ItemLocked.js.map +1 -1
- package/dist/editor/field-types/MultiLineText.js +3 -10
- package/dist/editor/field-types/MultiLineText.js.map +1 -1
- package/dist/editor/field-types/RawEditor.js +1 -8
- package/dist/editor/field-types/RawEditor.js.map +1 -1
- package/dist/editor/field-types/RichTextEditorComponent.js +45 -156
- package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
- package/dist/editor/field-types/SingleLineText.js +3 -10
- package/dist/editor/field-types/SingleLineText.js.map +1 -1
- package/dist/editor/field-types/richtext/components/ReactSlate.js +2 -8
- package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
- package/dist/editor/field-types/richtext/contextMenuFactory.d.ts +2 -1
- package/dist/editor/field-types/richtext/contextMenuFactory.js +303 -100
- package/dist/editor/field-types/richtext/contextMenuFactory.js.map +1 -1
- package/dist/editor/field-types/richtext/types.d.ts +0 -2
- package/dist/editor/field-types/richtext/types.js.map +1 -1
- package/dist/editor/media-selector/MediaFolderBrowser.d.ts +2 -1
- package/dist/editor/media-selector/MediaFolderBrowser.js +19 -9
- package/dist/editor/media-selector/MediaFolderBrowser.js.map +1 -1
- package/dist/editor/media-selector/TreeSelector.js +30 -24
- package/dist/editor/media-selector/TreeSelector.js.map +1 -1
- package/dist/editor/media-selector/UploadZone.d.ts +2 -1
- package/dist/editor/media-selector/UploadZone.js +21 -9
- package/dist/editor/media-selector/UploadZone.js.map +1 -1
- package/dist/editor/menubar/PageSelector.js +2 -8
- package/dist/editor/menubar/PageSelector.js.map +1 -1
- package/dist/editor/menubar/VersionPreviewCard.js +249 -4
- package/dist/editor/menubar/VersionPreviewCard.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/EditControls.js +2 -2
- package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ManualBrowser.d.ts +10 -0
- package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +462 -63
- package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js +1 -1
- package/dist/editor/page-editor-chrome/CommentHighlightings.d.ts +2 -5
- package/dist/editor/page-editor-chrome/CommentHighlightings.js +215 -340
- package/dist/editor/page-editor-chrome/CommentHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.d.ts +1 -5
- package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js +4 -11
- package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js.map +1 -1
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js +13 -21
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
- package/dist/editor/page-editor-chrome/FieldEditedIndicator.js +29 -23
- package/dist/editor/page-editor-chrome/FieldEditedIndicator.js.map +1 -1
- package/dist/editor/page-editor-chrome/FrameMenu.js +19 -110
- package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
- package/dist/editor/page-editor-chrome/InlineEditor.d.ts +7 -0
- package/dist/editor/page-editor-chrome/InlineEditor.js +1719 -0
- package/dist/editor/page-editor-chrome/InlineEditor.js.map +1 -0
- package/dist/editor/page-editor-chrome/LockedFieldIndicator.d.ts +2 -3
- package/dist/editor/page-editor-chrome/LockedFieldIndicator.js +45 -148
- package/dist/editor/page-editor-chrome/LockedFieldIndicator.js.map +1 -1
- package/dist/editor/page-editor-chrome/PageEditorChrome.d.ts +0 -2
- package/dist/editor/page-editor-chrome/PageEditorChrome.js +21 -25
- package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
- package/dist/editor/page-editor-chrome/PictureEditorOverlay.js +128 -163
- package/dist/editor/page-editor-chrome/PictureEditorOverlay.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.d.ts +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +3 -6
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.d.ts +2 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +146 -83
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.d.ts +2 -5
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +63 -144
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/VersionDiffHighlightings.d.ts +2 -1
- package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js +30 -101
- package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.d.ts +1 -10
- package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js +122 -105
- package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js.map +1 -1
- package/dist/editor/page-editor-chrome/overlay/geometry.d.ts +4 -11
- package/dist/editor/page-editor-chrome/overlay/geometry.js +36 -139
- package/dist/editor/page-editor-chrome/overlay/geometry.js.map +1 -1
- package/dist/editor/page-editor-chrome/overlay/iframeAccess.d.ts +2 -0
- package/dist/editor/page-editor-chrome/overlay/iframeAccess.js +21 -0
- package/dist/editor/page-editor-chrome/overlay/iframeAccess.js.map +1 -0
- package/dist/editor/page-editor-chrome/useInlineAICompletion.d.ts +7 -0
- package/dist/editor/page-editor-chrome/useInlineAICompletion.js +758 -0
- package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +1 -0
- package/dist/editor/page-viewer/EditorForm.js +1 -17
- package/dist/editor/page-viewer/EditorForm.js.map +1 -1
- package/dist/editor/page-viewer/MiniMap.d.ts +2 -2
- package/dist/editor/page-viewer/MiniMap.js +364 -176
- package/dist/editor/page-viewer/MiniMap.js.map +1 -1
- package/dist/editor/page-viewer/PageViewer.js +13 -40
- package/dist/editor/page-viewer/PageViewer.js.map +1 -1
- package/dist/editor/page-viewer/PageViewerFrame.d.ts +5 -0
- package/dist/editor/page-viewer/PageViewerFrame.js +1509 -1527
- package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
- package/dist/editor/page-viewer/pageModelSkeletonBuilder.d.ts +3 -0
- package/dist/editor/page-viewer/pageModelSkeletonBuilder.js +796 -0
- package/dist/editor/page-viewer/pageModelSkeletonBuilder.js.map +1 -0
- package/dist/editor/page-viewer/pageViewContext.d.ts +0 -32
- package/dist/editor/page-viewer/pageViewContext.js +6 -37
- package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
- package/dist/editor/reviews/Comment.d.ts +1 -2
- package/dist/editor/reviews/Comment.js +4 -9
- package/dist/editor/reviews/Comment.js.map +1 -1
- package/dist/editor/reviews/CommentEditor.js +1 -1
- package/dist/editor/reviews/CommentEditor.js.map +1 -1
- package/dist/editor/reviews/CommentPopover.js +9 -68
- package/dist/editor/reviews/CommentPopover.js.map +1 -1
- package/dist/editor/reviews/CommentView.js +4 -24
- package/dist/editor/reviews/CommentView.js.map +1 -1
- package/dist/editor/reviews/Comments.d.ts +2 -0
- package/dist/editor/reviews/Comments.js +30 -29
- package/dist/editor/reviews/Comments.js.map +1 -1
- package/dist/editor/reviews/FeedbackCard.d.ts +2 -4
- package/dist/editor/reviews/FeedbackCard.js +5 -5
- package/dist/editor/reviews/FeedbackCard.js.map +1 -1
- package/dist/editor/reviews/SuggestedEdit.js +6 -4
- package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
- package/dist/editor/reviews/SuggestionDisplayPopover.js +2 -3
- package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
- package/dist/editor/reviews/commentAi.js +27 -96
- package/dist/editor/reviews/commentAi.js.map +1 -1
- package/dist/editor/reviews/feedbackSelection.js +4 -32
- package/dist/editor/reviews/feedbackSelection.js.map +1 -1
- package/dist/editor/services/agentService.d.ts +0 -15
- package/dist/editor/services/agentService.js +1 -11
- package/dist/editor/services/agentService.js.map +1 -1
- package/dist/editor/services/contentService.d.ts +1 -0
- package/dist/editor/services/contentService.js.map +1 -1
- package/dist/editor/services/reviewsService.d.ts +2 -2
- package/dist/editor/services/reviewsService.js.map +1 -1
- package/dist/editor/settings/SettingsView.js +2 -2
- package/dist/editor/settings/SettingsView.js.map +1 -1
- package/dist/editor/settings/panels/ProjectTemplatesPanel.js +1 -1
- package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
- package/dist/editor/settings/panels/ProvidersPanel.js +3 -2
- package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -1
- package/dist/editor/sidebar/MorePanelsButton.js +1 -1
- package/dist/editor/sidebar/MorePanelsButton.js.map +1 -1
- package/dist/editor/sidebar/Workbox.js +1 -1
- package/dist/editor/sidebar/Workbox.js.map +1 -1
- package/dist/editor/ui/IconSelectorDialog.js +1 -1
- package/dist/editor/ui/IconSelectorDialog.js.map +1 -1
- package/dist/editor/ui/SimpleIconButton.d.ts +2 -2
- package/dist/editor/ui/SimpleIconButton.js +1 -1
- package/dist/editor/ui/SimpleIconButton.js.map +1 -1
- package/dist/editor/utils.d.ts +17 -1
- package/dist/editor/utils.js +143 -0
- package/dist/editor/utils.js.map +1 -1
- package/dist/editor/version-diff/versionDiffTargets.d.ts +8 -3
- package/dist/editor/version-diff/versionDiffTargets.js +94 -37
- package/dist/editor/version-diff/versionDiffTargets.js.map +1 -1
- package/dist/editor/views/MediaFolderEditView.js +1 -1
- package/dist/editor/views/MediaFolderEditView.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/splash-screen/DialogWrappers.js +2 -2
- package/dist/splash-screen/DialogWrappers.js.map +1 -1
- package/dist/splash-screen/ModernSplashScreen.js +3 -11
- package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
- package/dist/splash-screen/NewPage.js +5 -7
- package/dist/splash-screen/NewPage.js.map +1 -1
- package/dist/splash-screen/OpenPage.js +3 -5
- package/dist/splash-screen/OpenPage.js.map +1 -1
- package/dist/splash-screen/RecentPages.js +3 -3
- package/dist/splash-screen/RecentPages.js.map +1 -1
- package/package.json +1 -2
- package/styles.css +0 -49
- package/dist/editor/ai/terminal/components/AgentEditHistoryButton.d.ts +0 -5
- package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js +0 -12
- package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js.map +0 -1
- package/dist/editor/bridge/BridgeClient.d.ts +0 -80
- package/dist/editor/bridge/BridgeClient.js +0 -417
- package/dist/editor/bridge/BridgeClient.js.map +0 -1
- package/dist/editor/field-types/useFormFieldCaretPresence.d.ts +0 -13
- package/dist/editor/field-types/useFormFieldCaretPresence.js +0 -92
- package/dist/editor/field-types/useFormFieldCaretPresence.js.map +0 -1
- package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.d.ts +0 -6
- package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js +0 -123
- package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js.map +0 -1
- package/dist/editor/page-editor-chrome/useBridgeInlineEditing.d.ts +0 -26
- package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js +0 -222
- package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js.map +0 -1
- package/dist/editor/page-viewer/bridgeFieldPatch.d.ts +0 -20
- package/dist/editor/page-viewer/bridgeFieldPatch.js +0 -33
- package/dist/editor/page-viewer/bridgeFieldPatch.js.map +0 -1
- package/dist/editor/reviews/commentTransientSelection.d.ts +0 -23
- package/dist/editor/reviews/commentTransientSelection.js +0 -7
- package/dist/editor/reviews/commentTransientSelection.js.map +0 -1
- package/dist/editor/reviews/feedbackOrdering.d.ts +0 -5
- package/dist/editor/reviews/feedbackOrdering.js +0 -27
- package/dist/editor/reviews/feedbackOrdering.js.map +0 -1
- package/dist/editor/reviews/suggestedEditState.d.ts +0 -12
- package/dist/editor/reviews/suggestedEditState.js +0 -90
- package/dist/editor/reviews/suggestedEditState.js.map +0 -1
- package/dist/editor/reviews/suggestionDisplayValue.d.ts +0 -43
- package/dist/editor/reviews/suggestionDisplayValue.js +0 -93
- package/dist/editor/reviews/suggestionDisplayValue.js.map +0 -1
package/styles.css
CHANGED
|
@@ -293,55 +293,6 @@ body {
|
|
|
293
293
|
}
|
|
294
294
|
}
|
|
295
295
|
|
|
296
|
-
@layer components {
|
|
297
|
-
.edited-field.saved,
|
|
298
|
-
.edited-field.saving {
|
|
299
|
-
border-radius: 2px;
|
|
300
|
-
background-repeat: no-repeat;
|
|
301
|
-
background-size: 4px 100%;
|
|
302
|
-
background-position: left top;
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
.edited-field.saved {
|
|
306
|
-
background-image: linear-gradient(
|
|
307
|
-
var(--color-feedback-green),
|
|
308
|
-
var(--color-feedback-green)
|
|
309
|
-
);
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
.edited-field.saving {
|
|
313
|
-
background-image: linear-gradient(
|
|
314
|
-
var(--color-feedback-orange),
|
|
315
|
-
var(--color-feedback-orange)
|
|
316
|
-
);
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
.focused-field.saved .focus-shadow,
|
|
320
|
-
.focused-field.saving .focus-shadow,
|
|
321
|
-
[data-fieldname] > .saved .focus-shadow,
|
|
322
|
-
[data-fieldname] > .saving .focus-shadow {
|
|
323
|
-
background-repeat: no-repeat;
|
|
324
|
-
background-size: 4px 100%;
|
|
325
|
-
background-position: left top;
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
.focused-field.saved .focus-shadow,
|
|
329
|
-
[data-fieldname] > .saved .focus-shadow {
|
|
330
|
-
background-image: linear-gradient(
|
|
331
|
-
var(--color-feedback-green),
|
|
332
|
-
var(--color-feedback-green)
|
|
333
|
-
);
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
.focused-field.saving .focus-shadow,
|
|
337
|
-
[data-fieldname] > .saving .focus-shadow {
|
|
338
|
-
background-image: linear-gradient(
|
|
339
|
-
var(--color-feedback-orange),
|
|
340
|
-
var(--color-feedback-orange)
|
|
341
|
-
);
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
|
|
345
296
|
@layer base {
|
|
346
297
|
* {
|
|
347
298
|
@apply border-border outline-ring/50;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { EditOperation } from "../../../../types";
|
|
2
|
-
export interface AgentEditHistoryButtonProps {
|
|
3
|
-
operations: EditOperation[];
|
|
4
|
-
}
|
|
5
|
-
export declare function AgentEditHistoryButton({ operations, }: AgentEditHistoryButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -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,417 +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
|
-
const DEFAULT_READY_TIMEOUT_MS = 30_000;
|
|
6
|
-
export class BridgeClient {
|
|
7
|
-
iframe;
|
|
8
|
-
editorOrigin;
|
|
9
|
-
allowedHostOrigins;
|
|
10
|
-
bridgeUrl;
|
|
11
|
-
onEvent;
|
|
12
|
-
onError;
|
|
13
|
-
onReadyChange;
|
|
14
|
-
readyTimeoutMs;
|
|
15
|
-
readyTimeoutId;
|
|
16
|
-
hostOrigin;
|
|
17
|
-
connected = false;
|
|
18
|
-
ready = false;
|
|
19
|
-
status = "connecting";
|
|
20
|
-
hostVersion;
|
|
21
|
-
compatible;
|
|
22
|
-
hostAdvertisedCapabilities = [];
|
|
23
|
-
acknowledgedCapabilities = [];
|
|
24
|
-
hostRuntime;
|
|
25
|
-
lastError;
|
|
26
|
-
helloIntervalId;
|
|
27
|
-
pendingRequests = new Map();
|
|
28
|
-
constructor(options) {
|
|
29
|
-
this.iframe = options.iframe;
|
|
30
|
-
this.editorOrigin = options.editorOrigin;
|
|
31
|
-
this.allowedHostOrigins = options.allowedHostOrigins.filter(Boolean);
|
|
32
|
-
this.bridgeUrl = options.bridgeUrl;
|
|
33
|
-
this.onEvent = options.onEvent;
|
|
34
|
-
this.onError = options.onError;
|
|
35
|
-
this.onReadyChange = options.onReadyChange;
|
|
36
|
-
this.readyTimeoutMs = options.readyTimeoutMs ?? DEFAULT_READY_TIMEOUT_MS;
|
|
37
|
-
}
|
|
38
|
-
connect() {
|
|
39
|
-
if (this.connected)
|
|
40
|
-
return;
|
|
41
|
-
this.connected = true;
|
|
42
|
-
window.addEventListener("message", this.handleMessage);
|
|
43
|
-
this.armReadyTimeout();
|
|
44
|
-
this.armHelloHandshake();
|
|
45
|
-
logBridgeDiagnostic("client connected", {
|
|
46
|
-
iframeSrc: this.iframe.getAttribute("src"),
|
|
47
|
-
allowedHostOrigins: this.allowedHostOrigins,
|
|
48
|
-
configuredHostOrigin: this.getConfiguredHostOrigin(),
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
disconnect() {
|
|
52
|
-
if (!this.connected)
|
|
53
|
-
return;
|
|
54
|
-
this.connected = false;
|
|
55
|
-
this.ready = false;
|
|
56
|
-
this.status = "connecting";
|
|
57
|
-
this.compatible = undefined;
|
|
58
|
-
this.hostVersion = undefined;
|
|
59
|
-
this.hostAdvertisedCapabilities = [];
|
|
60
|
-
this.acknowledgedCapabilities = [];
|
|
61
|
-
this.hostRuntime = undefined;
|
|
62
|
-
this.rejectPendingRequests(new Error("The Parhelia bridge disconnected before the host responded."));
|
|
63
|
-
this.clearReadyTimeout();
|
|
64
|
-
this.clearHelloHandshake();
|
|
65
|
-
this.onReadyChange?.(false);
|
|
66
|
-
window.removeEventListener("message", this.handleMessage);
|
|
67
|
-
logBridgeDiagnostic("client disconnected");
|
|
68
|
-
}
|
|
69
|
-
isReady() {
|
|
70
|
-
return this.ready;
|
|
71
|
-
}
|
|
72
|
-
supportsCapability(capability) {
|
|
73
|
-
return this.ready && this.acknowledgedCapabilities.includes(capability);
|
|
74
|
-
}
|
|
75
|
-
sendCommand(name, payload, options) {
|
|
76
|
-
const targetWindow = this.iframe.contentWindow;
|
|
77
|
-
const targetOrigin = this.hostOrigin ?? this.getConfiguredHostOrigin();
|
|
78
|
-
if (!targetWindow || !targetOrigin) {
|
|
79
|
-
logBridgeDiagnostic("command skipped", {
|
|
80
|
-
name,
|
|
81
|
-
hasTargetWindow: Boolean(targetWindow),
|
|
82
|
-
targetOrigin,
|
|
83
|
-
iframeSrc: this.iframe.getAttribute("src"),
|
|
84
|
-
});
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
const message = createBridgeEnvelope(name, payload, {
|
|
88
|
-
requestId: options?.requestId,
|
|
89
|
-
});
|
|
90
|
-
logBridgeMessage("parent -> host", message);
|
|
91
|
-
targetWindow.postMessage(message, targetOrigin);
|
|
92
|
-
return true;
|
|
93
|
-
}
|
|
94
|
-
requestCommand(name, payload, expectedEventName, options) {
|
|
95
|
-
const requestId = options?.requestId ??
|
|
96
|
-
extractPayloadRequestId(payload) ??
|
|
97
|
-
createRequestId();
|
|
98
|
-
const timeoutMs = options?.timeoutMs ?? 10_000;
|
|
99
|
-
return new Promise((resolve, reject) => {
|
|
100
|
-
const timeoutId = window.setTimeout(() => {
|
|
101
|
-
this.pendingRequests.delete(requestId);
|
|
102
|
-
reject(new Error(`Timed out waiting for Parhelia bridge event '${expectedEventName}'.`));
|
|
103
|
-
}, timeoutMs);
|
|
104
|
-
this.pendingRequests.set(requestId, {
|
|
105
|
-
expectedEventName,
|
|
106
|
-
resolve: (payload) => resolve(payload),
|
|
107
|
-
reject,
|
|
108
|
-
timeoutId,
|
|
109
|
-
});
|
|
110
|
-
const sent = this.sendCommand(name, payload, { requestId });
|
|
111
|
-
if (!sent) {
|
|
112
|
-
window.clearTimeout(timeoutId);
|
|
113
|
-
this.pendingRequests.delete(requestId);
|
|
114
|
-
reject(new Error(`Could not send Parhelia bridge command '${name}' to the host.`));
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
getEditorOrigin() {
|
|
119
|
-
return this.editorOrigin;
|
|
120
|
-
}
|
|
121
|
-
getAcknowledgedCapabilities() {
|
|
122
|
-
return [...this.acknowledgedCapabilities];
|
|
123
|
-
}
|
|
124
|
-
getDiagnostics() {
|
|
125
|
-
return {
|
|
126
|
-
status: this.status,
|
|
127
|
-
editorVersion: PARHELIA_EDITING_BRIDGE_VERSION,
|
|
128
|
-
hostVersion: this.hostVersion,
|
|
129
|
-
compatible: this.compatible,
|
|
130
|
-
hostOrigin: this.hostOrigin,
|
|
131
|
-
hostAdvertisedCapabilities: [...this.hostAdvertisedCapabilities],
|
|
132
|
-
acknowledgedCapabilities: [...this.acknowledgedCapabilities],
|
|
133
|
-
runtime: this.hostRuntime,
|
|
134
|
-
lastError: this.lastError,
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
handleMessage = (event) => {
|
|
138
|
-
if (event.source !== this.iframe.contentWindow) {
|
|
139
|
-
if (isBridgeMessageFromHost(event.data)) {
|
|
140
|
-
logBridgeDiagnostic("event ignored: source mismatch", {
|
|
141
|
-
origin: event.origin,
|
|
142
|
-
name: event.data.name,
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
const allowedOrigins = this.getAllowedOrigins();
|
|
148
|
-
if (allowedOrigins.length > 0 &&
|
|
149
|
-
!allowedOrigins.some((origin) => isAllowedOrigin(event.origin, [origin]))) {
|
|
150
|
-
if (isBridgeMessageFromHost(event.data)) {
|
|
151
|
-
logBridgeDiagnostic("event ignored: origin rejected", {
|
|
152
|
-
origin: event.origin,
|
|
153
|
-
allowedOrigins,
|
|
154
|
-
name: event.data.name,
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
// Recognize any well-formed bridge message from the host (even with an
|
|
160
|
-
// unknown name), so newer events surface in diagnostics rather than being
|
|
161
|
-
// silently dropped.
|
|
162
|
-
if (!isBridgeMessageFromHost(event.data)) {
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
this.hostOrigin = event.origin;
|
|
166
|
-
// Dispatch only known event names; log + ignore unrecognized ones.
|
|
167
|
-
if (!isKnownBridgeEventName(event.data.name)) {
|
|
168
|
-
logBridgeDiagnostic("event ignored: unknown name", {
|
|
169
|
-
origin: event.origin,
|
|
170
|
-
name: event.data.name,
|
|
171
|
-
hostVersion: event.data.version,
|
|
172
|
-
});
|
|
173
|
-
return;
|
|
174
|
-
}
|
|
175
|
-
const bridgeEvent = event.data;
|
|
176
|
-
logBridgeMessage("host -> parent", bridgeEvent);
|
|
177
|
-
this.resolvePendingRequest(bridgeEvent);
|
|
178
|
-
if (bridgeEvent.name === "ready") {
|
|
179
|
-
this.handleReady(bridgeEvent, event.origin);
|
|
180
|
-
}
|
|
181
|
-
this.onEvent?.(bridgeEvent, this);
|
|
182
|
-
};
|
|
183
|
-
handleReady(event, origin) {
|
|
184
|
-
this.clearHelloHandshake();
|
|
185
|
-
const payload = event.payload;
|
|
186
|
-
const hostVersion = getReadyVersion(event);
|
|
187
|
-
this.hostVersion = hostVersion;
|
|
188
|
-
this.hostAdvertisedCapabilities = Array.isArray(payload.capabilities)
|
|
189
|
-
? payload.capabilities
|
|
190
|
-
: [];
|
|
191
|
-
this.hostRuntime = payload.runtime;
|
|
192
|
-
if (!isCompatibleBridgeVersion(hostVersion)) {
|
|
193
|
-
this.clearReadyTimeout();
|
|
194
|
-
this.ready = false;
|
|
195
|
-
this.compatible = false;
|
|
196
|
-
this.status = "incompatible";
|
|
197
|
-
this.acknowledgedCapabilities = [];
|
|
198
|
-
const message = `Editing host bridge is v${formatBridgeVersion(hostVersion)}; this editor expects v${formatBridgeVersion(PARHELIA_EDITING_BRIDGE_VERSION)}. Redeploy the bridge to ${origin}.`;
|
|
199
|
-
this.lastError = { message, at: Date.now() };
|
|
200
|
-
logBridgeDiagnostic("ready rejected: version mismatch", {
|
|
201
|
-
hostVersion,
|
|
202
|
-
expectedVersion: PARHELIA_EDITING_BRIDGE_VERSION,
|
|
203
|
-
origin,
|
|
204
|
-
});
|
|
205
|
-
this.onError?.(new Error(message), this);
|
|
206
|
-
return;
|
|
207
|
-
}
|
|
208
|
-
this.clearReadyTimeout();
|
|
209
|
-
this.compatible = true;
|
|
210
|
-
this.status = "ready";
|
|
211
|
-
this.acknowledgedCapabilities = negotiateCapabilities(EDITOR_SUPPORTED_CAPABILITIES, this.hostAdvertisedCapabilities);
|
|
212
|
-
this.ready = true;
|
|
213
|
-
this.lastError = undefined;
|
|
214
|
-
this.onReadyChange?.(true);
|
|
215
|
-
}
|
|
216
|
-
resolvePendingRequest(event) {
|
|
217
|
-
const requestId = getEventRequestId(event);
|
|
218
|
-
if (!requestId)
|
|
219
|
-
return;
|
|
220
|
-
const pending = this.pendingRequests.get(requestId);
|
|
221
|
-
if (!pending || pending.expectedEventName !== event.name)
|
|
222
|
-
return;
|
|
223
|
-
window.clearTimeout(pending.timeoutId);
|
|
224
|
-
this.pendingRequests.delete(requestId);
|
|
225
|
-
pending.resolve(event.payload);
|
|
226
|
-
}
|
|
227
|
-
rejectPendingRequests(error) {
|
|
228
|
-
for (const [, pending] of this.pendingRequests) {
|
|
229
|
-
window.clearTimeout(pending.timeoutId);
|
|
230
|
-
pending.reject(error);
|
|
231
|
-
}
|
|
232
|
-
this.pendingRequests.clear();
|
|
233
|
-
}
|
|
234
|
-
armReadyTimeout() {
|
|
235
|
-
this.clearReadyTimeout();
|
|
236
|
-
if (this.readyTimeoutMs <= 0)
|
|
237
|
-
return;
|
|
238
|
-
this.readyTimeoutId = window.setTimeout(() => {
|
|
239
|
-
this.readyTimeoutId = undefined;
|
|
240
|
-
if (this.ready)
|
|
241
|
-
return;
|
|
242
|
-
this.clearHelloHandshake();
|
|
243
|
-
this.status = "unreachable";
|
|
244
|
-
const message = "Couldn't reach the editing host bridge - it may be missing or outdated.";
|
|
245
|
-
this.lastError = { message, at: Date.now() };
|
|
246
|
-
this.onError?.(new Error(message), this);
|
|
247
|
-
}, this.readyTimeoutMs);
|
|
248
|
-
}
|
|
249
|
-
clearReadyTimeout() {
|
|
250
|
-
if (this.readyTimeoutId === undefined)
|
|
251
|
-
return;
|
|
252
|
-
window.clearTimeout(this.readyTimeoutId);
|
|
253
|
-
this.readyTimeoutId = undefined;
|
|
254
|
-
}
|
|
255
|
-
armHelloHandshake() {
|
|
256
|
-
this.clearHelloHandshake();
|
|
257
|
-
// The host posts `ready` only once on load. If this client attached after
|
|
258
|
-
// that (a reconnect or a late attach), it would never see `ready` while
|
|
259
|
-
// still receiving the ongoing event stream. Proactively ask the host to
|
|
260
|
-
// re-announce by sending `hello` until we receive a `ready`.
|
|
261
|
-
this.sendHello();
|
|
262
|
-
this.helloIntervalId = window.setInterval(() => {
|
|
263
|
-
if (this.ready) {
|
|
264
|
-
this.clearHelloHandshake();
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
this.sendHello();
|
|
268
|
-
}, 300);
|
|
269
|
-
}
|
|
270
|
-
sendHello() {
|
|
271
|
-
this.sendCommand("hello", this.bridgeUrl ? { bridgeUrl: this.bridgeUrl } : {});
|
|
272
|
-
}
|
|
273
|
-
clearHelloHandshake() {
|
|
274
|
-
if (this.helloIntervalId === undefined)
|
|
275
|
-
return;
|
|
276
|
-
window.clearInterval(this.helloIntervalId);
|
|
277
|
-
this.helloIntervalId = undefined;
|
|
278
|
-
}
|
|
279
|
-
getAllowedOrigins() {
|
|
280
|
-
const configuredOrigin = this.getConfiguredHostOrigin();
|
|
281
|
-
const origins = [...this.allowedHostOrigins];
|
|
282
|
-
if (configuredOrigin)
|
|
283
|
-
origins.push(configuredOrigin);
|
|
284
|
-
if (this.hostOrigin)
|
|
285
|
-
origins.push(this.hostOrigin);
|
|
286
|
-
return origins.filter((origin, index) => origin &&
|
|
287
|
-
origins.findIndex((candidate) => candidate === origin) === index);
|
|
288
|
-
}
|
|
289
|
-
getConfiguredHostOrigin() {
|
|
290
|
-
const src = this.iframe.getAttribute("src");
|
|
291
|
-
if (!src)
|
|
292
|
-
return undefined;
|
|
293
|
-
try {
|
|
294
|
-
const origin = new URL(src, window.location.href).origin;
|
|
295
|
-
if (this.allowedHostOrigins.length === 0 ||
|
|
296
|
-
this.allowedHostOrigins.some((allowed) => isAllowedOrigin(origin, [allowed]))) {
|
|
297
|
-
return origin;
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
catch {
|
|
301
|
-
return undefined;
|
|
302
|
-
}
|
|
303
|
-
return undefined;
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
function getReadyVersion(event) {
|
|
307
|
-
return event.payload.version ?? event.version;
|
|
308
|
-
}
|
|
309
|
-
function extractPayloadRequestId(payload) {
|
|
310
|
-
if (!payload || typeof payload !== "object" || !("requestId" in payload)) {
|
|
311
|
-
return undefined;
|
|
312
|
-
}
|
|
313
|
-
const requestId = payload.requestId;
|
|
314
|
-
return typeof requestId === "string" && requestId.length > 0
|
|
315
|
-
? requestId
|
|
316
|
-
: undefined;
|
|
317
|
-
}
|
|
318
|
-
function getEventRequestId(event) {
|
|
319
|
-
const payloadRequestId = extractPayloadRequestId(event.payload);
|
|
320
|
-
if (payloadRequestId)
|
|
321
|
-
return payloadRequestId;
|
|
322
|
-
return event.requestId;
|
|
323
|
-
}
|
|
324
|
-
function createRequestId() {
|
|
325
|
-
const cryptoObject = globalThis.crypto;
|
|
326
|
-
if (cryptoObject?.randomUUID) {
|
|
327
|
-
return cryptoObject.randomUUID();
|
|
328
|
-
}
|
|
329
|
-
return `bridge-request-${Date.now().toString(36)}-${Math.random()
|
|
330
|
-
.toString(36)
|
|
331
|
-
.slice(2)}`;
|
|
332
|
-
}
|
|
333
|
-
function isBridgeDebugEnabled() {
|
|
334
|
-
try {
|
|
335
|
-
const params = new URLSearchParams(window.location.search);
|
|
336
|
-
if (params.get("parhelia_bridge_debug") === "1")
|
|
337
|
-
return true;
|
|
338
|
-
const stored = window.localStorage.getItem("parhelia:bridge:debug");
|
|
339
|
-
return stored === "1" || stored === "true";
|
|
340
|
-
}
|
|
341
|
-
catch {
|
|
342
|
-
return false;
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
function logBridgeMessage(direction, message) {
|
|
346
|
-
if (!shouldLogBridgeMessage(message))
|
|
347
|
-
return;
|
|
348
|
-
const safeMessage = redactSensitiveBridgeFields(message);
|
|
349
|
-
const name = safeMessage &&
|
|
350
|
-
typeof safeMessage === "object" &&
|
|
351
|
-
"name" in safeMessage &&
|
|
352
|
-
typeof safeMessage.name === "string"
|
|
353
|
-
? `: ${safeMessage.name}`
|
|
354
|
-
: "";
|
|
355
|
-
console.log(`[Parhelia bridge message] ${direction}${name}`, safeMessage);
|
|
356
|
-
console.groupCollapsed(`[Parhelia bridge] ${direction}${name}`);
|
|
357
|
-
console.log(safeMessage);
|
|
358
|
-
console.groupEnd();
|
|
359
|
-
}
|
|
360
|
-
function shouldLogBridgeMessage(message) {
|
|
361
|
-
if (!isBridgeDebugEnabled())
|
|
362
|
-
return false;
|
|
363
|
-
if (!isHighFrequencyBridgeMessage(message))
|
|
364
|
-
return true;
|
|
365
|
-
return isVerboseBridgeDebugEnabled();
|
|
366
|
-
}
|
|
367
|
-
function isHighFrequencyBridgeMessage(message) {
|
|
368
|
-
if (!message || typeof message !== "object" || !("name" in message)) {
|
|
369
|
-
return false;
|
|
370
|
-
}
|
|
371
|
-
return (message.name === "scrollChanged" ||
|
|
372
|
-
message.name === "geometryUpdated" ||
|
|
373
|
-
message.name === "domUpdated" ||
|
|
374
|
-
message.name === "selectionChanged");
|
|
375
|
-
}
|
|
376
|
-
function isVerboseBridgeDebugEnabled() {
|
|
377
|
-
try {
|
|
378
|
-
const params = new URLSearchParams(window.location.search);
|
|
379
|
-
if (params.get("parhelia_bridge_debug") === "verbose")
|
|
380
|
-
return true;
|
|
381
|
-
if (params.get("parhelia_bridge_verbose") === "1")
|
|
382
|
-
return true;
|
|
383
|
-
const stored = window.localStorage.getItem("parhelia:bridge:debug:verbose");
|
|
384
|
-
return stored === "1" || stored === "true";
|
|
385
|
-
}
|
|
386
|
-
catch {
|
|
387
|
-
return false;
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
function logBridgeDiagnostic(message, details) {
|
|
391
|
-
if (!isBridgeDebugEnabled())
|
|
392
|
-
return;
|
|
393
|
-
if (details === undefined) {
|
|
394
|
-
console.debug(`[Parhelia bridge] ${message}`);
|
|
395
|
-
return;
|
|
396
|
-
}
|
|
397
|
-
console.debug(`[Parhelia bridge] ${message}`, redactSensitiveBridgeFields(details));
|
|
398
|
-
}
|
|
399
|
-
function redactSensitiveBridgeFields(value) {
|
|
400
|
-
if (Array.isArray(value)) {
|
|
401
|
-
return value.map(redactSensitiveBridgeFields);
|
|
402
|
-
}
|
|
403
|
-
if (!value || typeof value !== "object") {
|
|
404
|
-
return value;
|
|
405
|
-
}
|
|
406
|
-
const result = {};
|
|
407
|
-
for (const [key, nestedValue] of Object.entries(value)) {
|
|
408
|
-
if (/token|secret|signedContext|sessionId/i.test(key)) {
|
|
409
|
-
result[key] = "[redacted]";
|
|
410
|
-
}
|
|
411
|
-
else {
|
|
412
|
-
result[key] = redactSensitiveBridgeFields(nestedValue);
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
return result;
|
|
416
|
-
}
|
|
417
|
-
//# sourceMappingURL=BridgeClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BridgeClient.js","sourceRoot":"","sources":["../../../src/editor/bridge/BridgeClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,+BAA+B,EAC/B,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,GAUtB,MAAM,8BAA8B,CAAC;AAEtC,wEAAwE;AACxE,gEAAgE;AAChE,MAAM,6BAA6B,GACjC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAErC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AA2CxC,MAAM,OAAO,YAAY;IACf,MAAM,CAAoB;IAC1B,YAAY,CAAS;IACrB,kBAAkB,CAAW;IAC7B,SAAS,CAAU;IACnB,OAAO,CAAsD;IAC7D,OAAO,CAAgD;IACvD,aAAa,CAA4B;IACzC,cAAc,CAAS;IACvB,cAAc,CAAU;IACxB,UAAU,CAAU;IACpB,SAAS,GAAG,KAAK,CAAC;IAClB,KAAK,GAAG,KAAK,CAAC;IACd,MAAM,GAA2B,YAAY,CAAC;IAC9C,WAAW,CAAiB;IAC5B,UAAU,CAAW;IACrB,0BAA0B,GAAwB,EAAE,CAAC;IACrD,wBAAwB,GAAwB,EAAE,CAAC;IACnD,WAAW,CAAqB;IAChC,SAAS,CAAmC;IAC5C,eAAe,CAAU;IACzB,eAAe,GAAG,IAAI,GAAG,EAAgC,CAAC;IAElE,YAAY,OAA4B;QACtC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,wBAAwB,CAAC;IAC3E,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,mBAAmB,CAAC,kBAAkB,EAAE;YACtC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;YAC1C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,oBAAoB,EAAE,IAAI,CAAC,uBAAuB,EAAE;SACrD,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC;QACrC,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,qBAAqB,CACxB,IAAI,KAAK,CAAC,6DAA6D,CAAC,CACzE,CAAC;QACF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1D,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,kBAAkB,CAAC,UAA4B;QAC7C,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CACT,IAAW,EACX,OAA0C,EAC1C,OAAgC;QAEhC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACvE,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;YACnC,mBAAmB,CAAC,iBAAiB,EAAE;gBACrC,IAAI;gBACJ,eAAe,EAAE,OAAO,CAAC,YAAY,CAAC;gBACtC,YAAY;gBACZ,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;aAC3C,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE;YAClD,SAAS,EAAE,OAAO,EAAE,SAAS;SAC9B,CAAC,CAAC;QAEH,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC5C,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAIZ,IAAkB,EAClB,OAAiD,EACjD,iBAA6B,EAC7B,OAAoD;QAEpD,MAAM,SAAS,GACb,OAAO,EAAE,SAAS;YAClB,uBAAuB,CAAC,OAAO,CAAC;YAChC,eAAe,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,MAAM,CAAC;QAE/C,OAAO,IAAI,OAAO,CAChB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClB,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACvC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACvC,MAAM,CACJ,IAAI,KAAK,CACP,gDAAgD,iBAAiB,IAAI,CACtE,CACF,CAAC;YACJ,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE;gBAClC,iBAAiB;gBACjB,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CACnB,OAAO,CAAC,OAA+C,CAAC;gBAC1D,MAAM;gBACN,SAAS;aACV,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACvC,MAAM,CACJ,IAAI,KAAK,CACP,2CAA2C,IAAI,gBAAgB,CAChE,CACF,CAAC;YACJ,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,2BAA2B;QACzB,OAAO,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,cAAc;QACZ,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,aAAa,EAAE,+BAA+B;YAC9C,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,0BAA0B,EAAE,CAAC,GAAG,IAAI,CAAC,0BAA0B,CAAC;YAChE,wBAAwB,EAAE,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAC5D,OAAO,EAAE,IAAI,CAAC,WAAW;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;IAEO,aAAa,GAAG,CAAC,KAAmB,EAAE,EAAE;QAC9C,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC/C,IAAI,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,mBAAmB,CAAC,gCAAgC,EAAE;oBACpD,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;iBACtB,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChD,IACE,cAAc,CAAC,MAAM,GAAG,CAAC;YACzB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EACzE,CAAC;YACD,IAAI,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,mBAAmB,CAAC,gCAAgC,EAAE;oBACpD,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,cAAc;oBACd,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;iBACtB,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QAED,uEAAuE;QACvE,0EAA0E;QAC1E,oBAAoB;QACpB,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QAE/B,mEAAmE;QACnE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,mBAAmB,CAAC,6BAA6B,EAAE;gBACjD,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;gBACrB,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO;aAChC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,IAAmB,CAAC;QAC9C,gBAAgB,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QACxC,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,WAAmC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC;IAEM,WAAW,CAAC,KAA2B,EAAE,MAAc;QAC7D,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;YACnE,CAAC,CAAC,OAAO,CAAC,YAAY;YACtB,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;QAEnC,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;YAC7B,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,2BAA2B,mBAAmB,CAC5D,WAAW,CACZ,0BAA0B,mBAAmB,CAC5C,+BAA+B,CAChC,4BAA4B,MAAM,GAAG,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC7C,mBAAmB,CAAC,kCAAkC,EAAE;gBACtD,WAAW;gBACX,eAAe,EAAE,+BAA+B;gBAChD,MAAM;aACP,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,wBAAwB,GAAG,qBAAqB,CACnD,6BAA6B,EAC7B,IAAI,CAAC,0BAA0B,CAChC,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEO,qBAAqB,CAAC,KAAkB;QAC9C,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,iBAAiB,KAAK,KAAK,CAAC,IAAI;YAAE,OAAO;QAEjE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAEO,qBAAqB,CAAC,KAAY;QACxC,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC;YAAE,OAAO;QAErC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YAC3C,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAChC,IAAI,IAAI,CAAC,KAAK;gBAAE,OAAO;YACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;YAC5B,MAAM,OAAO,GACX,yEAAyE,CAAC;YAC5E,IAAI,CAAC,SAAS,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC1B,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;YAAE,OAAO;QAC9C,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;IAClC,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,0EAA0E;QAC1E,wEAAwE;QACxE,wEAAwE;QACxE,6DAA6D;QAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;YAC7C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO;QAC/C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;IACnC,CAAC;IAEO,iBAAiB;QACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACxD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC7C,IAAI,gBAAgB;YAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnD,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAChB,MAAM;YACN,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC,KAAK,KAAK,CACnE,CAAC;IACJ,CAAC;IAEO,uBAAuB;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QAE3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YACzD,IACE,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC;gBACpC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACvC,eAAe,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CACnC,EACD,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAED,SAAS,eAAe,CAAC,KAA2B;IAClD,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;AAChD,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAgB;IAC/C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,EAAE,CAAC;QACzE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAI,OAAmC,CAAC,SAAS,CAAC;IACjE,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAC1D,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAkB;IAC3C,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChE,IAAI,gBAAgB;QAAE,OAAO,gBAAgB,CAAC;IAC9C,OAAO,KAAK,CAAC,SAAS,CAAC;AACzB,CAAC;AAED,SAAS,eAAe;IACtB,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC;IACvC,IAAI,YAAY,EAAE,UAAU,EAAE,CAAC;QAC7B,OAAO,YAAY,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAED,OAAO,kBAAkB,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;SAC9D,QAAQ,CAAC,EAAE,CAAC;SACZ,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB;IAC3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACpE,OAAO,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,MAAM,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB,EAAE,OAAgB;IAC3D,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;QAAE,OAAO;IAE7C,MAAM,WAAW,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,IAAI,GACR,WAAW;QACX,OAAO,WAAW,KAAK,QAAQ;QAC/B,MAAM,IAAI,WAAW;QACrB,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ;QAClC,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,EAAE;QACzB,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,CAAC,GAAG,CAAC,6BAA6B,SAAS,GAAG,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;IAC1E,OAAO,CAAC,cAAc,CAAC,qBAAqB,SAAS,GAAG,IAAI,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,OAAO,CAAC,QAAQ,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAgB;IAC9C,IAAI,CAAC,oBAAoB,EAAE;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACxD,OAAO,2BAA2B,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,4BAA4B,CAAC,OAAgB;IACpD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,EAAE,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CACL,OAAO,CAAC,IAAI,KAAK,eAAe;QAChC,OAAO,CAAC,IAAI,KAAK,iBAAiB;QAClC,OAAO,CAAC,IAAI,KAAK,YAAY;QAC7B,OAAO,CAAC,IAAI,KAAK,kBAAkB,CACpC,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACnE,IAAI,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAE/D,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAC5E,OAAO,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,MAAM,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe,EAAE,OAAiB;IAC7D,IAAI,CAAC,oBAAoB,EAAE;QAAE,OAAO;IAEpC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,KAAK,CACX,qBAAqB,OAAO,EAAE,EAC9B,2BAA2B,CAAC,OAAO,CAAC,CACrC,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAc;IACjD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,IAAI,uCAAuC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -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 {};
|