@parhelia/core 0.1.12496 → 0.1.12517
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 +20 -19
- package/dist/agents-view/AgentCard.js.map +1 -1
- package/dist/agents-view/AgentsInbox.js +2 -13
- package/dist/agents-view/AgentsInbox.js.map +1 -1
- package/dist/agents-view/AgentsView.js +7 -55
- package/dist/agents-view/AgentsView.js.map +1 -1
- package/dist/agents-view/AgentsWorkspaceView.js +2 -11
- package/dist/agents-view/AgentsWorkspaceView.js.map +1 -1
- package/dist/components/ui/copy-button.d.ts +2 -1
- package/dist/components/ui/copy-button.js +2 -2
- package/dist/components/ui/copy-button.js.map +1 -1
- package/dist/components/ui/paste-button.d.ts +2 -1
- package/dist/components/ui/paste-button.js +2 -2
- package/dist/components/ui/paste-button.js.map +1 -1
- package/dist/config/config.js +40 -0
- package/dist/config/config.js.map +1 -1
- package/dist/config/types.d.ts +23 -5
- package/dist/config/types.js.map +1 -1
- package/dist/editor/ContentTree.js +36 -4
- package/dist/editor/ContentTree.js.map +1 -1
- package/dist/editor/FieldListField.js +4 -4
- package/dist/editor/FieldListField.js.map +1 -1
- package/dist/editor/FieldListFieldWithFallbacks.js +23 -2
- package/dist/editor/FieldListFieldWithFallbacks.js.map +1 -1
- package/dist/editor/GlobalMenuBar.js +1 -1
- package/dist/editor/GlobalMenuBar.js.map +1 -1
- package/dist/editor/ItemInfo.js +36 -1
- package/dist/editor/ItemInfo.js.map +1 -1
- package/dist/editor/MainLayout.d.ts +0 -2
- package/dist/editor/MainLayout.js +0 -1
- package/dist/editor/MainLayout.js.map +1 -1
- package/dist/editor/Titlebar.js +2 -2
- package/dist/editor/Titlebar.js.map +1 -1
- package/dist/editor/ai/AgentStatusBadge.d.ts +0 -5
- package/dist/editor/ai/AgentStatusBadge.js +57 -71
- package/dist/editor/ai/AgentStatusBadge.js.map +1 -1
- package/dist/editor/ai/AgentTerminal.js +88 -90
- package/dist/editor/ai/AgentTerminal.js.map +1 -1
- package/dist/editor/ai/Agents.js +8 -63
- package/dist/editor/ai/Agents.js.map +1 -1
- package/dist/editor/ai/InlineAiDialog.js +1 -6
- package/dist/editor/ai/InlineAiDialog.js.map +1 -1
- package/dist/editor/ai/ToolCallDisplay.js +152 -63
- package/dist/editor/ai/ToolCallDisplay.js.map +1 -1
- package/dist/editor/ai/useAgentStatus.js +12 -85
- package/dist/editor/ai/useAgentStatus.js.map +1 -1
- package/dist/editor/client/EditorShell.js +49 -59
- package/dist/editor/client/EditorShell.js.map +1 -1
- package/dist/editor/client/editContext.d.ts +3 -15
- package/dist/editor/client/editContext.js.map +1 -1
- package/dist/editor/client/hooks/useEditorUrlSync.js +1 -2
- package/dist/editor/client/hooks/useEditorUrlSync.js.map +1 -1
- package/dist/editor/client/hooks/useSocketMessageHandler.js +19 -6
- package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
- package/dist/editor/client/operations.js +20 -6
- package/dist/editor/client/operations.js.map +1 -1
- package/dist/editor/client/ui/EditorChrome.d.ts +0 -4
- package/dist/editor/client/ui/EditorChrome.js.map +1 -1
- package/dist/editor/client/waitForEditOperationTerminal.d.ts +8 -3
- package/dist/editor/client/waitForEditOperationTerminal.js +5 -1
- package/dist/editor/client/waitForEditOperationTerminal.js.map +1 -1
- package/dist/editor/commands/itemCommands.js +5 -0
- package/dist/editor/commands/itemCommands.js.map +1 -1
- package/dist/editor/content-tree/IndicatorSettings.d.ts +11 -0
- package/dist/editor/content-tree/IndicatorSettings.js +60 -0
- package/dist/editor/content-tree/IndicatorSettings.js.map +1 -0
- package/dist/editor/content-tree/TreeOptions.d.ts +6 -0
- package/dist/editor/content-tree/TreeOptions.js +8 -0
- package/dist/editor/content-tree/TreeOptions.js.map +1 -0
- package/dist/editor/content-tree/TreeSettingsMenu.d.ts +2 -0
- package/dist/editor/content-tree/TreeSettingsMenu.js +30 -0
- package/dist/editor/content-tree/TreeSettingsMenu.js.map +1 -0
- package/dist/editor/content-tree/index.d.ts +3 -0
- package/dist/editor/content-tree/index.js +4 -0
- package/dist/editor/content-tree/index.js.map +1 -0
- package/dist/editor/hooks/useNavigationPanelLogic.js +2 -6
- package/dist/editor/hooks/useNavigationPanelLogic.js.map +1 -1
- package/dist/editor/manualActionEvents.d.ts +8 -0
- package/dist/editor/manualActionEvents.js +48 -0
- package/dist/editor/manualActionEvents.js.map +1 -0
- package/dist/editor/menubar/PageSelector.js +9 -12
- package/dist/editor/menubar/PageSelector.js.map +1 -1
- package/dist/editor/menubar/WorkflowButton.js +23 -23
- package/dist/editor/menubar/WorkflowButton.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/EditControls.js +1 -1
- package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ManualBrowser.d.ts +3 -9
- package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +225 -71
- package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
- package/dist/editor/notifications/WatchButton.js +2 -2
- package/dist/editor/notifications/WatchButton.js.map +1 -1
- package/dist/editor/page-viewer/EditorForm.js +2 -0
- package/dist/editor/page-viewer/EditorForm.js.map +1 -1
- package/dist/editor/page-viewer/PageViewer.js +8 -2
- package/dist/editor/page-viewer/PageViewer.js.map +1 -1
- package/dist/editor/reviews/CreateReviewDialog.js +0 -2
- package/dist/editor/reviews/CreateReviewDialog.js.map +1 -1
- package/dist/editor/reviews/SuggestedEdit.js +31 -3
- package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
- package/dist/editor/reviews/SuggestionDisplayPopover.js +31 -5
- package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
- package/dist/editor/services/agentService.d.ts +3 -2
- package/dist/editor/services/agentService.js.map +1 -1
- package/dist/editor/services/agentStatus.d.ts +12 -0
- package/dist/editor/services/agentStatus.js +59 -0
- package/dist/editor/services/agentStatus.js.map +1 -0
- package/dist/editor/settings/SettingsView.js +4 -4
- package/dist/editor/settings/SettingsView.js.map +1 -1
- package/dist/editor/settings/index/useIndexStatus.js +1 -1
- package/dist/editor/settings/index/useIndexStatus.js.map +1 -1
- package/dist/editor/settings/panels/JavaScriptToolConfigPanel.js +1 -1
- package/dist/editor/settings/panels/JavaScriptToolConfigPanel.js.map +1 -1
- package/dist/editor/sidebar/ComponentTree.js +201 -40
- package/dist/editor/sidebar/ComponentTree.js.map +1 -1
- package/dist/editor/sidebar/MainContentTree.js +3 -2
- package/dist/editor/sidebar/MainContentTree.js.map +1 -1
- package/dist/editor/sidebar/MorePanelsButton.js +1 -1
- package/dist/editor/sidebar/MorePanelsButton.js.map +1 -1
- package/dist/editor/sidebar/NavigationPanelItem.js +2 -2
- package/dist/editor/sidebar/NavigationPanelItem.js.map +1 -1
- package/dist/editor/sidebar/SidebarPanel.js +20 -4
- package/dist/editor/sidebar/SidebarPanel.js.map +1 -1
- package/dist/editor/sidebar/SidebarStack.js +1 -0
- package/dist/editor/sidebar/SidebarStack.js.map +1 -1
- package/dist/editor/sidebar/Workbox.js +53 -3
- package/dist/editor/sidebar/Workbox.js.map +1 -1
- package/dist/editor/tree-indicators/GutterContext.d.ts +4 -0
- package/dist/editor/tree-indicators/GutterContext.js +23 -0
- package/dist/editor/tree-indicators/GutterContext.js.map +1 -1
- package/dist/editor/tree-indicators/index.d.ts +0 -1
- package/dist/editor/tree-indicators/index.js +0 -1
- package/dist/editor/tree-indicators/index.js.map +1 -1
- package/dist/editor/tree-indicators/types.d.ts +1 -1
- package/dist/editor/ui/HomeButton.js +1 -1
- package/dist/editor/ui/HomeButton.js.map +1 -1
- package/dist/editor/ui/ItemNameDialogNew.d.ts +2 -0
- package/dist/editor/ui/ItemNameDialogNew.js +17 -7
- package/dist/editor/ui/ItemNameDialogNew.js.map +1 -1
- package/dist/editor/ui/ItemSearch.js +7 -11
- package/dist/editor/ui/ItemSearch.js.map +1 -1
- package/dist/editor/ui/SimpleTabs.js +33 -16
- package/dist/editor/ui/SimpleTabs.js.map +1 -1
- package/dist/editor/ui/Splitter.js +1 -1
- package/dist/editor/ui/Splitter.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/setup/wizard/steps/AddModelDialog.js +3 -2
- package/dist/setup/wizard/steps/AddModelDialog.js.map +1 -1
- package/dist/task-board/components/AssignAgentDialog.js +0 -8
- package/dist/task-board/components/AssignAgentDialog.js.map +1 -1
- package/dist/task-board/components/ProjectAgentsPanel.js +1 -26
- package/dist/task-board/components/ProjectAgentsPanel.js.map +1 -1
- package/dist/task-board/components/TaskAgentPanel.js +2 -6
- package/dist/task-board/components/TaskAgentPanel.js.map +1 -1
- package/dist/types.d.ts +2 -13
- package/package.json +1 -1
- package/dist/editor/tree-indicators/GutterSelector.d.ts +0 -5
- package/dist/editor/tree-indicators/GutterSelector.js +0 -91
- package/dist/editor/tree-indicators/GutterSelector.js.map +0 -1
|
@@ -154,14 +154,14 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
154
154
|
if (typeof window !== "undefined")
|
|
155
155
|
sessionStorage?.setItem("sessionId", sessionId);
|
|
156
156
|
// Workspace state
|
|
157
|
-
// Note: "reviews" is a sidebar, not a workspace. If
|
|
157
|
+
// Note: "reviews" is a sidebar, not a workspace. If workspace=reviews, we should
|
|
158
158
|
// set workspace to "editor" and open the reviews sidebar instead.
|
|
159
159
|
// Memoize searchParams reads to avoid triggering Router state updates during render
|
|
160
160
|
// (Next.js App Router uses startTransition internally for URL changes)
|
|
161
|
-
const rawWorkspace = useMemo(() => searchParams.get("workspace")
|
|
161
|
+
const rawWorkspace = useMemo(() => searchParams.get("workspace"), [searchParams]);
|
|
162
162
|
const isReviewsSidebarRequest = rawWorkspace === "reviews";
|
|
163
163
|
const [workspaceId, setWorkspaceId] = useState(
|
|
164
|
-
// If
|
|
164
|
+
// If workspace=reviews, use "editor" workspace (reviews is a sidebar, not a workspace)
|
|
165
165
|
isReviewsSidebarRequest
|
|
166
166
|
? "editor"
|
|
167
167
|
: (rawWorkspace ??
|
|
@@ -183,7 +183,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
183
183
|
else {
|
|
184
184
|
sidebars = [...(configuration.editor.defaultOpenSidebars ?? [])];
|
|
185
185
|
}
|
|
186
|
-
// If
|
|
186
|
+
// If workspace=reviews was requested, ensure reviews sidebar is open
|
|
187
187
|
if (isReviewsSidebarRequest && !sidebars.includes("reviews")) {
|
|
188
188
|
sidebars.push("reviews");
|
|
189
189
|
}
|
|
@@ -313,12 +313,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
313
313
|
}
|
|
314
314
|
catch { }
|
|
315
315
|
}, [lockedSidebars]);
|
|
316
|
-
// Legacy aliases for backwards compatibility
|
|
317
316
|
const viewName = workspaceId;
|
|
318
|
-
const setViewName = setWorkspaceId;
|
|
319
|
-
const viewNameRef = workspaceIdRef;
|
|
320
|
-
const previousViewName = previousWorkspaceId;
|
|
321
|
-
const setPreviousViewName = setPreviousWorkspaceId;
|
|
322
317
|
const [compareMode, setCompareModeState] = useState(false);
|
|
323
318
|
const [componentDesignerComponent, setComponentDesignerComponent] = useState();
|
|
324
319
|
const [componentDesignerRendering, setComponentDesignerRendering] = useState();
|
|
@@ -443,13 +438,12 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
443
438
|
visitedAt: entry.visitedAt,
|
|
444
439
|
}));
|
|
445
440
|
});
|
|
446
|
-
// Navigation history for browser history (
|
|
441
|
+
// Navigation history for browser history (workspace + item combinations)
|
|
447
442
|
const [navigationHistory, setNavigationHistory] = useState(() => {
|
|
448
|
-
// Initialize from browse history with current
|
|
443
|
+
// Initialize from browse history with the current workspace
|
|
449
444
|
if (!userInfo.browseHistory)
|
|
450
445
|
return [];
|
|
451
446
|
const defaultWorkspaceId = searchParams.get("workspace") ??
|
|
452
|
-
searchParams.get("view") ??
|
|
453
447
|
configuration.editor.defaultWorkspace ??
|
|
454
448
|
configuration.editor.workspaces?.[0]?.id ??
|
|
455
449
|
"editor";
|
|
@@ -508,6 +502,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
508
502
|
const [helpTerminalInitialPrompt, setHelpTerminalInitialPrompt] = useState(undefined);
|
|
509
503
|
const [helpTerminalProfileName, setHelpTerminalProfileName] = useState(undefined);
|
|
510
504
|
const [helpTerminalActiveTab, setHelpTerminalActiveTab] = useState(undefined);
|
|
505
|
+
const [selectedHelpSectionId, setSelectedHelpSectionId] = useState(null);
|
|
511
506
|
const [showAgentsWorkspaceEditor, setShowAgentsWorkspaceEditor] = useState(false);
|
|
512
507
|
const [selectedAgentsWorkspaceAgentId, setSelectedAgentsWorkspaceAgentId] = useState(null);
|
|
513
508
|
const [activeEditorTab, setActiveEditorTab] = useState(null);
|
|
@@ -534,13 +529,12 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
534
529
|
if (!startupChecks.hasBlockingIssues)
|
|
535
530
|
return;
|
|
536
531
|
// Don't redirect if already in settings workspace - let user navigate freely within settings
|
|
537
|
-
const currentWorkspace = searchParams.get("workspace")
|
|
532
|
+
const currentWorkspace = searchParams.get("workspace");
|
|
538
533
|
if (currentWorkspace === "settings")
|
|
539
534
|
return;
|
|
540
535
|
// Redirect to the status panel (where user can see all issues and navigate to fixes)
|
|
541
536
|
const url = new URL(window.location.href);
|
|
542
537
|
url.searchParams.set("workspace", "settings");
|
|
543
|
-
url.searchParams.delete("view"); // Remove legacy param
|
|
544
538
|
url.searchParams.set("ccpanel", "status");
|
|
545
539
|
router.push(url.toString(), { scroll: false });
|
|
546
540
|
}, [
|
|
@@ -558,6 +552,16 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
558
552
|
setMode(queryMode);
|
|
559
553
|
}
|
|
560
554
|
}, [searchParams, isInitialLoad]);
|
|
555
|
+
useEffect(() => {
|
|
556
|
+
if (!isInitialLoad)
|
|
557
|
+
return;
|
|
558
|
+
const helpParam = searchParams.get("help");
|
|
559
|
+
if (helpParam) {
|
|
560
|
+
setHelpTerminalActiveTab("manual");
|
|
561
|
+
setShowHelpTerminal(true);
|
|
562
|
+
setSelectedHelpSectionId(helpParam === "contents" || helpParam === "true" ? null : helpParam);
|
|
563
|
+
}
|
|
564
|
+
}, [searchParams, isInitialLoad]);
|
|
561
565
|
useEffect(() => {
|
|
562
566
|
if (mode === "suggestions") {
|
|
563
567
|
// Ensure we're in the editor workspace and open the feedback sidebar
|
|
@@ -782,8 +786,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
782
786
|
console.error(`No workspace found for id: ${workspaceId}`);
|
|
783
787
|
return null;
|
|
784
788
|
}
|
|
785
|
-
// Legacy alias for backwards compatibility
|
|
786
|
-
const currentView = currentWorkspace;
|
|
787
789
|
const activeKeyboardCommands = useMemo(() => {
|
|
788
790
|
const activeCommandIds = new Set(currentWorkspace.keyboardCommandIds ?? []);
|
|
789
791
|
return (configuration.commands.keyboardCommands ?? []).filter((command) => activeCommandIds.has(command.id));
|
|
@@ -934,6 +936,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
934
936
|
setHelpTerminalInitialPrompt(undefined);
|
|
935
937
|
setHelpTerminalProfileName(undefined);
|
|
936
938
|
setHelpTerminalActiveTab(undefined);
|
|
939
|
+
setSelectedHelpSectionId(null);
|
|
937
940
|
}
|
|
938
941
|
}, [showHelpTerminal]);
|
|
939
942
|
const toggleHelpTerminal = useCallback((options) => {
|
|
@@ -1093,9 +1096,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
1093
1096
|
isHandlingPopStateRef.current = true;
|
|
1094
1097
|
// Sync URL parameters back to component state for browser navigation
|
|
1095
1098
|
const urlParams = new URLSearchParams(window.location.search);
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
if (urlWorkspace && urlWorkspace !== viewNameRef.current) {
|
|
1099
|
+
const urlWorkspace = urlParams.get("workspace");
|
|
1100
|
+
if (urlWorkspace && urlWorkspace !== workspaceIdRef.current) {
|
|
1099
1101
|
setWorkspaceId(urlWorkspace);
|
|
1100
1102
|
}
|
|
1101
1103
|
// Handle sidebar changes
|
|
@@ -1112,6 +1114,18 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
1112
1114
|
if (compareValue !== compareMode) {
|
|
1113
1115
|
setCompareMode(compareValue);
|
|
1114
1116
|
}
|
|
1117
|
+
// Handle help panel changes
|
|
1118
|
+
const helpParam = urlParams.get("help");
|
|
1119
|
+
if (helpParam) {
|
|
1120
|
+
setHelpTerminalActiveTab("manual");
|
|
1121
|
+
setShowHelpTerminal(true);
|
|
1122
|
+
setSelectedHelpSectionId(helpParam === "contents" || helpParam === "true"
|
|
1123
|
+
? null
|
|
1124
|
+
: helpParam);
|
|
1125
|
+
}
|
|
1126
|
+
else {
|
|
1127
|
+
handleSetShowHelpTerminal(false);
|
|
1128
|
+
}
|
|
1115
1129
|
// Handle mode changes
|
|
1116
1130
|
const urlMode = urlParams.get("mode");
|
|
1117
1131
|
if (urlMode && urlMode !== mode) {
|
|
@@ -1890,7 +1904,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
1890
1904
|
if (current.get("workspace") !== viewName) {
|
|
1891
1905
|
current.set("workspace", viewName);
|
|
1892
1906
|
}
|
|
1893
|
-
current.delete("view"); // Remove legacy view param
|
|
1894
1907
|
// Sync sidebar state
|
|
1895
1908
|
const currentSidebars = current.get("sidebar") ?? "";
|
|
1896
1909
|
const newSidebars = openSidebars.join(",");
|
|
@@ -1902,6 +1915,12 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
1902
1915
|
current.delete("sidebar");
|
|
1903
1916
|
}
|
|
1904
1917
|
}
|
|
1918
|
+
if (showHelpTerminal) {
|
|
1919
|
+
current.set("help", selectedHelpSectionId ?? "contents");
|
|
1920
|
+
}
|
|
1921
|
+
else {
|
|
1922
|
+
current.delete("help");
|
|
1923
|
+
}
|
|
1905
1924
|
if (!compareMode) {
|
|
1906
1925
|
current.delete("compare");
|
|
1907
1926
|
current.delete("compareLanguage");
|
|
@@ -1969,6 +1988,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
1969
1988
|
fullscreen,
|
|
1970
1989
|
currentWizardId,
|
|
1971
1990
|
openSidebars,
|
|
1991
|
+
showHelpTerminal,
|
|
1992
|
+
selectedHelpSectionId,
|
|
1972
1993
|
]);
|
|
1973
1994
|
useEffect(() => {
|
|
1974
1995
|
async function load() {
|
|
@@ -2608,14 +2629,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
2608
2629
|
updateUrl,
|
|
2609
2630
|
handleSetShowAgentsPanel,
|
|
2610
2631
|
]);
|
|
2611
|
-
// Legacy alias for backwards compatibility
|
|
2612
|
-
const switchView = useCallback((viewName, options) => {
|
|
2613
|
-
// Handle ccpanel for settings workspace
|
|
2614
|
-
if (options?.ccpanel) {
|
|
2615
|
-
updateUrl({ ccpanel: options.ccpanel, workspace: viewName });
|
|
2616
|
-
}
|
|
2617
|
-
switchWorkspace(viewName, options);
|
|
2618
|
-
}, [switchWorkspace, updateUrl]);
|
|
2619
2632
|
// Helper: get all sidebar IDs that should be preserved (locked sidebars + their stack mates)
|
|
2620
2633
|
const getPreservedSidebarIds = useCallback(() => {
|
|
2621
2634
|
const lockedSet = new Set(lockedSidebarsRef.current);
|
|
@@ -3379,8 +3392,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
3379
3392
|
skipViewChange: true,
|
|
3380
3393
|
});
|
|
3381
3394
|
if (item) {
|
|
3382
|
-
|
|
3383
|
-
switchView("editor", {
|
|
3395
|
+
switchWorkspace("editor", {
|
|
3384
3396
|
skipNavigationHistory: true,
|
|
3385
3397
|
});
|
|
3386
3398
|
showInfoToast({
|
|
@@ -3413,7 +3425,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
3413
3425
|
document.removeEventListener("click", handleCtrlClick, true);
|
|
3414
3426
|
};
|
|
3415
3427
|
}
|
|
3416
|
-
}, [loadItem,
|
|
3428
|
+
}, [loadItem, switchWorkspace, showInfoToast, showErrorToast]);
|
|
3417
3429
|
useEffect(() => {
|
|
3418
3430
|
const handleGlobalBlur = () => {
|
|
3419
3431
|
operations.onFieldBlur?.();
|
|
@@ -3451,18 +3463,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
3451
3463
|
// Otherwise, only show workspaces that are in the settings
|
|
3452
3464
|
return workspaceIdsFromSettings.includes(w.id) && !w.visible;
|
|
3453
3465
|
});
|
|
3454
|
-
// Legacy: Calculate visible views for backwards compatibility
|
|
3455
|
-
const allViews = (configuration.editor.views ?? [])
|
|
3456
|
-
.filter((x) => {
|
|
3457
|
-
return !x.visible && !x.hidden;
|
|
3458
|
-
})
|
|
3459
|
-
.filter((x) => !userInfo.views ||
|
|
3460
|
-
userInfo.views.map((view) => view.name).includes(x.name));
|
|
3461
|
-
const pinnedViews = userInfo.preferences?.pinnedViews ||
|
|
3462
|
-
configuration.editor.defaultPinnedViews ||
|
|
3463
|
-
[];
|
|
3464
|
-
// Legacy visibleViews for backwards compatibility
|
|
3465
|
-
const visibleViews = allViews.filter((view) => view.name === viewName || pinnedViews.includes(view.name));
|
|
3466
3466
|
// Handle initial mode setup from URL (only on initial load)
|
|
3467
3467
|
useEffect(() => {
|
|
3468
3468
|
if (!isInitialLoad)
|
|
@@ -3507,7 +3507,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
3507
3507
|
// This is especially important when called from the tour, where the current workspace
|
|
3508
3508
|
// might be the editor and URL-only navigation would get "corrected" back.
|
|
3509
3509
|
try {
|
|
3510
|
-
|
|
3510
|
+
switchWorkspace("home", {
|
|
3511
3511
|
skipConfirmation: true,
|
|
3512
3512
|
skipNavigationHistory: true,
|
|
3513
3513
|
});
|
|
@@ -3554,7 +3554,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
3554
3554
|
const current = new URLSearchParams(searchParams.toString());
|
|
3555
3555
|
current.delete("version");
|
|
3556
3556
|
current.delete("itemid");
|
|
3557
|
-
current.delete("view"); // Remove legacy param
|
|
3558
3557
|
current.delete("workspace"); // Clear workspace
|
|
3559
3558
|
current.set("create", "1");
|
|
3560
3559
|
const newUrl = `${pathname}?${current.toString()}`;
|
|
@@ -3887,12 +3886,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
3887
3886
|
reorderPinnedSidebars,
|
|
3888
3887
|
reorderOpenSidebars,
|
|
3889
3888
|
getResolvedSidebar,
|
|
3890
|
-
// Legacy compatibility (deprecated)
|
|
3891
|
-
viewName,
|
|
3892
|
-
previousViewName,
|
|
3893
|
-
switchView,
|
|
3894
|
-
view: currentView,
|
|
3895
|
-
visibleViews,
|
|
3896
3889
|
compareMode,
|
|
3897
3890
|
setCompareMode,
|
|
3898
3891
|
fullscreen,
|
|
@@ -4037,6 +4030,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
4037
4030
|
helpTerminalProfileName,
|
|
4038
4031
|
helpTerminalActiveTab,
|
|
4039
4032
|
setHelpTerminalActiveTab,
|
|
4033
|
+
selectedHelpSectionId,
|
|
4034
|
+
setSelectedHelpSectionId,
|
|
4040
4035
|
showAgentsWorkspaceEditor,
|
|
4041
4036
|
setShowAgentsWorkspaceEditor: handleSetShowAgentsWorkspaceEditor,
|
|
4042
4037
|
selectedAgentsWorkspaceAgentId,
|
|
@@ -4089,7 +4084,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
4089
4084
|
configuration,
|
|
4090
4085
|
updateUrl,
|
|
4091
4086
|
workspaceId,
|
|
4092
|
-
switchView,
|
|
4093
4087
|
pathname,
|
|
4094
4088
|
router,
|
|
4095
4089
|
item,
|
|
@@ -4130,9 +4124,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
4130
4124
|
reorderOpenSidebars,
|
|
4131
4125
|
getResolvedSidebar,
|
|
4132
4126
|
viewName,
|
|
4133
|
-
previousViewName,
|
|
4134
|
-
currentView,
|
|
4135
|
-
visibleViews,
|
|
4136
4127
|
compareMode,
|
|
4137
4128
|
// Important: in multi-slot mode the active PageViewContext can change
|
|
4138
4129
|
// without the base `pageViewContext` identity changing (e.g. switching slots).
|
|
@@ -4201,6 +4192,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
4201
4192
|
helpTerminalProfileName,
|
|
4202
4193
|
helpTerminalActiveTab,
|
|
4203
4194
|
setHelpTerminalActiveTab,
|
|
4195
|
+
selectedHelpSectionId,
|
|
4204
4196
|
showAgentsWorkspaceEditor,
|
|
4205
4197
|
selectedAgentsWorkspaceAgentId,
|
|
4206
4198
|
activeEditorTab,
|
|
@@ -4474,15 +4466,13 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
|
|
|
4474
4466
|
useEffect(() => {
|
|
4475
4467
|
fieldsEditContext.clearModifiedFields();
|
|
4476
4468
|
}, [currentItemDescriptor]);
|
|
4477
|
-
if (!
|
|
4469
|
+
if (!currentWorkspace)
|
|
4478
4470
|
return null;
|
|
4479
4471
|
const editorUi = fullscreen ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "fixed inset-0 flex", children: [_jsx(PageViewerFrame, { compareView: compareMode, pageViewContext: activePageViewContext }), _jsx(FullscreenControls, { device: activePageViewContext.device, setDevice: (d) => activePageViewContext.setDevice(d), canExit: !configuration.forceFullscreen, onExit: () => setFullscreen(false), firstMobileDeviceName: configuration.devices[0]?.name })] }), showFullscreenHint && !configuration.forceFullscreen && !isMobile && (_jsx("div", { className: "fixed inset-0 z-10000", onMouseMoveCapture: () => {
|
|
4480
4472
|
setTimeout(() => {
|
|
4481
4473
|
setShowFullscreenHint(false);
|
|
4482
4474
|
}, 600);
|
|
4483
|
-
}, "data-testid": "fullscreen-hint-overlay", children: _jsxs("div", { className: "fixed top-6 left-1/2 -translate-x-1/2 transform rounded-full bg-black/60 px-6 py-2.5 text-sm font-medium text-white shadow-2xl backdrop-blur-md transition-all duration-500", children: ["Press", " ", _jsx("kbd", { className: "mx-1 rounded bg-white/20 px-1.5 py-0.5 text-xs font-semibold", children: "Ctrl + F11" }), " ", "to exit fullscreen"] }) }))] })) : (_jsxs(_Fragment, { children: [_jsx(EditorChrome, { className: className, currentWorkspace: currentWorkspace, centerPanelView: centerPanelView, editContext: editContext, showAgentsPanel: showAgentsPanel, handleSetShowAgentsPanel: handleSetShowAgentsPanel, workspaceId: workspaceId,
|
|
4484
|
-
// Legacy props for backwards compatibility
|
|
4485
|
-
currentView: currentView, viewName: viewName }), isTourActive && (_jsx(Tour, { tourStopCallback: () => {
|
|
4475
|
+
}, "data-testid": "fullscreen-hint-overlay", children: _jsxs("div", { className: "fixed top-6 left-1/2 -translate-x-1/2 transform rounded-full bg-black/60 px-6 py-2.5 text-sm font-medium text-white shadow-2xl backdrop-blur-md transition-all duration-500", children: ["Press", " ", _jsx("kbd", { className: "mx-1 rounded bg-white/20 px-1.5 py-0.5 text-xs font-semibold", children: "Ctrl + F11" }), " ", "to exit fullscreen"] }) }))] })) : (_jsxs(_Fragment, { children: [_jsx(EditorChrome, { className: className, currentWorkspace: currentWorkspace, centerPanelView: centerPanelView, editContext: editContext, showAgentsPanel: showAgentsPanel, handleSetShowAgentsPanel: handleSetShowAgentsPanel, workspaceId: workspaceId }), isTourActive && (_jsx(Tour, { tourStopCallback: () => {
|
|
4486
4476
|
setIsTourActive(false);
|
|
4487
4477
|
// Remove tour state from URL
|
|
4488
4478
|
// Use history.replaceState instead of router.replace to avoid triggering React navigation
|