@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.
Files changed (159) hide show
  1. package/dist/agents-view/AgentCard.js +20 -19
  2. package/dist/agents-view/AgentCard.js.map +1 -1
  3. package/dist/agents-view/AgentsInbox.js +2 -13
  4. package/dist/agents-view/AgentsInbox.js.map +1 -1
  5. package/dist/agents-view/AgentsView.js +7 -55
  6. package/dist/agents-view/AgentsView.js.map +1 -1
  7. package/dist/agents-view/AgentsWorkspaceView.js +2 -11
  8. package/dist/agents-view/AgentsWorkspaceView.js.map +1 -1
  9. package/dist/components/ui/copy-button.d.ts +2 -1
  10. package/dist/components/ui/copy-button.js +2 -2
  11. package/dist/components/ui/copy-button.js.map +1 -1
  12. package/dist/components/ui/paste-button.d.ts +2 -1
  13. package/dist/components/ui/paste-button.js +2 -2
  14. package/dist/components/ui/paste-button.js.map +1 -1
  15. package/dist/config/config.js +40 -0
  16. package/dist/config/config.js.map +1 -1
  17. package/dist/config/types.d.ts +23 -5
  18. package/dist/config/types.js.map +1 -1
  19. package/dist/editor/ContentTree.js +36 -4
  20. package/dist/editor/ContentTree.js.map +1 -1
  21. package/dist/editor/FieldListField.js +4 -4
  22. package/dist/editor/FieldListField.js.map +1 -1
  23. package/dist/editor/FieldListFieldWithFallbacks.js +23 -2
  24. package/dist/editor/FieldListFieldWithFallbacks.js.map +1 -1
  25. package/dist/editor/GlobalMenuBar.js +1 -1
  26. package/dist/editor/GlobalMenuBar.js.map +1 -1
  27. package/dist/editor/ItemInfo.js +36 -1
  28. package/dist/editor/ItemInfo.js.map +1 -1
  29. package/dist/editor/MainLayout.d.ts +0 -2
  30. package/dist/editor/MainLayout.js +0 -1
  31. package/dist/editor/MainLayout.js.map +1 -1
  32. package/dist/editor/Titlebar.js +2 -2
  33. package/dist/editor/Titlebar.js.map +1 -1
  34. package/dist/editor/ai/AgentStatusBadge.d.ts +0 -5
  35. package/dist/editor/ai/AgentStatusBadge.js +57 -71
  36. package/dist/editor/ai/AgentStatusBadge.js.map +1 -1
  37. package/dist/editor/ai/AgentTerminal.js +88 -90
  38. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  39. package/dist/editor/ai/Agents.js +8 -63
  40. package/dist/editor/ai/Agents.js.map +1 -1
  41. package/dist/editor/ai/InlineAiDialog.js +1 -6
  42. package/dist/editor/ai/InlineAiDialog.js.map +1 -1
  43. package/dist/editor/ai/ToolCallDisplay.js +152 -63
  44. package/dist/editor/ai/ToolCallDisplay.js.map +1 -1
  45. package/dist/editor/ai/useAgentStatus.js +12 -85
  46. package/dist/editor/ai/useAgentStatus.js.map +1 -1
  47. package/dist/editor/client/EditorShell.js +49 -59
  48. package/dist/editor/client/EditorShell.js.map +1 -1
  49. package/dist/editor/client/editContext.d.ts +3 -15
  50. package/dist/editor/client/editContext.js.map +1 -1
  51. package/dist/editor/client/hooks/useEditorUrlSync.js +1 -2
  52. package/dist/editor/client/hooks/useEditorUrlSync.js.map +1 -1
  53. package/dist/editor/client/hooks/useSocketMessageHandler.js +19 -6
  54. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  55. package/dist/editor/client/operations.js +20 -6
  56. package/dist/editor/client/operations.js.map +1 -1
  57. package/dist/editor/client/ui/EditorChrome.d.ts +0 -4
  58. package/dist/editor/client/ui/EditorChrome.js.map +1 -1
  59. package/dist/editor/client/waitForEditOperationTerminal.d.ts +8 -3
  60. package/dist/editor/client/waitForEditOperationTerminal.js +5 -1
  61. package/dist/editor/client/waitForEditOperationTerminal.js.map +1 -1
  62. package/dist/editor/commands/itemCommands.js +5 -0
  63. package/dist/editor/commands/itemCommands.js.map +1 -1
  64. package/dist/editor/content-tree/IndicatorSettings.d.ts +11 -0
  65. package/dist/editor/content-tree/IndicatorSettings.js +60 -0
  66. package/dist/editor/content-tree/IndicatorSettings.js.map +1 -0
  67. package/dist/editor/content-tree/TreeOptions.d.ts +6 -0
  68. package/dist/editor/content-tree/TreeOptions.js +8 -0
  69. package/dist/editor/content-tree/TreeOptions.js.map +1 -0
  70. package/dist/editor/content-tree/TreeSettingsMenu.d.ts +2 -0
  71. package/dist/editor/content-tree/TreeSettingsMenu.js +30 -0
  72. package/dist/editor/content-tree/TreeSettingsMenu.js.map +1 -0
  73. package/dist/editor/content-tree/index.d.ts +3 -0
  74. package/dist/editor/content-tree/index.js +4 -0
  75. package/dist/editor/content-tree/index.js.map +1 -0
  76. package/dist/editor/hooks/useNavigationPanelLogic.js +2 -6
  77. package/dist/editor/hooks/useNavigationPanelLogic.js.map +1 -1
  78. package/dist/editor/manualActionEvents.d.ts +8 -0
  79. package/dist/editor/manualActionEvents.js +48 -0
  80. package/dist/editor/manualActionEvents.js.map +1 -0
  81. package/dist/editor/menubar/PageSelector.js +9 -12
  82. package/dist/editor/menubar/PageSelector.js.map +1 -1
  83. package/dist/editor/menubar/WorkflowButton.js +23 -23
  84. package/dist/editor/menubar/WorkflowButton.js.map +1 -1
  85. package/dist/editor/menubar/toolbar-sections/EditControls.js +1 -1
  86. package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
  87. package/dist/editor/menubar/toolbar-sections/ManualBrowser.d.ts +3 -9
  88. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +225 -71
  89. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
  90. package/dist/editor/notifications/WatchButton.js +2 -2
  91. package/dist/editor/notifications/WatchButton.js.map +1 -1
  92. package/dist/editor/page-viewer/EditorForm.js +2 -0
  93. package/dist/editor/page-viewer/EditorForm.js.map +1 -1
  94. package/dist/editor/page-viewer/PageViewer.js +8 -2
  95. package/dist/editor/page-viewer/PageViewer.js.map +1 -1
  96. package/dist/editor/reviews/CreateReviewDialog.js +0 -2
  97. package/dist/editor/reviews/CreateReviewDialog.js.map +1 -1
  98. package/dist/editor/reviews/SuggestedEdit.js +31 -3
  99. package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
  100. package/dist/editor/reviews/SuggestionDisplayPopover.js +31 -5
  101. package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
  102. package/dist/editor/services/agentService.d.ts +3 -2
  103. package/dist/editor/services/agentService.js.map +1 -1
  104. package/dist/editor/services/agentStatus.d.ts +12 -0
  105. package/dist/editor/services/agentStatus.js +59 -0
  106. package/dist/editor/services/agentStatus.js.map +1 -0
  107. package/dist/editor/settings/SettingsView.js +4 -4
  108. package/dist/editor/settings/SettingsView.js.map +1 -1
  109. package/dist/editor/settings/index/useIndexStatus.js +1 -1
  110. package/dist/editor/settings/index/useIndexStatus.js.map +1 -1
  111. package/dist/editor/settings/panels/JavaScriptToolConfigPanel.js +1 -1
  112. package/dist/editor/settings/panels/JavaScriptToolConfigPanel.js.map +1 -1
  113. package/dist/editor/sidebar/ComponentTree.js +201 -40
  114. package/dist/editor/sidebar/ComponentTree.js.map +1 -1
  115. package/dist/editor/sidebar/MainContentTree.js +3 -2
  116. package/dist/editor/sidebar/MainContentTree.js.map +1 -1
  117. package/dist/editor/sidebar/MorePanelsButton.js +1 -1
  118. package/dist/editor/sidebar/MorePanelsButton.js.map +1 -1
  119. package/dist/editor/sidebar/NavigationPanelItem.js +2 -2
  120. package/dist/editor/sidebar/NavigationPanelItem.js.map +1 -1
  121. package/dist/editor/sidebar/SidebarPanel.js +20 -4
  122. package/dist/editor/sidebar/SidebarPanel.js.map +1 -1
  123. package/dist/editor/sidebar/SidebarStack.js +1 -0
  124. package/dist/editor/sidebar/SidebarStack.js.map +1 -1
  125. package/dist/editor/sidebar/Workbox.js +53 -3
  126. package/dist/editor/sidebar/Workbox.js.map +1 -1
  127. package/dist/editor/tree-indicators/GutterContext.d.ts +4 -0
  128. package/dist/editor/tree-indicators/GutterContext.js +23 -0
  129. package/dist/editor/tree-indicators/GutterContext.js.map +1 -1
  130. package/dist/editor/tree-indicators/index.d.ts +0 -1
  131. package/dist/editor/tree-indicators/index.js +0 -1
  132. package/dist/editor/tree-indicators/index.js.map +1 -1
  133. package/dist/editor/tree-indicators/types.d.ts +1 -1
  134. package/dist/editor/ui/HomeButton.js +1 -1
  135. package/dist/editor/ui/HomeButton.js.map +1 -1
  136. package/dist/editor/ui/ItemNameDialogNew.d.ts +2 -0
  137. package/dist/editor/ui/ItemNameDialogNew.js +17 -7
  138. package/dist/editor/ui/ItemNameDialogNew.js.map +1 -1
  139. package/dist/editor/ui/ItemSearch.js +7 -11
  140. package/dist/editor/ui/ItemSearch.js.map +1 -1
  141. package/dist/editor/ui/SimpleTabs.js +33 -16
  142. package/dist/editor/ui/SimpleTabs.js.map +1 -1
  143. package/dist/editor/ui/Splitter.js +1 -1
  144. package/dist/editor/ui/Splitter.js.map +1 -1
  145. package/dist/revision.d.ts +2 -2
  146. package/dist/revision.js +2 -2
  147. package/dist/setup/wizard/steps/AddModelDialog.js +3 -2
  148. package/dist/setup/wizard/steps/AddModelDialog.js.map +1 -1
  149. package/dist/task-board/components/AssignAgentDialog.js +0 -8
  150. package/dist/task-board/components/AssignAgentDialog.js.map +1 -1
  151. package/dist/task-board/components/ProjectAgentsPanel.js +1 -26
  152. package/dist/task-board/components/ProjectAgentsPanel.js.map +1 -1
  153. package/dist/task-board/components/TaskAgentPanel.js +2 -6
  154. package/dist/task-board/components/TaskAgentPanel.js.map +1 -1
  155. package/dist/types.d.ts +2 -13
  156. package/package.json +1 -1
  157. package/dist/editor/tree-indicators/GutterSelector.d.ts +0 -5
  158. package/dist/editor/tree-indicators/GutterSelector.js +0 -91
  159. 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 view/workspace=reviews, we should
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") ?? searchParams.get("view"), [searchParams]);
161
+ const rawWorkspace = useMemo(() => searchParams.get("workspace"), [searchParams]);
162
162
  const isReviewsSidebarRequest = rawWorkspace === "reviews";
163
163
  const [workspaceId, setWorkspaceId] = useState(
164
- // If view=reviews, use "editor" workspace (reviews is a sidebar, not a workspace)
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 view/workspace=reviews was requested, ensure reviews sidebar is open
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 (view + item combinations)
441
+ // Navigation history for browser history (workspace + item combinations)
447
442
  const [navigationHistory, setNavigationHistory] = useState(() => {
448
- // Initialize from browse history with current view
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") ?? searchParams.get("view");
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
- // Handle workspace changes (with legacy view fallback)
1097
- const urlWorkspace = urlParams.get("workspace") ?? urlParams.get("view");
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
- // Switch to the editor view
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, switchView, showInfoToast, showErrorToast]);
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
- switchView("home", {
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 (!currentView)
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