@parhelia/core 0.4.12825 → 0.4.12871
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/emoji/EmojiPicker.d.ts +18 -0
- package/dist/components/emoji/EmojiPicker.js +102 -0
- package/dist/components/emoji/EmojiPicker.js.map +1 -0
- package/dist/components/emoji/EmojiText.d.ts +19 -0
- package/dist/components/emoji/EmojiText.js +30 -0
- package/dist/components/emoji/EmojiText.js.map +1 -0
- package/dist/components/emoji/emojiData.generated.d.ts +2 -0
- package/dist/components/emoji/emojiData.generated.js +1878 -0
- package/dist/components/emoji/emojiData.generated.js.map +1 -0
- package/dist/components/emoji/emojiIndex.d.ts +46 -0
- package/dist/components/emoji/emojiIndex.js +173 -0
- package/dist/components/emoji/emojiIndex.js.map +1 -0
- package/dist/components/emoji/emoticons.d.ts +21 -0
- package/dist/components/emoji/emoticons.js +167 -0
- package/dist/components/emoji/emoticons.js.map +1 -0
- package/dist/components/emoji/textareaInsert.d.ts +19 -0
- package/dist/components/emoji/textareaInsert.js +29 -0
- package/dist/components/emoji/textareaInsert.js.map +1 -0
- package/dist/components/emoji/twemoji.d.ts +30 -0
- package/dist/components/emoji/twemoji.js +84 -0
- package/dist/components/emoji/twemoji.js.map +1 -0
- package/dist/components/ui/alert.d.ts +6 -1
- package/dist/components/ui/alert.js +12 -3
- package/dist/components/ui/alert.js.map +1 -1
- package/dist/components/ui/context-menu.d.ts +25 -0
- package/dist/components/ui/context-menu.js +54 -36
- package/dist/components/ui/context-menu.js.map +1 -1
- package/dist/components/ui/copy-button.d.ts +3 -1
- package/dist/components/ui/copy-button.js +13 -2
- package/dist/components/ui/copy-button.js.map +1 -1
- package/dist/components/ui/mention-textarea.d.ts +8 -0
- package/dist/components/ui/mention-textarea.js +98 -46
- package/dist/components/ui/mention-textarea.js.map +1 -1
- package/dist/components/ui/paste-button.js +11 -1
- package/dist/components/ui/paste-button.js.map +1 -1
- package/dist/config/config.js +43 -4
- package/dist/config/config.js.map +1 -1
- package/dist/config/types.d.ts +2 -0
- package/dist/config/types.js.map +1 -1
- package/dist/editor/ConcurrentUserLimitDialog.js +5 -2
- package/dist/editor/ConcurrentUserLimitDialog.js.map +1 -1
- package/dist/editor/ContentTree.js +7 -2
- package/dist/editor/ContentTree.js.map +1 -1
- package/dist/editor/ContextMenu.js +11 -36
- package/dist/editor/ContextMenu.js.map +1 -1
- package/dist/editor/EditorWarning.js +8 -4
- package/dist/editor/EditorWarning.js.map +1 -1
- package/dist/editor/FieldList.js +1 -1
- package/dist/editor/FieldList.js.map +1 -1
- package/dist/editor/FieldListField.js +18 -13
- package/dist/editor/FieldListField.js.map +1 -1
- package/dist/editor/FieldListFieldWithFallbacks.js +1 -1
- package/dist/editor/GlobalMenuBar.js +2 -1
- package/dist/editor/GlobalMenuBar.js.map +1 -1
- package/dist/editor/ImageEditor.js +3 -1
- package/dist/editor/ImageEditor.js.map +1 -1
- package/dist/editor/MainLayout.js +1 -1
- package/dist/editor/MainLayout.js.map +1 -1
- package/dist/editor/MigrationsView.js +3 -2
- package/dist/editor/MigrationsView.js.map +1 -1
- package/dist/editor/MobileLayout.js +43 -20
- package/dist/editor/MobileLayout.js.map +1 -1
- package/dist/editor/PictureEditor.js +4 -2
- package/dist/editor/PictureEditor.js.map +1 -1
- package/dist/editor/QuickItemSwitcher.js +4 -2
- package/dist/editor/QuickItemSwitcher.js.map +1 -1
- package/dist/editor/agent-changes/agentChangeTargets.js +6 -0
- package/dist/editor/agent-changes/agentChangeTargets.js.map +1 -1
- package/dist/editor/agent-changes/agentChangeTextHighlight.d.ts +48 -4
- package/dist/editor/agent-changes/agentChangeTextHighlight.js +67 -9
- package/dist/editor/agent-changes/agentChangeTextHighlight.js.map +1 -1
- package/dist/editor/ai/HeartbeatDiagnosticsPanel.js +1 -1
- package/dist/editor/ai/InlineAiDialog.js +11 -8
- package/dist/editor/ai/InlineAiDialog.js.map +1 -1
- package/dist/editor/ai/InlineAiTrigger.js +18 -14
- package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
- package/dist/editor/ai/agentActivitySummary.js +5 -0
- package/dist/editor/ai/agentActivitySummary.js.map +1 -1
- package/dist/editor/ai/agentMessageConversion.js +1 -0
- package/dist/editor/ai/agentMessageConversion.js.map +1 -1
- package/dist/editor/ai/agentMessageMarkdown.js +4 -4
- package/dist/editor/ai/agentMessageMarkdown.js.map +1 -1
- package/dist/editor/ai/dialogs/capturePageScreenshot.d.ts +4 -1
- package/dist/editor/ai/dialogs/capturePageScreenshot.js +214 -44
- package/dist/editor/ai/dialogs/capturePageScreenshot.js.map +1 -1
- package/dist/editor/ai/dialogs/captureShared.d.ts +8 -1
- package/dist/editor/ai/dialogs/captureShared.js +4 -1
- package/dist/editor/ai/dialogs/captureShared.js.map +1 -1
- package/dist/editor/ai/dialogs/offscreenPageCapture.js +1 -1
- package/dist/editor/ai/dialogs/offscreenPageCapture.js.map +1 -1
- package/dist/editor/ai/prepareInlineAiTextSelection.d.ts +2 -1
- package/dist/editor/ai/prepareInlineAiTextSelection.js +1 -2
- package/dist/editor/ai/prepareInlineAiTextSelection.js.map +1 -1
- package/dist/editor/ai/terminal/agentCost.d.ts +2 -0
- package/dist/editor/ai/terminal/agentCost.js +1 -0
- package/dist/editor/ai/terminal/agentCost.js.map +1 -1
- package/dist/editor/ai/terminal/agentSessionLiveTotals.js +3 -0
- package/dist/editor/ai/terminal/agentSessionLiveTotals.js.map +1 -1
- package/dist/editor/ai/terminal/agentSessionSelectors.d.ts +5 -2
- package/dist/editor/ai/terminal/agentSessionSelectors.js +5 -2
- package/dist/editor/ai/terminal/agentSessionSelectors.js.map +1 -1
- package/dist/editor/ai/terminal/agentSessionState.js +8 -1
- package/dist/editor/ai/terminal/agentSessionState.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.js +2 -2
- package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentBanners.js +2 -2
- package/dist/editor/ai/terminal/components/AgentBanners.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentCostDisplay.d.ts +2 -0
- package/dist/editor/ai/terminal/components/AgentCostDisplay.js +2 -1
- package/dist/editor/ai/terminal/components/AgentCostDisplay.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentFullPromptControls.js +1 -1
- package/dist/editor/ai/terminal/components/AgentFullPromptControls.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentModeSelector.js +7 -3
- package/dist/editor/ai/terminal/components/AgentModeSelector.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js +3 -3
- package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptInputArea.js +2 -2
- package/dist/editor/ai/terminal/components/AgentReadOnlyNotice.js +1 -1
- package/dist/editor/ai/terminal/components/AgentReadOnlyNotice.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.d.ts +5 -2
- package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.js +43 -4
- package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalSummaryLayout.js +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalSummaryLayout.js.map +1 -1
- package/dist/editor/ai/terminal/components/AiResponseMessage.js +32 -15
- package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
- package/dist/editor/ai/terminal/components/ApprovalCard.d.ts +3 -1
- package/dist/editor/ai/terminal/components/ApprovalCard.js +8 -16
- package/dist/editor/ai/terminal/components/ApprovalCard.js.map +1 -1
- package/dist/editor/ai/terminal/components/CreateItemToolCallContent.js +1 -1
- package/dist/editor/ai/terminal/components/CreateItemToolCallContent.js.map +1 -1
- package/dist/editor/ai/terminal/components/EditFieldToolCallContent.d.ts +7 -4
- package/dist/editor/ai/terminal/components/EditFieldToolCallContent.js +57 -32
- package/dist/editor/ai/terminal/components/EditFieldToolCallContent.js.map +1 -1
- package/dist/editor/ai/terminal/components/ResponseTurnDuration.js +1 -2
- package/dist/editor/ai/terminal/components/ResponseTurnDuration.js.map +1 -1
- package/dist/editor/ai/terminal/components/ToolCallDiagnosticsPanel.d.ts +6 -0
- package/dist/editor/ai/terminal/components/ToolCallDiagnosticsPanel.js +61 -0
- package/dist/editor/ai/terminal/components/ToolCallDiagnosticsPanel.js.map +1 -0
- package/dist/editor/ai/terminal/components/ToolCallDisplay.d.ts +5 -0
- package/dist/editor/ai/terminal/components/ToolCallDisplay.js +19 -8
- package/dist/editor/ai/terminal/components/ToolCallDisplay.js.map +1 -1
- package/dist/editor/ai/terminal/components/UserMessage.js +4 -2
- package/dist/editor/ai/terminal/components/UserMessage.js.map +1 -1
- package/dist/editor/ai/terminal/components/ValueDiff.js +1 -1
- package/dist/editor/ai/terminal/components/ValueDiff.js.map +1 -1
- package/dist/editor/ai/terminal/components/toolCallContentRenderers.js +7 -4
- package/dist/editor/ai/terminal/components/toolCallContentRenderers.js.map +1 -1
- package/dist/editor/ai/terminal/components/useApprovalActions.js +1 -1
- package/dist/editor/ai/terminal/components/useApprovalActions.js.map +1 -1
- package/dist/editor/ai/terminal/toolCallDiagnostics.d.ts +34 -0
- package/dist/editor/ai/terminal/toolCallDiagnostics.js +218 -0
- package/dist/editor/ai/terminal/toolCallDiagnostics.js.map +1 -0
- package/dist/editor/ai/terminal/types.d.ts +1 -0
- package/dist/editor/ai/terminal/useAgentEditorContext.js +3 -1
- package/dist/editor/ai/terminal/useAgentEditorContext.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentLoadPipeline.d.ts +1 -0
- package/dist/editor/ai/terminal/useAgentLoadPipeline.js +2 -1
- package/dist/editor/ai/terminal/useAgentLoadPipeline.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentLoader.d.ts +2 -0
- package/dist/editor/ai/terminal/useAgentLoader.js +17 -2
- package/dist/editor/ai/terminal/useAgentLoader.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentModeState.d.ts +5 -1
- package/dist/editor/ai/terminal/useAgentModeState.js +11 -3
- package/dist/editor/ai/terminal/useAgentModeState.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentRunDeltaSocketHandler.d.ts +1 -0
- package/dist/editor/ai/terminal/useAgentRunDeltaSocketHandler.js +5 -1
- package/dist/editor/ai/terminal/useAgentRunDeltaSocketHandler.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentRunRefs.d.ts +1 -0
- package/dist/editor/ai/terminal/useAgentRunRefs.js +3 -0
- package/dist/editor/ai/terminal/useAgentRunRefs.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentSessionSync.d.ts +6 -0
- package/dist/editor/ai/terminal/useAgentSessionSync.js +27 -3
- package/dist/editor/ai/terminal/useAgentSessionSync.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentSettingsData.d.ts +1 -1
- package/dist/editor/ai/terminal/useAgentSettingsPanel.js +7 -6
- package/dist/editor/ai/terminal/useAgentSettingsPanel.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.js +14 -2
- package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentStatusBarContent.js +11 -4
- package/dist/editor/ai/terminal/useAgentStatusBarContent.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentStreamPipeline.d.ts +1 -0
- package/dist/editor/ai/terminal/useAgentStreamPipeline.js +2 -1
- package/dist/editor/ai/terminal/useAgentStreamPipeline.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentSubmitHandlers.js +11 -2
- package/dist/editor/ai/terminal/useAgentSubmitHandlers.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalController.js +3 -1
- package/dist/editor/ai/terminal/useAgentTerminalController.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentToolCallHandler.js +1 -0
- package/dist/editor/ai/terminal/useAgentToolCallHandler.js.map +1 -1
- package/dist/editor/ai/types.d.ts +4 -0
- package/dist/editor/ai-image-editor/AiImageEditorDialog.d.ts +33 -0
- package/dist/editor/ai-image-editor/AiImageEditorDialog.js +372 -127
- package/dist/editor/ai-image-editor/AiImageEditorDialog.js.map +1 -1
- package/dist/editor/ai-image-editor/AiImageResultOverlay.js +4 -2
- package/dist/editor/ai-image-editor/AiImageResultOverlay.js.map +1 -1
- package/dist/editor/bridge/BridgeClient.js +11 -0
- package/dist/editor/bridge/BridgeClient.js.map +1 -1
- package/dist/editor/bridge/protocol.d.ts +56 -0
- package/dist/editor/bridge/protocol.js +3 -0
- package/dist/editor/bridge/protocol.js.map +1 -1
- package/dist/editor/client/EditorShell.js +331 -122
- package/dist/editor/client/EditorShell.js.map +1 -1
- package/dist/editor/client/SessionExpiredOverlay.js +9 -2
- package/dist/editor/client/SessionExpiredOverlay.js.map +1 -1
- package/dist/editor/client/clipboardStorage.d.ts +10 -0
- package/dist/editor/client/clipboardStorage.js +57 -0
- package/dist/editor/client/clipboardStorage.js.map +1 -0
- package/dist/editor/client/editContext.d.ts +92 -11
- package/dist/editor/client/editContext.js.map +1 -1
- package/dist/editor/client/editHistoryReconciliation.d.ts +2 -1
- package/dist/editor/client/editHistoryReconciliation.js +5 -2
- package/dist/editor/client/editHistoryReconciliation.js.map +1 -1
- package/dist/editor/client/hooks/useRepositoryItemRefresh.d.ts +4 -0
- package/dist/editor/client/hooks/useRepositoryItemRefresh.js +62 -0
- package/dist/editor/client/hooks/useRepositoryItemRefresh.js.map +1 -0
- package/dist/editor/client/hooks/useSocketMessageHandler.d.ts +6 -0
- package/dist/editor/client/hooks/useSocketMessageHandler.js +66 -3
- package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
- package/dist/editor/client/itemsRepository.d.ts +10 -2
- package/dist/editor/client/itemsRepository.js +224 -43
- package/dist/editor/client/itemsRepository.js.map +1 -1
- package/dist/editor/client/liveEditState.d.ts +16 -0
- package/dist/editor/client/liveEditState.js +25 -0
- package/dist/editor/client/liveEditState.js.map +1 -0
- package/dist/editor/client/liveSessionState.d.ts +6 -0
- package/dist/editor/client/liveSessionState.js +20 -0
- package/dist/editor/client/liveSessionState.js.map +1 -0
- package/dist/editor/client/operations.d.ts +13 -2
- package/dist/editor/client/operations.js +100 -29
- package/dist/editor/client/operations.js.map +1 -1
- package/dist/editor/client/pageModelBuilder.d.ts +6 -0
- package/dist/editor/client/pageModelBuilder.js +74 -7
- package/dist/editor/client/pageModelBuilder.js.map +1 -1
- package/dist/editor/client/ui/EditorChrome.d.ts +2 -2
- package/dist/editor/client/ui/EditorChrome.js +12 -8
- package/dist/editor/client/ui/EditorChrome.js.map +1 -1
- package/dist/editor/client/ui/FullscreenControls.d.ts +3 -5
- package/dist/editor/client/ui/FullscreenControls.js +2 -2
- package/dist/editor/client/ui/FullscreenControls.js.map +1 -1
- package/dist/editor/client/valueStore.d.ts +22 -0
- package/dist/editor/client/valueStore.js +29 -0
- package/dist/editor/client/valueStore.js.map +1 -0
- package/dist/editor/commands/componentClipboardCommands.d.ts +35 -0
- package/dist/editor/commands/componentClipboardCommands.js +271 -0
- package/dist/editor/commands/componentClipboardCommands.js.map +1 -0
- package/dist/editor/commands/componentCommands.js +80 -19
- package/dist/editor/commands/componentCommands.js.map +1 -1
- package/dist/editor/commands/componentMenuGroups.d.ts +2 -0
- package/dist/editor/commands/componentMenuGroups.js +43 -0
- package/dist/editor/commands/componentMenuGroups.js.map +1 -0
- package/dist/editor/commands/itemCommands.d.ts +9 -0
- package/dist/editor/commands/itemCommands.js +76 -9
- package/dist/editor/commands/itemCommands.js.map +1 -1
- package/dist/editor/component-conversion/ComponentTypePickerDialog.d.ts +12 -0
- package/dist/editor/component-conversion/ComponentTypePickerDialog.js +40 -0
- package/dist/editor/component-conversion/ComponentTypePickerDialog.js.map +1 -0
- package/dist/editor/component-conversion/ConversionAiDebugButton.d.ts +17 -0
- package/dist/editor/component-conversion/ConversionAiDebugButton.js +80 -0
- package/dist/editor/component-conversion/ConversionAiDebugButton.js.map +1 -0
- package/dist/editor/component-conversion/ConvertComponentDialog.d.ts +28 -0
- package/dist/editor/component-conversion/ConvertComponentDialog.js +633 -0
- package/dist/editor/component-conversion/ConvertComponentDialog.js.map +1 -0
- package/dist/editor/component-conversion/conversionModel.d.ts +109 -0
- package/dist/editor/component-conversion/conversionModel.js +519 -0
- package/dist/editor/component-conversion/conversionModel.js.map +1 -0
- package/dist/editor/component-conversion/conversionService.d.ts +12 -0
- package/dist/editor/component-conversion/conversionService.js +16 -0
- package/dist/editor/component-conversion/conversionService.js.map +1 -0
- package/dist/editor/component-conversion/conversionTypes.d.ts +214 -0
- package/dist/editor/component-conversion/conversionTypes.js +2 -0
- package/dist/editor/component-conversion/conversionTypes.js.map +1 -0
- package/dist/editor/component-conversion/convertComponentsCommand.d.ts +25 -0
- package/dist/editor/component-conversion/convertComponentsCommand.js +196 -0
- package/dist/editor/component-conversion/convertComponentsCommand.js.map +1 -0
- package/dist/editor/editor-warnings/ValidationErrors.js +4 -4
- package/dist/editor/editor-warnings/ValidationErrors.js.map +1 -1
- package/dist/editor/field-types/AttachmentEditor.js +4 -3
- package/dist/editor/field-types/AttachmentEditor.js.map +1 -1
- package/dist/editor/field-types/DateFieldEditor.js +2 -1
- package/dist/editor/field-types/DateFieldEditor.js.map +1 -1
- package/dist/editor/field-types/DateTimeFieldEditor.js +2 -1
- package/dist/editor/field-types/DateTimeFieldEditor.js.map +1 -1
- package/dist/editor/field-types/DropLinkEditor.js +3 -1
- package/dist/editor/field-types/DropLinkEditor.js.map +1 -1
- package/dist/editor/field-types/DropListEditor.js +3 -1
- package/dist/editor/field-types/DropListEditor.js.map +1 -1
- package/dist/editor/field-types/FieldHistoryBoundary.js +28 -7
- package/dist/editor/field-types/FieldHistoryBoundary.js.map +1 -1
- package/dist/editor/field-types/ImageFieldEditor.js +3 -1
- package/dist/editor/field-types/ImageFieldEditor.js.map +1 -1
- package/dist/editor/field-types/InternalLinkFieldEditor.js +2 -1
- package/dist/editor/field-types/InternalLinkFieldEditor.js.map +1 -1
- package/dist/editor/field-types/LinkFieldEditor.js +2 -1
- package/dist/editor/field-types/LinkFieldEditor.js.map +1 -1
- package/dist/editor/field-types/MultiLineText.js +68 -22
- package/dist/editor/field-types/MultiLineText.js.map +1 -1
- package/dist/editor/field-types/NameValueListEditor.js +3 -1
- package/dist/editor/field-types/NameValueListEditor.js.map +1 -1
- package/dist/editor/field-types/PictureFieldEditor.js +4 -2
- package/dist/editor/field-types/PictureFieldEditor.js.map +1 -1
- package/dist/editor/field-types/RawEditor.js +7 -4
- package/dist/editor/field-types/RawEditor.js.map +1 -1
- package/dist/editor/field-types/RichTextEditor.d.ts +1 -2
- package/dist/editor/field-types/RichTextEditor.js +5 -26
- package/dist/editor/field-types/RichTextEditor.js.map +1 -1
- package/dist/editor/field-types/RichTextEditorComponent.d.ts +1 -2
- package/dist/editor/field-types/RichTextEditorComponent.js +120 -34
- package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
- package/dist/editor/field-types/SingleLineText.js +68 -22
- package/dist/editor/field-types/SingleLineText.js.map +1 -1
- package/dist/editor/field-types/TreeListEditor.js +4 -2
- package/dist/editor/field-types/TreeListEditor.js.map +1 -1
- package/dist/editor/field-types/fieldStyles.d.ts +21 -0
- package/dist/editor/field-types/fieldStyles.js +22 -0
- package/dist/editor/field-types/fieldStyles.js.map +1 -0
- package/dist/editor/field-types/richtext/bridgeRichTextProfile.d.ts +15 -1
- package/dist/editor/field-types/richtext/bridgeRichTextProfile.js +27 -0
- package/dist/editor/field-types/richtext/bridgeRichTextProfile.js.map +1 -1
- package/dist/editor/field-types/richtext/components/EditorDropdown.css +14 -0
- package/dist/editor/field-types/richtext/components/EditorDropdown.d.ts +3 -1
- package/dist/editor/field-types/richtext/components/EditorDropdown.js +33 -8
- package/dist/editor/field-types/richtext/components/EditorDropdown.js.map +1 -1
- package/dist/editor/field-types/richtext/components/ReactSlate.css +23 -54
- package/dist/editor/field-types/richtext/components/ReactSlate.d.ts +10 -1
- package/dist/editor/field-types/richtext/components/ReactSlate.js +365 -172
- package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
- package/dist/editor/field-types/richtext/components/SimpleRichTextEditor.js +1 -1
- package/dist/editor/field-types/richtext/components/SimpleRichTextEditor.js.map +1 -1
- package/dist/editor/field-types/richtext/components/ToolbarButton.js +13 -5
- package/dist/editor/field-types/richtext/components/ToolbarButton.js.map +1 -1
- package/dist/editor/field-types/richtext/config/pluginFactory.d.ts +2 -0
- package/dist/editor/field-types/richtext/config/pluginFactory.js +2 -1
- package/dist/editor/field-types/richtext/config/pluginFactory.js.map +1 -1
- package/dist/editor/field-types/richtext/hooks/useProfileCache.js +1 -0
- package/dist/editor/field-types/richtext/hooks/useProfileCache.js.map +1 -1
- package/dist/editor/field-types/richtext/hooks/useRichTextProfile.d.ts +0 -2
- package/dist/editor/field-types/richtext/hooks/useRichTextProfile.js +2 -5
- package/dist/editor/field-types/richtext/hooks/useRichTextProfile.js.map +1 -1
- package/dist/editor/field-types/richtext/types.d.ts +47 -2
- package/dist/editor/field-types/richtext/types.js +19 -0
- package/dist/editor/field-types/richtext/types.js.map +1 -1
- package/dist/editor/field-types/richtext/utils/changeHighlight.d.ts +14 -0
- package/dist/editor/field-types/richtext/utils/changeHighlight.js +12 -1
- package/dist/editor/field-types/richtext/utils/changeHighlight.js.map +1 -1
- package/dist/editor/field-types/richtext/utils/conversion.js +108 -32
- package/dist/editor/field-types/richtext/utils/conversion.js.map +1 -1
- package/dist/editor/field-types/richtext/utils/cssClasses.d.ts +27 -0
- package/dist/editor/field-types/richtext/utils/cssClasses.js +98 -0
- package/dist/editor/field-types/richtext/utils/cssClasses.js.map +1 -0
- package/dist/editor/field-types/richtext/utils/plugins.d.ts +40 -1
- package/dist/editor/field-types/richtext/utils/plugins.js +178 -4
- package/dist/editor/field-types/richtext/utils/plugins.js.map +1 -1
- package/dist/editor/field-types/richtext/utils/profileMapper.d.ts +17 -1
- package/dist/editor/field-types/richtext/utils/profileMapper.js +153 -55
- package/dist/editor/field-types/richtext/utils/profileMapper.js.map +1 -1
- package/dist/editor/field-types/richtext/utils/spellCheckText.d.ts +31 -0
- package/dist/editor/field-types/richtext/utils/spellCheckText.js +82 -0
- package/dist/editor/field-types/richtext/utils/spellCheckText.js.map +1 -0
- package/dist/editor/field-types/useFocusedFieldInput.d.ts +13 -0
- package/dist/editor/field-types/useFocusedFieldInput.js +50 -0
- package/dist/editor/field-types/useFocusedFieldInput.js.map +1 -0
- package/dist/editor/field-types/useFormFieldCaretPresence.js +8 -1
- package/dist/editor/field-types/useFormFieldCaretPresence.js.map +1 -1
- package/dist/editor/field-types/useFormFieldSelectionRange.d.ts +20 -13
- package/dist/editor/field-types/useFormFieldSelectionRange.js +40 -14
- package/dist/editor/field-types/useFormFieldSelectionRange.js.map +1 -1
- package/dist/editor/find-replace/findReplaceTargets.d.ts +2 -0
- package/dist/editor/find-replace/findReplaceTargets.js +2 -2
- package/dist/editor/find-replace/findReplaceTargets.js.map +1 -1
- package/dist/editor/itemContextMenuGroups.js +10 -1
- package/dist/editor/itemContextMenuGroups.js.map +1 -1
- package/dist/editor/media-selector/AiImageSearch.js +1 -163
- package/dist/editor/media-selector/AiImageSearch.js.map +1 -1
- package/dist/editor/media-selector/MediaDetailsView.d.ts +14 -0
- package/dist/editor/media-selector/MediaDetailsView.js +152 -0
- package/dist/editor/media-selector/MediaDetailsView.js.map +1 -0
- package/dist/editor/media-selector/MediaFolderBrowser.js +326 -106
- package/dist/editor/media-selector/MediaFolderBrowser.js.map +1 -1
- package/dist/editor/media-selector/TreeSelector.js +40 -2
- package/dist/editor/media-selector/TreeSelector.js.map +1 -1
- package/dist/editor/media-selector/UploadZone.js +1 -1
- package/dist/editor/media-selector/UploadZone.js.map +1 -1
- package/dist/editor/media-selector/useMediaFolderDrag.d.ts +26 -0
- package/dist/editor/media-selector/useMediaFolderDrag.js +153 -0
- package/dist/editor/media-selector/useMediaFolderDrag.js.map +1 -0
- package/dist/editor/menubar/ActiveUsers.js +5 -3
- package/dist/editor/menubar/ActiveUsers.js.map +1 -1
- package/dist/editor/menubar/PageSelector.js +21 -22
- package/dist/editor/menubar/PageSelector.js.map +1 -1
- package/dist/editor/menubar/ToolbarFactory.js +8 -2
- package/dist/editor/menubar/ToolbarFactory.js.map +1 -1
- package/dist/editor/menubar/VersionPreviewCard.js +4 -2
- package/dist/editor/menubar/VersionPreviewCard.js.map +1 -1
- package/dist/editor/menubar/WorkflowButton.js +10 -10
- package/dist/editor/menubar/WorkflowButton.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/CommentsToggleControl.d.ts +13 -0
- package/dist/editor/menubar/toolbar-sections/CommentsToggleControl.js +88 -0
- package/dist/editor/menubar/toolbar-sections/CommentsToggleControl.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.d.ts +3 -4
- package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js +15 -13
- package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/EditControls.d.ts +9 -0
- package/dist/editor/menubar/toolbar-sections/EditControls.js +24 -1
- package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/FullscreenControl.js +3 -2
- package/dist/editor/menubar/toolbar-sections/FullscreenControl.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/InsertControls.js +4 -2
- package/dist/editor/menubar/toolbar-sections/InsertControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/LayoutModeControls.js +3 -2
- package/dist/editor/menubar/toolbar-sections/LayoutModeControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ReviewCommands.js +2 -2
- package/dist/editor/menubar/toolbar-sections/ReviewCommands.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/SpellCheckToggleControl.d.ts +5 -0
- package/dist/editor/menubar/toolbar-sections/SpellCheckToggleControl.js +16 -0
- package/dist/editor/menubar/toolbar-sections/SpellCheckToggleControl.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/UndoRedoControls.js +2 -2
- package/dist/editor/menubar/toolbar-sections/UndoRedoControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/UtilityControls.js +7 -7
- package/dist/editor/menubar/toolbar-sections/UtilityControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ViewportControls.d.ts +3 -4
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js +19 -31
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/index.d.ts +1 -1
- package/dist/editor/menubar/toolbar-sections/index.js +1 -1
- package/dist/editor/menubar/toolbar-sections/index.js.map +1 -1
- package/dist/editor/mobileBottomPanel.d.ts +40 -0
- package/dist/editor/mobileBottomPanel.js +63 -0
- package/dist/editor/mobileBottomPanel.js.map +1 -0
- package/dist/editor/notifications/useNotifications.js +12 -17
- package/dist/editor/notifications/useNotifications.js.map +1 -1
- package/dist/editor/page-editor-chrome/AgentChangeHighlightings.d.ts +3 -6
- package/dist/editor/page-editor-chrome/AgentChangeHighlightings.js +8 -6
- package/dist/editor/page-editor-chrome/AgentChangeHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.d.ts +5 -1
- package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js +60 -10
- package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js.map +1 -1
- package/dist/editor/page-editor-chrome/BridgePasteCleanupOverlay.d.ts +6 -0
- package/dist/editor/page-editor-chrome/BridgePasteCleanupOverlay.js +100 -0
- package/dist/editor/page-editor-chrome/BridgePasteCleanupOverlay.js.map +1 -0
- package/dist/editor/page-editor-chrome/BridgeToolbarDropdown.d.ts +16 -0
- package/dist/editor/page-editor-chrome/BridgeToolbarDropdown.js +23 -0
- package/dist/editor/page-editor-chrome/BridgeToolbarDropdown.js.map +1 -0
- package/dist/editor/page-editor-chrome/CanvasOverviewRulerBinding.d.ts +9 -0
- package/dist/editor/page-editor-chrome/CanvasOverviewRulerBinding.js +32 -0
- package/dist/editor/page-editor-chrome/CanvasOverviewRulerBinding.js.map +1 -0
- package/dist/editor/page-editor-chrome/CommentHighlightings.d.ts +4 -1
- package/dist/editor/page-editor-chrome/CommentHighlightings.js +195 -388
- package/dist/editor/page-editor-chrome/CommentHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/CommentTargetPickerCanvasLayer.d.ts +14 -0
- package/dist/editor/page-editor-chrome/CommentTargetPickerCanvasLayer.js +110 -0
- package/dist/editor/page-editor-chrome/CommentTargetPickerCanvasLayer.js.map +1 -0
- package/dist/editor/page-editor-chrome/ConversionIndicators.d.ts +8 -0
- package/dist/editor/page-editor-chrome/ConversionIndicators.js +75 -0
- package/dist/editor/page-editor-chrome/ConversionIndicators.js.map +1 -0
- package/dist/editor/page-editor-chrome/DiffHighlightOverlay.d.ts +9 -13
- package/dist/editor/page-editor-chrome/DiffHighlightOverlay.js +25 -20
- package/dist/editor/page-editor-chrome/DiffHighlightOverlay.js.map +1 -1
- package/dist/editor/page-editor-chrome/DragInsertionOverlay.js +21 -17
- package/dist/editor/page-editor-chrome/DragInsertionOverlay.js.map +1 -1
- package/dist/editor/page-editor-chrome/EmptyImageFieldIndicators.d.ts +1 -1
- package/dist/editor/page-editor-chrome/EmptyImageFieldIndicators.js +9 -6
- package/dist/editor/page-editor-chrome/EmptyImageFieldIndicators.js.map +1 -1
- package/dist/editor/page-editor-chrome/FeedbackLeaderCanvasSegment.d.ts +15 -0
- package/dist/editor/page-editor-chrome/FeedbackLeaderCanvasSegment.js +31 -0
- package/dist/editor/page-editor-chrome/FeedbackLeaderCanvasSegment.js.map +1 -0
- package/dist/editor/page-editor-chrome/FieldActionIndicator.d.ts +1 -1
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js +6 -3
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
- package/dist/editor/page-editor-chrome/FieldEditedIndicator.js +10 -6
- package/dist/editor/page-editor-chrome/FieldEditedIndicator.js.map +1 -1
- package/dist/editor/page-editor-chrome/FindReplaceHighlightings.d.ts +1 -1
- package/dist/editor/page-editor-chrome/FindReplaceHighlightings.js +7 -4
- package/dist/editor/page-editor-chrome/FindReplaceHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/FrameMenu.d.ts +1 -1
- package/dist/editor/page-editor-chrome/FrameMenu.js +13 -11
- package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
- package/dist/editor/page-editor-chrome/FrameMenus.d.ts +1 -1
- package/dist/editor/page-editor-chrome/FrameMenus.js +7 -5
- package/dist/editor/page-editor-chrome/FrameMenus.js.map +1 -1
- package/dist/editor/page-editor-chrome/InlineFieldHistoryButton.d.ts +2 -2
- package/dist/editor/page-editor-chrome/InlineFieldHistoryButton.js +20 -39
- package/dist/editor/page-editor-chrome/InlineFieldHistoryButton.js.map +1 -1
- package/dist/editor/page-editor-chrome/LockedFieldIndicator.d.ts +1 -1
- package/dist/editor/page-editor-chrome/LockedFieldIndicator.js +27 -21
- package/dist/editor/page-editor-chrome/LockedFieldIndicator.js.map +1 -1
- package/dist/editor/page-editor-chrome/NoLayout.js +5 -3
- package/dist/editor/page-editor-chrome/NoLayout.js.map +1 -1
- package/dist/editor/page-editor-chrome/PageEditorChrome.d.ts +1 -1
- package/dist/editor/page-editor-chrome/PageEditorChrome.js +29 -23
- package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
- package/dist/editor/page-editor-chrome/PictureEditorOverlay.d.ts +1 -1
- package/dist/editor/page-editor-chrome/PictureEditorOverlay.js +24 -21
- package/dist/editor/page-editor-chrome/PictureEditorOverlay.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +10 -4
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.d.ts +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +11 -10
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
- package/dist/editor/page-editor-chrome/SpellCheckHighlightings.d.ts +12 -0
- package/dist/editor/page-editor-chrome/SpellCheckHighlightings.js +197 -0
- package/dist/editor/page-editor-chrome/SpellCheckHighlightings.js.map +1 -0
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.d.ts +1 -1
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +226 -388
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/ValidationRulerMarks.d.ts +11 -0
- package/dist/editor/page-editor-chrome/ValidationRulerMarks.js +56 -0
- package/dist/editor/page-editor-chrome/ValidationRulerMarks.js.map +1 -0
- package/dist/editor/page-editor-chrome/VersionDiffHighlightings.d.ts +1 -1
- package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js +11 -8
- package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.d.ts +15 -2
- package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js +70 -9
- package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js.map +1 -1
- package/dist/editor/page-editor-chrome/overlay/feedbackAnchorMeasurements.d.ts +44 -0
- package/dist/editor/page-editor-chrome/overlay/feedbackAnchorMeasurements.js +89 -0
- package/dist/editor/page-editor-chrome/overlay/feedbackAnchorMeasurements.js.map +1 -0
- package/dist/editor/page-editor-chrome/overlay/feedbackAnchorStore.d.ts +17 -0
- package/dist/editor/page-editor-chrome/overlay/feedbackAnchorStore.js +53 -0
- package/dist/editor/page-editor-chrome/overlay/feedbackAnchorStore.js.map +1 -0
- package/dist/editor/page-editor-chrome/overlay/geometry.d.ts +15 -0
- package/dist/editor/page-editor-chrome/overlay/geometry.js +40 -0
- package/dist/editor/page-editor-chrome/overlay/geometry.js.map +1 -1
- package/dist/editor/page-editor-chrome/overlay/useBridgeTextRangeRequest.d.ts +11 -0
- package/dist/editor/page-editor-chrome/overlay/useBridgeTextRangeRequest.js +84 -0
- package/dist/editor/page-editor-chrome/overlay/useBridgeTextRangeRequest.js.map +1 -0
- package/dist/editor/page-editor-chrome/overlay/useCommentAnchorMeasurements.d.ts +34 -0
- package/dist/editor/page-editor-chrome/overlay/useCommentAnchorMeasurements.js +229 -0
- package/dist/editor/page-editor-chrome/overlay/useCommentAnchorMeasurements.js.map +1 -0
- package/dist/editor/page-editor-chrome/overlay/useOverlayViewportRight.d.ts +9 -0
- package/dist/editor/page-editor-chrome/overlay/useOverlayViewportRight.js +34 -0
- package/dist/editor/page-editor-chrome/overlay/useOverlayViewportRight.js.map +1 -0
- package/dist/editor/page-editor-chrome/overlay/useSuggestionAnchorMeasurements.d.ts +49 -0
- package/dist/editor/page-editor-chrome/overlay/useSuggestionAnchorMeasurements.js +241 -0
- package/dist/editor/page-editor-chrome/overlay/useSuggestionAnchorMeasurements.js.map +1 -0
- package/dist/editor/page-editor-chrome/useBridgeInlineEditing.d.ts +7 -0
- package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js +63 -5
- package/dist/editor/page-editor-chrome/useBridgeInlineEditing.js.map +1 -1
- package/dist/editor/page-editor-chrome/useBridgeRichTextFieldOptions.d.ts +12 -0
- package/dist/editor/page-editor-chrome/useBridgeRichTextFieldOptions.js +79 -0
- package/dist/editor/page-editor-chrome/useBridgeRichTextFieldOptions.js.map +1 -0
- package/dist/editor/page-editor-chrome/useComponentDragHandle.js +1 -1
- package/dist/editor/page-editor-chrome/useComponentDragHandle.js.map +1 -1
- package/dist/editor/page-editor-chrome/useDragInsertionGesture.js +1 -1
- package/dist/editor/page-editor-chrome/useDragInsertionGesture.js.map +1 -1
- package/dist/editor/page-editor-chrome/usePinnedHoveredComponentId.d.ts +1 -1
- package/dist/editor/page-editor-chrome/usePinnedHoveredComponentId.js +4 -2
- package/dist/editor/page-editor-chrome/usePinnedHoveredComponentId.js.map +1 -1
- package/dist/editor/page-viewer/CanvasOverviewRuler.d.ts +11 -0
- package/dist/editor/page-viewer/CanvasOverviewRuler.js +65 -0
- package/dist/editor/page-viewer/CanvasOverviewRuler.js.map +1 -0
- package/dist/editor/page-viewer/DeviceToolbar.d.ts +1 -1
- package/dist/editor/page-viewer/DeviceToolbar.js +8 -3
- package/dist/editor/page-viewer/DeviceToolbar.js.map +1 -1
- package/dist/editor/page-viewer/DynamicRenderingsBar.d.ts +23 -0
- package/dist/editor/page-viewer/DynamicRenderingsBar.js +28 -0
- package/dist/editor/page-viewer/DynamicRenderingsBar.js.map +1 -0
- package/dist/editor/page-viewer/DynamicRenderingsStrip.d.ts +18 -0
- package/dist/editor/page-viewer/DynamicRenderingsStrip.js +29 -0
- package/dist/editor/page-viewer/DynamicRenderingsStrip.js.map +1 -0
- package/dist/editor/page-viewer/EditorForm.js +29 -24
- package/dist/editor/page-viewer/EditorForm.js.map +1 -1
- package/dist/editor/page-viewer/FeedbackMargin.d.ts +57 -0
- package/dist/editor/page-viewer/FeedbackMargin.js +378 -0
- package/dist/editor/page-viewer/FeedbackMargin.js.map +1 -0
- package/dist/editor/page-viewer/FeedbackMarginController.d.ts +76 -0
- package/dist/editor/page-viewer/FeedbackMarginController.js +241 -0
- package/dist/editor/page-viewer/FeedbackMarginController.js.map +1 -0
- package/dist/editor/page-viewer/FeedbackMarginMarker.d.ts +16 -0
- package/dist/editor/page-viewer/FeedbackMarginMarker.js +24 -0
- package/dist/editor/page-viewer/FeedbackMarginMarker.js.map +1 -0
- package/dist/editor/page-viewer/FeedbackMarginResizeHandle.d.ts +23 -0
- package/dist/editor/page-viewer/FeedbackMarginResizeHandle.js +105 -0
- package/dist/editor/page-viewer/FeedbackMarginResizeHandle.js.map +1 -0
- package/dist/editor/page-viewer/InteractivePreviewBar.d.ts +24 -0
- package/dist/editor/page-viewer/InteractivePreviewBar.js +31 -0
- package/dist/editor/page-viewer/InteractivePreviewBar.js.map +1 -0
- package/dist/editor/page-viewer/MiniMap.d.ts +9 -3
- package/dist/editor/page-viewer/MiniMap.js +50 -60
- package/dist/editor/page-viewer/MiniMap.js.map +1 -1
- package/dist/editor/page-viewer/MinimapDropTargets.d.ts +1 -1
- package/dist/editor/page-viewer/MinimapDropTargets.js +9 -7
- package/dist/editor/page-viewer/MinimapDropTargets.js.map +1 -1
- package/dist/editor/page-viewer/MobileCommentsPanel.d.ts +16 -0
- package/dist/editor/page-viewer/MobileCommentsPanel.js +112 -0
- package/dist/editor/page-viewer/MobileCommentsPanel.js.map +1 -0
- package/dist/editor/page-viewer/PageViewer.js +22 -67
- package/dist/editor/page-viewer/PageViewer.js.map +1 -1
- package/dist/editor/page-viewer/PageViewerFrame.d.ts +1 -0
- package/dist/editor/page-viewer/PageViewerFrame.js +610 -224
- package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
- package/dist/editor/page-viewer/RenderingAiCheck.d.ts +18 -0
- package/dist/editor/page-viewer/RenderingAiCheck.js +45 -0
- package/dist/editor/page-viewer/RenderingAiCheck.js.map +1 -0
- package/dist/editor/page-viewer/RenderingApprovalDialog.d.ts +32 -0
- package/dist/editor/page-viewer/RenderingApprovalDialog.js +191 -0
- package/dist/editor/page-viewer/RenderingApprovalDialog.js.map +1 -0
- package/dist/editor/page-viewer/SealedClientCodePreview.d.ts +17 -0
- package/dist/editor/page-viewer/SealedClientCodePreview.js +38 -0
- package/dist/editor/page-viewer/SealedClientCodePreview.js.map +1 -0
- package/dist/editor/page-viewer/bridgeFieldPatch.d.ts +9 -0
- package/dist/editor/page-viewer/bridgeFieldPatch.js +21 -0
- package/dist/editor/page-viewer/bridgeFieldPatch.js.map +1 -1
- package/dist/editor/page-viewer/bridgeInlineEditSession.js +8 -0
- package/dist/editor/page-viewer/bridgeInlineEditSession.js.map +1 -1
- package/dist/editor/page-viewer/canvasFrameNavigation.d.ts +18 -0
- package/dist/editor/page-viewer/canvasFrameNavigation.js +36 -0
- package/dist/editor/page-viewer/canvasFrameNavigation.js.map +1 -0
- package/dist/editor/page-viewer/canvasLoadSettling.d.ts +42 -0
- package/dist/editor/page-viewer/canvasLoadSettling.js +46 -0
- package/dist/editor/page-viewer/canvasLoadSettling.js.map +1 -0
- package/dist/editor/page-viewer/canvasScrollHandoff.d.ts +34 -0
- package/dist/editor/page-viewer/canvasScrollHandoff.js +55 -0
- package/dist/editor/page-viewer/canvasScrollHandoff.js.map +1 -0
- package/dist/editor/page-viewer/feedbackMarginLayout.d.ts +119 -0
- package/dist/editor/page-viewer/feedbackMarginLayout.js +155 -0
- package/dist/editor/page-viewer/feedbackMarginLayout.js.map +1 -0
- package/dist/editor/page-viewer/feedbackMarginSources.d.ts +36 -0
- package/dist/editor/page-viewer/feedbackMarginSources.js +196 -0
- package/dist/editor/page-viewer/feedbackMarginSources.js.map +1 -0
- package/dist/editor/page-viewer/feedbackMarginWidth.d.ts +43 -0
- package/dist/editor/page-viewer/feedbackMarginWidth.js +107 -0
- package/dist/editor/page-viewer/feedbackMarginWidth.js.map +1 -0
- package/dist/editor/page-viewer/interactivePreview.d.ts +168 -0
- package/dist/editor/page-viewer/interactivePreview.js +344 -0
- package/dist/editor/page-viewer/interactivePreview.js.map +1 -0
- package/dist/editor/page-viewer/minimapViewport.js +5 -2
- package/dist/editor/page-viewer/minimapViewport.js.map +1 -1
- package/dist/editor/page-viewer/openPageItems.d.ts +29 -0
- package/dist/editor/page-viewer/openPageItems.js +73 -0
- package/dist/editor/page-viewer/openPageItems.js.map +1 -0
- package/dist/editor/page-viewer/overviewRuler.d.ts +128 -0
- package/dist/editor/page-viewer/overviewRuler.js +226 -0
- package/dist/editor/page-viewer/overviewRuler.js.map +1 -0
- package/dist/editor/page-viewer/pageViewContext.d.ts +99 -37
- package/dist/editor/page-viewer/pageViewContext.js +207 -238
- package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
- package/dist/editor/page-viewer/renderingApproval.d.ts +59 -0
- package/dist/editor/page-viewer/renderingApproval.js +186 -0
- package/dist/editor/page-viewer/renderingApproval.js.map +1 -0
- package/dist/editor/page-viewer/renderingChanges.d.ts +29 -0
- package/dist/editor/page-viewer/renderingChanges.js +40 -0
- package/dist/editor/page-viewer/renderingChanges.js.map +1 -0
- package/dist/editor/page-viewer/scrollIntoViewTextRanges.d.ts +23 -0
- package/dist/editor/page-viewer/scrollIntoViewTextRanges.js +26 -0
- package/dist/editor/page-viewer/scrollIntoViewTextRanges.js.map +1 -0
- package/dist/editor/page-viewer/useInteractivePreview.d.ts +77 -0
- package/dist/editor/page-viewer/useInteractivePreview.js +210 -0
- package/dist/editor/page-viewer/useInteractivePreview.js.map +1 -0
- package/dist/editor/pageModel.d.ts +12 -0
- package/dist/editor/personalization/ConditionTreeEditor.js +1 -1
- package/dist/editor/personalization/ConditionTreeEditor.js.map +1 -1
- package/dist/editor/personalization/PersonalizationPanel.js +1 -1
- package/dist/editor/personalization/PersonalizationPanel.js.map +1 -1
- package/dist/editor/reviews/CollapsibleText.d.ts +13 -0
- package/dist/editor/reviews/CollapsibleText.js +41 -0
- package/dist/editor/reviews/CollapsibleText.js.map +1 -0
- package/dist/editor/reviews/Comment.d.ts +10 -1
- package/dist/editor/reviews/Comment.js +47 -26
- package/dist/editor/reviews/Comment.js.map +1 -1
- package/dist/editor/reviews/CommentDisplayPopover.js +29 -25
- package/dist/editor/reviews/CommentDisplayPopover.js.map +1 -1
- package/dist/editor/reviews/CommentEditor.d.ts +25 -1
- package/dist/editor/reviews/CommentEditor.js +130 -24
- package/dist/editor/reviews/CommentEditor.js.map +1 -1
- package/dist/editor/reviews/CommentPopover.d.ts +0 -4
- package/dist/editor/reviews/CommentPopover.js +4 -8
- package/dist/editor/reviews/CommentPopover.js.map +1 -1
- package/dist/editor/reviews/CommentQuote.d.ts +10 -1
- package/dist/editor/reviews/CommentQuote.js +15 -10
- package/dist/editor/reviews/CommentQuote.js.map +1 -1
- package/dist/editor/reviews/CommentTargetOutline.d.ts +13 -0
- package/dist/editor/reviews/CommentTargetOutline.js +21 -0
- package/dist/editor/reviews/CommentTargetOutline.js.map +1 -0
- package/dist/editor/reviews/CommentTargetPickerDomLayer.d.ts +7 -0
- package/dist/editor/reviews/CommentTargetPickerDomLayer.js +117 -0
- package/dist/editor/reviews/CommentTargetPickerDomLayer.js.map +1 -0
- package/dist/editor/reviews/CommentThreadAgentLink.d.ts +6 -1
- package/dist/editor/reviews/CommentThreadAgentLink.js +4 -4
- package/dist/editor/reviews/CommentThreadAgentLink.js.map +1 -1
- package/dist/editor/reviews/CommentThreadCard.d.ts +34 -0
- package/dist/editor/reviews/CommentThreadCard.js +156 -0
- package/dist/editor/reviews/CommentThreadCard.js.map +1 -0
- package/dist/editor/reviews/CommentView.d.ts +7 -1
- package/dist/editor/reviews/CommentView.js +24 -6
- package/dist/editor/reviews/CommentView.js.map +1 -1
- package/dist/editor/reviews/Comments.js +5 -14
- package/dist/editor/reviews/Comments.js.map +1 -1
- package/dist/editor/reviews/CreateReviewDialog.js +36 -9
- package/dist/editor/reviews/CreateReviewDialog.js.map +1 -1
- package/dist/editor/reviews/EditReviewSettingsDialog.js +1 -1
- package/dist/editor/reviews/EditReviewSettingsDialog.js.map +1 -1
- package/dist/editor/reviews/FeedbackCard.d.ts +16 -1
- package/dist/editor/reviews/FeedbackCard.js +14 -3
- package/dist/editor/reviews/FeedbackCard.js.map +1 -1
- package/dist/editor/reviews/FeedbackFilters.d.ts +9 -5
- package/dist/editor/reviews/FeedbackFilters.js +15 -36
- package/dist/editor/reviews/FeedbackFilters.js.map +1 -1
- package/dist/editor/reviews/FeedbackModeIntro.d.ts +7 -1
- package/dist/editor/reviews/FeedbackModeIntro.js +11 -6
- package/dist/editor/reviews/FeedbackModeIntro.js.map +1 -1
- package/dist/editor/reviews/MentionText.d.ts +2 -1
- package/dist/editor/reviews/MentionText.js +5 -3
- package/dist/editor/reviews/MentionText.js.map +1 -1
- package/dist/editor/reviews/MultiReviewManager.js +18 -3
- package/dist/editor/reviews/MultiReviewManager.js.map +1 -1
- package/dist/editor/reviews/ReviewItemsPanel.js +4 -0
- package/dist/editor/reviews/ReviewItemsPanel.js.map +1 -1
- package/dist/editor/reviews/SuggestedEdit.d.ts +10 -1
- package/dist/editor/reviews/SuggestedEdit.js +77 -10
- package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
- package/dist/editor/reviews/SuggestionCommentThread.d.ts +5 -1
- package/dist/editor/reviews/SuggestionCommentThread.js +48 -17
- package/dist/editor/reviews/SuggestionCommentThread.js.map +1 -1
- package/dist/editor/reviews/SuggestionDisplayPopover.d.ts +1 -3
- package/dist/editor/reviews/SuggestionDisplayPopover.js +2 -7
- package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
- package/dist/editor/reviews/SuggestionThreadCard.d.ts +19 -0
- package/dist/editor/reviews/SuggestionThreadCard.js +25 -0
- package/dist/editor/reviews/SuggestionThreadCard.js.map +1 -0
- package/dist/editor/reviews/addCommentOnTarget.d.ts +22 -0
- package/dist/editor/reviews/addCommentOnTarget.js +32 -0
- package/dist/editor/reviews/addCommentOnTarget.js.map +1 -0
- package/dist/editor/reviews/applySuggestedEditActions.js +7 -1
- package/dist/editor/reviews/applySuggestedEditActions.js.map +1 -1
- package/dist/editor/reviews/balloonLayout.d.ts +51 -0
- package/dist/editor/reviews/balloonLayout.js +101 -0
- package/dist/editor/reviews/balloonLayout.js.map +1 -0
- package/dist/editor/reviews/commentImages.d.ts +1 -2
- package/dist/editor/reviews/commentImages.js +1 -37
- package/dist/editor/reviews/commentImages.js.map +1 -1
- package/dist/editor/reviews/commentTargetPicker.d.ts +114 -0
- package/dist/editor/reviews/commentTargetPicker.js +153 -0
- package/dist/editor/reviews/commentTargetPicker.js.map +1 -0
- package/dist/editor/reviews/feedbackAvatar.js +2 -1
- package/dist/editor/reviews/feedbackAvatar.js.map +1 -1
- package/dist/editor/reviews/feedbackBalloonDate.d.ts +8 -0
- package/dist/editor/reviews/feedbackBalloonDate.js +22 -0
- package/dist/editor/reviews/feedbackBalloonDate.js.map +1 -0
- package/dist/editor/reviews/feedbackDrafts.d.ts +49 -0
- package/dist/editor/reviews/feedbackDrafts.js +74 -0
- package/dist/editor/reviews/feedbackDrafts.js.map +1 -0
- package/dist/editor/reviews/feedbackHoverState.d.ts +18 -0
- package/dist/editor/reviews/feedbackHoverState.js +35 -0
- package/dist/editor/reviews/feedbackHoverState.js.map +1 -0
- package/dist/editor/reviews/feedbackPersonFilter.d.ts +3 -0
- package/dist/editor/reviews/feedbackPersonFilter.js +32 -0
- package/dist/editor/reviews/feedbackPersonFilter.js.map +1 -0
- package/dist/editor/reviews/feedbackSelection.js +7 -3
- package/dist/editor/reviews/feedbackSelection.js.map +1 -1
- package/dist/editor/reviews/feedbackThreadSelection.d.ts +10 -0
- package/dist/editor/reviews/feedbackThreadSelection.js +31 -0
- package/dist/editor/reviews/feedbackThreadSelection.js.map +1 -0
- package/dist/editor/reviews/feedbackThreads.d.ts +50 -0
- package/dist/editor/reviews/feedbackThreads.js +135 -0
- package/dist/editor/reviews/feedbackThreads.js.map +1 -0
- package/dist/editor/reviews/feedbackWheelForwarding.d.ts +34 -0
- package/dist/editor/reviews/feedbackWheelForwarding.js +108 -0
- package/dist/editor/reviews/feedbackWheelForwarding.js.map +1 -0
- package/dist/editor/reviews/openCommentsFeedback.d.ts +1 -1
- package/dist/editor/reviews/openCommentsFeedback.js +2 -1
- package/dist/editor/reviews/openCommentsFeedback.js.map +1 -1
- package/dist/editor/reviews/pendingReviewSelection.d.ts +13 -0
- package/dist/editor/reviews/pendingReviewSelection.js +29 -0
- package/dist/editor/reviews/pendingReviewSelection.js.map +1 -0
- package/dist/editor/reviews/requestReview.d.ts +27 -0
- package/dist/editor/reviews/requestReview.js +36 -0
- package/dist/editor/reviews/requestReview.js.map +1 -0
- package/dist/editor/reviews/reviewUrlScope.d.ts +23 -0
- package/dist/editor/reviews/reviewUrlScope.js +86 -0
- package/dist/editor/reviews/reviewUrlScope.js.map +1 -0
- package/dist/editor/reviews/scrollWithin.d.ts +29 -0
- package/dist/editor/reviews/scrollWithin.js +87 -0
- package/dist/editor/reviews/scrollWithin.js.map +1 -0
- package/dist/editor/reviews/subtreeFeedback.d.ts +57 -0
- package/dist/editor/reviews/subtreeFeedback.js +137 -0
- package/dist/editor/reviews/subtreeFeedback.js.map +1 -0
- package/dist/editor/reviews/useCommentImagePaste.d.ts +9 -1
- package/dist/editor/reviews/useCommentImagePaste.js +68 -4
- package/dist/editor/reviews/useCommentImagePaste.js.map +1 -1
- package/dist/editor/reviews/useFeedbackThreads.d.ts +35 -0
- package/dist/editor/reviews/useFeedbackThreads.js +137 -0
- package/dist/editor/reviews/useFeedbackThreads.js.map +1 -0
- package/dist/editor/reviews/useMeasuredHeights.d.ts +25 -0
- package/dist/editor/reviews/useMeasuredHeights.js +176 -0
- package/dist/editor/reviews/useMeasuredHeights.js.map +1 -0
- package/dist/editor/reviews/usePendingFeedbackFocus.d.ts +7 -0
- package/dist/editor/reviews/usePendingFeedbackFocus.js +42 -0
- package/dist/editor/reviews/usePendingFeedbackFocus.js.map +1 -0
- package/dist/editor/services/agentService.d.ts +101 -5
- package/dist/editor/services/agentService.js +16 -0
- package/dist/editor/services/agentService.js.map +1 -1
- package/dist/editor/services/aiService.d.ts +2 -0
- package/dist/editor/services/aiService.js.map +1 -1
- package/dist/editor/services/contentService.d.ts +11 -1
- package/dist/editor/services/contentService.js +2 -1
- package/dist/editor/services/contentService.js.map +1 -1
- package/dist/editor/services/editService.d.ts +2 -0
- package/dist/editor/services/editService.js.map +1 -1
- package/dist/editor/services/indexService.d.ts +1 -0
- package/dist/editor/services/indexService.js +4 -0
- package/dist/editor/services/indexService.js.map +1 -1
- package/dist/editor/services/mcpAccessService.d.ts +93 -0
- package/dist/editor/services/mcpAccessService.js +41 -0
- package/dist/editor/services/mcpAccessService.js.map +1 -0
- package/dist/editor/services/previewTokenService.d.ts +14 -0
- package/dist/editor/services/previewTokenService.js +34 -0
- package/dist/editor/services/previewTokenService.js.map +1 -0
- package/dist/editor/services/renderingsService.d.ts +117 -0
- package/dist/editor/services/renderingsService.js +245 -0
- package/dist/editor/services/renderingsService.js.map +1 -0
- package/dist/editor/services/reviewsService.d.ts +6 -1
- package/dist/editor/services/reviewsService.js +14 -6
- package/dist/editor/services/reviewsService.js.map +1 -1
- package/dist/editor/services/serviceHelper.d.ts +17 -1
- package/dist/editor/services/serviceHelper.js +67 -12
- package/dist/editor/services/serviceHelper.js.map +1 -1
- package/dist/editor/services/spellCheckService.d.ts +13 -0
- package/dist/editor/services/spellCheckService.js +33 -0
- package/dist/editor/services/spellCheckService.js.map +1 -0
- package/dist/editor/services/suggestedEditsService.d.ts +1 -0
- package/dist/editor/services/suggestedEditsService.js +7 -0
- package/dist/editor/services/suggestedEditsService.js.map +1 -1
- package/dist/editor/settings/MigrationJournalCard.js +2 -2
- package/dist/editor/settings/MigrationJournalCard.js.map +1 -1
- package/dist/editor/settings/StatusSummary.js +5 -2
- package/dist/editor/settings/StatusSummary.js.map +1 -1
- package/dist/editor/settings/index/CollectionWarningsDisplay.js +1 -1
- package/dist/editor/settings/index/CollectionWarningsDisplay.js.map +1 -1
- package/dist/editor/settings/index/IndexGenerationsSection.d.ts +4 -5
- package/dist/editor/settings/index/IndexGenerationsSection.js +83 -33
- package/dist/editor/settings/index/IndexGenerationsSection.js.map +1 -1
- package/dist/editor/settings/panels/AgentProfileConfigPanel.js +1 -1
- package/dist/editor/settings/panels/AgentProfileConfigPanel.js.map +1 -1
- package/dist/editor/settings/panels/AgentToolsPanel.js +1 -1
- package/dist/editor/settings/panels/AgentToolsPanel.js.map +1 -1
- package/dist/editor/settings/panels/JavaScriptToolAgentPanel.js +1 -1
- package/dist/editor/settings/panels/JavaScriptToolAgentPanel.js.map +1 -1
- package/dist/editor/settings/panels/McpAccessPanel.d.ts +7 -0
- package/dist/editor/settings/panels/McpAccessPanel.js +96 -0
- package/dist/editor/settings/panels/McpAccessPanel.js.map +1 -0
- package/dist/editor/settings/panels/McpAccessSettingsView.d.ts +8 -0
- package/dist/editor/settings/panels/McpAccessSettingsView.js +221 -0
- package/dist/editor/settings/panels/McpAccessSettingsView.js.map +1 -0
- package/dist/editor/settings/panels/ModelConfigPanel.js +1 -0
- package/dist/editor/settings/panels/ModelConfigPanel.js.map +1 -1
- package/dist/editor/settings/panels/ModelsPanel.js +60 -6
- package/dist/editor/settings/panels/ModelsPanel.js.map +1 -1
- package/dist/editor/settings/panels/PersistentLogsPanel.js +2 -1
- package/dist/editor/settings/panels/PersistentLogsPanel.js.map +1 -1
- package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js +1 -1
- package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js.map +1 -1
- package/dist/editor/settings/panels/ProvidersPanel.js +2 -1
- package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -1
- package/dist/editor/settings/panels/SearchConfigPanel.js +6 -5
- package/dist/editor/settings/panels/SearchConfigPanel.js.map +1 -1
- package/dist/editor/settings/panels/SpellCheckPanel.d.ts +8 -0
- package/dist/editor/settings/panels/SpellCheckPanel.js +253 -0
- package/dist/editor/settings/panels/SpellCheckPanel.js.map +1 -0
- package/dist/editor/settings/panels/StatusPanel.js +5 -6
- package/dist/editor/settings/panels/StatusPanel.js.map +1 -1
- package/dist/editor/settings/panels/UserPreferencesPanel.js +5 -2
- package/dist/editor/settings/panels/UserPreferencesPanel.js.map +1 -1
- package/dist/editor/settings/panels/index.d.ts +2 -0
- package/dist/editor/settings/panels/index.js +2 -0
- package/dist/editor/settings/panels/index.js.map +1 -1
- package/dist/editor/sidebar/ComponentPalette.js +7 -3
- package/dist/editor/sidebar/ComponentPalette.js.map +1 -1
- package/dist/editor/sidebar/ComponentTree.d.ts +1 -1
- package/dist/editor/sidebar/ComponentTree.js +32 -56
- package/dist/editor/sidebar/ComponentTree.js.map +1 -1
- package/dist/editor/sidebar/DictionaryEditor.js +2 -1
- package/dist/editor/sidebar/DictionaryEditor.js.map +1 -1
- package/dist/editor/sidebar/EditHistory.js +5 -4
- package/dist/editor/sidebar/EditHistory.js.map +1 -1
- package/dist/editor/sidebar/FeedbackSidebar.d.ts +7 -0
- package/dist/editor/sidebar/FeedbackSidebar.js +300 -0
- package/dist/editor/sidebar/FeedbackSidebar.js.map +1 -0
- package/dist/editor/sidebar/OperationDetailsContent.js +50 -0
- package/dist/editor/sidebar/OperationDetailsContent.js.map +1 -1
- package/dist/editor/sidebar/OperationItem.js +2 -0
- package/dist/editor/sidebar/OperationItem.js.map +1 -1
- package/dist/editor/sidebar/Sessions.js +3 -1
- package/dist/editor/sidebar/Sessions.js.map +1 -1
- package/dist/editor/sidebar/Validation.js +1 -1
- package/dist/editor/sidebar/Validation.js.map +1 -1
- package/dist/editor/sidebar/Workbox.js +3 -108
- package/dist/editor/sidebar/Workbox.js.map +1 -1
- package/dist/editor/sidebar/liveComponentThumbnails.d.ts +1 -1
- package/dist/editor/sidebar/liveComponentThumbnails.js +19 -14
- package/dist/editor/sidebar/liveComponentThumbnails.js.map +1 -1
- package/dist/editor/spellcheck/canvasSpellCheckContextMenu.d.ts +30 -0
- package/dist/editor/spellcheck/canvasSpellCheckContextMenu.js +69 -0
- package/dist/editor/spellcheck/canvasSpellCheckContextMenu.js.map +1 -0
- package/dist/editor/spellcheck/htmlSpellDocument.d.ts +60 -0
- package/dist/editor/spellcheck/htmlSpellDocument.js +181 -0
- package/dist/editor/spellcheck/htmlSpellDocument.js.map +1 -0
- package/dist/editor/spellcheck/htmlSpellTokenizer.d.ts +45 -0
- package/dist/editor/spellcheck/htmlSpellTokenizer.js +277 -0
- package/dist/editor/spellcheck/htmlSpellTokenizer.js.map +1 -0
- package/dist/editor/spellcheck/replacementGuard.d.ts +27 -0
- package/dist/editor/spellcheck/replacementGuard.js +29 -0
- package/dist/editor/spellcheck/replacementGuard.js.map +1 -0
- package/dist/editor/spellcheck/spellCheckCanvasStore.d.ts +17 -0
- package/dist/editor/spellcheck/spellCheckCanvasStore.js +37 -0
- package/dist/editor/spellcheck/spellCheckCanvasStore.js.map +1 -0
- package/dist/editor/spellcheck/spellCheckCanvasTargets.d.ts +71 -0
- package/dist/editor/spellcheck/spellCheckCanvasTargets.js +126 -0
- package/dist/editor/spellcheck/spellCheckCanvasTargets.js.map +1 -0
- package/dist/editor/spellcheck/spellCheckClient.d.ts +66 -0
- package/dist/editor/spellcheck/spellCheckClient.js +0 -0
- package/dist/editor/spellcheck/spellCheckClient.js.map +1 -0
- package/dist/editor/spellcheck/spellCheckContextMenu.d.ts +52 -0
- package/dist/editor/spellcheck/spellCheckContextMenu.js +120 -0
- package/dist/editor/spellcheck/spellCheckContextMenu.js.map +1 -0
- package/dist/editor/spellcheck/spellCheckReplace.d.ts +8 -0
- package/dist/editor/spellcheck/spellCheckReplace.js +20 -0
- package/dist/editor/spellcheck/spellCheckReplace.js.map +1 -0
- package/dist/editor/spellcheck/spellCheckStyles.d.ts +11 -0
- package/dist/editor/spellcheck/spellCheckStyles.js +12 -0
- package/dist/editor/spellcheck/spellCheckStyles.js.map +1 -0
- package/dist/editor/spellcheck/spellCheckTypes.d.ts +94 -0
- package/dist/editor/spellcheck/spellCheckTypes.js +2 -0
- package/dist/editor/spellcheck/spellCheckTypes.js.map +1 -0
- package/dist/editor/spellcheck/textMarkHitTest.d.ts +14 -0
- package/dist/editor/spellcheck/textMarkHitTest.js +39 -0
- package/dist/editor/spellcheck/textMarkHitTest.js.map +1 -0
- package/dist/editor/spellcheck/useSpellCheck.d.ts +16 -0
- package/dist/editor/spellcheck/useSpellCheck.js +57 -0
- package/dist/editor/spellcheck/useSpellCheck.js.map +1 -0
- package/dist/editor/ui/DynamicRenderingsPublishWarning.d.ts +14 -0
- package/dist/editor/ui/DynamicRenderingsPublishWarning.js +40 -0
- package/dist/editor/ui/DynamicRenderingsPublishWarning.js.map +1 -0
- package/dist/editor/ui/ItemNameDialogNew.js +11 -2
- package/dist/editor/ui/ItemNameDialogNew.js.map +1 -1
- package/dist/editor/ui/ItemSearch.d.ts +2 -0
- package/dist/editor/ui/ItemSearch.js +2 -2
- package/dist/editor/ui/ItemSearch.js.map +1 -1
- package/dist/editor/ui/PublishDialog.d.ts +2 -0
- package/dist/editor/ui/PublishDialog.js +4 -1
- package/dist/editor/ui/PublishDialog.js.map +1 -1
- package/dist/editor/ui/PublishItemDialog.js +3 -2
- package/dist/editor/ui/PublishItemDialog.js.map +1 -1
- package/dist/editor/ui/PublishReadinessSummary.js +1 -1
- package/dist/editor/ui/PublishReadinessSummary.js.map +1 -1
- package/dist/editor/ui/PublishRestrictionsDialog.d.ts +33 -0
- package/dist/editor/ui/PublishRestrictionsDialog.js +208 -38
- package/dist/editor/ui/PublishRestrictionsDialog.js.map +1 -1
- package/dist/editor/ui/RootItemPicker.d.ts +18 -0
- package/dist/editor/ui/RootItemPicker.js +112 -0
- package/dist/editor/ui/RootItemPicker.js.map +1 -0
- package/dist/editor/ui/WorkboxItemsTable.js +1 -1
- package/dist/editor/ui/WorkboxItemsTable.js.map +1 -1
- package/dist/editor/utils/dataTransferImages.d.ts +7 -0
- package/dist/editor/utils/dataTransferImages.js +43 -0
- package/dist/editor/utils/dataTransferImages.js.map +1 -0
- package/dist/editor/utils/itemConverters.js +9 -0
- package/dist/editor/utils/itemConverters.js.map +1 -1
- package/dist/editor/utils/keyboardNavigation.js +38 -4
- package/dist/editor/utils/keyboardNavigation.js.map +1 -1
- package/dist/editor/utils.d.ts +4 -4
- package/dist/editor/utils.js +9 -8
- package/dist/editor/utils.js.map +1 -1
- package/dist/editor/validation/navigateToValidationIssue.d.ts +2 -2
- package/dist/editor/validation/navigateToValidationIssue.js +1 -1
- package/dist/editor/validation/navigateToValidationIssue.js.map +1 -1
- package/dist/editor/validation/validationRulerIssues.d.ts +17 -0
- package/dist/editor/validation/validationRulerIssues.js +44 -0
- package/dist/editor/validation/validationRulerIssues.js.map +1 -0
- package/dist/editor/views/CompareView.js +3 -4
- package/dist/editor/views/CompareView.js.map +1 -1
- package/dist/editor/views/EditorSlot.js +10 -4
- package/dist/editor/views/EditorSlot.js.map +1 -1
- package/dist/editor/views/ItemEditor.d.ts +3 -1
- package/dist/editor/views/ItemEditor.js +43 -38
- package/dist/editor/views/ItemEditor.js.map +1 -1
- package/dist/editor/views/ItemEditorPane.js +3 -3
- package/dist/editor/views/ItemEditorPane.js.map +1 -1
- package/dist/editor/views/SingleEditView.js +10 -32
- package/dist/editor/views/SingleEditView.js.map +1 -1
- package/dist/editor/views/editorSlotContext.js +62 -90
- package/dist/editor/views/editorSlotContext.js.map +1 -1
- package/dist/index.d.ts +10 -5
- package/dist/index.js +8 -4
- package/dist/index.js.map +1 -1
- package/dist/licensing/FeatureGate.js +1 -1
- package/dist/licensing/FeatureGate.js.map +1 -1
- package/dist/licensing/LicenseContext.js +31 -17
- package/dist/licensing/LicenseContext.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/setup/services/setupWizardService.d.ts +6 -2
- package/dist/setup/services/setupWizardService.js +10 -0
- package/dist/setup/services/setupWizardService.js.map +1 -1
- package/dist/setup/wizard/steps/AddModelDialog.js +1 -0
- package/dist/setup/wizard/steps/AddModelDialog.js.map +1 -1
- package/dist/setup/wizard/steps/ImportModelDialog.js +2 -1
- package/dist/setup/wizard/steps/ImportModelDialog.js.map +1 -1
- package/dist/splash-screen/ModernSplashScreen.js +4 -3
- package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
- package/dist/splash-screen/RecentPages.js +5 -2
- package/dist/splash-screen/RecentPages.js.map +1 -1
- package/dist/task-board/TaskBoardWorkspace.js +49 -12
- package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
- package/dist/task-board/components/GoalsMatrix.js +1 -1
- package/dist/task-board/components/GoalsMatrix.js.map +1 -1
- package/dist/task-board/components/IssuePanel.js +4 -4
- package/dist/task-board/components/IssuePanel.js.map +1 -1
- package/dist/task-board/components/ProjectBudgetBanner.js +1 -1
- package/dist/task-board/components/ProjectBudgetBanner.js.map +1 -1
- package/dist/task-board/components/ProjectGoalsPanel.js +1 -1
- package/dist/task-board/components/ProjectGoalsPanel.js.map +1 -1
- package/dist/task-board/components/TaskDetailPanel.js +18 -8
- package/dist/task-board/components/TaskDetailPanel.js.map +1 -1
- package/dist/task-board/components/WizardCommunicationCards.js +1 -1
- package/dist/task-board/components/WizardCommunicationCards.js.map +1 -1
- package/dist/task-board/services/taskService.d.ts +1 -2
- package/dist/task-board/services/taskService.js +0 -3
- package/dist/task-board/services/taskService.js.map +1 -1
- package/dist/task-board/taskBlockers.d.ts +10 -0
- package/dist/task-board/taskBlockers.js +66 -0
- package/dist/task-board/taskBlockers.js.map +1 -0
- package/dist/task-board/types.d.ts +0 -7
- package/dist/task-board/utils/projectDashboardModel.js +7 -1
- package/dist/task-board/utils/projectDashboardModel.js.map +1 -1
- package/dist/task-board/views/DependencyGraphView.d.ts +22 -0
- package/dist/task-board/views/DependencyGraphView.js +111 -14
- package/dist/task-board/views/DependencyGraphView.js.map +1 -1
- package/dist/task-board/views/KanbanView.js +8 -10
- package/dist/task-board/views/KanbanView.js.map +1 -1
- package/dist/task-board/views/ProjectDashboardView.js +5 -13
- package/dist/task-board/views/ProjectDashboardView.js.map +1 -1
- package/dist/tour/Tour.js +4 -1
- package/dist/tour/Tour.js.map +1 -1
- package/dist/tour/sandbox-tour-copy.d.ts +8 -0
- package/dist/tour/sandbox-tour-copy.js +8 -0
- package/dist/tour/sandbox-tour-copy.js.map +1 -1
- package/dist/tour/sandbox-tour.d.ts +3 -0
- package/dist/tour/sandbox-tour.js +107 -3
- package/dist/tour/sandbox-tour.js.map +1 -1
- package/dist/types.d.ts +85 -1
- package/package.json +6 -2
- package/styles.css +17 -0
- package/dist/editor/page-editor-chrome/bridgeLinkValue.d.ts +0 -10
- package/dist/editor/page-editor-chrome/bridgeLinkValue.js +0 -55
- package/dist/editor/page-editor-chrome/bridgeLinkValue.js.map +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useRepositoryItemRefresh } from "./hooks/useRepositoryItemRefresh";
|
|
3
4
|
import React, { useState, useEffect, useLayoutEffect, useRef, useCallback, useMemo, startTransition, } from "react";
|
|
4
5
|
import { toast } from "sonner";
|
|
5
6
|
import { isPerfTraceActive, perfTracePaintStep, perfTraceStep, } from "../perfTrace";
|
|
@@ -20,8 +21,10 @@ import { onSocketReconnect as onAgentSocketReconnect } from "../services/agentSu
|
|
|
20
21
|
import { useEditorWebSocket } from "./hooks/useEditorWebSocket";
|
|
21
22
|
import { useClientInfoRegistration } from "./hooks/useClientInfoRegistration";
|
|
22
23
|
import { getEditorRealtime } from "./realtime/realtimeTransport";
|
|
23
|
-
import { createEditorSocketDiagnostics
|
|
24
|
+
import { createEditorSocketDiagnostics } from "./socketDiagnostics";
|
|
25
|
+
import { createValueStore, useValueStore } from "./valueStore";
|
|
24
26
|
import { localStorageService } from "../services/localStorageService";
|
|
27
|
+
import { loadPersistedClipboard, persistClipboard, readClipboardFromStorageEvent, } from "./clipboardStorage";
|
|
25
28
|
import { useSocketMessageHandler } from "./hooks/useSocketMessageHandler";
|
|
26
29
|
import "react-json-view-lite/dist/index.css";
|
|
27
30
|
import { MediaSelector, } from "../media-selector/MediaSelector";
|
|
@@ -41,6 +44,7 @@ import { filterRemovedComments } from "../reviews/commentState";
|
|
|
41
44
|
import { post } from "../services/serviceHelper";
|
|
42
45
|
import { CONTENT_TREE_SIDEBAR_ID } from "../sidebar/contentTreeConstants";
|
|
43
46
|
import { PageViewerFrame } from "../page-viewer/PageViewerFrame";
|
|
47
|
+
import { isRenderingOnCanvas } from "../page-viewer/renderingChanges";
|
|
44
48
|
import { useItemsRepository } from "./itemsRepository";
|
|
45
49
|
import { logFieldValueDiagnostic, summarizeFieldDescriptor, } from "../fieldValueDiagnostics";
|
|
46
50
|
import { Spinner } from "../ui/Spinner";
|
|
@@ -56,13 +60,14 @@ import { buildBridgeInsertTextCommand } from "../ai/bridgeInlineTextReplace";
|
|
|
56
60
|
import { GuidanceOverlay } from "../ai/GuidanceOverlay";
|
|
57
61
|
import { AgentDialogHandler } from "../ai/dialogs";
|
|
58
62
|
import { setActiveAgentConversation } from "../ai/useActiveAgentConversation";
|
|
59
|
-
import { CANVAS_REFRESH_COMPLETED_EVENT, usePageViewContext, } from "../page-viewer/pageViewContext";
|
|
63
|
+
import { CANVAS_REFRESH_COMPLETED_EVENT, usePageViewContext, usePageViewState, usePageViewStates, } from "../page-viewer/pageViewContext";
|
|
60
64
|
import { QuickItemSwitcher } from "../QuickItemSwitcher";
|
|
61
65
|
import { useEditorSlotContext, } from "../views/editorSlotContext";
|
|
62
66
|
import { getComments, getAvailableCommentTags, } from "../services/reviewsService";
|
|
63
67
|
import { useReviews } from "../reviews/useReviews";
|
|
64
68
|
import { closeActiveCommentPopover, COMMENT_POPOVER_OVERLAY_ID, } from "../reviews/CommentPopover";
|
|
65
69
|
import { isSuggestedEditRemoved } from "../reviews/suggestedEditState";
|
|
70
|
+
import { useLeftoverReviewIdCleanup } from "../reviews/reviewUrlScope";
|
|
66
71
|
import { COMMENT_TRANSIENT_ELEMENT_KEY, COMMENT_TRANSIENT_SELECTION_RECT, } from "../reviews/commentTransientSelection";
|
|
67
72
|
import uuid from "react-uuid";
|
|
68
73
|
import { flushSync } from "react-dom";
|
|
@@ -188,16 +193,28 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
188
193
|
const [selectedForInsertion, setSelectedForInsertion] = useState("");
|
|
189
194
|
const [refreshCompletedFlag, setRefreshCompletedFlag] = useState(false);
|
|
190
195
|
const [isRefreshing, setIsRefreshing] = useState(false);
|
|
191
|
-
// Token incremented by editor slots when their page model finishes building.
|
|
192
|
-
// Forces the isRefreshingEffect to re-evaluate with the fresh page from the mutable slot ref.
|
|
193
|
-
const [pageModelReadyToken, setPageModelReadyToken] = useState(0);
|
|
194
|
-
const notifyPageModelReady = useCallback(() => setPageModelReadyToken((c) => c + 1), []);
|
|
195
196
|
const [dragObject, setDragObject] = useState();
|
|
196
197
|
// Pointer gestures can start and end between React's commit and passive-effect
|
|
197
198
|
// phases. Keep the event-time payload synchronous so a bridge listener from
|
|
198
199
|
// the preceding render cannot observe a stale `dragObject` closure at drop.
|
|
199
200
|
const dragObjectRef = useRef(undefined);
|
|
200
|
-
|
|
201
|
+
// The clipboard outlives page switches and reloads (and syncs across tabs) so a
|
|
202
|
+
// component copied on one page can be pasted on another.
|
|
203
|
+
const [clipboard, setClipboard] = useState(() => loadPersistedClipboard());
|
|
204
|
+
useEffect(() => {
|
|
205
|
+
persistClipboard(clipboard);
|
|
206
|
+
}, [clipboard]);
|
|
207
|
+
useEffect(() => {
|
|
208
|
+
if (typeof window === "undefined")
|
|
209
|
+
return;
|
|
210
|
+
const handleStorage = (event) => {
|
|
211
|
+
const next = readClipboardFromStorageEvent(event);
|
|
212
|
+
if (next !== undefined)
|
|
213
|
+
setClipboard(next);
|
|
214
|
+
};
|
|
215
|
+
window.addEventListener("storage", handleStorage);
|
|
216
|
+
return () => window.removeEventListener("storage", handleStorage);
|
|
217
|
+
}, []);
|
|
201
218
|
// media selection handled by useMediaSelector hook
|
|
202
219
|
const [scrollIntoView, setScrollIntoView] = useState();
|
|
203
220
|
const confirmationDialogRef = useRef(null);
|
|
@@ -236,11 +253,32 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
236
253
|
const [item, setItem] = useState();
|
|
237
254
|
const [focusedField, setFocusedField] = useState();
|
|
238
255
|
const focusedFieldRef = useRef(undefined);
|
|
239
|
-
|
|
256
|
+
// A store, not state: a text selection is republished on every step of a
|
|
257
|
+
// canvas drag or Shift+Arrow, and a change of the EditContext value
|
|
258
|
+
// re-renders every consumer in the editor (~300 ms on a large page).
|
|
259
|
+
// Components that render from it subscribe with useSelectedRange().
|
|
260
|
+
const [selectedRangeStore] = useState(() => createValueStore(undefined));
|
|
240
261
|
const lastTextSelectionRangeRef = useRef(undefined);
|
|
262
|
+
// Caret-only form positions change on every focus, click and typing pause,
|
|
263
|
+
// but are only read when something inserts at the caret, so they are not
|
|
264
|
+
// published at all. Whichever of the two was recorded last wins.
|
|
265
|
+
const caretRangeRef = useRef(undefined);
|
|
266
|
+
const setSelectedRange = useCallback((next) => {
|
|
267
|
+
caretRangeRef.current = undefined;
|
|
268
|
+
selectedRangeStore.set(next);
|
|
269
|
+
const published = selectedRangeStore.get();
|
|
270
|
+
if (isUsableTextSelectionRange(published)) {
|
|
271
|
+
lastTextSelectionRangeRef.current = published;
|
|
272
|
+
}
|
|
273
|
+
}, [selectedRangeStore]);
|
|
274
|
+
const setCaretRange = useCallback((range) => {
|
|
275
|
+
caretRangeRef.current = range;
|
|
276
|
+
selectedRangeStore.set(undefined);
|
|
277
|
+
}, [selectedRangeStore]);
|
|
241
278
|
const [validating, setValidating] = useState(false);
|
|
242
279
|
const [inserting, setInserting] = useState();
|
|
243
280
|
const [removingComponentIds, setRemovingComponentIds] = useState([]);
|
|
281
|
+
const [recentConversion, setRecentConversion] = useState();
|
|
244
282
|
const insertingSequenceRef = useRef(0);
|
|
245
283
|
// Armed by selectWithoutAutoScroll for programmatic selections (drop
|
|
246
284
|
// target's parent, post-operation focus): the canvas selection-scroll
|
|
@@ -314,7 +352,11 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
314
352
|
const [activeFieldActions, setActiveFieldActions] = useState([]);
|
|
315
353
|
const fieldEditorPopupRef = React.useRef(null);
|
|
316
354
|
const [validationResult, setValidationResult] = useState();
|
|
317
|
-
|
|
355
|
+
// A store, not state: every operation update (save progress, completion,
|
|
356
|
+
// other sessions' edits) replaces the list. Components that render it
|
|
357
|
+
// subscribe with useEditHistory(); handlers read editContext.editHistory.
|
|
358
|
+
const [editHistoryStore] = useState(() => createValueStore([]));
|
|
359
|
+
const setEditHistory = editHistoryStore.set;
|
|
318
360
|
const [historyMode, setHistoryMode] = useState("global");
|
|
319
361
|
const [showOnlyMyChanges, setShowOnlyMyChanges] = useState(true);
|
|
320
362
|
const [filterByCurrentLanguage, setFilterByCurrentLanguage] = useState(true);
|
|
@@ -339,7 +381,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
339
381
|
];
|
|
340
382
|
});
|
|
341
383
|
}, []);
|
|
342
|
-
|
|
384
|
+
// A store, not EditContext state: presence broadcasts replace the list
|
|
385
|
+
// whenever any session focuses or locks a field.
|
|
386
|
+
const [activeSessionsStore] = useState(() => createValueStore((() => {
|
|
343
387
|
try {
|
|
344
388
|
const existing = globalThis.__alpacaActiveSessions;
|
|
345
389
|
return Array.isArray(existing) ? existing : [];
|
|
@@ -347,8 +391,20 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
347
391
|
catch {
|
|
348
392
|
return [];
|
|
349
393
|
}
|
|
350
|
-
});
|
|
351
|
-
const
|
|
394
|
+
})()));
|
|
395
|
+
const activeSessions = useValueStore(activeSessionsStore);
|
|
396
|
+
const setActiveSessions = activeSessionsStore.set;
|
|
397
|
+
const sessionUser = activeSessions.find((x) => x.sessionId === sessionId)?.user ||
|
|
398
|
+
userInfo.user;
|
|
399
|
+
// Presence broadcasts rebuild the session list, and with it this object,
|
|
400
|
+
// whenever anyone focuses or locks a field. Keep one identity per distinct
|
|
401
|
+
// value so they do not rebuild the EditContext value.
|
|
402
|
+
const sessionUserKey = JSON.stringify(sessionUser);
|
|
403
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
404
|
+
const user = useMemo(() => sessionUser, [sessionUserKey]);
|
|
405
|
+
// A store, not state: carets move on every keystroke of every session.
|
|
406
|
+
const [remoteCaretsStore] = useState(() => createValueStore({}));
|
|
407
|
+
const setRemoteCarets = remoteCaretsStore.set;
|
|
352
408
|
// Block editing until the server acknowledges our client-info for the current item
|
|
353
409
|
const [isClientInfoAcknowledged, setIsClientInfoAcknowledged] = useState(false);
|
|
354
410
|
if (typeof window !== "undefined")
|
|
@@ -512,7 +568,10 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
512
568
|
const [componentDesignerComponent, setComponentDesignerComponent] = useState();
|
|
513
569
|
const [componentDesignerRendering, setComponentDesignerRendering] = useState();
|
|
514
570
|
const [insertMode, setInsertMode] = useState(false);
|
|
515
|
-
|
|
571
|
+
// A ref, not state: it flips true and back within 20ms of every field click,
|
|
572
|
+
// and as state each flip changed setFocusedFieldWithLock's identity and with
|
|
573
|
+
// it the FieldsEditContext value.
|
|
574
|
+
const ignoreBlurRef = useRef(false);
|
|
516
575
|
// Timestamp of the most recent pointer-down on a User Manual "Show me" control.
|
|
517
576
|
// Used by the field-blur guard so clicking a field-gated Show me button keeps
|
|
518
577
|
// the focused field (and thus the `.focused-field` anchor + field actions).
|
|
@@ -676,7 +735,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
676
735
|
const [showVersionDiffHighlighting, setShowVersionDiffHighlighting] = useState(false);
|
|
677
736
|
const [agentChangeHighlighting, setAgentChangeHighlighting] = useState(null);
|
|
678
737
|
const [availableCommentTags, setAvailableCommentTags] = useState([]);
|
|
679
|
-
const [showComments,
|
|
738
|
+
const [showComments, setShowCommentsRaw] = useState(() => {
|
|
680
739
|
// ?showFeedback=true|false overrides the persisted preference, e.g. the
|
|
681
740
|
// sandbox register redirect lands users with the feedback panel closed.
|
|
682
741
|
const showFeedbackParam = searchParams.get("showFeedback");
|
|
@@ -685,9 +744,27 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
685
744
|
}
|
|
686
745
|
return localStorageService.getOrSetItem("editor.showComments", true);
|
|
687
746
|
});
|
|
747
|
+
const showCommentsRef = useRef(showComments);
|
|
748
|
+
showCommentsRef.current = showComments;
|
|
688
749
|
useEffect(() => {
|
|
689
750
|
localStorageService.setItem("editor.showComments", showComments);
|
|
690
751
|
}, [showComments]);
|
|
752
|
+
// The mobile comments panel (the comment list below the canvas on a phone)
|
|
753
|
+
// is opt-in per session: it starts closed whatever the persisted preference
|
|
754
|
+
// says, and follows every on/off transition made on the phone. The reveal
|
|
755
|
+
// helper is defined with the other mobile panel state further down; the
|
|
756
|
+
// ref lets the setter (declared here, used by mode changes above) reach it.
|
|
757
|
+
const [mobileCommentsPanelOpen, setMobileCommentsPanelOpen] = useState(false);
|
|
758
|
+
const revealMobileCommentsPanelRef = useRef(() => { });
|
|
759
|
+
const setShowComments = useCallback((value) => {
|
|
760
|
+
const next = typeof value === "function" ? value(showCommentsRef.current) : value;
|
|
761
|
+
showCommentsRef.current = next;
|
|
762
|
+
setShowCommentsRaw(next);
|
|
763
|
+
if (next)
|
|
764
|
+
revealMobileCommentsPanelRef.current();
|
|
765
|
+
else
|
|
766
|
+
setMobileCommentsPanelOpen(false);
|
|
767
|
+
}, []);
|
|
691
768
|
const [showResolvedComments, setShowResolvedComments] = useState(() => {
|
|
692
769
|
return localStorageService.getOrSetItem("editor.showResolvedComments", false);
|
|
693
770
|
});
|
|
@@ -897,6 +974,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
897
974
|
const [editorFormHintSeen, setEditorFormHintSeenState] = useState(userPreferences.editorFormHintSeen ?? false);
|
|
898
975
|
const [editorFormHintVisible, setEditorFormHintVisible] = useState(false);
|
|
899
976
|
const editorFormToggleButtonRef = useRef(null);
|
|
977
|
+
const [componentInsertionHintSeen, setComponentInsertionHintSeenState] = useState(userPreferences.componentInsertionHintSeen ?? false);
|
|
900
978
|
const [showMinimap, setShowMinimap] = useState(userPreferences.showMinimap ?? true);
|
|
901
979
|
const effectiveShowMinimap = minimapEnabledInSettings && showMinimap;
|
|
902
980
|
const [showHelpTerminal, setShowHelpTerminal] = useState(false);
|
|
@@ -929,7 +1007,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
929
1007
|
}
|
|
930
1008
|
}, [setQuotaInfo]);
|
|
931
1009
|
const [webSocketMessages, setWebSocketMessages] = useState([]);
|
|
932
|
-
|
|
1010
|
+
// A store, not state: it changes on every socket message.
|
|
1011
|
+
const [socketDiagnosticsStore] = useState(() => createValueStore(createEditorSocketDiagnostics(sessionId)));
|
|
1012
|
+
const setSocketDiagnostics = socketDiagnosticsStore.set;
|
|
933
1013
|
const [favorites, setFavorites] = useState([]);
|
|
934
1014
|
// Quick item switcher state
|
|
935
1015
|
const [quickSwitcherVisible, setQuickSwitcherVisible] = useState(false);
|
|
@@ -1005,12 +1085,14 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
1005
1085
|
focusedField.item.id !== lastTextSelection.itemId)) {
|
|
1006
1086
|
lastTextSelectionRangeRef.current = undefined;
|
|
1007
1087
|
}
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1088
|
+
const caretRange = caretRangeRef.current;
|
|
1089
|
+
if (focusedField &&
|
|
1090
|
+
caretRange &&
|
|
1091
|
+
(focusedField.fieldId !== caretRange.fieldId ||
|
|
1092
|
+
focusedField.item.id !== caretRange.itemId)) {
|
|
1093
|
+
caretRangeRef.current = undefined;
|
|
1012
1094
|
}
|
|
1013
|
-
}, [
|
|
1095
|
+
}, [focusedField]);
|
|
1014
1096
|
// Track the current page item descriptor for itemsRepository
|
|
1015
1097
|
const [currentPageItem, setCurrentPageItem] = useState();
|
|
1016
1098
|
// Create itemsRepository with current page item (will be updated when page loads)
|
|
@@ -1107,18 +1189,18 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
1107
1189
|
useEffect(() => {
|
|
1108
1190
|
activePageViewContextRef.current = activePageViewContext;
|
|
1109
1191
|
}, [activePageViewContext]);
|
|
1192
|
+
const page = usePageViewState(activePageViewContext, (state) => state.page);
|
|
1193
|
+
const activeIframeSupportsRefresh = usePageViewState(activePageViewContext, (state) => state.iframeSupportsRefresh);
|
|
1110
1194
|
// Keep the active PageViewContext's fullscreen flag in sync with the shell fullscreen mode.
|
|
1111
1195
|
useEffect(() => {
|
|
1112
|
-
|
|
1113
|
-
activePageViewContext.setFullscreen(fullscreen);
|
|
1114
|
-
}
|
|
1196
|
+
activePageViewContext.setFullscreen(fullscreen);
|
|
1115
1197
|
}, [activePageViewContext, fullscreen]);
|
|
1116
1198
|
// Update currentPageItem when pageViewContext.page is available
|
|
1117
1199
|
useEffect(() => {
|
|
1118
|
-
if (
|
|
1119
|
-
setCurrentPageItem(
|
|
1200
|
+
if (page?.item.descriptor) {
|
|
1201
|
+
setCurrentPageItem(page.item.descriptor);
|
|
1120
1202
|
}
|
|
1121
|
-
}, [
|
|
1203
|
+
}, [page?.item.descriptor]);
|
|
1122
1204
|
// Track which items are rendered/used by the current page for targeted refresh
|
|
1123
1205
|
const pageItemsSetRef = useRef(new Set());
|
|
1124
1206
|
const makeItemKey = useCallback((d) => `${d.id}-${d.language}-${d.version}`.toLowerCase(), []);
|
|
@@ -1132,20 +1214,20 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
1132
1214
|
component.items?.forEach((i) => newSet.add(makeItemKey(i)));
|
|
1133
1215
|
component.placeholders?.forEach((ph) => ph.components?.forEach(collect));
|
|
1134
1216
|
};
|
|
1135
|
-
if (
|
|
1217
|
+
if (page) {
|
|
1136
1218
|
// Include the page item itself
|
|
1137
|
-
const pageDescriptor =
|
|
1219
|
+
const pageDescriptor = page.item.descriptor;
|
|
1138
1220
|
newSet.add(makeItemKey(pageDescriptor));
|
|
1139
|
-
collect(
|
|
1221
|
+
collect(page.rootComponent);
|
|
1140
1222
|
}
|
|
1141
1223
|
pageItemsSetRef.current = newSet;
|
|
1142
|
-
}, [
|
|
1224
|
+
}, [page?.editRevision]);
|
|
1143
1225
|
const isItemUsedInCurrentPage = useCallback((item) => pageItemsSetRef.current.has(makeItemKey(item)), [makeItemKey]);
|
|
1144
1226
|
const socketMessageListeners = useRef(new Set());
|
|
1145
1227
|
const [socketConnectionVersion, setSocketConnectionVersion] = useState(0);
|
|
1146
1228
|
useEffect(() => {
|
|
1147
1229
|
setSocketDiagnostics(createEditorSocketDiagnostics(sessionId));
|
|
1148
|
-
}, [sessionId]);
|
|
1230
|
+
}, [sessionId, setSocketDiagnostics]);
|
|
1149
1231
|
const addSocketMessageListener = useCallback((callback) => {
|
|
1150
1232
|
socketMessageListeners.current.add(callback);
|
|
1151
1233
|
return () => socketMessageListeners.current.delete(callback);
|
|
@@ -1184,7 +1266,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
1184
1266
|
}
|
|
1185
1267
|
catch { }
|
|
1186
1268
|
};
|
|
1187
|
-
}, [addSocketMessageListener, sessionId]);
|
|
1269
|
+
}, [addSocketMessageListener, sessionId, setRemoteCarets]);
|
|
1188
1270
|
useEffect(() => {
|
|
1189
1271
|
const activeSessionIds = new Set(activeSessions.map((s) => s.sessionId));
|
|
1190
1272
|
setRemoteCarets((current) => {
|
|
@@ -1200,7 +1282,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
1200
1282
|
});
|
|
1201
1283
|
return changed ? next : current;
|
|
1202
1284
|
});
|
|
1203
|
-
}, [activeSessions]);
|
|
1285
|
+
}, [activeSessions, setRemoteCarets]);
|
|
1204
1286
|
// Listen for batch completion notifications
|
|
1205
1287
|
useEffect(() => {
|
|
1206
1288
|
const removeListener = addSocketMessageListener((message) => {
|
|
@@ -1294,6 +1376,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
1294
1376
|
// Only clear selection range if we specifically switched to a DIFFERENT field.
|
|
1295
1377
|
// If focusedField is undefined (e.g. lost focus to a dialog), keep the previous selection context
|
|
1296
1378
|
// so the AI tool can still act on it.
|
|
1379
|
+
const selectedRange = selectedRangeStore.get();
|
|
1297
1380
|
if (focusedField &&
|
|
1298
1381
|
selectedRange &&
|
|
1299
1382
|
(focusedField.fieldId !== selectedRange.fieldId ||
|
|
@@ -1323,7 +1406,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
1323
1406
|
}, [currentWorkspace]);
|
|
1324
1407
|
const sendClientInfoImmediate = useCallback(async () => {
|
|
1325
1408
|
const itemAtSend = currentItemRef.current;
|
|
1326
|
-
const pageAtSend = activePageViewContextRef.current?.page?.item;
|
|
1409
|
+
const pageAtSend = activePageViewContextRef.current?.getState().page?.item;
|
|
1327
1410
|
const clientInfoMessage = {
|
|
1328
1411
|
type: "client-info",
|
|
1329
1412
|
sessionId: sessionId,
|
|
@@ -1543,6 +1626,19 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
1543
1626
|
setOpenSidebars([]);
|
|
1544
1627
|
}
|
|
1545
1628
|
}, [isMobile, mobilePanelDismissToken]);
|
|
1629
|
+
// Bring the comments panel to the front: the form panel and the sidebars
|
|
1630
|
+
// cover it (precedence form > sidebars > comments), so opening it closes
|
|
1631
|
+
// them. Closing the form records the dismiss token for the current
|
|
1632
|
+
// selection, so the form does not bounce back until the next canvas tap.
|
|
1633
|
+
const revealMobileCommentsPanel = useCallback(() => {
|
|
1634
|
+
if (!isMobile)
|
|
1635
|
+
return;
|
|
1636
|
+
setMobileCommentsPanelOpen(true);
|
|
1637
|
+
handleSetMobileEditorPanelOpen(false);
|
|
1638
|
+
openSidebarsRef.current = [];
|
|
1639
|
+
setOpenSidebars([]);
|
|
1640
|
+
}, [isMobile, handleSetMobileEditorPanelOpen]);
|
|
1641
|
+
revealMobileCommentsPanelRef.current = revealMobileCommentsPanel;
|
|
1546
1642
|
const handleSetShowMinimap = useCallback((value) => {
|
|
1547
1643
|
const newValue = typeof value === "function" ? value(showMinimap) : value;
|
|
1548
1644
|
setShowMinimap(newValue);
|
|
@@ -1588,6 +1684,14 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
1588
1684
|
setEditorFormHintSeenState(true);
|
|
1589
1685
|
setUserPreferences({ editorFormHintSeen: true });
|
|
1590
1686
|
}, [setUserPreferences]);
|
|
1687
|
+
const markComponentInsertionHintSeen = useCallback(() => {
|
|
1688
|
+
setComponentInsertionHintSeenState((prev) => {
|
|
1689
|
+
if (prev)
|
|
1690
|
+
return prev;
|
|
1691
|
+
setUserPreferences({ componentInsertionHintSeen: true });
|
|
1692
|
+
return true;
|
|
1693
|
+
});
|
|
1694
|
+
}, [setUserPreferences]);
|
|
1591
1695
|
const showEditorFormHint = useCallback(() => {
|
|
1592
1696
|
setEditorFormHintVisible(true);
|
|
1593
1697
|
}, []);
|
|
@@ -1667,8 +1771,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
1667
1771
|
setUserPreferences({ pinnedSidebars: newPinnedSidebars });
|
|
1668
1772
|
}, [setUserPreferences]);
|
|
1669
1773
|
// messageHandler is defined after loadItem/loadHistory declarations to avoid temporal dead zones
|
|
1670
|
-
const user = activeSessions.find((x) => x.sessionId === sessionId)?.user ||
|
|
1671
|
-
userInfo.user;
|
|
1672
1774
|
// Self-heal if our session disappears (e.g., after HMR). Skip when concurrent user limit
|
|
1673
1775
|
// is showing so we don't spam recovery attempts when the connection was rejected.
|
|
1674
1776
|
const missingSessionRecoveryTimerRef = useRef(null);
|
|
@@ -1946,7 +2048,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
1946
2048
|
if (selection.length)
|
|
1947
2049
|
setSelectedForInsertion("");
|
|
1948
2050
|
// Does the current focused field belong to the current item?
|
|
1949
|
-
const currentItem = selection.length > 0 ? selection[0] :
|
|
2051
|
+
const currentItem = selection.length > 0 ? selection[0] : page?.item.id;
|
|
1950
2052
|
if (currentItem && focusedField?.item.id !== currentItem) {
|
|
1951
2053
|
setFocusedField(undefined);
|
|
1952
2054
|
}
|
|
@@ -2038,7 +2140,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
2038
2140
|
setRefreshCompletedFlag(!refreshCompletedFlag);
|
|
2039
2141
|
setInserting(undefined);
|
|
2040
2142
|
setRemovingComponentIds([]);
|
|
2041
|
-
|
|
2143
|
+
setRecentConversion(undefined);
|
|
2144
|
+
}, [currentItemDescriptor, page?.item.id]);
|
|
2042
2145
|
useEffect(() => {
|
|
2043
2146
|
// When the item changes, reset acknowledgment. Registration below sends
|
|
2044
2147
|
// immediately and keeps retrying until active-sessions confirms it.
|
|
@@ -2068,6 +2171,15 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
2068
2171
|
}
|
|
2069
2172
|
catch { }
|
|
2070
2173
|
}, [activeSessions, sessionId]);
|
|
2174
|
+
// Reviewers from a review link stay in their review; everyone else loses a
|
|
2175
|
+
// reviewId that no longer applies once they browse to other pages.
|
|
2176
|
+
useLeftoverReviewIdCleanup(item
|
|
2177
|
+
? {
|
|
2178
|
+
id: item.descriptor.id,
|
|
2179
|
+
language: item.descriptor.language,
|
|
2180
|
+
idPath: item.idPath,
|
|
2181
|
+
}
|
|
2182
|
+
: undefined, !userInfo.user?.isLimitedPreviewUser);
|
|
2071
2183
|
const loadComments = useCallback(async () => {
|
|
2072
2184
|
const requestId = ++commentsLoadRequestRef.current;
|
|
2073
2185
|
if (!currentItemDescriptor)
|
|
@@ -2142,7 +2254,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
2142
2254
|
const refreshFavorites = useCallback(async (opts) => {
|
|
2143
2255
|
await loadFavorites();
|
|
2144
2256
|
}, [loadFavorites]);
|
|
2145
|
-
const page = activePageViewContext.page;
|
|
2146
2257
|
const currentHistoryScope = useMemo(() => {
|
|
2147
2258
|
const currentItem = item?.descriptor;
|
|
2148
2259
|
const currentLanguage = item?.descriptor?.language || currentItemDescriptor?.language;
|
|
@@ -2249,21 +2360,16 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
2249
2360
|
}
|
|
2250
2361
|
}, []);
|
|
2251
2362
|
useEffect(() => {
|
|
2252
|
-
// Read fresh page from the mutable slot context ref chain.
|
|
2253
|
-
// The slot context uses a stable ref that is mutated in-place (see editorSlotContext.ts),
|
|
2254
|
-
// so `page` from the render scope may be stale when the slot's page model completes.
|
|
2255
|
-
// pageModelReadyToken triggers this effect to re-evaluate with the latest page.
|
|
2256
|
-
const freshPage = activePageViewContext.page ?? page;
|
|
2257
2363
|
const isLoading = !!item &&
|
|
2258
2364
|
item.hasLayout &&
|
|
2259
|
-
(!
|
|
2365
|
+
(!page || (page?.editRevision ?? "") != (revision ?? ""));
|
|
2260
2366
|
const newIsRefreshing = isLoading && viewName === "editor";
|
|
2261
2367
|
setIsRefreshing(newIsRefreshing);
|
|
2262
2368
|
if (!isLoading) {
|
|
2263
2369
|
setInserting(undefined);
|
|
2264
2370
|
setRemovingComponentIds([]);
|
|
2265
2371
|
}
|
|
2266
|
-
}, [page, viewName, revision
|
|
2372
|
+
}, [page, viewName, revision]);
|
|
2267
2373
|
// moved below to ensure requestRefresh is declared first
|
|
2268
2374
|
const loadHistory = useDebouncedCallback(async () => {
|
|
2269
2375
|
if (!sessionId)
|
|
@@ -2941,24 +3047,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
2941
3047
|
showHelpTerminal,
|
|
2942
3048
|
selectedHelpSectionId,
|
|
2943
3049
|
]);
|
|
2944
|
-
|
|
2945
|
-
async function load() {
|
|
2946
|
-
if (!currentItemDescriptor)
|
|
2947
|
-
return;
|
|
2948
|
-
// Capture the item ID at the start of this async operation
|
|
2949
|
-
const descriptorIdAtStart = currentItemDescriptor.id;
|
|
2950
|
-
const item = await itemsRepository.getItem(currentItemDescriptor);
|
|
2951
|
-
// Check if the current item has changed during the async operation
|
|
2952
|
-
// If so, skip this update to avoid overwriting with stale data
|
|
2953
|
-
if (currentItemDescriptorRef.current?.id !== descriptorIdAtStart) {
|
|
2954
|
-
return;
|
|
2955
|
-
}
|
|
2956
|
-
setItem(item);
|
|
2957
|
-
if (!item)
|
|
2958
|
-
return;
|
|
2959
|
-
}
|
|
2960
|
-
load();
|
|
2961
|
-
}, [itemsRepository.revision]);
|
|
3050
|
+
useRepositoryItemRefresh(itemsRepository, currentItemDescriptor, currentItemDescriptorRef, setItem);
|
|
2962
3051
|
const addToBrowseHistory = useCallback((item) => {
|
|
2963
3052
|
const historyEntry = {
|
|
2964
3053
|
path: item.path || "unknown",
|
|
@@ -3300,7 +3389,10 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
3300
3389
|
lockedField,
|
|
3301
3390
|
itemsRepository,
|
|
3302
3391
|
user,
|
|
3303
|
-
editHistory
|
|
3392
|
+
get editHistory() {
|
|
3393
|
+
return editHistoryStore.get();
|
|
3394
|
+
},
|
|
3395
|
+
editHistoryStore,
|
|
3304
3396
|
setEditHistory,
|
|
3305
3397
|
showOnlyMyChanges,
|
|
3306
3398
|
historyMode,
|
|
@@ -3509,6 +3601,17 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
3509
3601
|
const onOperationExecuted = useCallback((op) => {
|
|
3510
3602
|
// Update the history through the single merge path.
|
|
3511
3603
|
updateOperationInHistory(op);
|
|
3604
|
+
// The "Converted from" badge lasts until the next edit.
|
|
3605
|
+
setRecentConversion((current) => current &&
|
|
3606
|
+
current.operationId.replace(/[{}]/g, "").toLowerCase() !==
|
|
3607
|
+
op.id.replace(/[{}]/g, "").toLowerCase()
|
|
3608
|
+
? undefined
|
|
3609
|
+
: current);
|
|
3610
|
+
// The palette's how-to hint is for users who have never inserted a
|
|
3611
|
+
// component; the first local insertion retires it.
|
|
3612
|
+
if (op.type === "add-component") {
|
|
3613
|
+
markComponentInsertionHintSeen();
|
|
3614
|
+
}
|
|
3512
3615
|
if (item?.id === op.mainItem?.id &&
|
|
3513
3616
|
item?.language === op.mainItem?.language &&
|
|
3514
3617
|
item?.version === op.mainItem?.version) {
|
|
@@ -3517,29 +3620,34 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
3517
3620
|
// Note: We intentionally do NOT call refreshHistory() here.
|
|
3518
3621
|
// The websocket handler + merge logic above keeps the history up to date without
|
|
3519
3622
|
// causing a race where stale server data arrives before the server has processed a redo.
|
|
3520
|
-
}, [
|
|
3521
|
-
|
|
3623
|
+
}, [
|
|
3624
|
+
item,
|
|
3625
|
+
setInsertMode,
|
|
3626
|
+
updateOperationInHistory,
|
|
3627
|
+
markComponentInsertionHintSeen,
|
|
3628
|
+
]);
|
|
3629
|
+
// Memoized: `ui` is a dependency of most operation callbacks, and through
|
|
3630
|
+
// them of `operations` and the EditContext value. A fresh object per shell
|
|
3631
|
+
// render rebuilt all three on every render (each field click), re-rendering
|
|
3632
|
+
// every EditContext consumer.
|
|
3633
|
+
const ui = useMemo(() => ({
|
|
3522
3634
|
showErrorToast,
|
|
3523
3635
|
confirmationDialogRef,
|
|
3524
3636
|
onOperationExecuted,
|
|
3525
|
-
};
|
|
3637
|
+
}), [showErrorToast, onOperationExecuted]);
|
|
3526
3638
|
// moved to useMediaSelector
|
|
3527
3639
|
// Workbox/validation scope spans every open slot (each slot's page tree plus
|
|
3528
3640
|
// its item), so opening a validation result in a second slot keeps the page's
|
|
3529
|
-
// list intact regardless of which slot is active.
|
|
3530
|
-
|
|
3531
|
-
// pageModelReadyToken state whenever a slot's page model finishes building.
|
|
3532
|
-
const registeredSlotScopes = editorSlots.flatMap((slot) => {
|
|
3641
|
+
// list intact regardless of which slot is active.
|
|
3642
|
+
const registeredSlotContexts = editorSlots.flatMap((slot) => {
|
|
3533
3643
|
const slotContext = slotContexts.get(slot.slotId);
|
|
3534
|
-
|
|
3535
|
-
return [];
|
|
3536
|
-
return [
|
|
3537
|
-
{
|
|
3538
|
-
page: slotContext.primaryPageViewContext.page,
|
|
3539
|
-
itemDescriptor: slotContext.itemDescriptor,
|
|
3540
|
-
},
|
|
3541
|
-
];
|
|
3644
|
+
return slotContext ? [slotContext] : [];
|
|
3542
3645
|
});
|
|
3646
|
+
const registeredSlotPages = usePageViewStates(registeredSlotContexts.map((slotContext) => slotContext.primaryPageViewContext), (state) => state.page);
|
|
3647
|
+
const registeredSlotScopes = registeredSlotContexts.map((slotContext, index) => ({
|
|
3648
|
+
page: registeredSlotPages[index],
|
|
3649
|
+
itemDescriptor: slotContext.itemDescriptor,
|
|
3650
|
+
}));
|
|
3543
3651
|
const workboxScopeSlots = registeredSlotScopes.length
|
|
3544
3652
|
? registeredSlotScopes
|
|
3545
3653
|
: [{ page, itemDescriptor: currentItemDescriptor }];
|
|
@@ -3586,7 +3694,18 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
3586
3694
|
updateExecutingOperationProgressRef.current?.(operationId, progress, statusMessage);
|
|
3587
3695
|
},
|
|
3588
3696
|
refreshWorkbox,
|
|
3589
|
-
canvasHasChromeSuppressedTargets: () => !!activePageViewContextRef.current?.bridgeGeometry?.targets.some((target) => target.decorationsSuppressed),
|
|
3697
|
+
canvasHasChromeSuppressedTargets: () => !!activePageViewContextRef.current?.getState().bridgeGeometry?.targets.some((target) => target.decorationsSuppressed),
|
|
3698
|
+
isRenderingOnCanvas: (itemId, fieldIds) => {
|
|
3699
|
+
const page = currentItemRef.current;
|
|
3700
|
+
return isRenderingOnCanvas({
|
|
3701
|
+
itemId,
|
|
3702
|
+
fieldIds,
|
|
3703
|
+
iframe: activePageViewContextRef.current?.getState().editorIframe,
|
|
3704
|
+
page: page?.id && page.language && typeof page.version === "number"
|
|
3705
|
+
? { id: page.id, language: page.language, version: page.version }
|
|
3706
|
+
: undefined,
|
|
3707
|
+
});
|
|
3708
|
+
},
|
|
3590
3709
|
});
|
|
3591
3710
|
// Concurrent user limit error state
|
|
3592
3711
|
const [concurrentUserLimitError, setConcurrentUserLimitError] = useState(null);
|
|
@@ -3686,7 +3805,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
3686
3805
|
}
|
|
3687
3806
|
// Routes over whichever transport is active (WebSocket preferred, SSE fallback).
|
|
3688
3807
|
getEditorRealtime().send(message);
|
|
3689
|
-
}, [sessionId]);
|
|
3808
|
+
}, [sessionId, setRemoteCarets]);
|
|
3690
3809
|
// URL update helper - defined early so it can be used by workspace/sidebar functions
|
|
3691
3810
|
const updateUrl = useCallback((params) => {
|
|
3692
3811
|
// Use the actual browser pathname (including any basePath like /parhelia)
|
|
@@ -4188,7 +4307,10 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
4188
4307
|
]);
|
|
4189
4308
|
// Replace selected text with new content (for inline AI editing)
|
|
4190
4309
|
const replaceSelectedText = useCallback(async (newText, selectionOverride) => {
|
|
4191
|
-
const rangeToReplace = selectionOverride ??
|
|
4310
|
+
const rangeToReplace = selectionOverride ??
|
|
4311
|
+
selectedRangeStore.get() ??
|
|
4312
|
+
caretRangeRef.current ??
|
|
4313
|
+
lastTextSelectionRangeRef.current;
|
|
4192
4314
|
try {
|
|
4193
4315
|
// If we have selected text and a replaceText callback, use it
|
|
4194
4316
|
if (rangeToReplace?.text && rangeToReplace.replaceText) {
|
|
@@ -4217,7 +4339,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
4217
4339
|
lastTextSelectionRangeRef.current = undefined;
|
|
4218
4340
|
return;
|
|
4219
4341
|
}
|
|
4220
|
-
|
|
4342
|
+
// Read the focused field through the ref so this callback (part of
|
|
4343
|
+
// editContext) keeps its identity across field clicks.
|
|
4344
|
+
const fieldToReplace = focusedFieldRef.current ??
|
|
4221
4345
|
(rangeToReplace?.fieldId &&
|
|
4222
4346
|
rangeToReplace.itemId &&
|
|
4223
4347
|
rangeToReplace.language &&
|
|
@@ -4279,14 +4403,15 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
4279
4403
|
console.error("Failed to replace/insert text:", error);
|
|
4280
4404
|
}
|
|
4281
4405
|
}, [
|
|
4282
|
-
|
|
4283
|
-
|
|
4406
|
+
selectedRangeStore,
|
|
4407
|
+
setSelectedRange,
|
|
4284
4408
|
itemsRepository,
|
|
4285
4409
|
operations,
|
|
4286
4410
|
getActiveSlotContext,
|
|
4287
4411
|
]);
|
|
4288
4412
|
// Insert text at cursor position (for when there's no selection)
|
|
4289
4413
|
const insertTextAtCursor = useCallback(async (newText) => {
|
|
4414
|
+
const focusedField = focusedFieldRef.current;
|
|
4290
4415
|
if (!focusedField)
|
|
4291
4416
|
return;
|
|
4292
4417
|
try {
|
|
@@ -4320,8 +4445,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
4320
4445
|
}
|
|
4321
4446
|
}
|
|
4322
4447
|
// If we have a selectedRange with position info, use it
|
|
4323
|
-
|
|
4324
|
-
|
|
4448
|
+
const publishedRange = selectedRangeStore.get() ?? caretRangeRef.current;
|
|
4449
|
+
if (!insertPosition && publishedRange?.startOffset !== undefined) {
|
|
4450
|
+
insertPosition = publishedRange.startOffset;
|
|
4325
4451
|
}
|
|
4326
4452
|
// Fallback: use field value length (append)
|
|
4327
4453
|
const { fieldId, item } = focusedField;
|
|
@@ -4345,8 +4471,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
4345
4471
|
console.error("Failed to insert text at cursor:", error);
|
|
4346
4472
|
}
|
|
4347
4473
|
}, [
|
|
4348
|
-
|
|
4349
|
-
|
|
4474
|
+
selectedRangeStore,
|
|
4475
|
+
setSelectedRange,
|
|
4350
4476
|
itemsRepository,
|
|
4351
4477
|
operations,
|
|
4352
4478
|
getActiveSlotContext,
|
|
@@ -4360,14 +4486,31 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
4360
4486
|
// Shared focused field setter with lock handling (used in both contexts)
|
|
4361
4487
|
const setFocusedFieldWithLock = useCallback(async (field, requestLock) => {
|
|
4362
4488
|
if (field) {
|
|
4363
|
-
|
|
4489
|
+
ignoreBlurRef.current = true;
|
|
4364
4490
|
setTimeout(() => {
|
|
4365
|
-
|
|
4491
|
+
ignoreBlurRef.current = false;
|
|
4366
4492
|
}, 20);
|
|
4367
4493
|
// Selection follows the user's click independently of the asynchronous
|
|
4368
4494
|
// edit lock. Lock ownership controls whether editing may proceed, but a
|
|
4369
4495
|
// slow or rejected lock must not leave the form on the previous field.
|
|
4370
|
-
|
|
4496
|
+
//
|
|
4497
|
+
// Every click inside a field re-enters here (the field wrapper captures
|
|
4498
|
+
// clicks and focus), so a click on a field action such as Copy in the
|
|
4499
|
+
// already focused field must not publish a new descriptor object:
|
|
4500
|
+
// every consumer keyed on focusedField would re-run for a field that
|
|
4501
|
+
// did not change. The lock is still ensured below (a no-op when held).
|
|
4502
|
+
const current = focusedFieldRef.current;
|
|
4503
|
+
const alreadyFocused = !!current &&
|
|
4504
|
+
current.fieldId === field.fieldId &&
|
|
4505
|
+
current.item.id === field.item.id &&
|
|
4506
|
+
current.item.language === field.item.language &&
|
|
4507
|
+
current.item.version === field.item.version;
|
|
4508
|
+
if (!alreadyFocused) {
|
|
4509
|
+
// Mirror the state synchronously so a second call in the same
|
|
4510
|
+
// event (before the focusedField effect refreshes the ref) sees it.
|
|
4511
|
+
focusedFieldRef.current = field;
|
|
4512
|
+
setFocusedField({ ...field });
|
|
4513
|
+
}
|
|
4371
4514
|
if (requestLock) {
|
|
4372
4515
|
const lockResult = (await operations.ensureLock(field)) || false;
|
|
4373
4516
|
if (!lockResult) {
|
|
@@ -4399,14 +4542,17 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
4399
4542
|
lastAgentTerminalInteractionAt: agentTerminalInteractionAtRef.current,
|
|
4400
4543
|
now: Date.now(),
|
|
4401
4544
|
});
|
|
4402
|
-
if (!
|
|
4545
|
+
if (!ignoreBlurRef.current &&
|
|
4546
|
+
!focusMovedToShowMe &&
|
|
4547
|
+
!focusMovedToAgentTerminal) {
|
|
4548
|
+
focusedFieldRef.current = undefined;
|
|
4403
4549
|
setFocusedField(undefined);
|
|
4404
4550
|
setLockedField(undefined); // Clear client-side lock state
|
|
4405
4551
|
releaseFieldLocks(sessionId);
|
|
4406
4552
|
}
|
|
4407
4553
|
}
|
|
4408
4554
|
return true;
|
|
4409
|
-
}, [operations,
|
|
4555
|
+
}, [operations, sessionId]);
|
|
4410
4556
|
const quickSwitcherEntries = useMemo(() => {
|
|
4411
4557
|
const entries = [];
|
|
4412
4558
|
const seen = new Set();
|
|
@@ -4829,9 +4975,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
4829
4975
|
if (!isInitialLoad)
|
|
4830
4976
|
return;
|
|
4831
4977
|
const isFullscreen = searchParams.get("fullscreen") === "true";
|
|
4832
|
-
|
|
4833
|
-
activePageViewContext.setFullscreen(isFullscreen);
|
|
4834
|
-
}
|
|
4978
|
+
activePageViewContext.setFullscreen(isFullscreen);
|
|
4835
4979
|
}, [searchParams, isInitialLoad, activePageViewContext]);
|
|
4836
4980
|
useEffect(() => {
|
|
4837
4981
|
if (typeof window === "undefined") {
|
|
@@ -4844,7 +4988,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
4844
4988
|
}
|
|
4845
4989
|
window.__parheliaViewportTestApi = {
|
|
4846
4990
|
setZoom: (zoom) => activePageViewContext.setZoom(zoom),
|
|
4847
|
-
getZoom: () => activePageViewContext.zoom,
|
|
4991
|
+
getZoom: () => activePageViewContext.getState().zoom,
|
|
4848
4992
|
};
|
|
4849
4993
|
return () => {
|
|
4850
4994
|
delete window.__parheliaViewportTestApi;
|
|
@@ -4979,8 +5123,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
4979
5123
|
},
|
|
4980
5124
|
scrollIntoView,
|
|
4981
5125
|
setScrollIntoView,
|
|
4982
|
-
focusedField,
|
|
4983
|
-
setFocusedField: setFocusedFieldWithLock,
|
|
4984
5126
|
getComponentCommands: async (components, providerContext) => {
|
|
4985
5127
|
return await getComponentCommands(components, editContext, providerContext);
|
|
4986
5128
|
},
|
|
@@ -5160,7 +5302,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5160
5302
|
];
|
|
5161
5303
|
});
|
|
5162
5304
|
try {
|
|
5163
|
-
await executeFieldServerAction(fieldDescriptor.item, fieldDescriptor.fieldId, item.descriptor, actionButton.action, editContext.sessionId,
|
|
5305
|
+
await executeFieldServerAction(fieldDescriptor.item, fieldDescriptor.fieldId, item.descriptor, actionButton.action, editContext.sessionId, selectedRangeStore.get()?.text || "", parameters || {}, (data) => {
|
|
5164
5306
|
// Update progress message if available
|
|
5165
5307
|
if (data?.responseText) {
|
|
5166
5308
|
op.message = data.responseText;
|
|
@@ -5265,10 +5407,16 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5265
5407
|
},
|
|
5266
5408
|
inserting,
|
|
5267
5409
|
removingComponentIds,
|
|
5410
|
+
recentConversion,
|
|
5411
|
+
setRecentConversion,
|
|
5268
5412
|
validating,
|
|
5269
5413
|
validationResult,
|
|
5270
5414
|
loadItem,
|
|
5271
|
-
|
|
5415
|
+
// Live read for handlers; components subscribe with useEditHistory().
|
|
5416
|
+
get editHistory() {
|
|
5417
|
+
return editHistoryStore.get();
|
|
5418
|
+
},
|
|
5419
|
+
editHistoryStore,
|
|
5272
5420
|
historyMode,
|
|
5273
5421
|
setHistoryMode,
|
|
5274
5422
|
showOnlyMyChanges,
|
|
@@ -5284,8 +5432,12 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5284
5432
|
canLoadMoreHistory,
|
|
5285
5433
|
isHistoryLoadingMore,
|
|
5286
5434
|
loadMoreHistory,
|
|
5287
|
-
|
|
5288
|
-
|
|
5435
|
+
// Live read for handlers; components subscribe with useActiveSessions().
|
|
5436
|
+
get activeSessions() {
|
|
5437
|
+
return activeSessionsStore.get();
|
|
5438
|
+
},
|
|
5439
|
+
activeSessionsStore,
|
|
5440
|
+
remoteCaretsStore,
|
|
5289
5441
|
unlockField: async () => {
|
|
5290
5442
|
setLockedField(undefined); // Clear client-side lock state
|
|
5291
5443
|
await releaseFieldLocks(sessionId);
|
|
@@ -5340,11 +5492,15 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5340
5492
|
currentOverlay,
|
|
5341
5493
|
contextMenuSource,
|
|
5342
5494
|
setCurrentOverlay,
|
|
5343
|
-
lockedField,
|
|
5344
5495
|
timings,
|
|
5345
5496
|
setTimings,
|
|
5346
|
-
|
|
5497
|
+
// Live read: selections and carets never rebuild this object.
|
|
5498
|
+
get selectedRange() {
|
|
5499
|
+
return selectedRangeStore.get() ?? caretRangeRef.current;
|
|
5500
|
+
},
|
|
5501
|
+
selectedRangeStore,
|
|
5347
5502
|
setSelectedRange,
|
|
5503
|
+
setCaretRange,
|
|
5348
5504
|
replaceSelectedText,
|
|
5349
5505
|
insertTextAtCursor,
|
|
5350
5506
|
confirm: (props) => {
|
|
@@ -5367,7 +5523,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5367
5523
|
addSocketMessageListener,
|
|
5368
5524
|
sendSocketMessage,
|
|
5369
5525
|
socketConnectionVersion,
|
|
5370
|
-
|
|
5526
|
+
socketDiagnosticsStore,
|
|
5371
5527
|
currentItemDescriptor,
|
|
5372
5528
|
editorSlots,
|
|
5373
5529
|
activeSlotId,
|
|
@@ -5381,8 +5537,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5381
5537
|
setActiveSlot,
|
|
5382
5538
|
revision,
|
|
5383
5539
|
fullReloadToken,
|
|
5384
|
-
notifyPageModelReady,
|
|
5385
|
-
pageModelReadyToken,
|
|
5386
5540
|
selectedComment,
|
|
5387
5541
|
setSelectedComment,
|
|
5388
5542
|
selectedSuggestedEdit,
|
|
@@ -5413,12 +5567,19 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5413
5567
|
}
|
|
5414
5568
|
// Snapshot selection context up-front so switching views doesn't change what we comment on.
|
|
5415
5569
|
const hintedFieldSnapshot = options?.field;
|
|
5416
|
-
|
|
5570
|
+
// A picked target (field or whole item) is what the comment is about;
|
|
5571
|
+
// the focused field and selections elsewhere must not override it.
|
|
5572
|
+
const hasExplicitTarget = !!options?.field || !!options?.itemId;
|
|
5573
|
+
const focusedFieldSnapshot = hasExplicitTarget
|
|
5574
|
+
? undefined
|
|
5575
|
+
: focusedFieldRef.current;
|
|
5576
|
+
const selectedRange = selectedRangeStore.get();
|
|
5417
5577
|
const selectedRangeCandidate = isUsableTextSelectionRange(selectedRange)
|
|
5418
5578
|
? selectedRange
|
|
5419
5579
|
: lastTextSelectionRangeRef.current;
|
|
5420
|
-
const selectedRangeSnapshot =
|
|
5421
|
-
selectionRangeMatchesField(selectedRangeCandidate, hintedFieldSnapshot)
|
|
5580
|
+
const selectedRangeSnapshot = (hintedFieldSnapshot
|
|
5581
|
+
? selectionRangeMatchesField(selectedRangeCandidate, hintedFieldSnapshot)
|
|
5582
|
+
: !hasExplicitTarget)
|
|
5422
5583
|
? selectedRangeCandidate
|
|
5423
5584
|
: undefined;
|
|
5424
5585
|
const selectedRangeFieldSnapshot = isUsableTextSelectionRange(selectedRangeSnapshot)
|
|
@@ -5437,6 +5598,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5437
5598
|
hintedFieldSnapshot ??
|
|
5438
5599
|
focusedFieldSnapshot;
|
|
5439
5600
|
const itemId = commentFieldSnapshot?.item.id ||
|
|
5601
|
+
options?.itemId ||
|
|
5440
5602
|
(selection.length > 0 ? selection[0] : undefined) ||
|
|
5441
5603
|
descriptor.id;
|
|
5442
5604
|
if (!itemId)
|
|
@@ -5541,6 +5703,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5541
5703
|
showEditorFormHint,
|
|
5542
5704
|
dismissEditorFormHint,
|
|
5543
5705
|
editorFormToggleButtonRef,
|
|
5706
|
+
componentInsertionHintSeen,
|
|
5707
|
+
markComponentInsertionHintSeen,
|
|
5544
5708
|
showMinimap: effectiveShowMinimap,
|
|
5545
5709
|
setShowMinimap: handleSetShowMinimap,
|
|
5546
5710
|
showHelpTerminal,
|
|
@@ -5566,6 +5730,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5566
5730
|
isMobile,
|
|
5567
5731
|
mobileEditorPanelOpen,
|
|
5568
5732
|
setMobileEditorPanelOpen: handleSetMobileEditorPanelOpen,
|
|
5733
|
+
mobileCommentsPanelOpen,
|
|
5734
|
+
setMobileCommentsPanelOpen,
|
|
5735
|
+
revealMobileCommentsPanel,
|
|
5569
5736
|
openDialog,
|
|
5570
5737
|
webSocketMessages,
|
|
5571
5738
|
clearWebSocketMessages: () => setWebSocketMessages([]),
|
|
@@ -5634,8 +5801,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5634
5801
|
media.mediaSelectorMode,
|
|
5635
5802
|
media.selectedMediaIdPath,
|
|
5636
5803
|
scrollIntoView,
|
|
5637
|
-
focusedField,
|
|
5638
|
-
setFocusedFieldWithLock,
|
|
5639
5804
|
activeFieldActions,
|
|
5640
5805
|
currentWorkspace,
|
|
5641
5806
|
previousWorkspaceId,
|
|
@@ -5661,9 +5826,10 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5661
5826
|
insertMode,
|
|
5662
5827
|
currentOverlay,
|
|
5663
5828
|
contextMenuSource,
|
|
5664
|
-
lockedField,
|
|
5665
5829
|
timings,
|
|
5666
|
-
|
|
5830
|
+
selectedRangeStore,
|
|
5831
|
+
setSelectedRange,
|
|
5832
|
+
setCaretRange,
|
|
5667
5833
|
replaceSelectedText,
|
|
5668
5834
|
insertTextAtCursor,
|
|
5669
5835
|
browseHistory,
|
|
@@ -5674,11 +5840,10 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5674
5840
|
sendSocketMessage,
|
|
5675
5841
|
socketConnectionVersion,
|
|
5676
5842
|
removingComponentIds,
|
|
5843
|
+
recentConversion,
|
|
5677
5844
|
currentItemDescriptor,
|
|
5678
5845
|
revision,
|
|
5679
5846
|
fullReloadToken,
|
|
5680
|
-
notifyPageModelReady,
|
|
5681
|
-
pageModelReadyToken,
|
|
5682
5847
|
selectedComment,
|
|
5683
5848
|
selectedSuggestedEdit,
|
|
5684
5849
|
comments,
|
|
@@ -5709,8 +5874,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5709
5874
|
quickSwitcherSelectedIndex,
|
|
5710
5875
|
handleQuickSwitcherSelect,
|
|
5711
5876
|
webSocketMessages,
|
|
5712
|
-
|
|
5713
|
-
|
|
5877
|
+
socketDiagnosticsStore,
|
|
5878
|
+
remoteCaretsStore,
|
|
5714
5879
|
factoriesRef,
|
|
5715
5880
|
user,
|
|
5716
5881
|
statusMessage,
|
|
@@ -5728,6 +5893,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5728
5893
|
isMobile,
|
|
5729
5894
|
mobileEditorPanelOpen,
|
|
5730
5895
|
handleSetMobileEditorPanelOpen,
|
|
5896
|
+
mobileCommentsPanelOpen,
|
|
5897
|
+
revealMobileCommentsPanel,
|
|
5731
5898
|
showComponentNavigator,
|
|
5732
5899
|
isComponentNavigatorOpenForSlot,
|
|
5733
5900
|
setComponentNavigatorOpenForSlot,
|
|
@@ -5767,6 +5934,46 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5767
5934
|
executeCommand,
|
|
5768
5935
|
showInfoToast,
|
|
5769
5936
|
showErrorToast,
|
|
5937
|
+
// Values below were missing and only looked fresh while this object was
|
|
5938
|
+
// rebuilt on every shell render or socket message.
|
|
5939
|
+
inserting,
|
|
5940
|
+
editHistoryStore,
|
|
5941
|
+
historyMode,
|
|
5942
|
+
showOnlyMyChanges,
|
|
5943
|
+
filterByCurrentLanguage,
|
|
5944
|
+
sidebarStacks,
|
|
5945
|
+
fullscreen,
|
|
5946
|
+
mode,
|
|
5947
|
+
showSuggestedEdits,
|
|
5948
|
+
showSuggestedEditsDiff,
|
|
5949
|
+
showSelectedSuggestionOnPage,
|
|
5950
|
+
showVersionDiffHighlighting,
|
|
5951
|
+
agentChangeHighlighting,
|
|
5952
|
+
componentInsertionHintSeen,
|
|
5953
|
+
selectWithoutAutoScroll,
|
|
5954
|
+
consumeNextSelectionAutoScrollSuppression,
|
|
5955
|
+
consumeNextFocusedFieldAutoScrollSuppression,
|
|
5956
|
+
loadItem,
|
|
5957
|
+
refreshHistory,
|
|
5958
|
+
stackSidebar,
|
|
5959
|
+
moveSidebarToColumn,
|
|
5960
|
+
unstackSidebar,
|
|
5961
|
+
reorderSidebarInStack,
|
|
5962
|
+
setCompareMode,
|
|
5963
|
+
registerSlotContext,
|
|
5964
|
+
unregisterSlotContext,
|
|
5965
|
+
getActiveSlotContext,
|
|
5966
|
+
getActiveSlotId,
|
|
5967
|
+
closeEditorSlot,
|
|
5968
|
+
setActiveSlot,
|
|
5969
|
+
setShowComments,
|
|
5970
|
+
setSuggestedEdits,
|
|
5971
|
+
getCurrentSuggestedEdits,
|
|
5972
|
+
markComponentInsertionHintSeen,
|
|
5973
|
+
handleSetShowHelpTerminal,
|
|
5974
|
+
handleSetShowAgentsWorkspaceEditor,
|
|
5975
|
+
handleSetShowLayoutComponents,
|
|
5976
|
+
activeSessionsStore,
|
|
5770
5977
|
]);
|
|
5771
5978
|
// CRITICAL: Assign editContext to ref synchronously (not via useEffect)
|
|
5772
5979
|
// This ensures editContextRef.current always has the latest value when executeCommand is called
|
|
@@ -5787,6 +5994,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5787
5994
|
addRecentEdit,
|
|
5788
5995
|
focusedField,
|
|
5789
5996
|
setFocusedField: setFocusedFieldWithLock,
|
|
5997
|
+
lockedField,
|
|
5790
5998
|
unlockField: async () => {
|
|
5791
5999
|
setLockedField(undefined); // Clear client-side lock state
|
|
5792
6000
|
await releaseFieldLocks(sessionId);
|
|
@@ -5797,6 +6005,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
5797
6005
|
addRecentEdit,
|
|
5798
6006
|
focusedField,
|
|
5799
6007
|
setFocusedFieldWithLock,
|
|
6008
|
+
lockedField,
|
|
5800
6009
|
sessionId,
|
|
5801
6010
|
]);
|
|
5802
6011
|
// Debug: Track editContext changes
|
|
@@ -6056,7 +6265,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
6056
6265
|
startTour();
|
|
6057
6266
|
}
|
|
6058
6267
|
: undefined, replayEnabled: canStartTour })), _jsx(FeatureGate, { feature: LicenseFeatures.AI, children: _jsx(GuidanceOverlay, {}) }), _jsx(FeatureGate, { feature: LicenseFeatures.AI, children: _jsx(AgentDialogHandler, {}) })] }));
|
|
6059
|
-
const showRefreshSpinner = editContext.isRefreshing && !
|
|
6268
|
+
const showRefreshSpinner = editContext.isRefreshing && !activeIframeSupportsRefresh;
|
|
6060
6269
|
return (_jsx(LicenseProvider, { initialLicenseStatus: initialLicenseStatus, initialStatusLoaded: initialLicenseStatusLoaded, children: _jsx("div", { className: `editor h-full w-full`, children: _jsx(OperationsContextProvider, { value: operationsContext.context, children: _jsx(FieldsEditContextProvider, { value: fieldsEditContext, children: _jsx(EditContextProvider, { value: editContext, children: _jsxs(SelectionContextProvider, { value: selectionContextValue, children: [_jsx(DevModeIndicator, {}), startupChecks.state === "loading" && _jsx(EditorLoadingOverlay, {}), showRefreshSpinner && (_jsx("div", { className: "text-neutral-grey-50 pointer-events-none fixed right-0 bottom-0 flex h-24 w-24 items-center justify-center opacity-50 select-none", children: _jsx(Spinner, {}) })), (currentWorkspace.id === "agents" ||
|
|
6061
6270
|
currentWorkspace.id === "taskboard" ||
|
|
6062
6271
|
currentWorkspace.id === "translation-management") &&
|