@parhelia/core 0.1.12895 → 0.1.12900
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/agents-view/AgentCard.js +1 -1
- package/dist/agents-view/AgentCard.js.map +1 -1
- package/dist/agents-view/AgentProfileIcon.d.ts +1 -1
- package/dist/agents-view/AgentProfileIcon.js +4 -0
- package/dist/agents-view/AgentProfileIcon.js.map +1 -1
- package/dist/agents-view/AgentsWorkspaceView.js +10 -24
- package/dist/agents-view/AgentsWorkspaceView.js.map +1 -1
- package/dist/agents-view/ProfileAgentsGroup.js +2 -3
- package/dist/agents-view/ProfileAgentsGroup.js.map +1 -1
- package/dist/components/MarkdownDisplay.js +1 -1
- package/dist/components/MarkdownDisplay.js.map +1 -1
- package/dist/components/SearchInput.d.ts +1 -0
- package/dist/components/SearchInput.js +2 -2
- package/dist/components/SearchInput.js.map +1 -1
- package/dist/components/ui/LanguageSelectionGrid.js +2 -1
- package/dist/components/ui/LanguageSelectionGrid.js.map +1 -1
- package/dist/components/ui/LanguageSelector.d.ts +2 -1
- package/dist/components/ui/LanguageSelector.js +3 -3
- package/dist/components/ui/LanguageSelector.js.map +1 -1
- package/dist/components/ui/badge.d.ts +5 -1
- package/dist/components/ui/badge.js +8 -3
- package/dist/components/ui/badge.js.map +1 -1
- package/dist/components/ui/button.js +4 -5
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/checkbox.js +1 -1
- package/dist/components/ui/checkbox.js.map +1 -1
- package/dist/components/ui/command.js +1 -1
- package/dist/components/ui/command.js.map +1 -1
- package/dist/components/ui/context-menu.d.ts +13 -0
- package/dist/components/ui/context-menu.js +61 -57
- package/dist/components/ui/context-menu.js.map +1 -1
- package/dist/components/ui/dropdown-menu.js +4 -4
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/input.js +2 -2
- package/dist/components/ui/input.js.map +1 -1
- package/dist/components/ui/switch.js +1 -1
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/textarea.js +1 -1
- package/dist/components/ui/textarea.js.map +1 -1
- package/dist/config/config.js +40 -15
- package/dist/config/config.js.map +1 -1
- package/dist/config/notificationRoutes.js +2 -2
- package/dist/config/notificationRoutes.js.map +1 -1
- package/dist/editor/ContentTree.js +13 -5
- package/dist/editor/ContentTree.js.map +1 -1
- package/dist/editor/ContextMenu.js +4 -6
- package/dist/editor/ContextMenu.js.map +1 -1
- package/dist/editor/FieldListField.js +14 -7
- package/dist/editor/FieldListField.js.map +1 -1
- package/dist/editor/GlobalMenuBar.js +1 -2
- package/dist/editor/GlobalMenuBar.js.map +1 -1
- package/dist/editor/ImageEditor.js +1 -1
- package/dist/editor/ImageEditor.js.map +1 -1
- package/dist/editor/LinkEditorDialog.js +13 -0
- package/dist/editor/LinkEditorDialog.js.map +1 -1
- package/dist/editor/MainLayout.js +66 -9
- package/dist/editor/MainLayout.js.map +1 -1
- package/dist/editor/Titlebar.js +1 -1
- package/dist/editor/Titlebar.js.map +1 -1
- package/dist/editor/WorkspaceTitleSwitcher.js +12 -31
- package/dist/editor/WorkspaceTitleSwitcher.js.map +1 -1
- package/dist/editor/ai/AgentProfileSelector.js +2 -2
- package/dist/editor/ai/AgentProfileSelector.js.map +1 -1
- package/dist/editor/ai/AgentStatusBadge.js +3 -11
- package/dist/editor/ai/AgentStatusBadge.js.map +1 -1
- package/dist/editor/ai/Agents.js +46 -41
- package/dist/editor/ai/Agents.js.map +1 -1
- package/dist/editor/ai/InlineAiDialog.js +24 -26
- package/dist/editor/ai/InlineAiDialog.js.map +1 -1
- package/dist/editor/ai/InlineAiTrigger.js +30 -1
- package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
- package/dist/editor/ai/agentActivitySummary.d.ts +108 -0
- package/dist/editor/ai/agentActivitySummary.js +390 -0
- package/dist/editor/ai/agentActivitySummary.js.map +1 -0
- package/dist/editor/ai/terminal/agentContextMerge.d.ts +19 -0
- package/dist/editor/ai/terminal/agentContextMerge.js +88 -0
- package/dist/editor/ai/terminal/agentContextMerge.js.map +1 -0
- package/dist/editor/ai/terminal/components/ActivitySummaryCell.d.ts +21 -0
- package/dist/editor/ai/terminal/components/ActivitySummaryCell.js +133 -0
- package/dist/editor/ai/terminal/components/ActivitySummaryCell.js.map +1 -0
- package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.d.ts +7 -0
- package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.js +48 -0
- package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.js.map +1 -0
- package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js +1 -1
- package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentFullPromptControls.d.ts +2 -1
- package/dist/editor/ai/terminal/components/AgentFullPromptControls.js +13 -13
- package/dist/editor/ai/terminal/components/AgentFullPromptControls.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentGreeting.js +2 -2
- package/dist/editor/ai/terminal/components/AgentGreeting.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentMobileStatusPopover.js +1 -1
- package/dist/editor/ai/terminal/components/AgentMobileStatusPopover.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentModeSelector.d.ts +1 -1
- package/dist/editor/ai/terminal/components/AgentModeSelector.js +86 -9
- package/dist/editor/ai/terminal/components/AgentModeSelector.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPredefinedPromptsButton.js +1 -1
- package/dist/editor/ai/terminal/components/AgentPredefinedPromptsButton.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js +2 -2
- package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptInputArea.d.ts +2 -2
- package/dist/editor/ai/terminal/components/AgentPromptInputArea.js +4 -27
- package/dist/editor/ai/terminal/components/AgentPromptInputArea.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.d.ts +2 -2
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js +15 -12
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentSettingsPopover.js +1 -1
- package/dist/editor/ai/terminal/components/AgentSettingsPopover.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentSummaryAssistantResponse.d.ts +2 -0
- package/dist/editor/ai/terminal/components/AgentSummaryAssistantResponse.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalContextChrome.d.ts +1 -3
- package/dist/editor/ai/terminal/components/AgentTerminalContextChrome.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.d.ts +10 -10
- package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js +17 -3
- package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.d.ts +2 -1
- package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.js +59 -5
- package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalView.d.ts +3 -2
- package/dist/editor/ai/terminal/components/AgentTerminalView.js +5 -4
- package/dist/editor/ai/terminal/components/AgentTerminalView.js.map +1 -1
- package/dist/editor/ai/terminal/components/AiResponseMessage.d.ts +2 -0
- package/dist/editor/ai/terminal/components/AiResponseMessage.js +84 -28
- package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
- package/dist/editor/ai/terminal/components/ContextInfoBar.d.ts +2 -4
- package/dist/editor/ai/terminal/components/ContextInfoBar.js +93 -223
- package/dist/editor/ai/terminal/components/ContextInfoBar.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentDraftInitializer.js +7 -45
- package/dist/editor/ai/terminal/useAgentDraftInitializer.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentEditorContextPipeline.d.ts +0 -4
- package/dist/editor/ai/terminal/useAgentEditorContextPipeline.js +1 -7
- package/dist/editor/ai/terminal/useAgentEditorContextPipeline.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentPromptComposerSurface.d.ts +2 -2
- package/dist/editor/ai/terminal/useAgentQuickActions.d.ts +2 -2
- package/dist/editor/ai/terminal/useAgentQuickActions.js +61 -3
- package/dist/editor/ai/terminal/useAgentQuickActions.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentSettingsPanel.js +0 -2
- package/dist/editor/ai/terminal/useAgentSettingsPanel.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.js +3 -3
- package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentSkillActions.d.ts +0 -3
- package/dist/editor/ai/terminal/useAgentSkillActions.js +8 -26
- package/dist/editor/ai/terminal/useAgentSkillActions.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentSubmitContextBuilder.d.ts +1 -5
- package/dist/editor/ai/terminal/useAgentSubmitContextBuilder.js +6 -19
- package/dist/editor/ai/terminal/useAgentSubmitContextBuilder.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalChrome.d.ts +1 -3
- package/dist/editor/ai/terminal/useAgentTerminalChrome.js +2 -2
- package/dist/editor/ai/terminal/useAgentTerminalChrome.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalController.js +18 -22
- package/dist/editor/ai/terminal/useAgentTerminalController.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalViewProps.d.ts +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalViewProps.js +2 -2
- package/dist/editor/ai/terminal/useAgentTerminalViewProps.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalViewState.d.ts +0 -6
- package/dist/editor/ai/terminal/useAgentTerminalViewState.js +2 -16
- package/dist/editor/ai/terminal/useAgentTerminalViewState.js.map +1 -1
- package/dist/editor/ai/useActiveAgentConversation.d.ts +2 -0
- package/dist/editor/ai/useActiveAgentConversation.js +20 -0
- package/dist/editor/ai/useActiveAgentConversation.js.map +1 -1
- package/dist/editor/bridge/protocol.d.ts +48 -0
- package/dist/editor/bridge/protocol.js +13 -1
- package/dist/editor/bridge/protocol.js.map +1 -1
- package/dist/editor/client/EditorShell.d.ts +2 -0
- package/dist/editor/client/EditorShell.js +129 -29
- package/dist/editor/client/EditorShell.js.map +1 -1
- package/dist/editor/client/editContext.d.ts +30 -4
- package/dist/editor/client/editContext.js.map +1 -1
- package/dist/editor/client/hooks/useReducedMotion.d.ts +8 -0
- package/dist/editor/client/hooks/useReducedMotion.js +12 -0
- package/dist/editor/client/hooks/useReducedMotion.js.map +1 -0
- package/dist/editor/client/manualShowMeFocus.d.ts +17 -0
- package/dist/editor/client/manualShowMeFocus.js +32 -0
- package/dist/editor/client/manualShowMeFocus.js.map +1 -0
- package/dist/editor/client/ui/FullscreenControls.js +5 -5
- package/dist/editor/client/ui/FullscreenControls.js.map +1 -1
- package/dist/editor/commands/componentCommands.js +30 -1
- package/dist/editor/commands/componentCommands.js.map +1 -1
- package/dist/editor/commands/keyboardCommands.d.ts +6 -0
- package/dist/editor/commands/keyboardCommands.js +74 -0
- package/dist/editor/commands/keyboardCommands.js.map +1 -1
- package/dist/editor/commands/reorderComponent.d.ts +20 -0
- package/dist/editor/commands/reorderComponent.js +40 -0
- package/dist/editor/commands/reorderComponent.js.map +1 -0
- package/dist/editor/commands/undo.js +3 -3
- package/dist/editor/commands/undo.js.map +1 -1
- package/dist/editor/componentFrameColors.d.ts +11 -0
- package/dist/editor/componentFrameColors.js +47 -0
- package/dist/editor/componentFrameColors.js.map +1 -0
- package/dist/editor/field-types/RichTextEditor.js +25 -6
- package/dist/editor/field-types/RichTextEditor.js.map +1 -1
- package/dist/editor/field-types/RichTextEditorComponent.js +14 -1
- package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
- package/dist/editor/field-types/richtext/hooks/useRichTextProfile.d.ts +4 -1
- package/dist/editor/field-types/richtext/hooks/useRichTextProfile.js +33 -5
- package/dist/editor/field-types/richtext/hooks/useRichTextProfile.js.map +1 -1
- package/dist/editor/insertMenuItems.d.ts +11 -0
- package/dist/editor/insertMenuItems.js +9 -0
- package/dist/editor/insertMenuItems.js.map +1 -1
- package/dist/editor/menubar/ActiveUsers.js +3 -3
- package/dist/editor/menubar/ActiveUsers.js.map +1 -1
- package/dist/editor/menubar/FavoritesControls.js +46 -27
- package/dist/editor/menubar/FavoritesControls.js.map +1 -1
- package/dist/editor/menubar/GenericToolbar.js +2 -1
- package/dist/editor/menubar/GenericToolbar.js.map +1 -1
- package/dist/editor/menubar/ItemLanguageVersion.js +7 -5
- package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -1
- package/dist/editor/menubar/PageSelector.js +1 -1
- package/dist/editor/menubar/PageSelector.js.map +1 -1
- package/dist/editor/menubar/PreviewDatePicker.js +40 -21
- package/dist/editor/menubar/PreviewDatePicker.js.map +1 -1
- package/dist/editor/menubar/Separator.d.ts +2 -1
- package/dist/editor/menubar/Separator.js +2 -2
- package/dist/editor/menubar/Separator.js.map +1 -1
- package/dist/editor/menubar/ToolbarFactory.js +24 -17
- package/dist/editor/menubar/ToolbarFactory.js.map +1 -1
- package/dist/editor/menubar/VersionSelector.d.ts +2 -1
- package/dist/editor/menubar/VersionSelector.js +3 -3
- package/dist/editor/menubar/VersionSelector.js.map +1 -1
- package/dist/editor/menubar/WorkflowButton.js +17 -25
- package/dist/editor/menubar/WorkflowButton.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ContentTreeToggle.d.ts +1 -0
- package/dist/editor/menubar/toolbar-sections/ContentTreeToggle.js +13 -0
- package/dist/editor/menubar/toolbar-sections/ContentTreeToggle.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js +1 -1
- package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js +104 -9
- package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/EditControls.d.ts +4 -2
- package/dist/editor/menubar/toolbar-sections/EditControls.js +78 -11
- package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/FullscreenControl.d.ts +1 -0
- package/dist/editor/menubar/toolbar-sections/FullscreenControl.js +15 -0
- package/dist/editor/menubar/toolbar-sections/FullscreenControl.js.map +1 -0
- package/dist/editor/menubar/toolbar-sections/InsertControls.js +1 -1
- package/dist/editor/menubar/toolbar-sections/InsertControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ManualBrowser.d.ts +12 -0
- package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +169 -26
- package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ReviewCommands.js +2 -1
- package/dist/editor/menubar/toolbar-sections/ReviewCommands.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/UtilityControls.d.ts +3 -1
- package/dist/editor/menubar/toolbar-sections/UtilityControls.js +11 -3
- package/dist/editor/menubar/toolbar-sections/UtilityControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ViewportControls.d.ts +1 -0
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js +48 -29
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/index.d.ts +2 -1
- package/dist/editor/menubar/toolbar-sections/index.js +2 -1
- package/dist/editor/menubar/toolbar-sections/index.js.map +1 -1
- package/dist/editor/notifications/NotificationCenter.d.ts +4 -1
- package/dist/editor/notifications/NotificationCenter.js +13 -4
- package/dist/editor/notifications/NotificationCenter.js.map +1 -1
- package/dist/editor/notifications/WatchButton.d.ts +4 -2
- package/dist/editor/notifications/WatchButton.js +78 -20
- package/dist/editor/notifications/WatchButton.js.map +1 -1
- package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js +71 -6
- package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js.map +1 -1
- package/dist/editor/page-editor-chrome/CommentHighlightings.js +36 -40
- package/dist/editor/page-editor-chrome/CommentHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/DragInsertionOverlay.d.ts +36 -0
- package/dist/editor/page-editor-chrome/DragInsertionOverlay.js +879 -0
- package/dist/editor/page-editor-chrome/DragInsertionOverlay.js.map +1 -0
- package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.d.ts +1 -0
- package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js +3 -3
- package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js.map +1 -1
- package/dist/editor/page-editor-chrome/FrameMenu.d.ts +3 -2
- package/dist/editor/page-editor-chrome/FrameMenu.js +49 -119
- 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 +65 -15
- package/dist/editor/page-editor-chrome/FrameMenus.js.map +1 -1
- package/dist/editor/page-editor-chrome/InsertComponentMenu.d.ts +25 -0
- package/dist/editor/page-editor-chrome/InsertComponentMenu.js +30 -0
- package/dist/editor/page-editor-chrome/InsertComponentMenu.js.map +1 -0
- package/dist/editor/page-editor-chrome/PageEditorChrome.js +14 -2
- package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.d.ts +33 -2
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +94 -71
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.d.ts +13 -2
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +105 -203
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +51 -88
- package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -1
- package/dist/editor/page-editor-chrome/bridgeInlineFormatToolbarLayout.js +2 -1
- package/dist/editor/page-editor-chrome/bridgeInlineFormatToolbarLayout.js.map +1 -1
- package/dist/editor/page-editor-chrome/componentDragObject.d.ts +10 -0
- package/dist/editor/page-editor-chrome/componentDragObject.js +22 -0
- package/dist/editor/page-editor-chrome/componentDragObject.js.map +1 -0
- package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.d.ts +32 -0
- package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js +8 -0
- package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js.map +1 -1
- package/dist/editor/page-editor-chrome/overlay/InsertionLine.d.ts +44 -0
- package/dist/editor/page-editor-chrome/overlay/InsertionLine.js +160 -0
- package/dist/editor/page-editor-chrome/overlay/InsertionLine.js.map +1 -0
- package/dist/editor/page-editor-chrome/overlay/geometry.d.ts +39 -0
- package/dist/editor/page-editor-chrome/overlay/geometry.js +67 -10
- package/dist/editor/page-editor-chrome/overlay/geometry.js.map +1 -1
- package/dist/editor/page-editor-chrome/overlay/placeholderZones.d.ts +66 -0
- package/dist/editor/page-editor-chrome/overlay/placeholderZones.js +274 -0
- package/dist/editor/page-editor-chrome/overlay/placeholderZones.js.map +1 -0
- package/dist/editor/page-editor-chrome/useComponentDragHandle.d.ts +23 -0
- package/dist/editor/page-editor-chrome/useComponentDragHandle.js +41 -0
- package/dist/editor/page-editor-chrome/useComponentDragHandle.js.map +1 -0
- package/dist/editor/page-editor-chrome/useDragInsertionGesture.d.ts +23 -0
- package/dist/editor/page-editor-chrome/useDragInsertionGesture.js +207 -0
- package/dist/editor/page-editor-chrome/useDragInsertionGesture.js.map +1 -0
- package/dist/editor/page-editor-chrome/usePinnedHoveredComponentId.d.ts +2 -0
- package/dist/editor/page-editor-chrome/usePinnedHoveredComponentId.js +18 -0
- package/dist/editor/page-editor-chrome/usePinnedHoveredComponentId.js.map +1 -0
- package/dist/editor/page-viewer/EditorForm.js +14 -12
- package/dist/editor/page-viewer/EditorForm.js.map +1 -1
- package/dist/editor/page-viewer/EditorFormHintPopover.d.ts +2 -2
- package/dist/editor/page-viewer/EditorFormHintPopover.js +4 -4
- package/dist/editor/page-viewer/EditorFormHintPopover.js.map +1 -1
- package/dist/editor/page-viewer/MiniMap.d.ts +6 -0
- package/dist/editor/page-viewer/MiniMap.js +97 -12
- package/dist/editor/page-viewer/MiniMap.js.map +1 -1
- package/dist/editor/page-viewer/MinimapDropTargets.d.ts +13 -0
- package/dist/editor/page-viewer/MinimapDropTargets.js +140 -0
- package/dist/editor/page-viewer/MinimapDropTargets.js.map +1 -0
- package/dist/editor/page-viewer/PageViewer.js +96 -10
- package/dist/editor/page-viewer/PageViewer.js.map +1 -1
- package/dist/editor/page-viewer/PageViewerFrame.js +263 -6
- package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
- package/dist/editor/page-viewer/pageViewContext.d.ts +4 -1
- package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
- package/dist/editor/reviews/Comment.js +2 -0
- package/dist/editor/reviews/Comment.js.map +1 -1
- package/dist/editor/reviews/CommentDisplayPopover.js +5 -2
- package/dist/editor/reviews/CommentDisplayPopover.js.map +1 -1
- package/dist/editor/reviews/CommentPopover.d.ts +4 -0
- package/dist/editor/reviews/CommentPopover.js +15 -1
- package/dist/editor/reviews/CommentPopover.js.map +1 -1
- package/dist/editor/reviews/Comments.js +61 -44
- package/dist/editor/reviews/Comments.js.map +1 -1
- package/dist/editor/reviews/DecisionsMatrix.js +3 -3
- package/dist/editor/reviews/DecisionsMatrix.js.map +1 -1
- package/dist/editor/reviews/FeedbackModeIntro.d.ts +15 -0
- package/dist/editor/reviews/FeedbackModeIntro.js +22 -0
- package/dist/editor/reviews/FeedbackModeIntro.js.map +1 -0
- package/dist/editor/reviews/LatestFeedback.js +8 -2
- package/dist/editor/reviews/LatestFeedback.js.map +1 -1
- package/dist/editor/reviews/ReviewersPanel.js +2 -1
- package/dist/editor/reviews/ReviewersPanel.js.map +1 -1
- package/dist/editor/reviews/SuggestedEdit.js +9 -7
- package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
- package/dist/editor/reviews/SuggestionDisplayPopover.js +3 -3
- package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
- package/dist/editor/reviews/feedbackScrollTarget.d.ts +19 -0
- package/dist/editor/reviews/feedbackScrollTarget.js +171 -0
- package/dist/editor/reviews/feedbackScrollTarget.js.map +1 -0
- package/dist/editor/reviews/feedbackSelection.js +4 -4
- package/dist/editor/reviews/feedbackSelection.js.map +1 -1
- package/dist/editor/reviews/latestFeedbackData.js +1 -1
- package/dist/editor/reviews/openCommentsFeedback.d.ts +35 -0
- package/dist/editor/reviews/openCommentsFeedback.js +89 -0
- package/dist/editor/reviews/openCommentsFeedback.js.map +1 -0
- package/dist/editor/services/agentService.d.ts +5 -0
- package/dist/editor/services/agentService.js.map +1 -1
- package/dist/editor/services/aiService.d.ts +0 -2
- package/dist/editor/services/aiService.js.map +1 -1
- package/dist/editor/services/editService.d.ts +1 -0
- package/dist/editor/services/editService.js +4 -0
- package/dist/editor/services/editService.js.map +1 -1
- package/dist/editor/settings/IndexOverview.js +2 -2
- package/dist/editor/settings/IndexOverview.js.map +1 -1
- package/dist/editor/settings/QuotaInfo.js +2 -2
- package/dist/editor/settings/QuotaInfo.js.map +1 -1
- package/dist/editor/settings/SettingsBreadcrumb.js +8 -2
- package/dist/editor/settings/SettingsBreadcrumb.js.map +1 -1
- package/dist/editor/settings/SettingsPanelLayout.js +1 -1
- package/dist/editor/settings/SettingsPanelLayout.js.map +1 -1
- package/dist/editor/settings/SettingsView.js +7 -9
- package/dist/editor/settings/SettingsView.js.map +1 -1
- package/dist/editor/settings/StatusSummary.js +7 -17
- package/dist/editor/settings/StatusSummary.js.map +1 -1
- package/dist/editor/settings/panels/AgentToolsPanel.js +2 -1
- package/dist/editor/settings/panels/AgentToolsPanel.js.map +1 -1
- package/dist/editor/settings/panels/ClusterInstancesPanel.js +2 -1
- package/dist/editor/settings/panels/ClusterInstancesPanel.js.map +1 -1
- package/dist/editor/settings/panels/FieldTypeSerializersPanel.js +2 -1
- package/dist/editor/settings/panels/FieldTypeSerializersPanel.js.map +1 -1
- package/dist/editor/settings/panels/GroupedFieldConfigPanel.js +3 -2
- package/dist/editor/settings/panels/GroupedFieldConfigPanel.js.map +1 -1
- package/dist/editor/settings/panels/ItemConfigPanel.js +3 -2
- package/dist/editor/settings/panels/ItemConfigPanel.js.map +1 -1
- package/dist/editor/settings/panels/JavaScriptToolAgentPanel.js +2 -1
- package/dist/editor/settings/panels/JavaScriptToolAgentPanel.js.map +1 -1
- package/dist/editor/settings/panels/NotificationSubscriptionsPanel.js +2 -1
- package/dist/editor/settings/panels/NotificationSubscriptionsPanel.js.map +1 -1
- package/dist/editor/settings/panels/PersistentLogsPanel.js +3 -2
- package/dist/editor/settings/panels/PersistentLogsPanel.js.map +1 -1
- package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js +2 -1
- package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js.map +1 -1
- package/dist/editor/settings/panels/ProjectTemplateSelectorList.js +3 -2
- package/dist/editor/settings/panels/ProjectTemplateSelectorList.js.map +1 -1
- package/dist/editor/settings/panels/ProjectTemplatesPanel.js +3 -3
- package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
- package/dist/editor/settings/panels/SearchConfigPanel.js +3 -2
- package/dist/editor/settings/panels/SearchConfigPanel.js.map +1 -1
- package/dist/editor/settings/panels/StatusPanel.js +3 -2
- package/dist/editor/settings/panels/StatusPanel.js.map +1 -1
- package/dist/editor/sidebar/ComponentPalette.d.ts +1 -1
- package/dist/editor/sidebar/ComponentPalette.js +58 -25
- package/dist/editor/sidebar/ComponentPalette.js.map +1 -1
- package/dist/editor/sidebar/ComponentTree.js +91 -7
- package/dist/editor/sidebar/ComponentTree.js.map +1 -1
- package/dist/editor/sidebar/ContentTreePanel.d.ts +3 -0
- package/dist/editor/sidebar/ContentTreePanel.js +14 -0
- package/dist/editor/sidebar/ContentTreePanel.js.map +1 -0
- package/dist/editor/sidebar/Favorites.js +2 -2
- package/dist/editor/sidebar/Favorites.js.map +1 -1
- package/dist/editor/sidebar/NavigationPanelItem.js +2 -1
- package/dist/editor/sidebar/NavigationPanelItem.js.map +1 -1
- package/dist/editor/sidebar/OperationItem.js +98 -17
- package/dist/editor/sidebar/OperationItem.js.map +1 -1
- package/dist/editor/sidebar/Workbox.js +14 -133
- package/dist/editor/sidebar/Workbox.js.map +1 -1
- package/dist/editor/sidebar/WorkspaceButton.js +1 -1
- package/dist/editor/sidebar/WorkspaceButton.js.map +1 -1
- package/dist/editor/sidebar/WorkspaceRail.js +12 -9
- package/dist/editor/sidebar/WorkspaceRail.js.map +1 -1
- package/dist/editor/sidebar/contentTreeConstants.d.ts +2 -0
- package/dist/editor/sidebar/contentTreeConstants.js +3 -0
- package/dist/editor/sidebar/contentTreeConstants.js.map +1 -0
- package/dist/editor/tree-indicators/GutterColumns.js +4 -14
- package/dist/editor/tree-indicators/GutterColumns.js.map +1 -1
- package/dist/editor/ui/ItemCollectionEditor.js +3 -2
- package/dist/editor/ui/ItemCollectionEditor.js.map +1 -1
- package/dist/editor/ui/LoadingState.d.ts +11 -0
- package/dist/editor/ui/LoadingState.js +27 -0
- package/dist/editor/ui/LoadingState.js.map +1 -0
- package/dist/editor/ui/PerfectTree.d.ts +22 -1
- package/dist/editor/ui/PerfectTree.js +17 -11
- package/dist/editor/ui/PerfectTree.js.map +1 -1
- package/dist/editor/ui/PublishDialog.d.ts +11 -0
- package/dist/editor/ui/PublishDialog.js +101 -0
- package/dist/editor/ui/PublishDialog.js.map +1 -0
- package/dist/editor/ui/PublishItemDialog.js +2 -1
- package/dist/editor/ui/PublishItemDialog.js.map +1 -1
- package/dist/editor/ui/PublishRestrictionsDialog.js +3 -2
- package/dist/editor/ui/PublishRestrictionsDialog.js.map +1 -1
- package/dist/editor/ui/SimpleIconButton.d.ts +6 -0
- package/dist/editor/ui/SimpleIconButton.js +13 -4
- package/dist/editor/ui/SimpleIconButton.js.map +1 -1
- package/dist/editor/ui/SimpleMenu.js +4 -4
- package/dist/editor/ui/SimpleMenu.js.map +1 -1
- package/dist/editor/ui/SimpleTabs.js +1 -1
- package/dist/editor/ui/Spinner.d.ts +14 -1
- package/dist/editor/ui/Spinner.js.map +1 -1
- package/dist/editor/ui/WorkboxItemsTable.d.ts +15 -0
- package/dist/editor/ui/WorkboxItemsTable.js +142 -0
- package/dist/editor/ui/WorkboxItemsTable.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/pointerDrag.d.ts +20 -0
- package/dist/lib/pointerDrag.js +57 -0
- package/dist/lib/pointerDrag.js.map +1 -0
- package/dist/logging/consolePrefix.d.ts +2 -0
- package/dist/logging/consolePrefix.js +49 -0
- package/dist/logging/consolePrefix.js.map +1 -0
- package/dist/logging/index.d.ts +1 -0
- package/dist/logging/index.js +2 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/install-browser-console.d.ts +1 -0
- package/dist/logging/install-browser-console.js +3 -0
- package/dist/logging/install-browser-console.js.map +1 -0
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/splash-screen/ModernSplashScreen.js +2 -1
- package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
- package/dist/task-board/TaskBoardWorkspace.js +181 -35
- package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
- package/dist/task-board/components/CommentsList.js +20 -9
- package/dist/task-board/components/CommentsList.js.map +1 -1
- package/dist/task-board/components/FinishedProjectCard.d.ts +5 -0
- package/dist/task-board/components/FinishedProjectCard.js +8 -0
- package/dist/task-board/components/FinishedProjectCard.js.map +1 -0
- package/dist/task-board/components/ProjectDashboard.d.ts +10 -1
- package/dist/task-board/components/ProjectDashboard.js +90 -6
- package/dist/task-board/components/ProjectDashboard.js.map +1 -1
- package/dist/task-board/components/ProjectListContent.js +2 -1
- package/dist/task-board/components/ProjectListContent.js.map +1 -1
- package/dist/task-board/components/ProjectOverviewContent.js +2 -1
- package/dist/task-board/components/ProjectOverviewContent.js.map +1 -1
- package/dist/task-board/components/TaskAgentPanel.d.ts +4 -0
- package/dist/task-board/components/TaskAgentPanel.js +12 -6
- package/dist/task-board/components/TaskAgentPanel.js.map +1 -1
- package/dist/task-board/components/TaskAssigneeBadge.d.ts +16 -0
- package/dist/task-board/components/TaskAssigneeBadge.js +21 -0
- package/dist/task-board/components/TaskAssigneeBadge.js.map +1 -0
- package/dist/task-board/components/TaskAssigneePicker.js +12 -10
- package/dist/task-board/components/TaskAssigneePicker.js.map +1 -1
- package/dist/task-board/components/TaskAttachmentDropZone.d.ts +11 -0
- package/dist/task-board/components/TaskAttachmentDropZone.js +100 -0
- package/dist/task-board/components/TaskAttachmentDropZone.js.map +1 -0
- package/dist/task-board/components/TaskAttachmentsSection.d.ts +1 -0
- package/dist/task-board/components/TaskAttachmentsSection.js +15 -41
- package/dist/task-board/components/TaskAttachmentsSection.js.map +1 -1
- package/dist/task-board/components/TaskBoardFilterBox.d.ts +4 -0
- package/dist/task-board/components/TaskBoardFilterBox.js +7 -0
- package/dist/task-board/components/TaskBoardFilterBox.js.map +1 -0
- package/dist/task-board/components/TaskBoardProjectListSidebar.js +4 -5
- package/dist/task-board/components/TaskBoardProjectListSidebar.js.map +1 -1
- package/dist/task-board/components/TaskCard.js +26 -15
- package/dist/task-board/components/TaskCard.js.map +1 -1
- package/dist/task-board/components/TaskDetailPanel.d.ts +1 -0
- package/dist/task-board/components/TaskDetailPanel.js +15 -12
- package/dist/task-board/components/TaskDetailPanel.js.map +1 -1
- package/dist/task-board/components/TaskReviewActions.d.ts +1 -0
- package/dist/task-board/components/TaskReviewActions.js +4 -2
- package/dist/task-board/components/TaskReviewActions.js.map +1 -1
- package/dist/task-board/components/TaskRow.js +6 -12
- package/dist/task-board/components/TaskRow.js.map +1 -1
- package/dist/task-board/components/TaskboardPersistentLogPanel.js +3 -3
- package/dist/task-board/components/TaskboardPersistentLogPanel.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/components/WizardCommunicationCenter.d.ts +7 -1
- package/dist/task-board/components/WizardCommunicationCenter.js +10 -6
- package/dist/task-board/components/WizardCommunicationCenter.js.map +1 -1
- package/dist/task-board/components/WizardCommunicationShared.js +5 -5
- package/dist/task-board/components/WizardCommunicationShared.js.map +1 -1
- package/dist/task-board/components/WizardTask.d.ts +5 -1
- package/dist/task-board/components/WizardTask.js +14 -30
- package/dist/task-board/components/WizardTask.js.map +1 -1
- package/dist/task-board/components/WizardTaskDetailsPanel.d.ts +10 -2
- package/dist/task-board/components/WizardTaskDetailsPanel.js +56 -11
- package/dist/task-board/components/WizardTaskDetailsPanel.js.map +1 -1
- package/dist/task-board/taskBoardNavStore.d.ts +3 -0
- package/dist/task-board/taskBoardNavStore.js +44 -0
- package/dist/task-board/taskBoardNavStore.js.map +1 -1
- package/dist/task-board/taskPriority.d.ts +4 -0
- package/dist/task-board/taskPriority.js +19 -0
- package/dist/task-board/taskPriority.js.map +1 -0
- package/dist/task-board/views/DependencyGraphView.js +48 -36
- package/dist/task-board/views/DependencyGraphView.js.map +1 -1
- package/dist/task-board/views/KanbanView.js +130 -96
- package/dist/task-board/views/KanbanView.js.map +1 -1
- package/dist/task-board/views/ListView.js +3 -3
- package/dist/task-board/views/ListView.js.map +1 -1
- package/dist/task-board/views/WizardView.js +7 -6
- package/dist/task-board/views/WizardView.js.map +1 -1
- package/dist/tour/default-tour.js +5 -5
- package/dist/tour/default-tour.js.map +1 -1
- package/package.json +11 -1
- package/styles.css +144 -0
- package/dist/editor/ai/terminal/useAgentEditorContextSync.d.ts +0 -19
- package/dist/editor/ai/terminal/useAgentEditorContextSync.js +0 -142
- package/dist/editor/ai/terminal/useAgentEditorContextSync.js.map +0 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { InsertOption } from "../../types";
|
|
3
|
+
/**
|
|
4
|
+
* The component insert/append menu. Unlike a context menu it is anchored to the
|
|
5
|
+
* placeholder "+" button it belongs to (via {@link PopoverTrigger}) rather than
|
|
6
|
+
* popping up at the mouse position. It opens to the right by default, flips/
|
|
7
|
+
* shifts to stay on-screen (Radix collision handling), and animates in with a
|
|
8
|
+
* slide + zoom from the anchor.
|
|
9
|
+
*
|
|
10
|
+
* The trigger is the caller's "+" button: pass it as {@link children}. The
|
|
11
|
+
* caller keeps full ownership of the button's click handling - opening is driven
|
|
12
|
+
* by the controlled `open`/`onOpenChange` pair, so modifier-click / quick-insert
|
|
13
|
+
* shortcuts can short-circuit (preventDefault) without ever opening the menu.
|
|
14
|
+
*/
|
|
15
|
+
export declare function InsertComponentMenu({ open, onOpenChange, title, options, onSelect, side, align, sideOffset, children, }: {
|
|
16
|
+
open: boolean;
|
|
17
|
+
onOpenChange: (open: boolean) => void;
|
|
18
|
+
title: string;
|
|
19
|
+
options: InsertOption[];
|
|
20
|
+
onSelect: (option: InsertOption) => void;
|
|
21
|
+
side?: "top" | "right" | "bottom" | "left";
|
|
22
|
+
align?: "start" | "center" | "end";
|
|
23
|
+
sideOffset?: number;
|
|
24
|
+
children: ReactNode;
|
|
25
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Popover, PopoverContent, PopoverTrigger, } from "../../components/ui/popover";
|
|
4
|
+
import { cn } from "../../lib/utils";
|
|
5
|
+
import { buildInsertMenuSections } from "../insertMenuItems";
|
|
6
|
+
import { getAbsoluteIconUrl } from "../utils";
|
|
7
|
+
/**
|
|
8
|
+
* The component insert/append menu. Unlike a context menu it is anchored to the
|
|
9
|
+
* placeholder "+" button it belongs to (via {@link PopoverTrigger}) rather than
|
|
10
|
+
* popping up at the mouse position. It opens to the right by default, flips/
|
|
11
|
+
* shifts to stay on-screen (Radix collision handling), and animates in with a
|
|
12
|
+
* slide + zoom from the anchor.
|
|
13
|
+
*
|
|
14
|
+
* The trigger is the caller's "+" button: pass it as {@link children}. The
|
|
15
|
+
* caller keeps full ownership of the button's click handling - opening is driven
|
|
16
|
+
* by the controlled `open`/`onOpenChange` pair, so modifier-click / quick-insert
|
|
17
|
+
* shortcuts can short-circuit (preventDefault) without ever opening the menu.
|
|
18
|
+
*/
|
|
19
|
+
export function InsertComponentMenu({ open, onOpenChange, title, options, onSelect, side = "right", align = "start", sideOffset = 14, children, }) {
|
|
20
|
+
const sections = buildInsertMenuSections(options);
|
|
21
|
+
return (_jsxs(Popover, { open: open, onOpenChange: onOpenChange, children: [_jsx(PopoverTrigger, { asChild: true, children: children }), _jsxs(PopoverContent, { side: side, align: align, sideOffset: sideOffset, collisionPadding: 12,
|
|
22
|
+
// Keep focus on the canvas; the overlay sits above an iframe and
|
|
23
|
+
// auto-focusing the panel can scroll the editor unexpectedly.
|
|
24
|
+
onOpenAutoFocus: (event) => event.preventDefault(), "data-testid": "insert-component-menu", className: cn("border-border-default text-popover-foreground z-250 w-60 max-w-[15rem] overflow-hidden rounded-[4px] border bg-white/95 p-1.5 backdrop-blur-md", "data-[state=open]:animate-in data-[state=closed]:animate-out", "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95", "data-[side=right]:slide-in-from-left-1.5 data-[side=left]:slide-in-from-right-1.5", "data-[side=top]:slide-in-from-bottom-1.5 data-[side=bottom]:slide-in-from-top-1.5", "duration-150 ease-out"), children: [_jsx("div", { className: "text-neutral-grey-50 px-2 pt-1 pb-1.5 text-[11px] font-semibold tracking-wide uppercase", children: title }), _jsx("div", { className: "flex max-h-[min(60vh,22rem)] flex-col gap-0.5 overflow-y-auto", children: sections.map((section, sectionIndex) => (_jsxs("div", { className: "flex flex-col", children: [section.name && (_jsx("div", { className: "text-neutral-grey-50/80 px-2 pt-2 pb-0.5 text-[10px] font-medium tracking-wide uppercase", children: section.name })), section.options.map((option) => (_jsxs("button", { type: "button", "data-testid": "insert-component-menu-item", "data-type-id": option.typeId, onClick: (event) => {
|
|
25
|
+
event.preventDefault();
|
|
26
|
+
event.stopPropagation();
|
|
27
|
+
onSelect(option);
|
|
28
|
+
}, className: cn("group flex w-full items-center gap-2.5 rounded-[4px] px-2 py-1.5 text-left text-[12px]", "transition-colors duration-100 ease-out", "hover:bg-neutral-grey-5 focus-visible:bg-neutral-grey-5 focus-visible:outline-none"), children: [_jsx("span", { className: "bg-neutral-grey-5 flex h-6 w-6 shrink-0 items-center justify-center rounded-[4px] transition-colors duration-100 group-hover:bg-white", children: _jsx("img", { src: getAbsoluteIconUrl(option.icon), width: 16, height: 16, className: "shrink-0", alt: "" }) }), _jsx("span", { className: "truncate", children: option.name })] }, option.typeId)))] }, section.name ?? sectionIndex))) })] })] }));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=InsertComponentMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InsertComponentMenu.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/InsertComponentMenu.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAIb,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAClC,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,IAAI,GAAG,OAAO,EACd,KAAK,GAAG,OAAO,EACf,UAAU,GAAG,EAAE,EACf,QAAQ,GAWT;IACC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAElD,OAAO,CACL,MAAC,OAAO,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,aAC7C,KAAC,cAAc,IAAC,OAAO,kBAAE,QAAQ,GAAkB,EACnD,MAAC,cAAc,IACb,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,EAAE;gBACpB,iEAAiE;gBACjE,8DAA8D;gBAC9D,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,iBACtC,uBAAuB,EACnC,SAAS,EAAE,EAAE,CACX,gJAAgJ,EAChJ,8DAA8D,EAC9D,4DAA4D,EAC5D,8DAA8D,EAC9D,mFAAmF,EACnF,mFAAmF,EACnF,uBAAuB,CACxB,aAED,cAAK,SAAS,EAAC,yFAAyF,YACrG,KAAK,GACF,EACN,cAAK,SAAS,EAAC,+DAA+D,YAC3E,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC,CACvC,eAAwC,SAAS,EAAC,eAAe,aAC9D,OAAO,CAAC,IAAI,IAAI,CACf,cAAK,SAAS,EAAC,0FAA0F,YACtG,OAAO,CAAC,IAAI,GACT,CACP,EACA,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC/B,kBAEE,IAAI,EAAC,QAAQ,iBACD,4BAA4B,kBAC1B,MAAM,CAAC,MAAM,EAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;wCACjB,KAAK,CAAC,cAAc,EAAE,CAAC;wCACvB,KAAK,CAAC,eAAe,EAAE,CAAC;wCACxB,QAAQ,CAAC,MAAM,CAAC,CAAC;oCACnB,CAAC,EACD,SAAS,EAAE,EAAE,CACX,wFAAwF,EACxF,yCAAyC,EACzC,oFAAoF,CACrF,aAED,eAAM,SAAS,EAAC,uIAAuI,YACrJ,cACE,GAAG,EAAE,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EACpC,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,SAAS,EAAC,UAAU,EACpB,GAAG,EAAC,EAAE,GACN,GACG,EACP,eAAM,SAAS,EAAC,UAAU,YAAE,MAAM,CAAC,IAAI,GAAQ,KAxB1C,MAAM,CAAC,MAAM,CAyBX,CACV,CAAC,KAlCM,OAAO,CAAC,IAAI,IAAI,YAAY,CAmChC,CACP,CAAC,GACE,IACS,IACT,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
2
3
|
import { useEditContext } from "../client/editContext";
|
|
3
4
|
import { FieldActionsIndicators } from "./FieldActionIndicators";
|
|
4
5
|
import { PlaceholderDropZones } from "./PlaceholderDropZones";
|
|
6
|
+
import { DragInsertionOverlay } from "./DragInsertionOverlay";
|
|
5
7
|
import { PictureEditorOverlay } from "./PictureEditorOverlay";
|
|
6
8
|
import { LockedFieldIndicator } from "./LockedFieldIndicator";
|
|
7
9
|
import { FrameMenus } from "./FrameMenus";
|
|
@@ -13,6 +15,15 @@ import { useSlotContext } from "../views/editorSlotContext";
|
|
|
13
15
|
import { useOverlayMeasurement } from "./overlay/useOverlayMeasurement";
|
|
14
16
|
import { BridgeInlineFormatOverlay } from "./BridgeInlineFormatOverlay";
|
|
15
17
|
import { measureElementRect, rectEquals, } from "./overlay/geometry";
|
|
18
|
+
import { componentFrameBgColorVariants } from "../componentFrameColors";
|
|
19
|
+
// Keeps the "+" dots and the drag insertion line in sync: DragInsertionOverlay
|
|
20
|
+
// publishes the gap it is currently targeting, and PlaceholderDropZones lights
|
|
21
|
+
// up the matching dot. The state lives here (not in PageEditorChrome) so a gap
|
|
22
|
+
// change only re-renders these two siblings, not the whole chrome.
|
|
23
|
+
function PlaceholderInsertionLayer({ pageViewContext, }) {
|
|
24
|
+
const [activeTargetKey, setActiveTargetKey] = useState(null);
|
|
25
|
+
return (_jsxs(_Fragment, { children: [_jsx(PlaceholderDropZones, { size: "large", pageViewContext: pageViewContext, activeTargetKey: activeTargetKey }), _jsx(DragInsertionOverlay, { pageViewContext: pageViewContext, onActiveTargetChange: setActiveTargetKey })] }));
|
|
26
|
+
}
|
|
16
27
|
export function PageEditorChrome(props) {
|
|
17
28
|
const editContext = useEditContext();
|
|
18
29
|
const hasBridgeChromeData = props.pageViewContext.bridgeReady ||
|
|
@@ -25,7 +36,7 @@ export function PageEditorChrome(props) {
|
|
|
25
36
|
}
|
|
26
37
|
function PageEditorChromeContent({ compareView, pageViewContext, editContext, onBridgeRichTextCommand, }) {
|
|
27
38
|
const slotContext = useSlotContext();
|
|
28
|
-
return (_jsxs(_Fragment, { children: [_jsx(FrameMenus, { pageViewContext: pageViewContext, compareView: compareView }), _jsx(BridgeInlineFormatOverlay, { onCommand: onBridgeRichTextCommand, pageViewContext: pageViewContext }), editContext.mode === "edit" && (_jsxs(_Fragment, { children: [_jsx(
|
|
39
|
+
return (_jsxs(_Fragment, { children: [_jsx(FrameMenus, { pageViewContext: pageViewContext, compareView: compareView }), _jsx(BridgeInlineFormatOverlay, { onCommand: onBridgeRichTextCommand, pageViewContext: pageViewContext }), editContext.mode === "edit" && (_jsxs(_Fragment, { children: [_jsx(PlaceholderInsertionLayer, { pageViewContext: pageViewContext }), slotContext?.isActive && _jsx(InsertingIndicator, {})] })), editContext.showComments && (_jsx(CommentHighlightings, { pageViewContext: pageViewContext })), editContext.showSuggestedEdits && (_jsx(SuggestionHighlightings, { pageViewContext: pageViewContext })), _jsx(LockedFieldIndicator, { pageViewContext: pageViewContext }), editContext.mode === "edit" && (_jsx(PictureEditorOverlay, { pageViewContext: pageViewContext })), editContext.showVersionDiffHighlighting && (_jsx(VersionDiffHighlightings, { pageViewContext: pageViewContext })), _jsx(FieldActionsIndicators, { pageViewContext: pageViewContext }), _jsx(FieldEditedIndicators, { pageViewContext: pageViewContext })] }));
|
|
29
40
|
}
|
|
30
41
|
function InsertingIndicator() {
|
|
31
42
|
const editContext = useEditContext();
|
|
@@ -62,7 +73,8 @@ function InsertingIndicator() {
|
|
|
62
73
|
});
|
|
63
74
|
if (!position)
|
|
64
75
|
return null;
|
|
65
|
-
|
|
76
|
+
const colorClassName = componentFrameBgColorVariants[inserting?.color ?? "default"];
|
|
77
|
+
return (_jsxs("div", { className: "pointer-events-none absolute flex h-8 w-8", style: { top: position.y - 16, left: position.x - 16, zIndex: 1000 }, children: [_jsx("span", { className: `${colorClassName} absolute inline-flex h-full w-full animate-ping rounded-full opacity-75` }), _jsx("span", { className: `${colorClassName} relative inline-flex h-8 w-8 rounded-full` })] }));
|
|
66
78
|
}
|
|
67
79
|
function clampInsertionPosition(position, metrics) {
|
|
68
80
|
const maxX = Math.max(20, metrics.scrollWidth * metrics.visualScale - 20);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageEditorChrome.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/PageEditorChrome.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EACL,kBAAkB,EAClB,UAAU,GAGX,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"PageEditorChrome.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/PageEditorChrome.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Placeholder } from "../pageModel";
|
|
2
|
-
|
|
2
|
+
import { type ComponentFrameColor, type ComponentFrameInsertColor } from "../componentFrameColors";
|
|
3
|
+
export declare const SMALL_DROPZONE_SCALE = 0.44;
|
|
4
|
+
export declare function PlaceholderDropZone({ placeholder, description, index, parentName, spotPosition, displaySpotPosition, spotPositionElement, spotPositionAnchor, size, className, insertMenuTitle, typeIdOnCtrlClick, color, frameColor, pillLabel, onDragHandlePointerDown, interactive, isActiveTarget, }: {
|
|
3
5
|
placeholder: Placeholder;
|
|
4
6
|
description?: string;
|
|
5
7
|
index: number;
|
|
@@ -8,11 +10,40 @@ export declare function PlaceholderDropZone({ placeholder, description, index, p
|
|
|
8
10
|
x: number;
|
|
9
11
|
y: number;
|
|
10
12
|
};
|
|
13
|
+
displaySpotPosition?: {
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
};
|
|
11
17
|
spotPositionElement?: Element | null;
|
|
12
18
|
size: "large" | "small";
|
|
13
19
|
spotPositionAnchor: "top" | "bottom" | "left" | "right";
|
|
14
20
|
className?: string;
|
|
15
21
|
insertMenuTitle?: string;
|
|
16
22
|
typeIdOnCtrlClick?: string;
|
|
17
|
-
|
|
23
|
+
color?: ComponentFrameInsertColor;
|
|
24
|
+
frameColor?: ComponentFrameColor;
|
|
25
|
+
/**
|
|
26
|
+
* When set, the dropzone renders as a labelled "pill" button (a "+" icon
|
|
27
|
+
* followed by this text) instead of the compact circular "+". Used for the
|
|
28
|
+
* component append affordance in {@link FrameMenu}.
|
|
29
|
+
*/
|
|
30
|
+
pillLabel?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Pointer-down handler for the pill's drag grip. When provided (pill mode), a
|
|
33
|
+
* 6-dot grip is rendered to the left of the pill; pressing and dragging it
|
|
34
|
+
* starts a whole-component drag - the same gesture the frame-header grip uses.
|
|
35
|
+
*/
|
|
36
|
+
onDragHandlePointerDown?: (e: React.PointerEvent<HTMLElement>) => void;
|
|
37
|
+
/**
|
|
38
|
+
* When false (e.g. while a drag is in progress), the dot renders as a
|
|
39
|
+
* pointer-events-none visual affordance only - the DragInsertionOverlay owns
|
|
40
|
+
* the drop, so the dots stay visible but never intercept dragover/drop/hover.
|
|
41
|
+
*/
|
|
42
|
+
interactive?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* True when this dot's gap is the one the drag insertion line is currently
|
|
45
|
+
* targeting. The dot is emphasized (scaled + ringed) and lifted above its
|
|
46
|
+
* siblings so it reads as the live drop target.
|
|
47
|
+
*/
|
|
48
|
+
isActiveTarget?: boolean;
|
|
18
49
|
}): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -2,12 +2,21 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useEffect, useRef, useState } from "react";
|
|
4
4
|
import { useEditContext } from "../client/editContext";
|
|
5
|
-
import { Plus } from "lucide-react";
|
|
5
|
+
import { GripVertical, Plus } from "lucide-react";
|
|
6
6
|
import { cn } from "../../lib/utils";
|
|
7
|
+
import { getVisibleInsertOptions } from "../insertMenuItems";
|
|
8
|
+
import { InsertComponentMenu } from "./InsertComponentMenu";
|
|
7
9
|
import { Tooltip, TooltipContent, TooltipTrigger, } from "../../components/ui/tooltip";
|
|
8
|
-
import {
|
|
9
|
-
export
|
|
10
|
+
import { componentFrameBgColorVariants, componentFrameBgHoverColorVariants, } from "../componentFrameColors";
|
|
11
|
+
export const SMALL_DROPZONE_SCALE = 0.44;
|
|
12
|
+
// During a drag the "+" dots sit ABOVE the insertion line (z 860, see
|
|
13
|
+
// InsertionLine.tsx) so the line reads as passing BEHIND the buttons. The dots
|
|
14
|
+
// are pointer-events-none in that mode, so the drop still routes to the drag
|
|
15
|
+
// surface underneath.
|
|
16
|
+
const DRAGGING_DROPZONE_Z_INDEX = 870;
|
|
17
|
+
export function PlaceholderDropZone({ placeholder, description, index, parentName, spotPosition, displaySpotPosition, spotPositionElement, spotPositionAnchor, size, className, insertMenuTitle, typeIdOnCtrlClick, color = "default", frameColor, pillLabel, onDragHandlePointerDown, interactive = true, isActiveTarget = false, }) {
|
|
10
18
|
const [isHovering, setIsHovering] = useState(false);
|
|
19
|
+
const [menuOpen, setMenuOpen] = useState(false);
|
|
11
20
|
const dropZoneRef = useRef(null);
|
|
12
21
|
const editContext = useEditContext();
|
|
13
22
|
function dragOver(ev) {
|
|
@@ -31,16 +40,25 @@ export function PlaceholderDropZone({ placeholder, description, index, parentNam
|
|
|
31
40
|
setIsHovering(false);
|
|
32
41
|
editContext.setStatusMessage("");
|
|
33
42
|
const anchorElement = spotPositionElement ?? dropZoneRef.current;
|
|
34
|
-
editContext.droppedInPlaceholder(placeholder.key, index, anchorElement ?? undefined, anchorElement ? spotPositionAnchor : undefined, undefined, spotPosition);
|
|
43
|
+
editContext.droppedInPlaceholder(placeholder.key, index, anchorElement ?? undefined, anchorElement ? spotPositionAnchor : undefined, undefined, spotPosition, color);
|
|
35
44
|
}
|
|
45
|
+
const visualSpotPosition = displaySpotPosition ?? spotPosition;
|
|
36
46
|
const overlayStyle = {
|
|
37
|
-
top:
|
|
38
|
-
left:
|
|
39
|
-
zIndex:
|
|
47
|
+
top: visualSpotPosition.y,
|
|
48
|
+
left: visualSpotPosition.x,
|
|
49
|
+
zIndex: interactive
|
|
50
|
+
? isHovering
|
|
51
|
+
? 40
|
|
52
|
+
: 30
|
|
53
|
+
: isActiveTarget
|
|
54
|
+
? DRAGGING_DROPZONE_Z_INDEX + 5
|
|
55
|
+
: DRAGGING_DROPZONE_Z_INDEX,
|
|
40
56
|
transform: "none",
|
|
41
57
|
};
|
|
42
|
-
|
|
43
|
-
|
|
58
|
+
// Pills keep their full size; only the compact "+" dots scale down.
|
|
59
|
+
if (size === "small" && !pillLabel) {
|
|
60
|
+
overlayStyle.transform = `scale(${SMALL_DROPZONE_SCALE})`;
|
|
61
|
+
}
|
|
44
62
|
useEffect(() => {
|
|
45
63
|
if (!editContext)
|
|
46
64
|
return;
|
|
@@ -64,6 +82,14 @@ export function PlaceholderDropZone({ placeholder, description, index, parentNam
|
|
|
64
82
|
const visibleInsertOptions = getVisibleInsertOptions(placeholder.insertOptions);
|
|
65
83
|
if (visibleInsertOptions.length === 0)
|
|
66
84
|
return null;
|
|
85
|
+
const visualColor = frameColor ?? color;
|
|
86
|
+
const colorClassName = componentFrameBgColorVariants[visualColor];
|
|
87
|
+
const hoverColorClassName = componentFrameBgHoverColorVariants[visualColor];
|
|
88
|
+
const selectedInsertOption = visibleInsertOptions.find((x) => x.typeId === editContext.selectedForInsertion ||
|
|
89
|
+
x.compatibleTypeIds?.includes(editContext.selectedForInsertion));
|
|
90
|
+
// Resolve a friendly placeholder label for the tooltip title: implicit
|
|
91
|
+
// placeholders are keyed by GUID, so swap the GUID for the datasource/item
|
|
92
|
+
// display name when we can find a match.
|
|
67
93
|
const formatPlaceholderLabel = (rawLabel, currentPlaceholder) => {
|
|
68
94
|
const isImplicit = currentPlaceholder.key.startsWith("implicit_");
|
|
69
95
|
if (!isImplicit)
|
|
@@ -83,13 +109,13 @@ export function PlaceholderDropZone({ placeholder, description, index, parentNam
|
|
|
83
109
|
return rawLabel;
|
|
84
110
|
return rawLabel.replace(guidRegex, resolvedName);
|
|
85
111
|
};
|
|
86
|
-
|
|
87
|
-
|
|
112
|
+
// Name of the type that Ctrl+Click quick-inserts, shown in the tooltip.
|
|
113
|
+
const ctrlTypeName = typeIdOnCtrlClick
|
|
114
|
+
? visibleInsertOptions.find((x) => x.typeId === typeIdOnCtrlClick)?.name
|
|
88
115
|
: undefined;
|
|
89
|
-
const ctrlTypeName = ctrlTypeOption?.name;
|
|
90
|
-
const selectedInsertOption = visibleInsertOptions.find((x) => x.typeId === editContext.selectedForInsertion ||
|
|
91
|
-
x.compatibleTypeIds?.includes(editContext.selectedForInsertion));
|
|
92
116
|
const placeholderLabel = `${formatPlaceholderLabel(description ?? placeholder.name, placeholder)} (${index + 1})`;
|
|
117
|
+
// The pill's hover tooltip: placeholder context plus the Click / Ctrl+Click
|
|
118
|
+
// interaction hint (the Ctrl+Click line only when a quick-insert type exists).
|
|
93
119
|
const tooltipBody = typeIdOnCtrlClick ? (_jsxs("div", { className: "p-1 text-sm", children: [_jsx("div", { className: "mb-1.5 text-xs font-medium text-white", children: placeholderLabel }), _jsxs("div", { className: "space-y-0.5 text-xs text-white/85", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "badge-pad-sm rounded border border-white/15 bg-white/15 font-mono text-[10px] text-white", children: "Click" }), _jsx("span", { children: "Open menu" })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "badge-pad-sm rounded border border-white/15 bg-white/15 font-mono text-[10px] text-white", children: "Ctrl+Click" }), _jsxs("span", { children: ["Quick-add ", ctrlTypeName || "same type"] })] })] })] })) : (_jsx("div", { className: "p-1 text-sm", children: _jsx("div", { className: "text-xs font-medium text-white", children: placeholderLabel }) }));
|
|
94
120
|
function dragLeave(ev) {
|
|
95
121
|
// Check if we're actually leaving the drop zone (not just moving to a child element)
|
|
@@ -102,62 +128,59 @@ export function PlaceholderDropZone({ placeholder, description, index, parentNam
|
|
|
102
128
|
}
|
|
103
129
|
setIsHovering(false);
|
|
104
130
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
? "0 8px 24px color-mix(in srgb, var(--color-component-default) 50%, transparent)"
|
|
160
|
-
: "0 4px 12px color-mix(in srgb, var(--color-component-default) 30%, transparent)",
|
|
161
|
-
}, "data-testid": "placeholder-dropzone-button", children: _jsx(Plus, { className: "h-4 w-4", strokeWidth: 2.5, style: { pointerEvents: "none" } }) }) }), _jsx(TooltipContent, { className: "bg-neutral-grey-100/95 border-0 text-white shadow-xl backdrop-blur-md", sideOffset: 8, children: tooltipBody })] })] }) }));
|
|
131
|
+
const insertOptionAtThisGap = (option) => {
|
|
132
|
+
void editContext.operations.addComponent(option.typeId, placeholder.key, index, editContext.currentItemDescriptor);
|
|
133
|
+
};
|
|
134
|
+
const handleDropZoneClick = (e) => {
|
|
135
|
+
// Keep the click from bubbling to window-level close handlers.
|
|
136
|
+
e.stopPropagation();
|
|
137
|
+
// Quick-insert on Ctrl+Click: add a component of the provided type
|
|
138
|
+
// immediately. preventDefault() stops the popover trigger from also opening.
|
|
139
|
+
if (e.ctrlKey && typeIdOnCtrlClick) {
|
|
140
|
+
e.preventDefault();
|
|
141
|
+
const sameTypeOption = visibleInsertOptions.find((x) => x.typeId === typeIdOnCtrlClick);
|
|
142
|
+
const anchorElement = spotPositionElement ?? dropZoneRef.current;
|
|
143
|
+
if (sameTypeOption) {
|
|
144
|
+
editContext.droppedInPlaceholder(placeholder.key, index, anchorElement ?? undefined, anchorElement ? spotPositionAnchor : undefined, sameTypeOption, spotPosition, color);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
editContext.operations.addComponent(typeIdOnCtrlClick, placeholder.key, index, editContext.currentItemDescriptor);
|
|
148
|
+
}
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
// A type pre-selected for insertion (insert mode) drops directly into this
|
|
152
|
+
// gap - no menu. preventDefault() keeps the popover trigger from opening.
|
|
153
|
+
const insertOption = visibleInsertOptions.find((x) => x.typeId === editContext.selectedForInsertion);
|
|
154
|
+
if (insertOption) {
|
|
155
|
+
e.preventDefault();
|
|
156
|
+
const anchorElement = spotPositionElement ?? dropZoneRef.current;
|
|
157
|
+
editContext.droppedInPlaceholder(placeholder.key, index, anchorElement ?? undefined, anchorElement ? spotPositionAnchor : undefined, insertOption, spotPosition, color);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
// Otherwise let the InsertComponentMenu popover trigger toggle (do NOT
|
|
161
|
+
// preventDefault): the menu opens anchored to this "+" button.
|
|
162
|
+
};
|
|
163
|
+
return (_jsx("div", { className: cn("absolute", interactive ? "pointer-events-auto" : "pointer-events-none"), style: overlayStyle, children: pillLabel ? (
|
|
164
|
+
// Append affordance: a labelled "+ <pillLabel>" pill, optionally preceded
|
|
165
|
+
// by a 6-dot grip that drag-moves the owning component.
|
|
166
|
+
_jsxs("div", { className: "absolute top-1/2 left-1/2 flex -translate-x-1/2 -translate-y-1/2 items-center gap-1.5", children: [onDragHandlePointerDown && (_jsx("div", { onPointerDown: onDragHandlePointerDown, onClick: (e) => e.stopPropagation(), "aria-label": `Drag to move ${parentName ?? "component"}`, "data-testid": "placeholder-dropzone-drag-handle", className: cn("pointer-events-auto flex h-8 w-7 cursor-move items-center justify-center rounded-[4px] text-white transition-colors duration-100 ease-out select-none", colorClassName, hoverColorClassName, className), children: _jsx(GripVertical, { className: "h-5 w-5", strokeWidth: 1, style: { pointerEvents: "none" } }) })), _jsxs(Tooltip, { children: [_jsx(InsertComponentMenu, { open: menuOpen, onOpenChange: setMenuOpen, title: insertMenuTitle || "Insert Component", options: visibleInsertOptions, onSelect: insertOptionAtThisGap, side: "right", align: "start", sideOffset: 12, children: _jsx(TooltipTrigger, { asChild: true, children: _jsx("div", { ref: dropZoneRef, onDragOver: dragOver, "data-testid": "placeholder-dropzone", "data-testindex": index, "data-parent-name": parentName || "", "data-placeholder-name": description || placeholder.name, "data-insert-option-type-ids": visibleInsertOptions
|
|
167
|
+
.map((x) => x.typeId)
|
|
168
|
+
.join("|"), "data-insert-option-names": visibleInsertOptions
|
|
169
|
+
.map((x) => x.name)
|
|
170
|
+
.join("|"), "data-selected-insert-type": selectedInsertOption
|
|
171
|
+
? editContext.selectedForInsertion
|
|
172
|
+
: undefined, onDrop: drop, onDragLeave: dragLeave, onClick: handleDropZoneClick, "aria-label": pillLabel, className: cn("placeholder placeholder-dropzone group/add-component pointer-events-auto flex h-8 cursor-pointer items-center overflow-hidden rounded-[4px] px-2 text-[12px] font-normal whitespace-nowrap text-white transition-colors duration-100 ease-out select-none data-[state=open]:ring-2 data-[state=open]:ring-white/70", colorClassName, hoverColorClassName, className), children: _jsxs("span", { "data-testid": "placeholder-dropzone-button", className: "test-ph-dropzone tour-placeholder-dropzone flex items-center", children: [_jsx(Plus, { className: "h-4 w-4 shrink-0", strokeWidth: 1 }), _jsx("span", { className: "ml-0 max-w-0 translate-x-[-2px] overflow-hidden opacity-0 transition-[max-width,opacity,transform,margin] duration-200 ease-out group-hover/add-component:ml-1.5 group-hover/add-component:max-w-[7rem] group-hover/add-component:translate-x-0 group-hover/add-component:opacity-100 group-data-[state=open]/add-component:ml-1.5 group-data-[state=open]/add-component:max-w-[7rem] group-data-[state=open]/add-component:translate-x-0 group-data-[state=open]/add-component:opacity-100", children: pillLabel })] }) }) }) }), _jsx(TooltipContent, { side: "top", sideOffset: 8, className: "bg-neutral-grey-100/95 border-0 text-white shadow-xl backdrop-blur-md", children: tooltipBody })] })] })) : (_jsx(InsertComponentMenu, { open: menuOpen, onOpenChange: setMenuOpen, title: insertMenuTitle || "Insert Component", options: visibleInsertOptions, onSelect: insertOptionAtThisGap, side: "right", align: "start", sideOffset: 24, children: _jsx("div", { ref: dropZoneRef, onDragOver: dragOver, "data-testid": "placeholder-dropzone", "data-testindex": index, "data-parent-name": parentName || "", "data-placeholder-name": description || placeholder.name, "data-insert-option-type-ids": visibleInsertOptions
|
|
173
|
+
.map((x) => x.typeId)
|
|
174
|
+
.join("|"), "data-insert-option-names": visibleInsertOptions
|
|
175
|
+
.map((x) => x.name)
|
|
176
|
+
.join("|"), "data-selected-insert-type": selectedInsertOption
|
|
177
|
+
? editContext.selectedForInsertion
|
|
178
|
+
: undefined, onDrop: drop, onDragLeave: dragLeave, onClick: handleDropZoneClick, className: cn("placeholder placeholder-dropzone group/placeholder-dropzone relative h-0 w-0 cursor-pointer", interactive ? "pointer-events-auto" : "pointer-events-none"), children: _jsx("div", { draggable: false, className: cn("test-ph-dropzone tour-placeholder-dropzone", "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2", "flex items-center justify-center rounded-[4px]", "h-8 w-8", "text-white", "transition-all duration-300 ease-out", "border border-white/50", isActiveTarget
|
|
179
|
+
? "z-50 scale-[1.25] shadow-md ring-2 ring-white"
|
|
180
|
+
: menuOpen
|
|
181
|
+
? "z-50 scale-[1.15] shadow-md ring-2 ring-white/80"
|
|
182
|
+
: isHovering
|
|
183
|
+
? "z-40 scale-[1.15]"
|
|
184
|
+
: "z-30 hover:scale-[1.15]", colorClassName, hoverColorClassName, className), "data-testid": "placeholder-dropzone-button", "data-active-target": isActiveTarget || undefined, children: _jsx(Plus, { className: "h-4 w-4", strokeWidth: 2.5, style: { pointerEvents: "none" } }) }) }) })) }));
|
|
162
185
|
}
|
|
163
186
|
//# sourceMappingURL=PlaceholderDropZone.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaceholderDropZone.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/PlaceholderDropZone.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"PlaceholderDropZone.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/PlaceholderDropZone.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import type { PageViewContext } from "../page-viewer/pageViewContext";
|
|
2
|
-
|
|
2
|
+
import type { OverlayMetrics } from "./overlay/geometry";
|
|
3
|
+
import { type PlaceholderZone } from "./overlay/placeholderZones";
|
|
4
|
+
export declare function PlaceholderDropZones({ size, pageViewContext, scopeInsertModeToHoveredComponent, avoidOverlaps, activeTargetKey, }: {
|
|
3
5
|
size: "large" | "small";
|
|
4
6
|
pageViewContext?: PageViewContext;
|
|
5
|
-
|
|
7
|
+
scopeInsertModeToHoveredComponent?: boolean;
|
|
8
|
+
avoidOverlaps?: boolean;
|
|
9
|
+
activeTargetKey?: string | null;
|
|
10
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
+
export type DropZoneOverlapOptions = {
|
|
12
|
+
edgePadding: number;
|
|
13
|
+
overlapThreshold: number;
|
|
14
|
+
shiftStep: number;
|
|
15
|
+
};
|
|
16
|
+
export declare function applyDropZoneOverlapAvoidance(zones: PlaceholderZone[], metrics: OverlayMetrics, options?: DropZoneOverlapOptions): PlaceholderZone[];
|