@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
|
@@ -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 {};
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
-
import { createPortal } from "react-dom";
|
|
4
|
-
import { useEditContext } from "../client/editContext";
|
|
5
|
-
const INLINE_FORMAT_COMMANDS = [
|
|
6
|
-
{
|
|
7
|
-
id: "format-mark-bold",
|
|
8
|
-
label: "Bold",
|
|
9
|
-
icon: (_jsx("span", { style: { fontFamily: "monospace", fontWeight: "bold" }, children: "B" })),
|
|
10
|
-
command: "bold",
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
id: "format-mark-italic",
|
|
14
|
-
label: "Italic",
|
|
15
|
-
icon: (_jsx("span", { style: { fontFamily: "monospace", fontStyle: "italic" }, children: "I" })),
|
|
16
|
-
command: "italic",
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
id: "format-mark-underline",
|
|
20
|
-
label: "Underline",
|
|
21
|
-
icon: (_jsx("span", { style: { fontFamily: "monospace", textDecoration: "underline" }, children: "U" })),
|
|
22
|
-
command: "underline",
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
id: "format-mark-strikethrough",
|
|
26
|
-
label: "Strikethrough",
|
|
27
|
-
icon: (_jsx("span", { style: { fontFamily: "monospace", textDecoration: "line-through" }, children: "S" })),
|
|
28
|
-
command: "strikeThrough",
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
id: "format-mark-subscript",
|
|
32
|
-
label: "Subscript",
|
|
33
|
-
icon: _jsx("span", { style: { fontFamily: "monospace" }, children: "x2" }),
|
|
34
|
-
command: "subscript",
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
id: "format-mark-superscript",
|
|
38
|
-
label: "Superscript",
|
|
39
|
-
icon: _jsx("span", { style: { fontFamily: "monospace" }, children: "x^" }),
|
|
40
|
-
command: "superscript",
|
|
41
|
-
},
|
|
42
|
-
];
|
|
43
|
-
export function BridgeInlineFormatOverlay({ onCommand, }) {
|
|
44
|
-
const editContext = useEditContext();
|
|
45
|
-
const selectedRange = editContext?.selectedRange;
|
|
46
|
-
const overlayRef = useRef(null);
|
|
47
|
-
const [overlay, setOverlay] = useState({
|
|
48
|
-
visible: false,
|
|
49
|
-
left: 0,
|
|
50
|
-
top: 0,
|
|
51
|
-
activeCommandIds: [],
|
|
52
|
-
});
|
|
53
|
-
const visibleCommands = useMemo(() => selectedRange?.isRichText && selectedRange?.elementKey
|
|
54
|
-
? INLINE_FORMAT_COMMANDS
|
|
55
|
-
: [], [selectedRange?.elementKey, selectedRange?.isRichText]);
|
|
56
|
-
useEffect(() => {
|
|
57
|
-
if (!selectedRange?.text?.trim() ||
|
|
58
|
-
!selectedRange.elementKey ||
|
|
59
|
-
!selectedRange.isRichText ||
|
|
60
|
-
!selectedRange.clientRect ||
|
|
61
|
-
!onCommand ||
|
|
62
|
-
editContext?.readonly ||
|
|
63
|
-
(editContext?.mode !== "edit" && editContext?.mode !== "suggestions")) {
|
|
64
|
-
setOverlay((previous) => previous.visible ? { ...previous, visible: false } : previous);
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
const overlayWidth = overlayRef.current?.offsetWidth ?? 180;
|
|
68
|
-
const overlayHeight = overlayRef.current?.offsetHeight ?? 34;
|
|
69
|
-
const viewportPadding = 8;
|
|
70
|
-
const selectionGap = 8;
|
|
71
|
-
const rect = selectedRange.clientRect;
|
|
72
|
-
const anchorCenter = rect.left + Math.min(rect.width, overlayWidth) / 2;
|
|
73
|
-
let top = rect.top - overlayHeight - selectionGap;
|
|
74
|
-
if (top < viewportPadding) {
|
|
75
|
-
top = rect.bottom + selectionGap + 36;
|
|
76
|
-
}
|
|
77
|
-
top = Math.max(viewportPadding, Math.min(top, window.innerHeight - overlayHeight - viewportPadding));
|
|
78
|
-
const left = Math.max(viewportPadding, Math.min(anchorCenter - overlayWidth / 2, window.innerWidth - overlayWidth - viewportPadding));
|
|
79
|
-
setOverlay({
|
|
80
|
-
visible: true,
|
|
81
|
-
left,
|
|
82
|
-
top,
|
|
83
|
-
activeCommandIds: [],
|
|
84
|
-
});
|
|
85
|
-
}, [
|
|
86
|
-
editContext?.mode,
|
|
87
|
-
editContext?.readonly,
|
|
88
|
-
onCommand,
|
|
89
|
-
selectedRange?.clientRect,
|
|
90
|
-
selectedRange?.elementKey,
|
|
91
|
-
selectedRange?.isRichText,
|
|
92
|
-
selectedRange?.text,
|
|
93
|
-
]);
|
|
94
|
-
const applyCommand = (item, event) => {
|
|
95
|
-
event.preventDefault();
|
|
96
|
-
event.stopPropagation();
|
|
97
|
-
if (!selectedRange?.elementKey || !selectedRange.fieldId || !onCommand) {
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
onCommand({
|
|
101
|
-
elementKey: selectedRange.elementKey,
|
|
102
|
-
fieldId: selectedRange.fieldId,
|
|
103
|
-
command: item.command,
|
|
104
|
-
});
|
|
105
|
-
};
|
|
106
|
-
if (!overlay.visible || visibleCommands.length === 0) {
|
|
107
|
-
return null;
|
|
108
|
-
}
|
|
109
|
-
const content = (_jsx("div", { ref: overlayRef, className: "border-border-default bg-neutral-grey-5 fixed z-[1000] flex h-8 items-center gap-0.5 rounded-md border px-0.5 py-px shadow-lg", style: {
|
|
110
|
-
left: overlay.left,
|
|
111
|
-
top: overlay.top,
|
|
112
|
-
}, onMouseDown: (event) => {
|
|
113
|
-
event.preventDefault();
|
|
114
|
-
event.stopPropagation();
|
|
115
|
-
}, children: visibleCommands.map((item) => {
|
|
116
|
-
const isActive = overlay.activeCommandIds.includes(item.id);
|
|
117
|
-
return (_jsx("button", { type: "button", className: `inline-flex h-7 w-7 items-center justify-center rounded-sm p-0 text-[13px] leading-none font-semibold focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-blue-600 ${isActive
|
|
118
|
-
? "text-neutral-grey-100 bg-white"
|
|
119
|
-
: "bg-neutral-grey-5 text-neutral-grey-100 hover:bg-neutral-grey-10"}`, title: item.label, "aria-label": item.label, "aria-pressed": isActive, onMouseDown: (event) => applyCommand(item, event), children: _jsx("span", { "aria-hidden": "true", className: "inline-flex translate-y-px items-center justify-center leading-none", children: item.icon }) }, item.id));
|
|
120
|
-
}) }));
|
|
121
|
-
return createPortal(content, document.body);
|
|
122
|
-
}
|
|
123
|
-
//# sourceMappingURL=BridgeInlineFormatOverlay.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BridgeInlineFormatOverlay.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/BridgeInlineFormatOverlay.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { MutableRefObject } from "react";
|
|
2
|
-
import type { EditorMode } from "../client/editContext";
|
|
3
|
-
import type { FieldDescriptor } from "../pageModel";
|
|
4
|
-
import type { PageViewContext } from "../page-viewer/pageViewContext";
|
|
5
|
-
import type { BeginInlineEditCommandPayload, FieldValueChangedEventPayload, InlineEditEndedEventPayload, InteractionEventPayload } from "@parhelia/editor-bridge-head";
|
|
6
|
-
type UseBridgeInlineEditingOptions = {
|
|
7
|
-
pageViewContextRef: MutableRefObject<PageViewContext | undefined>;
|
|
8
|
-
activeBridgeInlineEditRef: MutableRefObject<BridgeInlineEditState | null>;
|
|
9
|
-
blockIframeBlurUntil: (timestamp: number) => void;
|
|
10
|
-
sendBeginInlineEdit: (payload: BeginInlineEditCommandPayload) => boolean;
|
|
11
|
-
};
|
|
12
|
-
export type BridgeInlineEditState = {
|
|
13
|
-
elementKey: string;
|
|
14
|
-
fieldId: string;
|
|
15
|
-
item?: FieldDescriptor["item"];
|
|
16
|
-
modeAtStart: EditorMode;
|
|
17
|
-
value?: string;
|
|
18
|
-
};
|
|
19
|
-
export declare function useBridgeInlineEditing({ pageViewContextRef, activeBridgeInlineEditRef, blockIframeBlurUntil, sendBeginInlineEdit, }: UseBridgeInlineEditingOptions): {
|
|
20
|
-
beginInlineEdit: (interaction: InteractionEventPayload) => Promise<boolean>;
|
|
21
|
-
clearInlineDedupe: () => void;
|
|
22
|
-
endFieldFocus: () => void;
|
|
23
|
-
handleFieldValueChanged: (payload: FieldValueChangedEventPayload) => void;
|
|
24
|
-
handleInlineEditEnded: (payload: InlineEditEndedEventPayload) => void;
|
|
25
|
-
};
|
|
26
|
-
export {};
|
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
import { useCallback, useEffect, useRef } from "react";
|
|
2
|
-
import { useEditContextRef, useFieldsEditContextRef, } from "../client/editContext";
|
|
3
|
-
import { getComponentById } from "../componentTreeHelper";
|
|
4
|
-
import { useSlotContext } from "../views/editorSlotContext";
|
|
5
|
-
export function useBridgeInlineEditing({ pageViewContextRef, activeBridgeInlineEditRef, blockIframeBlurUntil, sendBeginInlineEdit, }) {
|
|
6
|
-
const editContextRef = useEditContextRef();
|
|
7
|
-
const fieldsContextRef = useFieldsEditContextRef();
|
|
8
|
-
const slotContext = useSlotContext();
|
|
9
|
-
const slotIdRef = useRef(slotContext?.slotId);
|
|
10
|
-
const lastBridgeInlineValueRef = useRef(new Map());
|
|
11
|
-
useEffect(() => {
|
|
12
|
-
slotIdRef.current = slotContext?.slotId;
|
|
13
|
-
}, [slotContext?.slotId]);
|
|
14
|
-
const resolveFieldDescriptor = useCallback((fieldId, item, elementKey) => {
|
|
15
|
-
if (!fieldId)
|
|
16
|
-
return undefined;
|
|
17
|
-
const pageView = pageViewContextRef.current;
|
|
18
|
-
const structureField = pageView?.bridgeStructure?.fields.find((field) => (elementKey && field.elementKey === elementKey) ||
|
|
19
|
-
(field.fieldId === fieldId &&
|
|
20
|
-
(!item?.id || field.item?.id === item.id)));
|
|
21
|
-
const fallbackItem = pageView?.page?.item ?? pageView?.pageItemDescriptor;
|
|
22
|
-
const sourceItem = item?.id
|
|
23
|
-
? item
|
|
24
|
-
: (structureField?.item ?? fallbackItem);
|
|
25
|
-
const id = sourceItem?.id ?? fallbackItem?.id;
|
|
26
|
-
const language = sourceItem?.language ?? fallbackItem?.language;
|
|
27
|
-
const versionValue = sourceItem?.version ?? fallbackItem?.version;
|
|
28
|
-
const version = typeof versionValue === "number" && Number.isFinite(versionValue)
|
|
29
|
-
? versionValue
|
|
30
|
-
: undefined;
|
|
31
|
-
if (!id || !language || version === undefined)
|
|
32
|
-
return undefined;
|
|
33
|
-
return {
|
|
34
|
-
fieldId,
|
|
35
|
-
item: {
|
|
36
|
-
id,
|
|
37
|
-
language,
|
|
38
|
-
version,
|
|
39
|
-
name: sourceItem?.name ?? fallbackItem?.name,
|
|
40
|
-
displayName: sourceItem?.displayName ?? fallbackItem?.displayName,
|
|
41
|
-
path: sourceItem?.path ?? fallbackItem?.path,
|
|
42
|
-
database: sourceItem?.database ?? fallbackItem?.database,
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
}, [pageViewContextRef]);
|
|
46
|
-
const handleFieldValueChanged = useCallback((payload) => {
|
|
47
|
-
const editor = editContextRef.current;
|
|
48
|
-
if (!editor || editor.mode === "preview")
|
|
49
|
-
return;
|
|
50
|
-
const field = resolveFieldDescriptor(payload.fieldId, payload.item, payload.elementKey);
|
|
51
|
-
if (!field)
|
|
52
|
-
return;
|
|
53
|
-
// Input can arrive before the delayed click interaction finishes the
|
|
54
|
-
// beginInlineEdit handshake. Mark it active immediately so suggestion
|
|
55
|
-
// preview patches do not rewrite the focused host node and reset caret.
|
|
56
|
-
if (payload.elementKey) {
|
|
57
|
-
const activeEdit = activeBridgeInlineEditRef.current;
|
|
58
|
-
activeBridgeInlineEditRef.current = {
|
|
59
|
-
elementKey: payload.elementKey,
|
|
60
|
-
fieldId: field.fieldId,
|
|
61
|
-
item: field.item,
|
|
62
|
-
modeAtStart: activeEdit &&
|
|
63
|
-
activeEdit.elementKey === payload.elementKey &&
|
|
64
|
-
activeEdit.fieldId === field.fieldId
|
|
65
|
-
? activeEdit.modeAtStart
|
|
66
|
-
: editor.mode,
|
|
67
|
-
value: (payload.value ?? "").replaceAll("\u200B", ""),
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
const value = (payload.value ?? "").replaceAll("\u200B", "");
|
|
71
|
-
const valueKey = `${field.item.id}:${field.item.language}:${field.item.version}:${field.fieldId}`;
|
|
72
|
-
if (lastBridgeInlineValueRef.current.get(valueKey) === value)
|
|
73
|
-
return;
|
|
74
|
-
lastBridgeInlineValueRef.current.set(valueKey, value);
|
|
75
|
-
const activeEdit = activeBridgeInlineEditRef.current;
|
|
76
|
-
const modeAtStart = activeEdit &&
|
|
77
|
-
activeEdit.elementKey === payload.elementKey &&
|
|
78
|
-
activeEdit.fieldId === field.fieldId
|
|
79
|
-
? activeEdit.modeAtStart
|
|
80
|
-
: undefined;
|
|
81
|
-
editor.operations.editField({
|
|
82
|
-
field,
|
|
83
|
-
forceMode: modeAtStart === "suggestions" || editor.mode === "suggestions"
|
|
84
|
-
? "suggestions"
|
|
85
|
-
: undefined,
|
|
86
|
-
originatingSlotId: slotIdRef.current,
|
|
87
|
-
refresh: "none",
|
|
88
|
-
value,
|
|
89
|
-
});
|
|
90
|
-
}, [activeBridgeInlineEditRef, editContextRef, resolveFieldDescriptor]);
|
|
91
|
-
const endFieldFocus = useCallback(() => {
|
|
92
|
-
editContextRef.current?.operations.onFieldBlur?.();
|
|
93
|
-
fieldsContextRef.current?.setFocusedField(undefined, false);
|
|
94
|
-
}, [editContextRef, fieldsContextRef]);
|
|
95
|
-
const handleInlineEditEnded = useCallback((payload) => {
|
|
96
|
-
handleFieldValueChanged(payload);
|
|
97
|
-
endFieldFocus();
|
|
98
|
-
}, [endFieldFocus, handleFieldValueChanged]);
|
|
99
|
-
const beginInlineEdit = useCallback(async (interaction) => {
|
|
100
|
-
const editor = editContextRef.current;
|
|
101
|
-
if (!editor || !interaction.fieldId || !interaction.elementKey) {
|
|
102
|
-
logBridgeInlineEditDiagnostic("skipped: missing context", {
|
|
103
|
-
hasEditor: !!editor,
|
|
104
|
-
fieldId: interaction.fieldId,
|
|
105
|
-
elementKey: interaction.elementKey,
|
|
106
|
-
kind: interaction.kind,
|
|
107
|
-
});
|
|
108
|
-
return false;
|
|
109
|
-
}
|
|
110
|
-
if (interaction.ctrlKey || interaction.shiftKey || interaction.metaKey) {
|
|
111
|
-
logBridgeInlineEditDiagnostic("skipped: modifier click", {
|
|
112
|
-
fieldId: interaction.fieldId,
|
|
113
|
-
ctrlKey: interaction.ctrlKey,
|
|
114
|
-
shiftKey: interaction.shiftKey,
|
|
115
|
-
metaKey: interaction.metaKey,
|
|
116
|
-
});
|
|
117
|
-
return false;
|
|
118
|
-
}
|
|
119
|
-
if (editor.mode !== "edit" && editor.mode !== "suggestions") {
|
|
120
|
-
logBridgeInlineEditDiagnostic("skipped: mode", {
|
|
121
|
-
mode: editor.mode,
|
|
122
|
-
fieldId: interaction.fieldId,
|
|
123
|
-
});
|
|
124
|
-
return false;
|
|
125
|
-
}
|
|
126
|
-
const page = pageViewContextRef.current?.page;
|
|
127
|
-
if (editor.mode === "edit" && page && !page.item.canWriteItem) {
|
|
128
|
-
logBridgeInlineEditDiagnostic("skipped: item is not writable", {
|
|
129
|
-
fieldId: interaction.fieldId,
|
|
130
|
-
itemId: page.item.id,
|
|
131
|
-
});
|
|
132
|
-
return false;
|
|
133
|
-
}
|
|
134
|
-
const resolvedField = resolveFieldDescriptor(interaction.fieldId, interaction.item, interaction.elementKey);
|
|
135
|
-
if (!resolvedField) {
|
|
136
|
-
logBridgeInlineEditDiagnostic("skipped: unresolved field", {
|
|
137
|
-
fieldId: interaction.fieldId,
|
|
138
|
-
elementKey: interaction.elementKey,
|
|
139
|
-
itemId: interaction.item?.id,
|
|
140
|
-
});
|
|
141
|
-
return false;
|
|
142
|
-
}
|
|
143
|
-
if (editor.showLayoutComponents === false && page) {
|
|
144
|
-
const owner = getComponentById(resolvedField.item.id, page);
|
|
145
|
-
if (owner?.layoutId) {
|
|
146
|
-
logBridgeInlineEditDiagnostic("skipped: layout component hidden", {
|
|
147
|
-
fieldId: resolvedField.fieldId,
|
|
148
|
-
itemId: resolvedField.item.id,
|
|
149
|
-
});
|
|
150
|
-
return false;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
blockIframeBlurUntil(Date.now() + 500);
|
|
154
|
-
const shouldRequestLock = editor.mode !== "suggestions";
|
|
155
|
-
logBridgeInlineEditDiagnostic("requesting lock", {
|
|
156
|
-
fieldId: resolvedField.fieldId,
|
|
157
|
-
itemId: resolvedField.item.id,
|
|
158
|
-
language: resolvedField.item.language,
|
|
159
|
-
version: resolvedField.item.version,
|
|
160
|
-
shouldRequestLock,
|
|
161
|
-
});
|
|
162
|
-
const hasLock = (await fieldsContextRef.current?.setFocusedField(resolvedField, shouldRequestLock)) ?? false;
|
|
163
|
-
if (!hasLock) {
|
|
164
|
-
logBridgeInlineEditDiagnostic("skipped: lock failed", {
|
|
165
|
-
fieldId: resolvedField.fieldId,
|
|
166
|
-
itemId: resolvedField.item.id,
|
|
167
|
-
});
|
|
168
|
-
return false;
|
|
169
|
-
}
|
|
170
|
-
const sent = sendBeginInlineEdit({
|
|
171
|
-
elementKey: interaction.elementKey,
|
|
172
|
-
fieldId: resolvedField.fieldId,
|
|
173
|
-
clientX: interaction.clientX,
|
|
174
|
-
clientY: interaction.clientY,
|
|
175
|
-
});
|
|
176
|
-
logBridgeInlineEditDiagnostic(sent ? "started" : "command not sent", {
|
|
177
|
-
fieldId: resolvedField.fieldId,
|
|
178
|
-
itemId: resolvedField.item.id,
|
|
179
|
-
elementKey: interaction.elementKey,
|
|
180
|
-
});
|
|
181
|
-
return sent;
|
|
182
|
-
}, [
|
|
183
|
-
blockIframeBlurUntil,
|
|
184
|
-
editContextRef,
|
|
185
|
-
fieldsContextRef,
|
|
186
|
-
pageViewContextRef,
|
|
187
|
-
resolveFieldDescriptor,
|
|
188
|
-
sendBeginInlineEdit,
|
|
189
|
-
]);
|
|
190
|
-
return {
|
|
191
|
-
beginInlineEdit,
|
|
192
|
-
clearInlineDedupe: () => lastBridgeInlineValueRef.current.clear(),
|
|
193
|
-
endFieldFocus,
|
|
194
|
-
handleFieldValueChanged,
|
|
195
|
-
handleInlineEditEnded,
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
function logBridgeInlineEditDiagnostic(message, details) {
|
|
199
|
-
try {
|
|
200
|
-
const meta = import.meta;
|
|
201
|
-
const params = new URLSearchParams(window.location.search);
|
|
202
|
-
const enabled = meta.env?.DEV ||
|
|
203
|
-
meta.env?.MODE === "development" ||
|
|
204
|
-
window.location.hostname === "localhost" ||
|
|
205
|
-
params.get("parhelia_bridge_debug") === "1" ||
|
|
206
|
-
params.get("parhelia_bridge_debug") === "verbose" ||
|
|
207
|
-
window.localStorage.getItem("parhelia:bridge:debug") === "1" ||
|
|
208
|
-
window.localStorage.getItem("parhelia:bridge:debug") === "true";
|
|
209
|
-
if (!enabled)
|
|
210
|
-
return;
|
|
211
|
-
}
|
|
212
|
-
catch {
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
if (details) {
|
|
216
|
-
console.debug(`[Parhelia bridge] inline edit ${message}`, details);
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
console.debug(`[Parhelia bridge] inline edit ${message}`);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
//# sourceMappingURL=useBridgeInlineEditing.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useBridgeInlineEditing.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/useBridgeInlineEditing.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { ApplyFieldPatchCommandPayload } from "@parhelia/editor-bridge-head";
|
|
2
|
-
import type { SerializableField } from "@parhelia/editor-bridge-head";
|
|
3
|
-
import type { Field } from "../pageModel";
|
|
4
|
-
type ActiveBridgeInlineEdit = {
|
|
5
|
-
elementKey: string;
|
|
6
|
-
value?: string;
|
|
7
|
-
};
|
|
8
|
-
type BridgePatchDisplayValue = {
|
|
9
|
-
source: ApplyFieldPatchCommandPayload["source"];
|
|
10
|
-
value: string;
|
|
11
|
-
};
|
|
12
|
-
export declare function isBridgePatchableTextField(field: Pick<Field, "type">, isRichText: boolean | undefined): boolean;
|
|
13
|
-
export declare function getBridgeFieldPatchValue(field: Pick<Field, "rawValue" | "value">): string;
|
|
14
|
-
export declare function buildBridgeFieldPatchPayload({ field, structureField, display, activeInlineEdit, }: {
|
|
15
|
-
field: Field;
|
|
16
|
-
structureField: SerializableField;
|
|
17
|
-
display: BridgePatchDisplayValue;
|
|
18
|
-
activeInlineEdit: ActiveBridgeInlineEdit | null | undefined;
|
|
19
|
-
}): ApplyFieldPatchCommandPayload | undefined;
|
|
20
|
-
export {};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
export function isBridgePatchableTextField(field, isRichText) {
|
|
2
|
-
const fieldType = field.type.toLowerCase();
|
|
3
|
-
return (isRichText === true ||
|
|
4
|
-
fieldType === "rich text" ||
|
|
5
|
-
fieldType === "single-line text" ||
|
|
6
|
-
fieldType === "multi-line text");
|
|
7
|
-
}
|
|
8
|
-
export function getBridgeFieldPatchValue(field) {
|
|
9
|
-
if (field.rawValue !== undefined && field.rawValue !== null) {
|
|
10
|
-
return String(field.rawValue);
|
|
11
|
-
}
|
|
12
|
-
if (field.value === undefined || field.value === null)
|
|
13
|
-
return "";
|
|
14
|
-
return typeof field.value === "string" ? field.value : String(field.value);
|
|
15
|
-
}
|
|
16
|
-
export function buildBridgeFieldPatchPayload({ field, structureField, display, activeInlineEdit, }) {
|
|
17
|
-
if (!structureField.elementKey)
|
|
18
|
-
return undefined;
|
|
19
|
-
if (!isBridgePatchableTextField(field, structureField.isRichText)) {
|
|
20
|
-
return undefined;
|
|
21
|
-
}
|
|
22
|
-
if (structureField.elementKey === activeInlineEdit?.elementKey) {
|
|
23
|
-
return undefined;
|
|
24
|
-
}
|
|
25
|
-
return {
|
|
26
|
-
elementKey: structureField.elementKey,
|
|
27
|
-
fieldId: structureField.fieldId,
|
|
28
|
-
isRichText: structureField.isRichText || field.type.toLowerCase() === "rich text",
|
|
29
|
-
source: display.source,
|
|
30
|
-
value: display.value,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=bridgeFieldPatch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bridgeFieldPatch.js","sourceRoot":"","sources":["../../../src/editor/page-viewer/bridgeFieldPatch.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,0BAA0B,CACxC,KAA0B,EAC1B,UAA+B;IAE/B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,CACL,UAAU,KAAK,IAAI;QACnB,SAAS,KAAK,WAAW;QACzB,SAAS,KAAK,kBAAkB;QAChC,SAAS,KAAK,iBAAiB,CAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,KAAwC;IAExC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACjE,OAAO,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,EAC3C,KAAK,EACL,cAAc,EACd,OAAO,EACP,gBAAgB,GAMjB;IACC,IAAI,CAAC,cAAc,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAClE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,cAAc,CAAC,UAAU,KAAK,gBAAgB,EAAE,UAAU,EAAE,CAAC;QAC/D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,UAAU,EAAE,cAAc,CAAC,UAAU;QACrC,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,UAAU,EACR,cAAc,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW;QACvE,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;AACJ,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { Comment } from "../../types";
|
|
2
|
-
import type { SelectionRange } from "../client/editContext";
|
|
3
|
-
export type ViewportSelectionRect = {
|
|
4
|
-
x: number;
|
|
5
|
-
y: number;
|
|
6
|
-
width: number;
|
|
7
|
-
height: number;
|
|
8
|
-
top: number;
|
|
9
|
-
right: number;
|
|
10
|
-
bottom: number;
|
|
11
|
-
left: number;
|
|
12
|
-
};
|
|
13
|
-
export declare const COMMENT_TRANSIENT_SELECTION_RECT: unique symbol;
|
|
14
|
-
export declare const COMMENT_TRANSIENT_ELEMENT_KEY: unique symbol;
|
|
15
|
-
export type CommentWithTransientSelection = Comment & {
|
|
16
|
-
[COMMENT_TRANSIENT_ELEMENT_KEY]?: string;
|
|
17
|
-
[COMMENT_TRANSIENT_SELECTION_RECT]?: ViewportSelectionRect;
|
|
18
|
-
};
|
|
19
|
-
export declare const COMMENT_DRAFT_SELECTION_EVENT = "parhelia:comment-draft-selection";
|
|
20
|
-
export type CommentDraftSelectionEventDetail = {
|
|
21
|
-
range?: SelectionRange;
|
|
22
|
-
};
|
|
23
|
-
export declare function publishCommentDraftSelection(range?: SelectionRange): void;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export const COMMENT_TRANSIENT_SELECTION_RECT = Symbol("parhelia.commentTransientSelectionRect");
|
|
2
|
-
export const COMMENT_TRANSIENT_ELEMENT_KEY = Symbol("parhelia.commentTransientElementKey");
|
|
3
|
-
export const COMMENT_DRAFT_SELECTION_EVENT = "parhelia:comment-draft-selection";
|
|
4
|
-
export function publishCommentDraftSelection(range) {
|
|
5
|
-
window.dispatchEvent(new CustomEvent(COMMENT_DRAFT_SELECTION_EVENT, { detail: { range } }));
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=commentTransientSelection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commentTransientSelection.js","sourceRoot":"","sources":["../../../src/editor/reviews/commentTransientSelection.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,gCAAgC,GAAG,MAAM,CACpD,wCAAwC,CACzC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CACjD,qCAAqC,CACtC,CAAC;AAOF,MAAM,CAAC,MAAM,6BAA6B,GAAG,kCAAkC,CAAC;AAMhF,MAAM,UAAU,4BAA4B,CAAC,KAAsB;IACjE,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CACb,6BAA6B,EAC7B,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,CACtB,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { Comment, SuggestedEdit } from "../../types";
|
|
2
|
-
export type FeedbackItem = Comment | SuggestedEdit;
|
|
3
|
-
export declare function isSuggestedEdit(item: FeedbackItem): item is SuggestedEdit;
|
|
4
|
-
export declare function getFeedbackActivityTime(item: FeedbackItem, suggestionCommentsBySuggestionId?: ReadonlyMap<string, Comment[]>): number;
|
|
5
|
-
export declare function sortFeedbackItemsMostRecentFirst(items: FeedbackItem[], suggestionCommentsBySuggestionId?: ReadonlyMap<string, Comment[]>): FeedbackItem[];
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export function isSuggestedEdit(item) {
|
|
2
|
-
return "oldValue" in item && "newValue" in item;
|
|
3
|
-
}
|
|
4
|
-
function parseCreatedTime(value) {
|
|
5
|
-
if (!value)
|
|
6
|
-
return 0;
|
|
7
|
-
const time = new Date(value).getTime();
|
|
8
|
-
return Number.isFinite(time) ? time : 0;
|
|
9
|
-
}
|
|
10
|
-
export function getFeedbackActivityTime(item, suggestionCommentsBySuggestionId) {
|
|
11
|
-
const itemTime = parseCreatedTime(item.created);
|
|
12
|
-
if (!isSuggestedEdit(item))
|
|
13
|
-
return itemTime;
|
|
14
|
-
const latestCommentTime = Math.max(0, ...(suggestionCommentsBySuggestionId?.get(item.id) || []).map((comment) => parseCreatedTime(comment.created)));
|
|
15
|
-
return Math.max(itemTime, latestCommentTime);
|
|
16
|
-
}
|
|
17
|
-
export function sortFeedbackItemsMostRecentFirst(items, suggestionCommentsBySuggestionId) {
|
|
18
|
-
return items
|
|
19
|
-
.map((item, index) => ({ item, index }))
|
|
20
|
-
.sort((a, b) => {
|
|
21
|
-
const timeDifference = getFeedbackActivityTime(b.item, suggestionCommentsBySuggestionId) -
|
|
22
|
-
getFeedbackActivityTime(a.item, suggestionCommentsBySuggestionId);
|
|
23
|
-
return timeDifference || a.index - b.index;
|
|
24
|
-
})
|
|
25
|
-
.map(({ item }) => item);
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=feedbackOrdering.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"feedbackOrdering.js","sourceRoot":"","sources":["../../../src/editor/reviews/feedbackOrdering.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,eAAe,CAAC,IAAkB;IAChD,OAAO,UAAU,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,CAAC;AAClD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC;IAErB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;IACvC,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAAkB,EAClB,gCAAiE;IAEjE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE5C,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAChC,CAAC,EACD,GAAG,CAAC,gCAAgC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACxE,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAClC,CACF,CAAC;IAEF,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,KAAqB,EACrB,gCAAiE;IAEjE,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;SACvC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,cAAc,GAClB,uBAAuB,CAAC,CAAC,CAAC,IAAI,EAAE,gCAAgC,CAAC;YACjE,uBAAuB,CAAC,CAAC,CAAC,IAAI,EAAE,gCAAgC,CAAC,CAAC;QAEpE,OAAO,cAAc,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IAC7C,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
|