@parhelia/core 0.1.12089 → 0.1.12112

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 (74) hide show
  1. package/dist/agents-view/AgentsTitlebar.js +1 -1
  2. package/dist/agents-view/AgentsTitlebar.js.map +1 -1
  3. package/dist/agents-view/AgentsView.js +11 -3
  4. package/dist/agents-view/AgentsView.js.map +1 -1
  5. package/dist/agents-view/AgentsWorkspaceView.js +25 -8
  6. package/dist/agents-view/AgentsWorkspaceView.js.map +1 -1
  7. package/dist/components/ui/context-menu.d.ts +1 -1
  8. package/dist/components/ui/context-menu.js +11 -2
  9. package/dist/components/ui/context-menu.js.map +1 -1
  10. package/dist/config/config.d.ts +2 -2
  11. package/dist/config/config.js +40 -21
  12. package/dist/config/config.js.map +1 -1
  13. package/dist/editor/Editor.js +3 -1
  14. package/dist/editor/Editor.js.map +1 -1
  15. package/dist/editor/LinkEditorDialog.js +3 -0
  16. package/dist/editor/LinkEditorDialog.js.map +1 -1
  17. package/dist/editor/ai/AgentTerminal.js +10 -9
  18. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  19. package/dist/editor/ai/Agents.js +28 -6
  20. package/dist/editor/ai/Agents.js.map +1 -1
  21. package/dist/editor/ai/InlineAiDialog.js +18 -16
  22. package/dist/editor/ai/InlineAiDialog.js.map +1 -1
  23. package/dist/editor/client/EditorShell.js +58 -19
  24. package/dist/editor/client/EditorShell.js.map +1 -1
  25. package/dist/editor/field-types/MultiLineText.js +1 -1
  26. package/dist/editor/field-types/MultiLineText.js.map +1 -1
  27. package/dist/editor/field-types/richtext/components/ReactSlate.css +23 -5
  28. package/dist/editor/field-types/richtext/components/ReactSlate.js +13 -2
  29. package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
  30. package/dist/editor/field-types/richtext/components/ToolbarButton.js +4 -2
  31. package/dist/editor/field-types/richtext/components/ToolbarButton.js.map +1 -1
  32. package/dist/editor/field-types/richtext/contextMenuFactory.js +71 -21
  33. package/dist/editor/field-types/richtext/contextMenuFactory.js.map +1 -1
  34. package/dist/editor/field-types/richtext/types.d.ts +1 -0
  35. package/dist/editor/field-types/richtext/types.js.map +1 -1
  36. package/dist/editor/field-types/richtext/utils/plugins.js +4 -0
  37. package/dist/editor/field-types/richtext/utils/plugins.js.map +1 -1
  38. package/dist/editor/reviews/CommentView.js +19 -4
  39. package/dist/editor/reviews/CommentView.js.map +1 -1
  40. package/dist/editor/reviews/Comments.js +1 -1
  41. package/dist/editor/reviews/Comments.js.map +1 -1
  42. package/dist/editor/reviews/CommentsAndFeedback.d.ts +14 -0
  43. package/dist/editor/reviews/CommentsAndFeedback.js +50 -0
  44. package/dist/editor/reviews/CommentsAndFeedback.js.map +1 -0
  45. package/dist/editor/reviews/LatestFeedback.d.ts +1 -0
  46. package/dist/editor/reviews/LatestFeedback.js +136 -0
  47. package/dist/editor/reviews/LatestFeedback.js.map +1 -0
  48. package/dist/editor/reviews/commentAi.js +21 -6
  49. package/dist/editor/reviews/commentAi.js.map +1 -1
  50. package/dist/editor/sidebar/OperationItem.js +19 -6
  51. package/dist/editor/sidebar/OperationItem.js.map +1 -1
  52. package/dist/editor/ui/SimpleTabs.js +3 -3
  53. package/dist/editor/ui/SimpleTabs.js.map +1 -1
  54. package/dist/revision.d.ts +2 -2
  55. package/dist/revision.js +2 -2
  56. package/dist/task-board/TaskBoardWorkspace.js +57 -0
  57. package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
  58. package/dist/task-board/components/TaskBoardMyTasksSidebar.d.ts +1 -0
  59. package/dist/task-board/components/TaskBoardMyTasksSidebar.js +31 -0
  60. package/dist/task-board/components/TaskBoardMyTasksSidebar.js.map +1 -0
  61. package/dist/task-board/components/TaskBoardProjectListSidebar.d.ts +1 -0
  62. package/dist/task-board/components/TaskBoardProjectListSidebar.js +37 -0
  63. package/dist/task-board/components/TaskBoardProjectListSidebar.js.map +1 -0
  64. package/dist/task-board/components/TaskBoardTitlebar.js +1 -1
  65. package/dist/task-board/components/TaskBoardTitlebar.js.map +1 -1
  66. package/dist/task-board/components/TaskCard.d.ts +1 -0
  67. package/dist/task-board/components/TaskCard.js +3 -3
  68. package/dist/task-board/components/TaskCard.js.map +1 -1
  69. package/dist/task-board/components/TaskDetailPanel.js +3 -3
  70. package/dist/task-board/components/TaskDetailPanel.js.map +1 -1
  71. package/dist/task-board/taskBoardNavStore.d.ts +15 -0
  72. package/dist/task-board/taskBoardNavStore.js +4 -0
  73. package/dist/task-board/taskBoardNavStore.js.map +1 -1
  74. package/package.json +1 -1
@@ -2714,8 +2714,34 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2714
2714
  // Get resolved sidebar (with panels materialized)
2715
2715
  // Note: This is defined as a function that will be called later when editContext is available
2716
2716
  const sidebars = configuration.editor.sidebars ?? [];
2717
+ const taskboardSidebarIds = new Set([
2718
+ "taskboard-project-list",
2719
+ "taskboard-my-tasks",
2720
+ ]);
2721
+ const getSidebarsForWorkspace = useCallback((targetWorkspaceId) => {
2722
+ const isTaskboardWorkspace = targetWorkspaceId === "taskboard";
2723
+ const workspaceAllowedSidebarIds = userInfo.workspaces?.find((w) => w.id === targetWorkspaceId)
2724
+ ?.sidebars ?? [];
2725
+ return sidebars.filter((s) => {
2726
+ const isTaskboardSidebar = taskboardSidebarIds.has(s.id);
2727
+ if (isTaskboardWorkspace && !isTaskboardSidebar)
2728
+ return false;
2729
+ if (!isTaskboardWorkspace && isTaskboardSidebar)
2730
+ return false;
2731
+ // Always show agents-panel regardless of workspace settings.
2732
+ if (s.id === "agents-panel") {
2733
+ return true;
2734
+ }
2735
+ // If no workspace settings or no sidebars defined for current workspace, show all.
2736
+ if (workspaceAllowedSidebarIds.length === 0) {
2737
+ return true;
2738
+ }
2739
+ // Only show sidebars that are in the allowed list for the current workspace.
2740
+ return workspaceAllowedSidebarIds.includes(s.id);
2741
+ });
2742
+ }, [sidebars, userInfo.workspaces]);
2717
2743
  const getResolvedSidebar = useCallback((sidebarId) => {
2718
- const sidebar = sidebars.find((s) => s.id === sidebarId);
2744
+ const sidebar = getSidebarsForWorkspace(workspaceId).find((s) => s.id === sidebarId);
2719
2745
  if (!sidebar)
2720
2746
  return undefined;
2721
2747
  // Resolve panel factories using editContextRef to avoid circular dependency
@@ -2729,7 +2755,35 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2729
2755
  ...sidebar,
2730
2756
  panels: resolvedPanels,
2731
2757
  };
2732
- }, [sidebars]);
2758
+ }, [getSidebarsForWorkspace, workspaceId]);
2759
+ useEffect(() => {
2760
+ if (!currentWorkspace.supportsSidebars) {
2761
+ return;
2762
+ }
2763
+ const allowedIds = new Set(getSidebarsForWorkspace(workspaceId).map((sidebar) => sidebar.id));
2764
+ const currentOpen = openSidebarsRef.current;
2765
+ let nextOpen = currentOpen.filter((id) => allowedIds.has(id));
2766
+ if (nextOpen.length === 0 && currentWorkspace.defaultSidebars?.length) {
2767
+ nextOpen = currentWorkspace.defaultSidebars.filter((id) => allowedIds.has(id));
2768
+ }
2769
+ const unchanged = nextOpen.length === currentOpen.length &&
2770
+ nextOpen.every((id, index) => id === currentOpen[index]);
2771
+ if (unchanged) {
2772
+ return;
2773
+ }
2774
+ openSidebarsRef.current = nextOpen;
2775
+ setOpenSidebars(nextOpen);
2776
+ setSidebarStacks((prev) => normalizeSidebarStacks(nextOpen, prev));
2777
+ startTransition(() => {
2778
+ updateUrl({ sidebar: nextOpen.join(",") || undefined });
2779
+ });
2780
+ }, [
2781
+ currentWorkspace,
2782
+ getSidebarsForWorkspace,
2783
+ normalizeSidebarStacks,
2784
+ updateUrl,
2785
+ workspaceId,
2786
+ ]);
2733
2787
  // Listen for switch-workspace and open-sidebar commands from agents via websocket
2734
2788
  useEffect(() => {
2735
2789
  const handleAgentMessage = (message) => {
@@ -3280,9 +3334,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3280
3334
  // Otherwise, only show workspaces that are in the settings
3281
3335
  return workspaceIdsFromSettings.includes(w.id) && !w.visible;
3282
3336
  });
3283
- // Get sidebars allowed for the current workspace from settings
3284
- const currentWorkspaceSettings = userInfo.workspaces?.find((w) => w.id === workspaceId);
3285
- const allowedSidebarIds = currentWorkspaceSettings?.sidebars ?? [];
3286
3337
  // Legacy: Calculate visible views for backwards compatibility
3287
3338
  const allViews = (configuration.editor.views ?? [])
3288
3339
  .filter((x) => {
@@ -3703,19 +3754,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3703
3754
  workspaceId,
3704
3755
  previousWorkspaceId,
3705
3756
  switchWorkspace,
3706
- // Sidebar state - filter by workspace settings if available
3707
- availableSidebars: (configuration.editor.sidebars ?? []).filter((s) => {
3708
- // Always show agents-panel regardless of workspace settings
3709
- if (s.id === "agents-panel") {
3710
- return true;
3711
- }
3712
- // If no workspace settings or no sidebars defined for current workspace, show all
3713
- if (!allowedSidebarIds || allowedSidebarIds.length === 0) {
3714
- return true;
3715
- }
3716
- // Only show sidebars that are in the allowed list for the current workspace
3717
- return allowedSidebarIds.includes(s.id);
3718
- }),
3757
+ // Sidebar state
3758
+ availableSidebars: getSidebarsForWorkspace(workspaceId),
3719
3759
  openSidebars,
3720
3760
  pinnedSidebars,
3721
3761
  lockedSidebars,
@@ -3956,7 +3996,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3956
3996
  currentWorkspace,
3957
3997
  previousWorkspaceId,
3958
3998
  switchWorkspace,
3959
- allowedSidebarIds,
3960
3999
  openSidebars,
3961
4000
  pinnedSidebars,
3962
4001
  lockedSidebars,