@parhelia/core 0.1.12889 → 0.1.12891

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 (382) hide show
  1. package/dist/agents-view/AgentCard.js +7 -12
  2. package/dist/agents-view/AgentCard.js.map +1 -1
  3. package/dist/agents-view/AgentGalleryCard.js +2 -3
  4. package/dist/agents-view/AgentGalleryCard.js.map +1 -1
  5. package/dist/agents-view/AgentGalleryView.js +6 -6
  6. package/dist/agents-view/AgentGalleryView.js.map +1 -1
  7. package/dist/agents-view/AgentProfileIcon.d.ts +9 -0
  8. package/dist/agents-view/AgentProfileIcon.js +28 -0
  9. package/dist/agents-view/AgentProfileIcon.js.map +1 -0
  10. package/dist/agents-view/AgentsSidebar.js +2 -2
  11. package/dist/agents-view/AgentsSidebar.js.map +1 -1
  12. package/dist/agents-view/AgentsTitlebar.d.ts +1 -2
  13. package/dist/agents-view/AgentsTitlebar.js +5 -6
  14. package/dist/agents-view/AgentsTitlebar.js.map +1 -1
  15. package/dist/agents-view/AgentsView.d.ts +8 -1
  16. package/dist/agents-view/AgentsView.js +8 -8
  17. package/dist/agents-view/AgentsView.js.map +1 -1
  18. package/dist/agents-view/AgentsWorkspaceView.js +30 -22
  19. package/dist/agents-view/AgentsWorkspaceView.js.map +1 -1
  20. package/dist/agents-view/CreateAgentView.js +1 -1
  21. package/dist/agents-view/CreateAgentView.js.map +1 -1
  22. package/dist/agents-view/DateAgentsGroup.js +1 -1
  23. package/dist/agents-view/DateAgentsGroup.js.map +1 -1
  24. package/dist/agents-view/ProfileAgentsGroup.js +3 -6
  25. package/dist/agents-view/ProfileAgentsGroup.js.map +1 -1
  26. package/dist/components/FilterInput.d.ts +2 -0
  27. package/dist/components/FilterInput.js +2 -2
  28. package/dist/components/FilterInput.js.map +1 -1
  29. package/dist/components/MarkdownDisplay.js +4 -4
  30. package/dist/components/MarkdownDisplay.js.map +1 -1
  31. package/dist/components/PageHeader.js +1 -1
  32. package/dist/components/PageHeader.js.map +1 -1
  33. package/dist/components/ui/LanguageSelectionGrid.js +1 -1
  34. package/dist/components/ui/LanguageSelectionGrid.js.map +1 -1
  35. package/dist/components/ui/alert-dialog.js +1 -1
  36. package/dist/components/ui/alert-dialog.js.map +1 -1
  37. package/dist/components/ui/card.d.ts +2 -1
  38. package/dist/components/ui/card.js +2 -2
  39. package/dist/components/ui/card.js.map +1 -1
  40. package/dist/components/ui/multi-switch-button.d.ts +22 -0
  41. package/dist/components/ui/multi-switch-button.js +12 -0
  42. package/dist/components/ui/multi-switch-button.js.map +1 -0
  43. package/dist/components/ui/styled-dialog-title.js +1 -1
  44. package/dist/components/ui/styled-dialog-title.js.map +1 -1
  45. package/dist/config/config.js +6 -4
  46. package/dist/config/config.js.map +1 -1
  47. package/dist/config/types/sidebar.d.ts +2 -0
  48. package/dist/config/types.d.ts +1 -0
  49. package/dist/config/types.js.map +1 -1
  50. package/dist/editor/AdminRequiredView.js +1 -1
  51. package/dist/editor/AdminRequiredView.js.map +1 -1
  52. package/dist/editor/ContentTree.js +1 -1
  53. package/dist/editor/ContentTree.js.map +1 -1
  54. package/dist/editor/FieldActionsOverlay.js +2 -2
  55. package/dist/editor/FieldActionsOverlay.js.map +1 -1
  56. package/dist/editor/FieldHistory.js +2 -2
  57. package/dist/editor/FieldHistory.js.map +1 -1
  58. package/dist/editor/GlobalMenuBar.js +3 -1
  59. package/dist/editor/GlobalMenuBar.js.map +1 -1
  60. package/dist/editor/LinkEditorDialog.js +10 -9
  61. package/dist/editor/LinkEditorDialog.js.map +1 -1
  62. package/dist/editor/MainLayout.js +11 -9
  63. package/dist/editor/MainLayout.js.map +1 -1
  64. package/dist/editor/MigrationsView.js +4 -4
  65. package/dist/editor/MigrationsView.js.map +1 -1
  66. package/dist/editor/Titlebar.d.ts +1 -1
  67. package/dist/editor/Titlebar.js +2 -2
  68. package/dist/editor/Titlebar.js.map +1 -1
  69. package/dist/editor/WorkspaceTitleSwitcher.d.ts +5 -0
  70. package/dist/editor/WorkspaceTitleSwitcher.js +86 -0
  71. package/dist/editor/WorkspaceTitleSwitcher.js.map +1 -0
  72. package/dist/editor/ai/AgentProfileSelector.js +2 -2
  73. package/dist/editor/ai/AgentProfileSelector.js.map +1 -1
  74. package/dist/editor/ai/Agents.js +155 -43
  75. package/dist/editor/ai/Agents.js.map +1 -1
  76. package/dist/editor/ai/HeartbeatDiagnosticsPanel.js +1 -1
  77. package/dist/editor/ai/HeartbeatDiagnosticsPanel.js.map +1 -1
  78. package/dist/editor/ai/InlineAiDialog.js +4 -4
  79. package/dist/editor/ai/InlineAiDialog.js.map +1 -1
  80. package/dist/editor/ai/InlineAiTextEditTooltip.js +1 -1
  81. package/dist/editor/ai/InlineAiTextEditTooltip.js.map +1 -1
  82. package/dist/editor/ai/InlineAiTrigger.js +1 -1
  83. package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
  84. package/dist/editor/ai/agentMessageMarkdown.js +3 -3
  85. package/dist/editor/ai/agentMessageMarkdown.js.map +1 -1
  86. package/dist/editor/ai/dialogs/ComponentTypeSelectorInline.js +2 -2
  87. package/dist/editor/ai/dialogs/ComponentTypeSelectorInline.js.map +1 -1
  88. package/dist/editor/ai/dialogs/QuestionnaireInline.js +2 -2
  89. package/dist/editor/ai/dialogs/QuestionnaireInline.js.map +1 -1
  90. package/dist/editor/ai/terminal/components/AgentBanners.js +2 -2
  91. package/dist/editor/ai/terminal/components/AgentBanners.js.map +1 -1
  92. package/dist/editor/ai/terminal/components/AgentBrowserClaimBanner.js +1 -1
  93. package/dist/editor/ai/terminal/components/AgentBrowserClaimBanner.js.map +1 -1
  94. package/dist/editor/ai/terminal/components/AgentCostDisplay.js +1 -1
  95. package/dist/editor/ai/terminal/components/AgentCostDisplay.js.map +1 -1
  96. package/dist/editor/ai/terminal/components/AgentFullPromptControls.js +1 -1
  97. package/dist/editor/ai/terminal/components/AgentFullPromptControls.js.map +1 -1
  98. package/dist/editor/ai/terminal/components/AgentGreeting.js +1 -1
  99. package/dist/editor/ai/terminal/components/AgentGreeting.js.map +1 -1
  100. package/dist/editor/ai/terminal/components/AgentProjectProgress.js +1 -1
  101. package/dist/editor/ai/terminal/components/AgentProjectProgress.js.map +1 -1
  102. package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js +3 -3
  103. package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js.map +1 -1
  104. package/dist/editor/ai/terminal/components/AgentPromptComposer.d.ts +2 -1
  105. package/dist/editor/ai/terminal/components/AgentPromptComposer.js +5 -2
  106. package/dist/editor/ai/terminal/components/AgentPromptComposer.js.map +1 -1
  107. package/dist/editor/ai/terminal/components/AgentPromptInputArea.d.ts +2 -1
  108. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js +5 -3
  109. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js.map +1 -1
  110. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js +3 -1
  111. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js.map +1 -1
  112. package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.js +3 -3
  113. package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.js.map +1 -1
  114. package/dist/editor/ai/terminal/components/AgentTerminalSummaryLayout.js +2 -1
  115. package/dist/editor/ai/terminal/components/AgentTerminalSummaryLayout.js.map +1 -1
  116. package/dist/editor/ai/terminal/components/AiResponseMessage.js +8 -8
  117. package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
  118. package/dist/editor/ai/terminal/components/QuestionnaireRecap.js +2 -2
  119. package/dist/editor/ai/terminal/components/QuestionnaireRecap.js.map +1 -1
  120. package/dist/editor/ai/terminal/components/ToolCallDisplay.js +5 -5
  121. package/dist/editor/ai/terminal/components/ToolCallDisplay.js.map +1 -1
  122. package/dist/editor/ai-image-editor/AiImageEditorDialog.js +3 -3
  123. package/dist/editor/ai-image-editor/AiImageEditorDialog.js.map +1 -1
  124. package/dist/editor/bridge/protocol.d.ts +0 -5
  125. package/dist/editor/bridge/protocol.js.map +1 -1
  126. package/dist/editor/client/AboutDialog.js +1 -1
  127. package/dist/editor/client/AboutDialog.js.map +1 -1
  128. package/dist/editor/client/EditorShell.js +15 -8
  129. package/dist/editor/client/EditorShell.js.map +1 -1
  130. package/dist/editor/client/operations.js +1 -1
  131. package/dist/editor/client/operations.js.map +1 -1
  132. package/dist/editor/client/pageModelBuilder.d.ts +1 -0
  133. package/dist/editor/client/pageModelBuilder.js +22 -13
  134. package/dist/editor/client/pageModelBuilder.js.map +1 -1
  135. package/dist/editor/content-tree/IndicatorSettings.js +3 -2
  136. package/dist/editor/content-tree/IndicatorSettings.js.map +1 -1
  137. package/dist/editor/media-selector/Preview.js +1 -1
  138. package/dist/editor/media-selector/Preview.js.map +1 -1
  139. package/dist/editor/media-selector/TreeSelector.js +1 -1
  140. package/dist/editor/media-selector/TreeSelector.js.map +1 -1
  141. package/dist/editor/menubar/ItemLanguageVersion.js +3 -14
  142. package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -1
  143. package/dist/editor/menubar/VersionSelector.d.ts +3 -2
  144. package/dist/editor/menubar/VersionSelector.js +28 -12
  145. package/dist/editor/menubar/VersionSelector.js.map +1 -1
  146. package/dist/editor/menubar/WorkflowButton.js +9 -8
  147. package/dist/editor/menubar/WorkflowButton.js.map +1 -1
  148. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +7 -7
  149. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
  150. package/dist/editor/notifications/NotificationCenter.js +1 -1
  151. package/dist/editor/notifications/NotificationCenter.js.map +1 -1
  152. package/dist/editor/notifications/NotificationItem.js +4 -3
  153. package/dist/editor/notifications/NotificationItem.js.map +1 -1
  154. package/dist/editor/notifications/watchEventOptions.js +3 -2
  155. package/dist/editor/notifications/watchEventOptions.js.map +1 -1
  156. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js +10 -4
  157. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js.map +1 -1
  158. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js +1 -1
  159. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js.map +1 -1
  160. package/dist/editor/page-viewer/EditorFormHintPopover.js +1 -1
  161. package/dist/editor/page-viewer/EditorFormHintPopover.js.map +1 -1
  162. package/dist/editor/page-viewer/PageViewerFrame.js +67 -0
  163. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  164. package/dist/editor/page-viewer/RenderingParametersSection.js +1 -1
  165. package/dist/editor/page-viewer/RenderingParametersSection.js.map +1 -1
  166. package/dist/editor/personalization/PersonalizationPanel.js +3 -3
  167. package/dist/editor/personalization/PersonalizationPanel.js.map +1 -1
  168. package/dist/editor/personalization/RuleElementPicker.js +1 -1
  169. package/dist/editor/personalization/RuleElementPicker.js.map +1 -1
  170. package/dist/editor/reviews/CommentDisplayPopover.js +1 -1
  171. package/dist/editor/reviews/CommentDisplayPopover.js.map +1 -1
  172. package/dist/editor/reviews/CommentEditor.js +1 -1
  173. package/dist/editor/reviews/CommentEditor.js.map +1 -1
  174. package/dist/editor/reviews/CommentPopover.js +1 -1
  175. package/dist/editor/reviews/CommentPopover.js.map +1 -1
  176. package/dist/editor/reviews/CommentView.js +2 -2
  177. package/dist/editor/reviews/CommentView.js.map +1 -1
  178. package/dist/editor/reviews/CreateReviewConfirmStep.js +2 -2
  179. package/dist/editor/reviews/CreateReviewConfirmStep.js.map +1 -1
  180. package/dist/editor/reviews/CreateReviewDetailsStep.js +6 -6
  181. package/dist/editor/reviews/CreateReviewDetailsStep.js.map +1 -1
  182. package/dist/editor/reviews/CreateReviewSuccessStep.js +2 -2
  183. package/dist/editor/reviews/CreateReviewSuccessStep.js.map +1 -1
  184. package/dist/editor/reviews/DecisionsMatrix.js +3 -3
  185. package/dist/editor/reviews/DecisionsMatrix.js.map +1 -1
  186. package/dist/editor/reviews/EditReviewSettingsDialog.js +7 -7
  187. package/dist/editor/reviews/EditReviewSettingsDialog.js.map +1 -1
  188. package/dist/editor/reviews/LatestFeedback.js +1 -1
  189. package/dist/editor/reviews/LatestFeedback.js.map +1 -1
  190. package/dist/editor/reviews/ReviewDetail.js +2 -2
  191. package/dist/editor/reviews/ReviewDetail.js.map +1 -1
  192. package/dist/editor/reviews/ReviewersPanel.js +1 -1
  193. package/dist/editor/reviews/ReviewersPanel.js.map +1 -1
  194. package/dist/editor/reviews/SuggestedEdit.js +5 -5
  195. package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
  196. package/dist/editor/reviews/SuggestionDisplayPopover.js +1 -1
  197. package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
  198. package/dist/editor/settings/About.js +4 -4
  199. package/dist/editor/settings/About.js.map +1 -1
  200. package/dist/editor/settings/QuotaInfo.js +6 -6
  201. package/dist/editor/settings/QuotaInfo.js.map +1 -1
  202. package/dist/editor/settings/SettingsCard.d.ts +4 -0
  203. package/dist/editor/settings/SettingsCard.js +7 -0
  204. package/dist/editor/settings/SettingsCard.js.map +1 -0
  205. package/dist/editor/settings/SettingsView.js +1 -1
  206. package/dist/editor/settings/SettingsView.js.map +1 -1
  207. package/dist/editor/settings/index/AdvancedSettings.js +1 -1
  208. package/dist/editor/settings/index/AdvancedSettings.js.map +1 -1
  209. package/dist/editor/settings/index/EmbeddingProviderInfo.js +1 -1
  210. package/dist/editor/settings/index/EmbeddingProviderInfo.js.map +1 -1
  211. package/dist/editor/settings/index/IndexStatusCards.js +1 -1
  212. package/dist/editor/settings/index/IndexStatusCards.js.map +1 -1
  213. package/dist/editor/settings/index/LatestEmbeddingsList.js +1 -1
  214. package/dist/editor/settings/index/LatestEmbeddingsList.js.map +1 -1
  215. package/dist/editor/settings/index/RebuildIndexSection.js +1 -1
  216. package/dist/editor/settings/index/RebuildIndexSection.js.map +1 -1
  217. package/dist/editor/settings/index/RecentBatchesList.js +1 -1
  218. package/dist/editor/settings/index/RecentBatchesList.js.map +1 -1
  219. package/dist/editor/settings/panels/AgentProfileConfigPanel.js +3 -2
  220. package/dist/editor/settings/panels/AgentProfileConfigPanel.js.map +1 -1
  221. package/dist/editor/settings/panels/AgentToolsPanel.js +1 -1
  222. package/dist/editor/settings/panels/AgentToolsPanel.js.map +1 -1
  223. package/dist/editor/settings/panels/AgentsPanel.js +1 -1
  224. package/dist/editor/settings/panels/AgentsPanel.js.map +1 -1
  225. package/dist/editor/settings/panels/ClusterInstancesPanel.js +3 -3
  226. package/dist/editor/settings/panels/ClusterInstancesPanel.js.map +1 -1
  227. package/dist/editor/settings/panels/FieldTypeSerializersPanel.js +1 -1
  228. package/dist/editor/settings/panels/FieldTypeSerializersPanel.js.map +1 -1
  229. package/dist/editor/settings/panels/GroupedFieldConfigPanel.js +2 -2
  230. package/dist/editor/settings/panels/GroupedFieldConfigPanel.js.map +1 -1
  231. package/dist/editor/settings/panels/JavaScriptToolAgentPanel.js +3 -2
  232. package/dist/editor/settings/panels/JavaScriptToolAgentPanel.js.map +1 -1
  233. package/dist/editor/settings/panels/JavaScriptToolsPanel.js +2 -2
  234. package/dist/editor/settings/panels/JavaScriptToolsPanel.js.map +1 -1
  235. package/dist/editor/settings/panels/McpToolsPanel.js +1 -1
  236. package/dist/editor/settings/panels/McpToolsPanel.js.map +1 -1
  237. package/dist/editor/settings/panels/ModelConfigPanel.js +1 -1
  238. package/dist/editor/settings/panels/ModelConfigPanel.js.map +1 -1
  239. package/dist/editor/settings/panels/ModelsPanel.js +2 -2
  240. package/dist/editor/settings/panels/ModelsPanel.js.map +1 -1
  241. package/dist/editor/settings/panels/NotificationSubscriptionsPanel.js +1 -1
  242. package/dist/editor/settings/panels/NotificationSubscriptionsPanel.js.map +1 -1
  243. package/dist/editor/settings/panels/PersistentLogsPanel.js +3 -3
  244. package/dist/editor/settings/panels/PersistentLogsPanel.js.map +1 -1
  245. package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js +3 -2
  246. package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js.map +1 -1
  247. package/dist/editor/settings/panels/ProjectTemplateSelector.js +1 -1
  248. package/dist/editor/settings/panels/ProjectTemplateSelector.js.map +1 -1
  249. package/dist/editor/settings/panels/ProjectTemplatesPanel.js +3 -3
  250. package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
  251. package/dist/editor/settings/panels/ProviderIcon.js +1 -1
  252. package/dist/editor/settings/panels/ProviderIcon.js.map +1 -1
  253. package/dist/editor/settings/panels/SearchConfigPanel.js +1 -1
  254. package/dist/editor/settings/panels/SearchConfigPanel.js.map +1 -1
  255. package/dist/editor/settings/panels/SettingsPanel.js +1 -1
  256. package/dist/editor/settings/panels/SettingsPanel.js.map +1 -1
  257. package/dist/editor/settings/panels/StatusPanel.js +1 -1
  258. package/dist/editor/settings/panels/StatusPanel.js.map +1 -1
  259. package/dist/editor/settings/panels/SystemSettingsPanel.js +1 -1
  260. package/dist/editor/settings/panels/SystemSettingsPanel.js.map +1 -1
  261. package/dist/editor/settings/panels/UserPreferencesPanel.js +1 -1
  262. package/dist/editor/settings/panels/UserPreferencesPanel.js.map +1 -1
  263. package/dist/editor/setup-wizard/steps/CreateSettingsStep.js +1 -1
  264. package/dist/editor/setup-wizard/steps/CreateSettingsStep.js.map +1 -1
  265. package/dist/editor/setup-wizard/steps/LicenseActivationStep.js +1 -1
  266. package/dist/editor/setup-wizard/steps/LicenseActivationStep.js.map +1 -1
  267. package/dist/editor/setup-wizard/steps/ProviderStep.js +6 -6
  268. package/dist/editor/setup-wizard/steps/ProviderStep.js.map +1 -1
  269. package/dist/editor/sidebar/Favorites.js +1 -1
  270. package/dist/editor/sidebar/Favorites.js.map +1 -1
  271. package/dist/editor/sidebar/SidebarPanel.js +3 -1
  272. package/dist/editor/sidebar/SidebarPanel.js.map +1 -1
  273. package/dist/editor/sidebar/SidebarStack.js +1 -0
  274. package/dist/editor/sidebar/SidebarStack.js.map +1 -1
  275. package/dist/editor/sidebar/Workbox.js +1 -1
  276. package/dist/editor/sidebar/Workbox.js.map +1 -1
  277. package/dist/editor/template-wizard/TemplateStructureInlineEditor.js +12 -11
  278. package/dist/editor/template-wizard/TemplateStructureInlineEditor.js.map +1 -1
  279. package/dist/editor/tree-indicators/GutterColumns.js +3 -2
  280. package/dist/editor/tree-indicators/GutterColumns.js.map +1 -1
  281. package/dist/editor/ui/Icons.js +1 -1
  282. package/dist/editor/ui/Icons.js.map +1 -1
  283. package/dist/editor/ui/ItemCollectionEditor.js +2 -2
  284. package/dist/editor/ui/ItemCollectionEditor.js.map +1 -1
  285. package/dist/editor/ui/PublishItemDialog.js +2 -2
  286. package/dist/editor/ui/PublishItemDialog.js.map +1 -1
  287. package/dist/editor/ui/PublishRestrictionsDialog.js +5 -5
  288. package/dist/editor/ui/PublishRestrictionsDialog.js.map +1 -1
  289. package/dist/editor/ui/Section.js +1 -1
  290. package/dist/editor/ui/Section.js.map +1 -1
  291. package/dist/editor/ui/SimpleMenu.js +3 -3
  292. package/dist/editor/ui/SimpleMenu.js.map +1 -1
  293. package/dist/editor/ui/SimpleTabs.d.ts +2 -1
  294. package/dist/editor/ui/SimpleTabs.js +23 -5
  295. package/dist/editor/ui/SimpleTabs.js.map +1 -1
  296. package/dist/editor/ui/Splitter.js +120 -3
  297. package/dist/editor/ui/Splitter.js.map +1 -1
  298. package/dist/editor/ui/TemplateSelectorDialog.js +2 -2
  299. package/dist/editor/ui/TemplateSelectorDialog.js.map +1 -1
  300. package/dist/editor/ui/splitterResizeEvent.d.ts +7 -0
  301. package/dist/editor/ui/splitterResizeEvent.js +6 -0
  302. package/dist/editor/ui/splitterResizeEvent.js.map +1 -1
  303. package/dist/index.d.ts +2 -0
  304. package/dist/index.js +1 -0
  305. package/dist/index.js.map +1 -1
  306. package/dist/licensing/LicenseOverlay.js +2 -2
  307. package/dist/licensing/LicenseOverlay.js.map +1 -1
  308. package/dist/revision.d.ts +2 -2
  309. package/dist/revision.js +2 -2
  310. package/dist/setup/wizard/steps/ImportModelDialog.js +3 -3
  311. package/dist/setup/wizard/steps/ImportModelDialog.js.map +1 -1
  312. package/dist/splash-screen/ModernSplashScreen.js +26 -17
  313. package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
  314. package/dist/splash-screen/ParheliaAssistantChat.js +2 -2
  315. package/dist/splash-screen/ParheliaAssistantChat.js.map +1 -1
  316. package/dist/splash-screen/RecentPages.js +2 -2
  317. package/dist/splash-screen/RecentPages.js.map +1 -1
  318. package/dist/task-board/TaskBoardWorkspace.js +153 -164
  319. package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
  320. package/dist/task-board/components/CommentsList.js +1 -1
  321. package/dist/task-board/components/CommentsList.js.map +1 -1
  322. package/dist/task-board/components/CreateTaskDialog.js +10 -6
  323. package/dist/task-board/components/CreateTaskDialog.js.map +1 -1
  324. package/dist/task-board/components/ItemCollectionEditorDialog.js +1 -1
  325. package/dist/task-board/components/ItemCollectionEditorDialog.js.map +1 -1
  326. package/dist/task-board/components/ProjectDashboard.d.ts +12 -22
  327. package/dist/task-board/components/ProjectDashboard.js +121 -109
  328. package/dist/task-board/components/ProjectDashboard.js.map +1 -1
  329. package/dist/task-board/components/ProjectListContent.js +5 -5
  330. package/dist/task-board/components/ProjectListContent.js.map +1 -1
  331. package/dist/task-board/components/ProjectOverviewContent.js +7 -4
  332. package/dist/task-board/components/ProjectOverviewContent.js.map +1 -1
  333. package/dist/task-board/components/ProjectPropertiesPanel.d.ts +2 -0
  334. package/dist/task-board/components/ProjectPropertiesPanel.js +12 -9
  335. package/dist/task-board/components/ProjectPropertiesPanel.js.map +1 -1
  336. package/dist/task-board/components/ProjectSettingsDialog.d.ts +18 -0
  337. package/dist/task-board/components/ProjectSettingsDialog.js +57 -47
  338. package/dist/task-board/components/ProjectSettingsDialog.js.map +1 -1
  339. package/dist/task-board/components/TaskAgentPanel.js +6 -5
  340. package/dist/task-board/components/TaskAgentPanel.js.map +1 -1
  341. package/dist/task-board/components/TaskAssigneePicker.js +3 -2
  342. package/dist/task-board/components/TaskAssigneePicker.js.map +1 -1
  343. package/dist/task-board/components/TaskAttachmentsSection.js +2 -2
  344. package/dist/task-board/components/TaskAttachmentsSection.js.map +1 -1
  345. package/dist/task-board/components/TaskBoardHomeView.d.ts +1 -21
  346. package/dist/task-board/components/TaskBoardHomeView.js +18 -155
  347. package/dist/task-board/components/TaskBoardHomeView.js.map +1 -1
  348. package/dist/task-board/components/TaskBoardMyTasksSidebar.js +4 -4
  349. package/dist/task-board/components/TaskBoardMyTasksSidebar.js.map +1 -1
  350. package/dist/task-board/components/TaskBoardProjectListSidebar.js +71 -14
  351. package/dist/task-board/components/TaskBoardProjectListSidebar.js.map +1 -1
  352. package/dist/task-board/components/TaskBoardTitlebar.js +9 -52
  353. package/dist/task-board/components/TaskBoardTitlebar.js.map +1 -1
  354. package/dist/task-board/components/TaskCard.js +7 -24
  355. package/dist/task-board/components/TaskCard.js.map +1 -1
  356. package/dist/task-board/components/TaskDetailPanel.js +18 -12
  357. package/dist/task-board/components/TaskDetailPanel.js.map +1 -1
  358. package/dist/task-board/components/TaskRow.js +19 -18
  359. package/dist/task-board/components/TaskRow.js.map +1 -1
  360. package/dist/task-board/components/TaskboardPersistentLogPanel.js +1 -1
  361. package/dist/task-board/components/TaskboardPersistentLogPanel.js.map +1 -1
  362. package/dist/task-board/components/WizardCommunicationCards.js +4 -4
  363. package/dist/task-board/components/WizardCommunicationCards.js.map +1 -1
  364. package/dist/task-board/components/WizardCommunicationShared.js +3 -3
  365. package/dist/task-board/components/WizardTaskDetailsPanel.js +2 -2
  366. package/dist/task-board/components/WizardTaskDetailsPanel.js.map +1 -1
  367. package/dist/task-board/taskBoardNavStore.d.ts +0 -2
  368. package/dist/task-board/taskBoardNavStore.js +0 -2
  369. package/dist/task-board/taskBoardNavStore.js.map +1 -1
  370. package/dist/task-board/taskStatus.js +2 -2
  371. package/dist/task-board/taskStatus.js.map +1 -1
  372. package/dist/task-board/views/DependencyGraphView.js +19 -8
  373. package/dist/task-board/views/DependencyGraphView.js.map +1 -1
  374. package/dist/task-board/views/KanbanView.js +240 -39
  375. package/dist/task-board/views/KanbanView.js.map +1 -1
  376. package/dist/task-board/views/ListView.js +2 -3
  377. package/dist/task-board/views/ListView.js.map +1 -1
  378. package/dist/task-board/views/WizardView.d.ts +2 -0
  379. package/dist/task-board/views/WizardView.js +11 -8
  380. package/dist/task-board/views/WizardView.js.map +1 -1
  381. package/package.json +2 -1
  382. package/styles.css +6 -0
@@ -3,7 +3,7 @@ import { lazy, Suspense, useCallback, useEffect, useMemo, useRef, useState, } fr
3
3
  import { toast } from "sonner";
4
4
  import { cn } from "../lib/utils";
5
5
  import { Splitter } from "../editor/ui/Splitter";
6
- import { deleteProject, getExecutionState, getGraphLayout, getProject, getProjects, getTasks, getMyTasks, getDependencies, restartProject, runOrchestrator, triggerPlanning, updateProject, updateTask, } from "./services/taskService";
6
+ import { deleteProject, getExecutionState, getGraphLayout, getProject, getProjects, getTasks, getMyTasks, getDependencies, restartProject, runOrchestrator, triggerPlanning, updateTask, } from "./services/taskService";
7
7
  import { loadAiProfiles } from "../editor/services/aiService";
8
8
  import { useEditContext } from "../editor/client/editContext";
9
9
  import { LicenseFeatures, useFeature } from "../licensing";
@@ -13,10 +13,11 @@ import { WizardView } from "./views/WizardView";
13
13
  import { SimpleTabs } from "../editor/ui/SimpleTabs";
14
14
  import { TaskDetailPanel, } from "./components/TaskDetailPanel";
15
15
  import { TaskAgentPanel } from "./components/TaskAgentPanel";
16
- import { ProjectDashboard, } from "./components/ProjectDashboard";
16
+ import { ProjectDashboard, ProjectKpisPanel, } from "./components/ProjectDashboard";
17
17
  import { CreateTaskDialog } from "./components/CreateTaskDialog";
18
18
  import { CreateProjectDialog } from "./components/CreateProjectDialog";
19
- import { ProjectSettingsDialog } from "./components/ProjectSettingsDialog";
19
+ import { ProjectSettingsPanel } from "./components/ProjectSettingsDialog";
20
+ import { ProjectPropertiesPanel } from "./components/ProjectPropertiesPanel";
20
21
  import { TaskBoardHomeView } from "./components/TaskBoardHomeView";
21
22
  import { EditorSlotContextProvider } from "../editor/views/editorSlotContext";
22
23
  import { SingleEditView } from "../editor/views/SingleEditView";
@@ -30,8 +31,7 @@ import { normalizeTaskStatus } from "./taskStatus";
30
31
  import { getTaskExecutionDisplay, } from "./taskExecutionStatus";
31
32
  import { indexTaskExecutionRecords, overlayTaskExecutionList, } from "./taskExecutionRecords";
32
33
  import { WizardCommunicationCenter } from "./components/WizardCommunicationCenter";
33
- import { Button } from "../components/ui/button";
34
- import { Loader2, Plus } from "lucide-react";
34
+ import { Loader2 } from "lucide-react";
35
35
  import { MainContentTree } from "../editor/sidebar/MainContentTree";
36
36
  import { useTaskBoardAgentPanelState } from "./useTaskBoardAgentPanelState";
37
37
  const DependencyGraphView = lazy(() => import("./views/DependencyGraphView").then((module) => ({
@@ -48,8 +48,19 @@ function TaskboardPreviewEditor() {
48
48
  const TASKBOARD_PROJECT_QUERY_KEY = "tbProjectId";
49
49
  const TASKBOARD_TASK_QUERY_KEY = "tbTaskId";
50
50
  const TASKBOARD_VIEW_QUERY_KEY = "tbView";
51
- const TASKBOARD_WIZARD_QUERY_KEY = "tbWizard";
52
51
  const WS_REFRESH_DELAY_MS = 500;
52
+ const TASKBOARD_VIEW_TAB_IDS = [
53
+ "overview",
54
+ "kanban",
55
+ "list",
56
+ "graph",
57
+ "kpis",
58
+ "settings",
59
+ "properties",
60
+ ];
61
+ function getTaskBoardViewTabIndex(view) {
62
+ return TASKBOARD_VIEW_TAB_IDS.indexOf(view);
63
+ }
53
64
  function getInitialQueryValue(queryKey) {
54
65
  if (typeof window === "undefined")
55
66
  return null;
@@ -58,15 +69,14 @@ function getInitialQueryValue(queryKey) {
58
69
  }
59
70
  function getInitialViewTabIndex() {
60
71
  const view = getInitialQueryValue(TASKBOARD_VIEW_QUERY_KEY)?.toLowerCase();
61
- if (view === "list")
62
- return 1;
63
- if (view === "graph")
64
- return 2;
65
- return 0;
66
- }
67
- function getInitialWizardMode() {
68
- const value = getInitialQueryValue(TASKBOARD_WIZARD_QUERY_KEY)?.toLowerCase();
69
- return value === "true" || value === "1";
72
+ const index = TASKBOARD_VIEW_TAB_IDS.indexOf(view);
73
+ if (index < 0) {
74
+ const legacyWizardMode = getInitialQueryValue("tbWizard")?.toLowerCase();
75
+ if (legacyWizardMode === "true" || legacyWizardMode === "1") {
76
+ return getTaskBoardViewTabIndex("overview");
77
+ }
78
+ }
79
+ return index >= 0 ? index : getTaskBoardViewTabIndex("kanban");
70
80
  }
71
81
  function getTaskBoardStateFromUrl() {
72
82
  const projectId = getInitialQueryValue(TASKBOARD_PROJECT_QUERY_KEY);
@@ -74,7 +84,6 @@ function getTaskBoardStateFromUrl() {
74
84
  projectId,
75
85
  taskId: projectId ? getInitialQueryValue(TASKBOARD_TASK_QUERY_KEY) : null,
76
86
  activeTab: getInitialViewTabIndex(),
77
- isWizardMode: getInitialWizardMode(),
78
87
  };
79
88
  }
80
89
  function getTaskExecutionRecordById(recordsByTaskId, taskId) {
@@ -145,7 +154,6 @@ export function TaskBoardWorkspace() {
145
154
  const currentItemDescriptor = editContext?.currentItemDescriptor;
146
155
  const [projects, setProjects] = useState([]);
147
156
  const [mobileActiveTab, setMobileActiveTab] = useState(0);
148
- const [homeActiveTab, setHomeActiveTab] = useState(0);
149
157
  const [selectedProjectId, setSelectedProjectId] = useState(() => getInitialQueryValue(TASKBOARD_PROJECT_QUERY_KEY));
150
158
  const [tasks, setTasks] = useState([]);
151
159
  const [isTasksLoading, setIsTasksLoading] = useState(false);
@@ -155,11 +163,15 @@ export function TaskBoardWorkspace() {
155
163
  const [selectedTaskId, setSelectedTaskId] = useState(() => getInitialQueryValue(TASKBOARD_TASK_QUERY_KEY));
156
164
  const [selectedTaskSource, setSelectedTaskSource] = useState(() => getInitialQueryValue(TASKBOARD_TASK_QUERY_KEY) ? "system" : null);
157
165
  const [activeTab, setActiveTab] = useState(() => getInitialViewTabIndex());
158
- const [isWizardMode, setIsWizardMode] = useState(() => getInitialWizardMode());
166
+ const activeViewTabId = TASKBOARD_VIEW_TAB_IDS[activeTab] ?? "kanban";
167
+ const isOverviewView = activeViewTabId === "overview";
168
+ const isListView = activeViewTabId === "list";
169
+ const isGraphView = activeViewTabId === "graph";
170
+ const isKpisView = activeViewTabId === "kpis";
171
+ const isSettingsView = activeViewTabId === "settings";
172
+ const isPropertiesView = activeViewTabId === "properties";
159
173
  const [createDialogOpen, setCreateDialogOpen] = useState(false);
160
174
  const [createProjectOpen, setCreateProjectOpen] = useState(false);
161
- const [settingsProjectId, setSettingsProjectId] = useState(null);
162
- const [savingProjectStatus, setSavingProjectStatus] = useState(false);
163
175
  const [runningOrchestrator, setRunningOrchestrator] = useState(false);
164
176
  const [showAllProjects, setShowAllProjects] = useState(false);
165
177
  const [isProjectsLoading, setIsProjectsLoading] = useState(false);
@@ -219,22 +231,11 @@ export function TaskBoardWorkspace() {
219
231
  const previousTaskStatusesRef = useRef({});
220
232
  const previousWizardAttentionSignatureRef = useRef("");
221
233
  const autoSelectedProjectIdsRef = useRef(new Set());
222
- const userFirstName = useMemo(() => {
223
- const user = editContext?.user;
224
- if (!user)
225
- return "";
226
- if (user.fullName) {
227
- return user.fullName.trim().split(/\s+/)[0] ?? "";
228
- }
229
- const namePart = user.name?.split("\\").pop() ?? user.name ?? "";
230
- return namePart;
231
- }, [editContext?.user]);
232
234
  const syncTaskBoardStateFromUrl = useCallback(() => {
233
235
  const nextState = getTaskBoardStateFromUrl();
234
236
  setSelectedProjectId(nextState.projectId);
235
237
  setTaskSelection(nextState.taskId, { source: "system" });
236
238
  setActiveTab(nextState.activeTab);
237
- setIsWizardMode(nextState.isWizardMode);
238
239
  setWizardForceOverview(false);
239
240
  }, [setTaskSelection]);
240
241
  const isProjectWithinSelectedTree = useCallback((projectId, currentProjectId) => {
@@ -322,7 +323,6 @@ export function TaskBoardWorkspace() {
322
323
  }, [editContext?.user?.name]);
323
324
  const tasksWithDisplayAssignees = useMemo(() => addAgentDisplayNames(overlayTaskExecutionList(tasks, executionRecordsByTaskId), agentProfileTitlesById), [tasks, executionRecordsByTaskId, agentProfileTitlesById]);
324
325
  const selectedProject = useMemo(() => projects.find((p) => p.project.projectId === selectedProjectId) ?? null, [projects, selectedProjectId]);
325
- const settingsProject = useMemo(() => projects.find((p) => p.project.projectId === settingsProjectId) ?? null, [projects, settingsProjectId]);
326
326
  const selectedProjectTaskCounts = useMemo(() => buildTaskCounts(tasksWithDisplayAssignees), [tasksWithDisplayAssignees]);
327
327
  const directSubprojects = useMemo(() => selectedProjectId
328
328
  ? projects
@@ -360,9 +360,13 @@ export function TaskBoardWorkspace() {
360
360
  }
361
361
  return merged;
362
362
  }, [executionRecordsByTaskId, subprojectExecutionRecordsByProjectId]);
363
- const taskSelectionUniverse = useMemo(() => isWizardMode
363
+ const taskSelectionUniverse = useMemo(() => isOverviewView
364
364
  ? wizardTasksWithDisplayAssignees
365
- : tasksWithDisplayAssignees, [isWizardMode, wizardTasksWithDisplayAssignees, tasksWithDisplayAssignees]);
365
+ : tasksWithDisplayAssignees, [
366
+ isOverviewView,
367
+ wizardTasksWithDisplayAssignees,
368
+ tasksWithDisplayAssignees,
369
+ ]);
366
370
  const selectedProjectCumulativeCostUsed = useMemo(() => {
367
371
  if (!selectedProjectId)
368
372
  return 0;
@@ -445,14 +449,15 @@ export function TaskBoardWorkspace() {
445
449
  selectedProject?.permission === "Editor";
446
450
  const canEditTasks = canCreate;
447
451
  const viewTabs = useMemo(() => [
452
+ { id: "overview", label: "Task overview", content: null },
448
453
  { id: "kanban", label: "Kanban", content: null },
449
454
  { id: "list", label: "List", content: null },
450
455
  { id: "graph", label: "Graph", content: null },
456
+ { id: "kpis", label: "KPIs", content: null },
457
+ { id: "settings", label: "Settings", content: null },
458
+ { id: "properties", label: "Properties", content: null },
451
459
  ], []);
452
- const viewTabIds = useMemo(() => ["kanban", "list", "graph"], []);
453
- const isListView = viewTabIds[activeTab] === "list";
454
- const isGraphView = viewTabIds[activeTab] === "graph";
455
- const sharedViewSwitcher = useMemo(() => (_jsxs("div", { className: "flex items-center justify-end gap-2", children: [_jsx(SimpleTabs, { tabs: viewTabs, activeTab: activeTab, setActiveTab: setActiveTab, hideContent: true, className: "bg-neutral-grey-5/50 rounded-lg border-0 p-1", testId: "taskboard-view-switcher" }), _jsxs(Button, { size: "sm", onClick: () => setCreateDialogOpen(true), disabled: !canEditTasks, className: "h-8 px-3", "data-testid": "taskboard-create-task-button", children: [_jsx(Plus, { className: "h-4 w-4 sm:mr-1.5" }), _jsx("span", { className: "hidden sm:inline", children: "New Task" })] })] })), [activeTab, canEditTasks, viewTabs]);
460
+ const sharedViewSwitcher = useMemo(() => (_jsx("div", { className: "border-border-default mt-[18px] border-b", children: _jsx(SimpleTabs, { tabs: viewTabs, activeTab: activeTab, setActiveTab: setActiveTab, hideContent: true, variant: "large", className: "gap-8", tabClassName: "px-2 pt-3 pb-[9px] text-sm", testId: "taskboard-view-switcher" }) })), [activeTab, viewTabs]);
456
461
  const handleSelectProject = useCallback((projectId) => {
457
462
  setSelectedProjectId((previousProjectId) => {
458
463
  if (previousProjectId !== projectId) {
@@ -595,10 +600,10 @@ export function TaskBoardWorkspace() {
595
600
  }
596
601
  }, []);
597
602
  useEffect(() => {
598
- if (!isWizardMode) {
603
+ if (!isOverviewView) {
599
604
  clearWizardCloseTransitionTimeout();
600
605
  }
601
- }, [isWizardMode, clearWizardCloseTransitionTimeout]);
606
+ }, [isOverviewView, clearWizardCloseTransitionTimeout]);
602
607
  useEffect(() => {
603
608
  clearWizardCloseTransitionTimeout();
604
609
  }, [selectedProjectId, clearWizardCloseTransitionTimeout]);
@@ -674,7 +679,7 @@ export function TaskBoardWorkspace() {
674
679
  if (typeof window === "undefined")
675
680
  return;
676
681
  const current = new URLSearchParams(window.location.search);
677
- const view = viewTabIds[activeTab] ?? "kanban";
682
+ const view = TASKBOARD_VIEW_TAB_IDS[activeTab] ?? "kanban";
678
683
  if (selectedProjectId) {
679
684
  current.set(TASKBOARD_PROJECT_QUERY_KEY, selectedProjectId);
680
685
  }
@@ -688,12 +693,7 @@ export function TaskBoardWorkspace() {
688
693
  current.delete(TASKBOARD_TASK_QUERY_KEY);
689
694
  }
690
695
  current.set(TASKBOARD_VIEW_QUERY_KEY, view);
691
- if (isWizardMode) {
692
- current.set(TASKBOARD_WIZARD_QUERY_KEY, "true");
693
- }
694
- else {
695
- current.delete(TASKBOARD_WIZARD_QUERY_KEY);
696
- }
696
+ current.delete("tbWizard");
697
697
  const browserPathname = window.location.pathname;
698
698
  const queryString = current.toString();
699
699
  const newUrl = queryString
@@ -703,7 +703,7 @@ export function TaskBoardWorkspace() {
703
703
  if (newUrl !== oldUrl) {
704
704
  window.history.replaceState(null, "", newUrl);
705
705
  }
706
- }, [selectedProjectId, selectedTaskId, activeTab, isWizardMode, viewTabIds]);
706
+ }, [selectedProjectId, selectedTaskId, activeTab]);
707
707
  useEffect(() => {
708
708
  const handlePopState = () => {
709
709
  syncTaskBoardStateFromUrl();
@@ -807,13 +807,13 @@ export function TaskBoardWorkspace() {
807
807
  nextExecutionByProjectId[projectId] = executionByTaskId;
808
808
  }
809
809
  setSubprojectTaskCounts(nextCounts);
810
- setSubprojectTasksByProjectId(isWizardMode ? nextTasksByProjectId : {});
811
- setSubprojectExecutionRecordsByProjectId(isWizardMode ? nextExecutionByProjectId : {});
810
+ setSubprojectTasksByProjectId(isOverviewView ? nextTasksByProjectId : {});
811
+ setSubprojectExecutionRecordsByProjectId(isOverviewView ? nextExecutionByProjectId : {});
812
812
  }
813
813
  finally {
814
814
  setSubprojectCountsLoading(false);
815
815
  }
816
- }, [directSubprojects, isWizardMode, selectedProjectId]);
816
+ }, [directSubprojects, isOverviewView, selectedProjectId]);
817
817
  // If a project only has a single task, auto-select it once when loading.
818
818
  // Do not auto-reselect after the user explicitly closes task details.
819
819
  useEffect(() => {
@@ -843,7 +843,7 @@ export function TaskBoardWorkspace() {
843
843
  // switch away when another subproject also gets Questions (wizardAttentionState
844
844
  // would pick a different task and we'd lose the questionnaire to agent mismatch).
845
845
  useEffect(() => {
846
- if (!isWizardMode)
846
+ if (!isOverviewView)
847
847
  return;
848
848
  if (wizardForceOverview)
849
849
  return;
@@ -860,7 +860,7 @@ export function TaskBoardWorkspace() {
860
860
  return;
861
861
  setWizardPinnedTask(wizardDisplayedTask.taskId, "system");
862
862
  }, [
863
- isWizardMode,
863
+ isOverviewView,
864
864
  wizardForceOverview,
865
865
  selectedTaskId,
866
866
  wizardPinnedTaskId,
@@ -869,7 +869,7 @@ export function TaskBoardWorkspace() {
869
869
  setWizardPinnedTask,
870
870
  ]);
871
871
  useEffect(() => {
872
- if (!isWizardMode)
872
+ if (!isOverviewView)
873
873
  return;
874
874
  if (selectedTaskId)
875
875
  return;
@@ -890,7 +890,7 @@ export function TaskBoardWorkspace() {
890
890
  }
891
891
  setWizardPinnedTaskId(attentionTaskId);
892
892
  }, [
893
- isWizardMode,
893
+ isOverviewView,
894
894
  selectedTaskId,
895
895
  selectedTaskSource,
896
896
  wizardDisplayedExecutionDisplay?.label,
@@ -901,7 +901,7 @@ export function TaskBoardWorkspace() {
901
901
  wizardAttentionState.task?.taskId,
902
902
  ]);
903
903
  useEffect(() => {
904
- if (!isWizardMode)
904
+ if (!isOverviewView)
905
905
  return;
906
906
  if (selectedTaskSource === "user")
907
907
  return;
@@ -923,23 +923,23 @@ export function TaskBoardWorkspace() {
923
923
  setTaskSelection(null, { pinInWizard: false });
924
924
  }, [
925
925
  findNextAttentionTaskId,
926
- isWizardMode,
926
+ isOverviewView,
927
927
  selectedTask,
928
928
  selectedTaskSource,
929
929
  setTaskSelection,
930
930
  ]);
931
931
  useEffect(() => {
932
- if (isWizardMode)
932
+ if (isOverviewView)
933
933
  return;
934
934
  if (!wizardPinnedTaskId)
935
935
  return;
936
936
  setWizardPinnedTask(null);
937
- }, [isWizardMode, setWizardPinnedTask, wizardPinnedTaskId]);
937
+ }, [isOverviewView, setWizardPinnedTask, wizardPinnedTaskId]);
938
938
  useEffect(() => {
939
- if (!isWizardMode && wizardForceOverview) {
939
+ if (!isOverviewView && wizardForceOverview) {
940
940
  setWizardForceOverview(false);
941
941
  }
942
- }, [isWizardMode, wizardForceOverview]);
942
+ }, [isOverviewView, wizardForceOverview]);
943
943
  useEffect(() => {
944
944
  setWizardPinnedTask(null);
945
945
  setWizardForceOverview(false);
@@ -1297,32 +1297,6 @@ export function TaskBoardWorkspace() {
1297
1297
  setTaskSelection,
1298
1298
  tasks,
1299
1299
  ]);
1300
- const handleProjectStatusChange = useCallback(async (status) => {
1301
- if (!selectedProject)
1302
- return;
1303
- if (selectedProject.permission !== "Owner")
1304
- return;
1305
- if (selectedProject.project.status === status)
1306
- return;
1307
- setSavingProjectStatus(true);
1308
- try {
1309
- const result = await updateProject({
1310
- projectId: selectedProject.project.projectId,
1311
- title: selectedProject.project.title,
1312
- description: selectedProject.project.description ?? "",
1313
- costLimit: selectedProject.project.costLimit ?? null,
1314
- status,
1315
- });
1316
- if (result.type !== "success") {
1317
- toast.error(result.summary || "Failed to update project status");
1318
- return;
1319
- }
1320
- await refreshProjects();
1321
- }
1322
- finally {
1323
- setSavingProjectStatus(false);
1324
- }
1325
- }, [selectedProject, refreshProjects]);
1326
1300
  const handleSelectMyTask = useCallback((task) => {
1327
1301
  handleSelectProject(task.projectId);
1328
1302
  setTaskSelection(task.taskId, { source: "user" });
@@ -1344,6 +1318,41 @@ export function TaskBoardWorkspace() {
1344
1318
  },
1345
1319
  });
1346
1320
  }, [editContext]);
1321
+ const handleDeleteProject = useCallback((projectId, title) => {
1322
+ const runDelete = async () => {
1323
+ const result = await deleteProject(projectId);
1324
+ if (result.type !== "success") {
1325
+ toast.error(result.summary || "Failed to delete project");
1326
+ return;
1327
+ }
1328
+ toast.success("Project deleted");
1329
+ const fallbackProjectId = projects.find((p) => p.project.projectId !== projectId)?.project
1330
+ .projectId ?? null;
1331
+ await refreshProjects();
1332
+ if (selectedProjectId === projectId) {
1333
+ handleSelectProject(fallbackProjectId);
1334
+ }
1335
+ };
1336
+ if (editContext?.confirm) {
1337
+ editContext.confirm({
1338
+ header: "Delete project",
1339
+ message: `Are you sure you want to delete "${title}"?\n\nAny subprojects under this project will also be deleted. This action cannot be undone.`,
1340
+ acceptLabel: "Delete",
1341
+ showCancel: true,
1342
+ accept: () => {
1343
+ void runDelete();
1344
+ },
1345
+ });
1346
+ return;
1347
+ }
1348
+ void runDelete();
1349
+ }, [
1350
+ editContext,
1351
+ handleSelectProject,
1352
+ projects,
1353
+ refreshProjects,
1354
+ selectedProjectId,
1355
+ ]);
1347
1356
  useEffect(() => {
1348
1357
  setTaskBoardNavState({
1349
1358
  projectTitle: selectedProject?.project.title ?? "Tasks",
@@ -1352,7 +1361,6 @@ export function TaskBoardWorkspace() {
1352
1361
  : "Select a project to get started",
1353
1362
  permissionLabel: selectedProject?.permission ?? "No project selected",
1354
1363
  activeTab,
1355
- isWizardMode,
1356
1364
  isAdministrator,
1357
1365
  showAllProjects: isAdministrator && showAllProjects,
1358
1366
  isProjectsLoading,
@@ -1379,36 +1387,12 @@ export function TaskBoardWorkspace() {
1379
1387
  onSetActiveTab: setActiveTab,
1380
1388
  onCreateProject: () => setCreateProjectOpen(true),
1381
1389
  onOpenProjectTemplates: handleOpenProjectTemplates,
1382
- onOpenProjectSettings: (projectId) => setSettingsProjectId(projectId),
1383
- onDeleteProject: (projectId, title) => {
1384
- const runDelete = async () => {
1385
- const result = await deleteProject(projectId);
1386
- if (result.type !== "success") {
1387
- toast.error(result.summary || "Failed to delete project");
1388
- return;
1389
- }
1390
- toast.success("Project deleted");
1391
- const fallbackProjectId = projects.find((p) => p.project.projectId !== projectId)?.project
1392
- .projectId ?? null;
1393
- await refreshProjects();
1394
- if (selectedProjectId === projectId) {
1395
- handleSelectProject(fallbackProjectId);
1396
- }
1397
- };
1398
- if (editContext?.confirm) {
1399
- editContext.confirm({
1400
- header: "Delete project",
1401
- message: `Are you sure you want to delete "${title}"?\n\nAny subprojects under this project will also be deleted. This action cannot be undone.`,
1402
- acceptLabel: "Delete",
1403
- showCancel: true,
1404
- accept: () => {
1405
- void runDelete();
1406
- },
1407
- });
1408
- return;
1409
- }
1410
- void runDelete();
1390
+ onOpenProjectSettings: (projectId) => {
1391
+ handleSelectProject(projectId);
1392
+ setWizardForceOverview(false);
1393
+ setActiveTab(getTaskBoardViewTabIndex("settings"));
1411
1394
  },
1395
+ onDeleteProject: handleDeleteProject,
1412
1396
  onRestartProject: (projectId, title) => {
1413
1397
  const runRestart = async () => {
1414
1398
  const result = await restartProject(projectId);
@@ -1443,7 +1427,6 @@ export function TaskBoardWorkspace() {
1443
1427
  setShowAllProjects(enabled);
1444
1428
  void refreshProjects({ includeAll: isAdministrator && enabled });
1445
1429
  },
1446
- onToggleWizardMode: (enabled) => setIsWizardMode(enabled),
1447
1430
  onCreateTask: () => setCreateDialogOpen(true),
1448
1431
  onRunOrchestrator: handleRunOrchestrator,
1449
1432
  });
@@ -1452,7 +1435,6 @@ export function TaskBoardWorkspace() {
1452
1435
  selectedProject?.project.description,
1453
1436
  selectedProject?.permission,
1454
1437
  activeTab,
1455
- isWizardMode,
1456
1438
  isAdministrator,
1457
1439
  showAllProjects,
1458
1440
  isProjectsLoading,
@@ -1467,6 +1449,7 @@ export function TaskBoardWorkspace() {
1467
1449
  handleSelectMyTask,
1468
1450
  handleSelectProject,
1469
1451
  handleOpenProjectTemplates,
1452
+ handleDeleteProject,
1470
1453
  handleRunOrchestrator,
1471
1454
  selectedProject,
1472
1455
  ]);
@@ -1735,7 +1718,6 @@ export function TaskBoardWorkspace() {
1735
1718
  setTaskSelection(null);
1736
1719
  }
1737
1720
  }, [
1738
- isWizardMode,
1739
1721
  selectedTaskId,
1740
1722
  selectedTaskSource,
1741
1723
  setTaskSelection,
@@ -1814,42 +1796,58 @@ export function TaskBoardWorkspace() {
1814
1796
  return (_jsx("div", { className: "border-border-default bg-neutral-grey-5/70 flex h-full min-h-[240px] items-center justify-center rounded-lg border border-dashed", "data-testid": "taskboard-project-loading-state", children: _jsxs("div", { className: "text-muted-foreground flex flex-col items-center gap-3 text-sm", children: [_jsx(Loader2, { className: "h-6 w-6 animate-spin" }), _jsx("div", { children: "Loading project..." })] }) }));
1815
1797
  }
1816
1798
  if (!selectedProjectId || (!selectedProject && !isProjectsLoading)) {
1817
- return (_jsx(TaskBoardHomeView, { nav: nav, activeTab: homeActiveTab, setActiveTab: setHomeActiveTab, userFirstName: userFirstName }));
1799
+ return _jsx(TaskBoardHomeView, { nav: nav });
1800
+ }
1801
+ if (isOverviewView) {
1802
+ return (_jsxs("div", { className: "flex h-full min-h-0 min-w-0 flex-col gap-3", children: [_jsx(ProjectDashboard, { projectId: selectedProjectId, selectedProjectTitle: selectedProject?.project.title ?? "No project selected", selectedProjectDescription: selectedProject?.project.description, selectedProjectCostUsed: selectedProjectCumulativeCostUsed, selectedProjectCostLimit: selectedProject?.project.costLimit ?? null, selectedProjectTaskCounts: selectedProjectTaskCounts, subprojects: directSubprojects, taskCountsByProjectId: subprojectTaskCounts, parentProjectId: parentProject?.project.projectId ?? null, parentProjectTitle: parentProject?.project.title ?? null, onSelectProject: handleSelectProject, canCreateTask: canEditTasks, onCreateTask: () => setCreateDialogOpen(true) }), sharedViewSwitcher, _jsx("div", { className: "mt-3 min-h-0 flex-1", children: _jsx(WizardView, { projectId: selectedProjectId, tasks: tasksWithDisplayAssignees, projectTasksLoading: isTasksLoading, dependencies: dependencies, subprojectTaskLists: wizardSubprojectTaskLists, subprojectTasksLoading: subprojectCountsLoading, selectedTaskId: wizardDisplayedTask?.taskId ?? null, onSelectTask: (id) => {
1803
+ setWizardForceOverview(false);
1804
+ setTaskSelection(id, { source: "user", pinInWizard: true });
1805
+ }, projectTitle: selectedProject?.project.title ?? "No project selected", projectDescription: selectedProject?.project.description, projectCostUsed: selectedProjectCumulativeCostUsed, projectCostLimit: selectedProject?.project.costLimit ?? null, canEditProperties: selectedProject?.permission === "Owner", showProperties: false, showCost: false, communicationPanel: wizardCommunicationPanel }) })] }));
1806
+ }
1807
+ if (isSettingsView) {
1808
+ return (_jsxs("div", { className: "flex h-full min-h-0 min-w-0 flex-col gap-3", children: [_jsx(ProjectDashboard, { projectId: selectedProjectId, selectedProjectTitle: selectedProject?.project.title ?? "No project selected", selectedProjectDescription: selectedProject?.project.description, selectedProjectCostUsed: selectedProjectCumulativeCostUsed, selectedProjectCostLimit: selectedProject?.project.costLimit ?? null, selectedProjectTaskCounts: selectedProjectTaskCounts, subprojects: directSubprojects, taskCountsByProjectId: subprojectTaskCounts, parentProjectId: parentProject?.project.projectId ?? null, parentProjectTitle: parentProject?.project.title ?? null, onSelectProject: handleSelectProject, canCreateTask: canEditTasks, onCreateTask: () => setCreateDialogOpen(true), showCreateTaskButton: false }), sharedViewSwitcher, _jsx("div", { className: "mt-3", children: _jsx(ProjectSettingsPanel, { projectId: selectedProjectId, selectedProject: selectedProject, projects: projects, canOpenSourceTemplate: isAdministrator, onOpenSourceTemplate: handleOpenSourceTemplate, onDeleteProject: handleDeleteProject, onChanged: async () => {
1809
+ await refreshProjects();
1810
+ await refreshVisibleTaskData();
1811
+ } }) })] }));
1818
1812
  }
1819
- if (isWizardMode) {
1820
- return (_jsx(WizardView, { projectId: selectedProjectId, tasks: tasksWithDisplayAssignees, projectTasksLoading: isTasksLoading, dependencies: dependencies, subprojectTaskLists: wizardSubprojectTaskLists, subprojectTasksLoading: subprojectCountsLoading, selectedTaskId: wizardDisplayedTask?.taskId ?? null, onSelectTask: (id) => {
1821
- setWizardForceOverview(false);
1822
- setTaskSelection(id, { source: "user", pinInWizard: true });
1823
- }, projectTitle: selectedProject?.project.title ?? "No project selected", projectDescription: selectedProject?.project.description, projectCostUsed: selectedProjectCumulativeCostUsed, projectCostLimit: selectedProject?.project.costLimit ?? null, canEditProperties: selectedProject?.permission === "Owner", communicationPanel: wizardCommunicationPanel }));
1813
+ if (isKpisView) {
1814
+ return (_jsxs("div", { className: "flex h-full min-h-0 min-w-0 flex-col gap-3", children: [_jsx(ProjectDashboard, { projectId: selectedProjectId, selectedProjectTitle: selectedProject?.project.title ?? "No project selected", selectedProjectDescription: selectedProject?.project.description, selectedProjectCostUsed: selectedProjectCumulativeCostUsed, selectedProjectCostLimit: selectedProject?.project.costLimit ?? null, selectedProjectTaskCounts: selectedProjectTaskCounts, subprojects: directSubprojects, taskCountsByProjectId: subprojectTaskCounts, parentProjectId: parentProject?.project.projectId ?? null, parentProjectTitle: parentProject?.project.title ?? null, onSelectProject: handleSelectProject, canCreateTask: canEditTasks, onCreateTask: () => setCreateDialogOpen(true), showCreateTaskButton: false }), sharedViewSwitcher, _jsx("div", { className: "mt-3 max-w-[1000px]", children: _jsx(ProjectKpisPanel, { selectedProjectCostUsed: selectedProjectCumulativeCostUsed, selectedProjectCostLimit: selectedProject?.project.costLimit ?? null, selectedProjectTaskCounts: selectedProjectTaskCounts, selectedProjectAttention: selectedProject?.overview?.attention, subprojects: directSubprojects, taskCountsByProjectId: subprojectTaskCounts }) })] }));
1815
+ }
1816
+ if (isPropertiesView) {
1817
+ return (_jsxs("div", { className: "flex h-full min-h-0 min-w-0 flex-col gap-3", children: [_jsx(ProjectDashboard, { projectId: selectedProjectId, selectedProjectTitle: selectedProject?.project.title ?? "No project selected", selectedProjectDescription: selectedProject?.project.description, selectedProjectCostUsed: selectedProjectCumulativeCostUsed, selectedProjectCostLimit: selectedProject?.project.costLimit ?? null, selectedProjectTaskCounts: selectedProjectTaskCounts, subprojects: directSubprojects, taskCountsByProjectId: subprojectTaskCounts, parentProjectId: parentProject?.project.projectId ?? null, parentProjectTitle: parentProject?.project.title ?? null, onSelectProject: handleSelectProject, canCreateTask: canEditTasks, onCreateTask: () => setCreateDialogOpen(true), showCreateTaskButton: false }), sharedViewSwitcher, _jsx(ProjectPropertiesPanel, { projectId: selectedProjectId, canEdit: selectedProject?.permission === "Owner", defaultExpanded: true, showHeader: false, className: "border-border-default mt-3 rounded-md border bg-white p-4" })] }));
1824
1818
  }
1825
1819
  if (isListView) {
1826
- return (_jsxs("div", { className: "grid gap-3", children: [_jsx(ProjectDashboard, { projectId: selectedProjectId, selectedProjectTitle: selectedProject?.project.title ?? "No project selected", selectedProjectDescription: selectedProject?.project.description, selectedProjectStatus: selectedProject?.project.status, selectedProjectCostUsed: selectedProjectCumulativeCostUsed, selectedProjectCostLimit: selectedProject?.project.costLimit ?? null, canEditProjectStatus: selectedProject?.permission === "Owner", savingProjectStatus: savingProjectStatus, onStatusChange: handleProjectStatusChange, selectedProjectTaskCounts: selectedProjectTaskCounts, subprojects: directSubprojects, taskCountsByProjectId: subprojectTaskCounts, loading: subprojectCountsLoading, parentProjectId: parentProject?.project.projectId ?? null, parentProjectTitle: parentProject?.project.title ?? null, onSelectProject: handleSelectProject, canEditProperties: selectedProject?.permission === "Owner", selectedProjectSourceTemplateId: selectedProject?.project.sourceProjectTemplateId ?? null, selectedProjectSourceTemplateName: selectedProject?.project.sourceProjectTemplateName ?? null, canOpenSourceTemplate: isAdministrator, onOpenSourceTemplate: handleOpenSourceTemplate }), sharedViewSwitcher, _jsx(ListView, { tasks: tasksWithDisplayAssignees, onSelectTask: (id) => setTaskSelection(id, { source: "user" }), selectedTaskId: selectedTaskId, onTasksChanged: () => {
1827
- void refreshVisibleTaskData();
1828
- }, projectId: selectedProjectId, permission: selectedProject?.permission })] }));
1820
+ return (_jsxs("div", { className: "grid gap-3", children: [_jsx(ProjectDashboard, { projectId: selectedProjectId, selectedProjectTitle: selectedProject?.project.title ?? "No project selected", selectedProjectDescription: selectedProject?.project.description, selectedProjectCostUsed: selectedProjectCumulativeCostUsed, selectedProjectCostLimit: selectedProject?.project.costLimit ?? null, selectedProjectTaskCounts: selectedProjectTaskCounts, subprojects: directSubprojects, taskCountsByProjectId: subprojectTaskCounts, parentProjectId: parentProject?.project.projectId ?? null, parentProjectTitle: parentProject?.project.title ?? null, onSelectProject: handleSelectProject, canCreateTask: canEditTasks, onCreateTask: () => setCreateDialogOpen(true) }), sharedViewSwitcher, _jsx("div", { className: "mt-3 max-w-[1000px]", children: _jsx(ListView, { tasks: tasksWithDisplayAssignees, onSelectTask: (id) => setTaskSelection(id, { source: "user" }), selectedTaskId: selectedTaskId, onTasksChanged: () => {
1821
+ void refreshVisibleTaskData();
1822
+ }, projectId: selectedProjectId, permission: selectedProject?.permission }) })] }));
1829
1823
  }
1830
1824
  if (isGraphView) {
1831
- return (_jsxs("div", { className: "flex h-full min-h-0 min-w-0 flex-col gap-3", children: [_jsx(ProjectDashboard, { projectId: selectedProjectId, selectedProjectTitle: selectedProject?.project.title ?? "No project selected", selectedProjectDescription: selectedProject?.project.description, selectedProjectStatus: selectedProject?.project.status, selectedProjectCostUsed: selectedProjectCumulativeCostUsed, selectedProjectCostLimit: selectedProject?.project.costLimit ?? null, canEditProjectStatus: selectedProject?.permission === "Owner", savingProjectStatus: savingProjectStatus, onStatusChange: handleProjectStatusChange, selectedProjectTaskCounts: selectedProjectTaskCounts, subprojects: directSubprojects, taskCountsByProjectId: subprojectTaskCounts, loading: subprojectCountsLoading, parentProjectId: parentProject?.project.projectId ?? null, parentProjectTitle: parentProject?.project.title ?? null, onSelectProject: handleSelectProject, canEditProperties: selectedProject?.permission === "Owner", selectedProjectSourceTemplateId: selectedProject?.project.sourceProjectTemplateId ?? null, selectedProjectSourceTemplateName: selectedProject?.project.sourceProjectTemplateName ?? null, canOpenSourceTemplate: isAdministrator, onOpenSourceTemplate: handleOpenSourceTemplate }), sharedViewSwitcher, _jsx("div", { className: "min-h-0 flex-1", children: _jsx(Suspense, { fallback: _jsx("div", { className: "text-muted-foreground flex h-full items-center justify-center text-sm", children: "Loading dependency graph..." }), children: _jsx(DependencyGraphView, { projectId: selectedProjectId, tasks: tasksWithDisplayAssignees, dependencies: dependencies, miniMapWidth: 160, miniMapHeight: 120, orientation: "horizontal", autoLayoutStrategy: "hierarchy", showOrientationToggle: true, savedLayout: graphLayout, selectedTaskId: selectedTaskId, onSelectTask: (id) => setTaskSelection(id, { source: "user" }), permission: selectedProject?.permission, onLayoutSaved: (layout) => setGraphLayout(layout && selectedProjectId
1825
+ return (_jsxs("div", { className: "flex h-full min-h-0 min-w-0 flex-col gap-3", children: [_jsx(ProjectDashboard, { projectId: selectedProjectId, selectedProjectTitle: selectedProject?.project.title ?? "No project selected", selectedProjectDescription: selectedProject?.project.description, selectedProjectCostUsed: selectedProjectCumulativeCostUsed, selectedProjectCostLimit: selectedProject?.project.costLimit ?? null, selectedProjectTaskCounts: selectedProjectTaskCounts, subprojects: directSubprojects, taskCountsByProjectId: subprojectTaskCounts, parentProjectId: parentProject?.project.projectId ?? null, parentProjectTitle: parentProject?.project.title ?? null, onSelectProject: handleSelectProject, canCreateTask: canEditTasks, onCreateTask: () => setCreateDialogOpen(true) }), sharedViewSwitcher, _jsx("div", { className: "mt-3 min-h-0 flex-1", children: _jsx(Suspense, { fallback: _jsx("div", { className: "text-muted-foreground flex h-full items-center justify-center text-sm", children: "Loading dependency graph..." }), children: _jsx(DependencyGraphView, { projectId: selectedProjectId, tasks: tasksWithDisplayAssignees, dependencies: dependencies, miniMapWidth: 160, miniMapHeight: 120, orientation: "horizontal", autoLayoutStrategy: "hierarchy", showOrientationToggle: true, savedLayout: graphLayout, selectedTaskId: selectedTaskId, onSelectTask: (id) => setTaskSelection(id, { source: "user" }), permission: selectedProject?.permission, onLayoutSaved: (layout) => setGraphLayout(layout && selectedProjectId
1832
1826
  ? {
1833
1827
  projectId: selectedProjectId,
1834
1828
  ...layout,
1835
1829
  }
1836
1830
  : null) }) }) })] }));
1837
1831
  }
1838
- return (_jsxs("div", { className: "flex h-full min-h-0 min-w-0 flex-col gap-3", children: [_jsx(ProjectDashboard, { projectId: selectedProjectId, selectedProjectTitle: selectedProject?.project.title ?? "No project selected", selectedProjectDescription: selectedProject?.project.description, selectedProjectStatus: selectedProject?.project.status, selectedProjectCostUsed: selectedProjectCumulativeCostUsed, selectedProjectCostLimit: selectedProject?.project.costLimit ?? null, canEditProjectStatus: selectedProject?.permission === "Owner", savingProjectStatus: savingProjectStatus, onStatusChange: handleProjectStatusChange, selectedProjectTaskCounts: selectedProjectTaskCounts, subprojects: directSubprojects, taskCountsByProjectId: subprojectTaskCounts, loading: subprojectCountsLoading, parentProjectId: parentProject?.project.projectId ?? null, parentProjectTitle: parentProject?.project.title ?? null, onSelectProject: handleSelectProject, canEditProperties: selectedProject?.permission === "Owner", selectedProjectSourceTemplateId: selectedProject?.project.sourceProjectTemplateId ?? null, selectedProjectSourceTemplateName: selectedProject?.project.sourceProjectTemplateName ?? null, canOpenSourceTemplate: isAdministrator, onOpenSourceTemplate: handleOpenSourceTemplate }), sharedViewSwitcher, _jsx(KanbanView, { tasks: tasksWithDisplayAssignees, dependencies: dependencies, onSelectTask: (id) => setTaskSelection(id, { source: "user" }), selectedTaskId: selectedTaskId, onTasksChanged: () => {
1839
- void refreshVisibleTaskData();
1840
- }, projectId: selectedProjectId, permission: selectedProject?.permission })] }));
1832
+ return (_jsxs("div", { className: "flex h-full min-h-0 min-w-0 flex-col gap-3", children: [_jsx(ProjectDashboard, { projectId: selectedProjectId, selectedProjectTitle: selectedProject?.project.title ?? "No project selected", selectedProjectDescription: selectedProject?.project.description, selectedProjectCostUsed: selectedProjectCumulativeCostUsed, selectedProjectCostLimit: selectedProject?.project.costLimit ?? null, selectedProjectTaskCounts: selectedProjectTaskCounts, subprojects: directSubprojects, taskCountsByProjectId: subprojectTaskCounts, parentProjectId: parentProject?.project.projectId ?? null, parentProjectTitle: parentProject?.project.title ?? null, onSelectProject: handleSelectProject, canCreateTask: canEditTasks, onCreateTask: () => setCreateDialogOpen(true) }), sharedViewSwitcher, _jsx("div", { className: "mt-3 flex min-h-0 flex-1 flex-col", children: _jsx(KanbanView, { tasks: tasksWithDisplayAssignees, dependencies: dependencies, onSelectTask: (id) => setTaskSelection(id, { source: "user" }), selectedTaskId: selectedTaskId, onTasksChanged: () => {
1833
+ void refreshVisibleTaskData();
1834
+ }, projectId: selectedProjectId, permission: selectedProject?.permission }) })] }));
1841
1835
  }, [
1842
1836
  isProjectViewLoading,
1843
1837
  selectedProjectId,
1844
1838
  selectedProject,
1845
1839
  isProjectsLoading,
1846
- isWizardMode,
1840
+ isOverviewView,
1847
1841
  isListView,
1848
1842
  isGraphView,
1843
+ isKpisView,
1844
+ isSettingsView,
1845
+ isPropertiesView,
1846
+ graphLayout,
1847
+ isAdministrator,
1849
1848
  selectedProjectCumulativeCostUsed,
1850
- savingProjectStatus,
1851
- handleProjectStatusChange,
1852
1849
  handleOpenSourceTemplate,
1850
+ handleDeleteProject,
1853
1851
  selectedProjectTaskCounts,
1854
1852
  directSubprojects,
1855
1853
  subprojectTaskCounts,
@@ -1858,19 +1856,18 @@ export function TaskBoardWorkspace() {
1858
1856
  parentProject?.project.title,
1859
1857
  handleSelectProject,
1860
1858
  sharedViewSwitcher,
1859
+ projects,
1861
1860
  tasksWithDisplayAssignees,
1862
1861
  dependencies,
1863
1862
  selectedTaskId,
1864
- activeTab,
1865
1863
  canEditTasks,
1866
1864
  nav,
1867
- homeActiveTab,
1868
- userFirstName,
1869
1865
  isTasksLoading,
1870
1866
  wizardSubprojectTaskLists,
1871
1867
  wizardDisplayedTask?.taskId,
1872
1868
  wizardCommunicationPanel,
1873
1869
  setTaskSelection,
1870
+ refreshProjects,
1874
1871
  refreshVisibleTaskData,
1875
1872
  ]);
1876
1873
  const taskDetailAgentLaunch = useMemo(() => {
@@ -1913,6 +1910,7 @@ export function TaskBoardWorkspace() {
1913
1910
  void refreshVisibleTaskData();
1914
1911
  }, onSelectTask: (taskId) => setTaskSelection(taskId, { source: "user" }), onClose: () => setTaskSelection(null), variant: "panel", agentLaunch: taskDetailAgentLaunch })), [
1915
1912
  selectedTaskProject,
1913
+ projects,
1916
1914
  selectedTask,
1917
1915
  taskSelectionUniverse,
1918
1916
  dependencies,
@@ -2035,29 +2033,29 @@ export function TaskBoardWorkspace() {
2035
2033
  const showAgentColumnForSelectedTask = !!selectedProjectId &&
2036
2034
  !shouldHideAgentPanelForSelectedTask &&
2037
2035
  agentPanelMode === "agent";
2038
- if (isWizardMode) {
2039
- const wizardPanels = [
2036
+ if (isOverviewView || isKpisView) {
2037
+ const overviewPanels = [
2040
2038
  {
2041
- name: "wizard-view",
2042
- defaultSize: 70,
2043
- content: (_jsx("div", { className: "bg-neutral-grey-5/50 h-full overflow-x-hidden overflow-y-auto", children: taskBoardContent })),
2039
+ name: "task-list",
2040
+ defaultSize: "auto",
2041
+ content: (_jsx("div", { className: cn("bg-neutral-grey-5/60 flex h-full min-h-0 flex-col overflow-x-hidden overflow-y-auto", selectedProjectId && "p-3 pt-3 md:p-8 md:pt-8 md:pl-10"), children: taskBoardContent })),
2044
2042
  },
2045
2043
  ];
2046
2044
  if (showEditorPanel) {
2047
- wizardPanels.push({
2045
+ overviewPanels.push({
2048
2046
  name: "editor-preview",
2049
- defaultSize: 30,
2047
+ defaultSize: 500,
2050
2048
  content: (_jsx("div", { className: "border-border-default bg-neutral-grey-5 h-full overflow-hidden border-l", children: itemPreviewPanel })),
2051
2049
  });
2052
2050
  }
2053
- return wizardPanels;
2051
+ return overviewPanels;
2054
2052
  }
2055
2053
  if (isListView) {
2056
2054
  const listPanels = [
2057
2055
  {
2058
2056
  name: "task-list",
2059
2057
  defaultSize: "auto",
2060
- content: (_jsx("div", { className: "bg-neutral-grey-5/50 h-full overflow-x-auto overflow-y-auto p-2 pt-2 md:p-4 md:pt-3", children: taskBoardContent })),
2058
+ content: (_jsx("div", { className: "bg-neutral-grey-5/60 h-full overflow-x-auto overflow-y-auto p-3 pt-3 md:p-8 md:pt-8 md:pl-10", children: taskBoardContent })),
2061
2059
  },
2062
2060
  ...buildRightHandPanels(showAgentColumnForSelectedTask),
2063
2061
  ];
@@ -2075,7 +2073,7 @@ export function TaskBoardWorkspace() {
2075
2073
  {
2076
2074
  name: "task-list",
2077
2075
  defaultSize: "auto",
2078
- content: (_jsx("div", { className: cn("bg-neutral-grey-5/50 flex h-full min-h-0 flex-col overflow-x-hidden overflow-y-auto", selectedProjectId && "p-4 pt-3"), children: taskBoardContent })),
2076
+ content: (_jsx("div", { className: cn("bg-neutral-grey-5/60 flex h-full min-h-0 flex-col overflow-x-hidden overflow-y-auto", selectedProjectId && "p-3 pt-3 md:p-8 md:pt-8 md:pl-10"), children: taskBoardContent })),
2079
2077
  },
2080
2078
  ...buildRightHandPanels(showAgentColumnForSelectedTask),
2081
2079
  ];
@@ -2092,7 +2090,7 @@ export function TaskBoardWorkspace() {
2092
2090
  {
2093
2091
  name: "task-list",
2094
2092
  defaultSize: "auto",
2095
- content: (_jsx("div", { className: cn("bg-neutral-grey-5/50 flex h-full min-h-0 flex-col overflow-x-hidden overflow-y-auto", selectedProjectId && "p-4 pt-3"), children: taskBoardContent })),
2093
+ content: (_jsx("div", { className: cn("bg-neutral-grey-5/60 flex h-full min-h-0 flex-col overflow-x-hidden overflow-y-auto", selectedProjectId && "p-3 pt-3 md:p-8 md:pt-8 md:pl-10"), children: taskBoardContent })),
2096
2094
  },
2097
2095
  ...buildRightHandPanels(showAgentColumnForSelectedTask),
2098
2096
  ];
@@ -2105,7 +2103,8 @@ export function TaskBoardWorkspace() {
2105
2103
  }
2106
2104
  return kanbanPanels;
2107
2105
  }, [
2108
- isWizardMode,
2106
+ isOverviewView,
2107
+ isKpisView,
2109
2108
  isListView,
2110
2109
  isGraphView,
2111
2110
  selectedProjectId,
@@ -2133,30 +2132,20 @@ export function TaskBoardWorkspace() {
2133
2132
  ...(showEditorPanel
2134
2133
  ? [{ id: "editor", label: "Editor", content: null }]
2135
2134
  : []),
2136
- ], activeTab: mobileActiveTab, setActiveTab: setMobileActiveTab, hideContent: true, className: "gap-6" }) })), _jsxs("div", { className: "min-h-0 flex-1 overflow-hidden", children: [mobileActiveTab === 0 && (_jsx("div", { className: cn("bg-neutral-grey-5/50 flex h-full overflow-y-auto", selectedProjectId &&
2137
- !isWizardMode &&
2138
- "p-2 pt-2 md:p-4 md:pt-3"), children: taskBoardContent })), mobileActiveTab === 1 && (_jsx("div", { className: "h-full overflow-y-auto bg-white", children: taskDetailPanel })), mobileActiveTab === 2 && (_jsx("div", { className: "h-full overflow-hidden bg-white", children: shouldHideAgentPanelForSelectedTask
2135
+ ], activeTab: mobileActiveTab, setActiveTab: setMobileActiveTab, hideContent: true, className: "gap-6" }) })), _jsxs("div", { className: "min-h-0 flex-1 overflow-hidden", children: [mobileActiveTab === 0 && (_jsx("div", { className: cn("bg-neutral-grey-5/50 flex h-full overflow-y-auto", selectedProjectId && "p-2 pt-2 md:p-4 md:pt-3"), children: taskBoardContent })), mobileActiveTab === 1 && (_jsx("div", { className: "h-full overflow-y-auto bg-white", children: taskDetailPanel })), mobileActiveTab === 2 && (_jsx("div", { className: "h-full overflow-hidden bg-white", children: shouldHideAgentPanelForSelectedTask
2139
2136
  ? taskDetailPanel
2140
- : agentTerminalPanel })), mobileActiveTab === 3 && showEditorPanel && (_jsx("div", { className: "bg-neutral-grey-5 h-full overflow-hidden", children: itemPreviewPanel }))] })] })) : (_jsx(Splitter, { panels: panels, direction: "horizontal", localStorageKey: isWizardMode
2141
- ? "task-board-wizard-splitter-v2"
2142
- : "task-board-main-splitter" })) }), selectedProjectId && (_jsx(CreateTaskDialog, { open: createDialogOpen, onOpenChange: setCreateDialogOpen, projectId: selectedProjectId, availableParentTasks: tasks, onCreated: () => {
2137
+ : agentTerminalPanel })), mobileActiveTab === 3 && showEditorPanel && (_jsx("div", { className: "bg-neutral-grey-5 h-full overflow-hidden", children: itemPreviewPanel }))] })] })) : (_jsx(Splitter, { panels: panels, direction: "horizontal", localStorageKey: "task-board-main-splitter" })) }), selectedProjectId && (_jsx(CreateTaskDialog, { open: createDialogOpen, onOpenChange: setCreateDialogOpen, projectId: selectedProjectId, availableParentTasks: tasks, onCreated: () => {
2143
2138
  void refreshTasks(selectedProjectId);
2144
2139
  void refreshExecutionState(selectedProjectId);
2145
2140
  void refreshDependencies(selectedProjectId);
2146
2141
  } })), _jsx(CreateProjectDialog, { open: createProjectOpen, onOpenChange: setCreateProjectOpen, projects: projects, onCreated: async ({ projectId: newProjectId, openInWizardMode }) => {
2147
2142
  if (openInWizardMode) {
2148
- setIsWizardMode(true);
2143
+ setActiveTab(getTaskBoardViewTabIndex("overview"));
2149
2144
  setWizardForceOverview(false);
2150
2145
  }
2151
2146
  if (newProjectId)
2152
2147
  handleSelectProject(newProjectId);
2153
2148
  await refreshProjects();
2154
- } }), _jsx(ProjectSettingsDialog, { open: !!settingsProjectId, onOpenChange: (open) => {
2155
- if (!open)
2156
- setSettingsProjectId(null);
2157
- }, projectId: settingsProjectId, selectedProject: settingsProject, projects: projects, onChanged: async () => {
2158
- await refreshProjects();
2159
- await refreshVisibleTaskData();
2160
2149
  } })] }));
2161
2150
  }
2162
2151
  //# sourceMappingURL=TaskBoardWorkspace.js.map