@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
@@ -1,4 +1,4 @@
1
- import type { ProjectStatus, ProjectWithPermission } from "../types";
1
+ import type { ProjectAttentionSummary, ProjectWithPermission } from "../types";
2
2
  export type SubprojectTaskCounts = {
3
3
  total: number;
4
4
  todo: number;
@@ -11,37 +11,27 @@ export declare function TaskStateProgressBar(props: {
11
11
  counts: SubprojectTaskCounts;
12
12
  compact?: boolean;
13
13
  }): import("react/jsx-runtime").JSX.Element;
14
- export declare function CostProgressRing(props: {
15
- used: number;
16
- limit: number;
17
- size?: number;
18
- strokeWidth?: number;
19
- }): import("react/jsx-runtime").JSX.Element;
20
- export declare function TaskStateProgressRing(props: {
21
- counts: SubprojectTaskCounts;
22
- size?: number;
23
- strokeWidth?: number;
24
- }): import("react/jsx-runtime").JSX.Element;
25
14
  export declare function ProjectDashboard(props: {
26
15
  projectId: string;
27
16
  selectedProjectTitle: string;
28
17
  selectedProjectDescription?: string;
29
- selectedProjectStatus?: ProjectStatus;
30
18
  selectedProjectCostUsed?: number;
31
19
  selectedProjectCostLimit?: number | null;
32
- selectedProjectSourceTemplateId?: string | null;
33
- selectedProjectSourceTemplateName?: string | null;
34
- canOpenSourceTemplate?: boolean;
35
- onOpenSourceTemplate?: (templateId: string) => void;
36
- canEditProjectStatus?: boolean;
37
- savingProjectStatus?: boolean;
38
- onStatusChange?: (status: ProjectStatus) => void | Promise<void>;
39
20
  selectedProjectTaskCounts: SubprojectTaskCounts;
40
21
  subprojects: ProjectWithPermission[];
41
22
  taskCountsByProjectId: Record<string, SubprojectTaskCounts>;
42
- loading: boolean;
43
23
  parentProjectId?: string | null;
44
24
  parentProjectTitle?: string | null;
45
25
  onSelectProject?: (projectId: string) => void;
46
- canEditProperties?: boolean;
26
+ canCreateTask?: boolean;
27
+ onCreateTask?: () => void;
28
+ showCreateTaskButton?: boolean;
29
+ }): import("react/jsx-runtime").JSX.Element;
30
+ export declare function ProjectKpisPanel(props: {
31
+ selectedProjectCostUsed?: number;
32
+ selectedProjectCostLimit?: number | null;
33
+ selectedProjectTaskCounts: SubprojectTaskCounts;
34
+ selectedProjectAttention?: ProjectAttentionSummary | null;
35
+ subprojects: ProjectWithPermission[];
36
+ taskCountsByProjectId: Record<string, SubprojectTaskCounts>;
47
37
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,9 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useRef, useState } from "react";
3
- import { ChevronDown, Folder, GitBranch } from "lucide-react";
4
- import { Select } from "../../components/ui/select";
5
- import { Tooltip, TooltipContent, TooltipTrigger, } from "../../components/ui/tooltip";
6
- import { ProjectPropertiesPanel } from "./ProjectPropertiesPanel";
2
+ import { AlertTriangle, CheckCircle2, ChevronLeft, CircleDollarSign, ClipboardList, FolderTree, Plus, Timer, } from "lucide-react";
3
+ import { Button } from "../../components/ui/button";
7
4
  const EMPTY_COUNTS = {
8
5
  total: 0,
9
6
  todo: 0,
@@ -16,40 +13,116 @@ const DEFAULT_COST_LIMIT = 25;
16
13
  const STATE_STOPS = [
17
14
  {
18
15
  key: "todo",
19
- label: "Todo",
16
+ label: "To do",
20
17
  segmentClassName: "bg-neutral-grey-10",
21
- ringColor: "var(--color-neutral-grey-10)",
22
18
  swatchClassName: "bg-neutral-grey-10",
23
19
  },
24
20
  {
25
21
  key: "waiting",
26
22
  label: "Waiting",
27
23
  segmentClassName: "bg-feedback-orange",
28
- ringColor: "var(--color-feedback-orange-light)",
29
24
  swatchClassName: "bg-feedback-orange",
30
25
  },
31
26
  {
32
27
  key: "inProgress",
33
28
  label: "In progress",
34
29
  segmentClassName: "bg-feedback-blue",
35
- ringColor: "var(--color-component-default)",
36
30
  swatchClassName: "bg-feedback-blue",
37
31
  },
38
32
  {
39
33
  key: "review",
40
34
  label: "Review",
41
35
  segmentClassName: "bg-highlight-100",
42
- ringColor: "var(--color-component-layout)",
43
36
  swatchClassName: "bg-highlight-100",
44
37
  },
45
38
  {
46
39
  key: "done",
47
40
  label: "Done",
48
41
  segmentClassName: "bg-feedback-green",
49
- ringColor: "var(--color-feedback-green)",
50
42
  swatchClassName: "bg-feedback-green",
51
43
  },
52
44
  ];
45
+ const ATTENTION_STOPS = [
46
+ {
47
+ key: "blocked",
48
+ label: "Blocked",
49
+ swatchClassName: "bg-feedback-orange",
50
+ },
51
+ {
52
+ key: "approval",
53
+ label: "Approval",
54
+ swatchClassName: "bg-highlight-100",
55
+ },
56
+ {
57
+ key: "input",
58
+ label: "Input",
59
+ swatchClassName: "bg-feedback-blue",
60
+ },
61
+ {
62
+ key: "failed",
63
+ label: "Failed",
64
+ swatchClassName: "bg-feedback-red",
65
+ },
66
+ {
67
+ key: "budget",
68
+ label: "Budget",
69
+ swatchClassName: "bg-feedback-orange-light",
70
+ },
71
+ {
72
+ key: "capacity",
73
+ label: "Capacity",
74
+ swatchClassName: "bg-neutral-grey-50",
75
+ },
76
+ ];
77
+ function aggregateTaskCounts(selectedProjectTaskCounts, subprojects, taskCountsByProjectId) {
78
+ if (subprojects.length === 0)
79
+ return selectedProjectTaskCounts;
80
+ return subprojects.reduce((acc, subproject) => {
81
+ const counts = taskCountsByProjectId[subproject.project.projectId] || EMPTY_COUNTS;
82
+ return {
83
+ total: acc.total + counts.total,
84
+ todo: acc.todo + counts.todo,
85
+ waiting: acc.waiting + counts.waiting,
86
+ inProgress: acc.inProgress + counts.inProgress,
87
+ review: acc.review + counts.review,
88
+ done: acc.done + counts.done,
89
+ };
90
+ }, { ...selectedProjectTaskCounts });
91
+ }
92
+ function aggregateAttention(selectedProjectAttention, subprojects) {
93
+ return subprojects.reduce((acc, subproject) => {
94
+ const attention = subproject.overview?.attention;
95
+ if (!attention)
96
+ return acc;
97
+ return {
98
+ total: acc.total + attention.total,
99
+ blocked: acc.blocked + attention.blocked,
100
+ approval: acc.approval + attention.approval,
101
+ input: acc.input + attention.input,
102
+ failed: acc.failed + attention.failed,
103
+ budget: acc.budget + attention.budget,
104
+ capacity: (acc.capacity ?? 0) + (attention.capacity ?? 0),
105
+ };
106
+ }, {
107
+ total: selectedProjectAttention?.total ?? 0,
108
+ blocked: selectedProjectAttention?.blocked ?? 0,
109
+ approval: selectedProjectAttention?.approval ?? 0,
110
+ input: selectedProjectAttention?.input ?? 0,
111
+ failed: selectedProjectAttention?.failed ?? 0,
112
+ budget: selectedProjectAttention?.budget ?? 0,
113
+ capacity: selectedProjectAttention?.capacity ?? 0,
114
+ });
115
+ }
116
+ function formatCurrency(value) {
117
+ return `$${value.toFixed(2)}`;
118
+ }
119
+ function formatPercent(value) {
120
+ return `${Math.round(value)}%`;
121
+ }
122
+ function KpiTile(props) {
123
+ const { icon, label, value, detail, testId } = props;
124
+ return (_jsxs("div", { className: "border-border-default flex min-h-[112px] flex-col justify-between rounded-md border bg-white p-4", "data-testid": testId, children: [_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsx("div", { className: "text-neutral-grey-50 text-[10px] leading-none font-bold tracking-wider uppercase", children: label }), _jsx("div", { className: "bg-neutral-grey-5 text-neutral-grey-50 flex size-8 items-center justify-center rounded-md", children: icon })] }), _jsxs("div", { children: [_jsx("div", { className: "text-neutral-grey-100 text-2xl leading-tight font-medium", children: value }), _jsx("div", { className: "text-neutral-grey-50 mt-1 text-xs", children: detail })] })] }));
125
+ }
53
126
  export function TaskStateProgressBar(props) {
54
127
  const { counts, compact = false } = props;
55
128
  const total = counts.total;
@@ -59,110 +132,49 @@ export function TaskStateProgressBar(props) {
59
132
  return (_jsx("div", { className: stop.segmentClassName, style: { width: `${widthPct}%` }, title: `${stop.label}: ${value}` }, stop.key));
60
133
  }) })) : null }));
61
134
  }
62
- export function CostProgressRing(props) {
63
- const { used, limit, size = 44, strokeWidth = 4 } = props;
64
- const radius = (size - strokeWidth) / 2;
65
- const circumference = 2 * Math.PI * radius;
66
- const pct = limit > 0 ? Math.max(0, Math.min((used / limit) * 100, 100)) : 0;
67
- const dashOffset = circumference - (pct / 100) * circumference;
68
- const stroke = pct >= 100
69
- ? "var(--color-feedback-red)"
70
- : pct >= 80
71
- ? "var(--color-feedback-orange)"
72
- : "var(--color-feedback-green)";
73
- const center = size / 2;
74
- const formatAmount = (value) => value >= 1000
75
- ? `${(value / 1000).toFixed(value >= 10000 ? 0 : 1)}k`
76
- : value.toFixed(value >= 100 ? 0 : 0);
77
- return (_jsxs("div", { className: "relative", style: { width: size, height: size }, children: [_jsxs("svg", { width: size, height: size, viewBox: `0 0 ${size} ${size}`, className: "-rotate-90", "aria-hidden": true, children: [_jsx("circle", { cx: center, cy: center, r: radius, stroke: "var(--color-neutral-grey-10)", strokeWidth: strokeWidth, fill: "none" }), _jsx("circle", { cx: center, cy: center, r: radius, stroke: stroke, strokeWidth: strokeWidth, fill: "none", strokeLinecap: "round", strokeDasharray: circumference, strokeDashoffset: dashOffset, style: { transition: "stroke-dashoffset 200ms ease-out" } })] }), _jsxs("div", { className: "text-neutral-grey-100 pointer-events-none absolute inset-0 flex flex-col items-center justify-center text-[10px] leading-none font-semibold", children: [_jsxs("span", { children: ["$", formatAmount(used)] }), _jsxs("span", { className: "text-neutral-grey-50 text-[8px] font-normal", children: ["of $", formatAmount(limit)] })] })] }));
78
- }
79
- export function TaskStateProgressRing(props) {
80
- const { counts, size = 44, strokeWidth = 4 } = props;
81
- const radius = (size - strokeWidth) / 2;
82
- const circumference = 2 * Math.PI * radius;
83
- const center = size / 2;
84
- const total = counts.total;
85
- let cumulative = 0;
86
- const segments = total
87
- ? STATE_STOPS.map((stop) => {
88
- const value = counts[stop.key];
89
- if (value <= 0)
90
- return null;
91
- const fraction = value / total;
92
- const dashLength = fraction * circumference;
93
- const dashGap = circumference - dashLength;
94
- const dashOffset = -cumulative * circumference;
95
- cumulative += fraction;
96
- return (_jsx("circle", { cx: center, cy: center, r: radius, stroke: stop.ringColor, strokeWidth: strokeWidth, fill: "none", strokeDasharray: `${dashLength} ${dashGap}`, strokeDashoffset: dashOffset }, stop.key));
97
- })
98
- : [];
99
- return (_jsxs("div", { className: "relative", style: { width: size, height: size }, children: [_jsxs("svg", { width: size, height: size, viewBox: `0 0 ${size} ${size}`, className: "-rotate-90", "aria-hidden": true, children: [_jsx("circle", { cx: center, cy: center, r: radius, stroke: "var(--color-neutral-grey-10)", strokeWidth: strokeWidth, fill: "none" }), segments] }), _jsxs("div", { className: "text-neutral-grey-100 pointer-events-none absolute inset-0 flex flex-col items-center justify-center text-[11px] leading-none font-semibold", children: [_jsx("span", { children: total }), _jsx("span", { className: "text-neutral-grey-50 text-[8px] font-normal", children: total === 1 ? "task" : "tasks" })] })] }));
100
- }
101
- function SourceTemplateBadge(props) {
102
- const { templateId, templateName, canOpenTemplate, onOpenTemplate } = props;
103
- // Hide entirely when the project was not created from a template, or when
104
- // the source template was deleted (backend leaves the resolved name null).
105
- if (!templateId || !templateName) {
106
- return null;
107
- }
108
- const tooltipText = `Created from project template "${templateName}"`;
109
- const inner = (_jsxs("span", { className: "inline-flex max-w-56 items-center gap-1 truncate", children: [_jsx(GitBranch, { className: "h-3 w-3 shrink-0", "aria-hidden": true }), _jsx("span", { className: "truncate", children: templateName })] }));
110
- return (_jsxs("div", { className: "flex shrink-0 flex-col gap-0.5", children: [_jsx("span", { className: "text-neutral-grey-50 text-[10px] font-semibold tracking-wider", children: "Created from template" }), _jsxs(Tooltip, { delayDuration: 250, children: [_jsx(TooltipTrigger, { asChild: true, children: canOpenTemplate ? (_jsx("button", { type: "button", className: "rounded-badge badge-pad text-2xs bg-neutral-grey-5 text-neutral-grey-50 hover:bg-neutral-grey-10 hover:text-neutral-grey-100 flex h-7 shrink-0 items-center font-medium", onClick: () => onOpenTemplate(templateId), "data-testid": "taskboard-project-source-template", children: inner })) : (_jsx("span", { className: "rounded-badge badge-pad text-2xs bg-neutral-grey-5 text-neutral-grey-50 flex h-7 shrink-0 items-center font-medium", "data-testid": "taskboard-project-source-template", children: inner })) }), _jsx(TooltipContent, { side: "bottom", children: canOpenTemplate
111
- ? `${tooltipText}. Click to open the template editor.`
112
- : tooltipText })] })] }));
113
- }
114
135
  export function ProjectDashboard(props) {
115
- const { selectedProjectStatus, selectedProjectCostUsed = 0, selectedProjectCostLimit = null, selectedProjectSourceTemplateId, selectedProjectSourceTemplateName, canOpenSourceTemplate = false, onOpenSourceTemplate, canEditProjectStatus = false, savingProjectStatus = false, onStatusChange, selectedProjectTaskCounts, subprojects, taskCountsByProjectId, parentProjectId, parentProjectTitle, onSelectProject, projectId, canEditProperties = false, } = props;
116
- const hasSubprojects = subprojects.length > 0;
117
- const [showSubprojects, setShowSubprojects] = useState(hasSubprojects);
118
- const previousSubprojectCountRef = useRef(subprojects.length);
119
- useEffect(() => {
120
- const previousCount = previousSubprojectCountRef.current;
121
- const nextCount = subprojects.length;
122
- if (nextCount > previousCount) {
123
- setShowSubprojects(true);
124
- }
125
- previousSubprojectCountRef.current = nextCount;
126
- }, [subprojects.length]);
136
+ const { selectedProjectTitle, selectedProjectDescription, parentProjectId, parentProjectTitle, onSelectProject, canCreateTask = false, onCreateTask, showCreateTaskButton = true, } = props;
137
+ return (_jsxs("div", { "data-testid": "taskboard-project-dashboard", children: [parentProjectId && parentProjectTitle && onSelectProject && (_jsx("div", { className: "mb-3", children: _jsxs("button", { type: "button", className: "text-neutral-grey-50 hover:text-neutral-grey-100 inline-flex items-center gap-1.5 text-sm", onClick: () => onSelectProject(parentProjectId), "data-testid": "taskboard-parent-project-button", children: [_jsx(ChevronLeft, { className: "h-4 w-4", strokeWidth: 1.5 }), _jsxs("span", { children: ["Back to ", parentProjectTitle] })] }) })), _jsxs("div", { className: "flex flex-col gap-5 lg:flex-row lg:items-start lg:justify-between", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h1", { className: "text-neutral-grey-100 truncate text-3xl leading-tight font-medium tracking-normal", children: selectedProjectTitle }), selectedProjectDescription?.trim() ? (_jsx("p", { className: "text-neutral-grey-50 mt-2 max-w-3xl text-sm leading-6", children: selectedProjectDescription.trim() })) : null] }), showCreateTaskButton ? (_jsx("div", { className: "flex shrink-0 flex-wrap items-center gap-3", children: _jsxs(Button, { onClick: () => onCreateTask?.(), disabled: !canCreateTask || !onCreateTask, "data-testid": "taskboard-create-task-button", children: [_jsx("span", { children: "Create new task" }), _jsx(Plus, { className: "h-4 w-4", strokeWidth: 1.5 })] }) })) : null] })] }));
138
+ }
139
+ export function ProjectKpisPanel(props) {
140
+ const { selectedProjectCostUsed = 0, selectedProjectCostLimit = null, selectedProjectTaskCounts, selectedProjectAttention, subprojects, taskCountsByProjectId, } = props;
127
141
  const normalizedCostUsed = Number.isFinite(selectedProjectCostUsed)
128
142
  ? Math.max(0, selectedProjectCostUsed)
129
143
  : 0;
130
144
  const effectiveCostLimit = typeof selectedProjectCostLimit === "number" && selectedProjectCostLimit > 0
131
145
  ? selectedProjectCostLimit
132
146
  : DEFAULT_COST_LIMIT;
133
- const statusValue = selectedProjectStatus ?? "Active";
134
- const aggregatedCounts = hasSubprojects
135
- ? subprojects.reduce((acc, subproject) => {
136
- const counts = taskCountsByProjectId[subproject.project.projectId] || EMPTY_COUNTS;
137
- return {
138
- total: acc.total + counts.total,
139
- todo: acc.todo + counts.todo,
140
- waiting: acc.waiting + counts.waiting,
141
- inProgress: acc.inProgress + counts.inProgress,
142
- review: acc.review + counts.review,
143
- done: acc.done + counts.done,
144
- };
145
- }, {
146
- total: selectedProjectTaskCounts.total,
147
- todo: selectedProjectTaskCounts.todo,
148
- waiting: selectedProjectTaskCounts.waiting,
149
- inProgress: selectedProjectTaskCounts.inProgress,
150
- review: selectedProjectTaskCounts.review,
151
- done: selectedProjectTaskCounts.done,
152
- })
153
- : selectedProjectTaskCounts;
154
- const subprojectRows = hasSubprojects && showSubprojects
155
- ? subprojects.map((subproject) => ({
156
- projectId: subproject.project.projectId,
157
- title: subproject.project.title,
158
- counts: taskCountsByProjectId[subproject.project.projectId] || EMPTY_COUNTS,
159
- }))
160
- : [];
161
- return (_jsxs("div", { "data-testid": "taskboard-project-dashboard", children: [parentProjectId && parentProjectTitle && onSelectProject && (_jsx("div", { className: "mb-2", children: _jsxs("button", { type: "button", className: "text-neutral-grey-50 hover:text-neutral-grey-100 text-xs", onClick: () => onSelectProject(parentProjectId), "data-testid": "taskboard-parent-project-button", children: ["\u2190 Back to ", parentProjectTitle] }) })), _jsxs("div", { className: "flex items-center gap-3 px-3 py-2", "data-testid": "taskboard-project-info-row", children: [_jsxs("div", { className: "flex shrink-0 flex-col gap-0.5", children: [_jsx("span", { className: "text-neutral-grey-50 text-[10px] font-semibold tracking-wider", id: "taskboard-project-status-label", children: "Project Status" }), _jsx(Select, { "data-testid": "taskboard-project-status-select", "aria-labelledby": "taskboard-project-status-label", value: statusValue, onValueChange: (value) => onStatusChange?.(value), disabled: !canEditProjectStatus || savingProjectStatus || !onStatusChange, options: [
162
- { value: "Planning", label: "Planning" },
163
- { value: "Active", label: "Active" },
164
- { value: "Finished", label: "Finished" },
165
- { value: "Archived", label: "Archived" },
166
- ], className: "h-7 w-28 text-xs" })] }), _jsx(SourceTemplateBadge, { templateId: selectedProjectSourceTemplateId ?? null, templateName: selectedProjectSourceTemplateName ?? null, canOpenTemplate: canOpenSourceTemplate && !!onOpenSourceTemplate, onOpenTemplate: (id) => onOpenSourceTemplate?.(id) }), _jsxs("div", { className: "flex flex-1 items-center justify-end gap-2", children: [_jsxs(Tooltip, { delayDuration: 250, children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("div", { "data-testid": "taskboard-project-cost-ring", children: _jsx(CostProgressRing, { used: normalizedCostUsed, limit: effectiveCostLimit }) }) }), _jsxs(TooltipContent, { side: "bottom", children: ["Cumulative cost: $", normalizedCostUsed.toFixed(2), " / $", effectiveCostLimit.toFixed(2)] })] }), _jsxs(Tooltip, { delayDuration: 250, children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("div", { "data-testid": "taskboard-project-progress-ring", children: _jsx(TaskStateProgressRing, { counts: aggregatedCounts }) }) }), _jsx(TooltipContent, { side: "bottom", className: "max-w-xs text-left", children: aggregatedCounts.total > 0 ? (_jsx("div", { className: "space-y-1", children: STATE_STOPS.map((stop) => (_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsxs("span", { className: "flex items-center gap-1.5", children: [_jsx("span", { className: `inline-block h-2 w-2 rounded-full ${stop.swatchClassName}` }), stop.label] }), _jsx("span", { children: aggregatedCounts[stop.key] })] }, stop.key))) })) : ("No tasks yet") })] })] })] }), hasSubprojects && (_jsxs("div", { className: "mt-3", children: [_jsxs("button", { type: "button", className: "text-neutral-grey-50 hover:text-neutral-grey-100 mb-1.5 flex items-center gap-1 text-[11px] font-semibold tracking-wider", onClick: () => setShowSubprojects((prev) => !prev), "aria-label": showSubprojects ? "Hide subprojects" : "Show subprojects", "data-testid": "taskboard-subproject-toggle-label", children: [_jsx(ChevronDown, { className: `h-3 w-3 transition-transform ${showSubprojects ? "rotate-0" : "-rotate-90"}` }), "Subprojects (", subprojects.length, ")"] }), showSubprojects && (_jsx("div", { className: "space-y-2", "data-testid": "taskboard-project-progress-rows", children: subprojectRows.map((row) => (_jsxs("div", { className: "space-y-1", "data-testid": `taskboard-project-progress-row-${row.projectId}`, children: [_jsxs("div", { className: "flex items-center justify-between gap-4 pl-4 text-xs", children: [onSelectProject ? (_jsxs("button", { type: "button", className: "text-neutral-grey-100 hover:text-neutral-grey-100 flex min-w-0 items-center gap-1.5 truncate text-left font-medium", onClick: () => onSelectProject(row.projectId), "data-testid": `taskboard-subproject-link-${row.projectId}`, children: [_jsx(Folder, { className: "text-neutral-grey-50 h-3.5 w-3.5 shrink-0", "aria-hidden": true }), _jsx("span", { className: "truncate", children: row.title })] })) : (_jsxs("div", { className: "text-neutral-grey-100 flex min-w-0 items-center gap-1.5 truncate font-medium", children: [_jsx(Folder, { className: "text-neutral-grey-50 h-3.5 w-3.5 shrink-0", "aria-hidden": true }), _jsx("span", { className: "truncate", children: row.title })] })), _jsxs("div", { className: "text-neutral-grey-50 shrink-0 text-[11px]", children: [row.counts.total, " tasks"] })] }), _jsx("div", { className: "pr-6 pl-4", children: _jsx(TaskStateProgressBar, { counts: row.counts, compact: true }) })] }, row.projectId))) }))] })), _jsx(ProjectPropertiesPanel, { projectId: projectId, canEdit: canEditProperties, className: "mt-4" })] }));
147
+ const budgetPercent = effectiveCostLimit > 0
148
+ ? Math.max(0, (normalizedCostUsed / effectiveCostLimit) * 100)
149
+ : 0;
150
+ const remainingBudget = effectiveCostLimit - normalizedCostUsed;
151
+ const aggregatedCounts = aggregateTaskCounts(selectedProjectTaskCounts, subprojects, taskCountsByProjectId);
152
+ const completionPercent = aggregatedCounts.total > 0
153
+ ? (aggregatedCounts.done / aggregatedCounts.total) * 100
154
+ : 0;
155
+ const openTasks = Math.max(0, aggregatedCounts.total - aggregatedCounts.done);
156
+ const attention = aggregateAttention(selectedProjectAttention, subprojects);
157
+ const attentionTotal = attention.total ||
158
+ attention.blocked +
159
+ attention.approval +
160
+ attention.input +
161
+ attention.failed +
162
+ attention.budget +
163
+ (attention.capacity ?? 0);
164
+ const budgetDetail = remainingBudget >= 0
165
+ ? `${formatCurrency(remainingBudget)} remaining of ${formatCurrency(effectiveCostLimit)}`
166
+ : `${formatCurrency(Math.abs(remainingBudget))} over ${formatCurrency(effectiveCostLimit)}`;
167
+ return (_jsxs("div", { className: "min-h-0 space-y-4", "data-testid": "taskboard-project-kpis-panel", children: [_jsxs("div", { className: "grid gap-3 md:grid-cols-2 xl:grid-cols-4", children: [_jsx(KpiTile, { icon: _jsx(CircleDollarSign, { className: "size-4", strokeWidth: 1.5 }), label: "Budget used", value: formatCurrency(normalizedCostUsed), detail: `${formatPercent(budgetPercent)} of budget. ${budgetDetail}`, testId: "taskboard-kpi-budget" }), _jsx(KpiTile, { icon: _jsx(CheckCircle2, { className: "size-4", strokeWidth: 1.5 }), label: "Completion", value: formatPercent(completionPercent), detail: `${aggregatedCounts.done} of ${aggregatedCounts.total} tasks done`, testId: "taskboard-kpi-completion" }), _jsx(KpiTile, { icon: _jsx(Timer, { className: "size-4", strokeWidth: 1.5 }), label: "Open tasks", value: openTasks, detail: `${aggregatedCounts.inProgress} in progress, ${aggregatedCounts.waiting} waiting`, testId: "taskboard-kpi-open-tasks" }), _jsx(KpiTile, { icon: _jsx(FolderTree, { className: "size-4", strokeWidth: 1.5 }), label: "Subprojects", value: subprojects.length, detail: subprojects.length === 1
168
+ ? "1 direct subproject"
169
+ : `${subprojects.length} direct subprojects`, testId: "taskboard-kpi-subprojects" })] }), _jsxs("div", { className: "grid gap-4 xl:grid-cols-[minmax(0,1.35fr)_minmax(280px,0.65fr)]", children: [_jsxs("section", { className: "border-border-default rounded-md border bg-white p-4", children: [_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "bg-neutral-grey-5 text-neutral-grey-50 flex size-8 items-center justify-center rounded-md", children: _jsx(ClipboardList, { className: "size-4", strokeWidth: 1.5 }) }), _jsxs("div", { children: [_jsx("h2", { className: "text-neutral-grey-100 text-base font-medium", children: "Task status" }), _jsxs("p", { className: "text-neutral-grey-50 text-xs", children: [aggregatedCounts.total, " total tasks including direct subprojects"] })] })] }), _jsx("div", { className: "text-neutral-grey-100 text-xl font-medium", children: formatPercent(completionPercent) })] }), _jsx("div", { className: "mt-4", children: _jsx(TaskStateProgressBar, { counts: aggregatedCounts }) }), _jsx("div", { className: "mt-4 grid gap-2 md:grid-cols-2", children: STATE_STOPS.map((stop) => {
170
+ const value = aggregatedCounts[stop.key];
171
+ const percent = aggregatedCounts.total > 0
172
+ ? (value / aggregatedCounts.total) * 100
173
+ : 0;
174
+ return (_jsxs("div", { className: "bg-neutral-grey-5/60 flex items-center justify-between gap-3 rounded-md px-3 py-2 text-sm", children: [_jsxs("span", { className: "flex min-w-0 items-center gap-2", children: [_jsx("span", { className: `inline-block size-2 rounded-full ${stop.swatchClassName}` }), _jsx("span", { className: "text-neutral-grey-100 truncate", children: stop.label })] }), _jsxs("span", { className: "text-neutral-grey-50 shrink-0 text-xs tabular-nums", children: [value, " / ", formatPercent(percent)] })] }, stop.key));
175
+ }) })] }), _jsxs("section", { className: "border-border-default rounded-md border bg-white p-4", children: [_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "bg-neutral-grey-5 text-neutral-grey-50 flex size-8 items-center justify-center rounded-md", children: _jsx(AlertTriangle, { className: "size-4", strokeWidth: 1.5 }) }), _jsxs("div", { children: [_jsx("h2", { className: "text-neutral-grey-100 text-base font-medium", children: "Attention" }), _jsx("p", { className: "text-neutral-grey-50 text-xs", children: "Work that needs a human or system unblock" })] })] }), _jsx("div", { className: "text-neutral-grey-100 text-xl font-medium", children: attentionTotal })] }), _jsx("div", { className: "mt-4 space-y-2", children: ATTENTION_STOPS.map((stop) => {
176
+ const value = attention[stop.key] ?? 0;
177
+ return (_jsxs("div", { className: "bg-neutral-grey-5/60 flex items-center justify-between gap-3 rounded-md px-3 py-2 text-sm", children: [_jsxs("span", { className: "flex min-w-0 items-center gap-2", children: [_jsx("span", { className: `inline-block size-2 rounded-full ${stop.swatchClassName}` }), _jsx("span", { className: "text-neutral-grey-100 truncate", children: stop.label })] }), _jsx("span", { className: "text-neutral-grey-50 shrink-0 text-xs tabular-nums", children: value })] }, stop.key));
178
+ }) })] })] })] }));
167
179
  }
168
180
  //# sourceMappingURL=ProjectDashboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectDashboard.js","sourceRoot":"","sources":["../../../src/task-board/components/ProjectDashboard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAYlE,MAAM,YAAY,GAAyB;IACzC,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,CAAC;IACb,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;CACR,CAAC;AACF,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B,MAAM,WAAW,GAMZ;IACH;QACE,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,MAAM;QACb,gBAAgB,EAAE,oBAAoB;QACtC,SAAS,EAAE,8BAA8B;QACzC,eAAe,EAAE,oBAAoB;KACtC;IACD;QACE,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,SAAS;QAChB,gBAAgB,EAAE,oBAAoB;QACtC,SAAS,EAAE,oCAAoC;QAC/C,eAAe,EAAE,oBAAoB;KACtC;IACD;QACE,GAAG,EAAE,YAAY;QACjB,KAAK,EAAE,aAAa;QACpB,gBAAgB,EAAE,kBAAkB;QACpC,SAAS,EAAE,gCAAgC;QAC3C,eAAe,EAAE,kBAAkB;KACpC;IACD;QACE,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,QAAQ;QACf,gBAAgB,EAAE,kBAAkB;QACpC,SAAS,EAAE,+BAA+B;QAC1C,eAAe,EAAE,kBAAkB;KACpC;IACD;QACE,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,MAAM;QACb,gBAAgB,EAAE,mBAAmB;QACrC,SAAS,EAAE,6BAA6B;QACxC,eAAe,EAAE,mBAAmB;KACrC;CACF,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,KAGpC;IACC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAE3B,OAAO,CACL,cACE,SAAS,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,wDAAwD,YAE9F,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CACX,cAAK,SAAS,EAAC,oBAAoB,YAChC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACxB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC/B,MAAM,QAAQ,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;gBACvC,OAAO,CACL,cAEE,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAChC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,QAAQ,GAAG,EAAE,EAChC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,IAH3B,IAAI,CAAC,GAAG,CAIb,CACH,CAAC;YACJ,CAAC,CAAC,GACE,CACP,CAAC,CAAC,CAAC,IAAI,GACJ,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAKhC;IACC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC;IAC1D,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;IAC3C,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,aAAa,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,aAAa,CAAC;IAC/D,MAAM,MAAM,GACV,GAAG,IAAI,GAAG;QACR,CAAC,CAAC,2BAA2B;QAC7B,CAAC,CAAC,GAAG,IAAI,EAAE;YACT,CAAC,CAAC,8BAA8B;YAChC,CAAC,CAAC,6BAA6B,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;IACxB,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE,CACrC,KAAK,IAAI,IAAI;QACX,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACtD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1C,OAAO,CACL,eAAK,SAAS,EAAC,UAAU,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAC5D,eACE,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,OAAO,IAAI,IAAI,IAAI,EAAE,EAC9B,SAAS,EAAC,YAAY,kCAGtB,iBACE,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,CAAC,EAAE,MAAM,EACT,MAAM,EAAC,8BAA8B,EACrC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAC,MAAM,GACX,EACF,iBACE,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,IAAI,EAAC,MAAM,EACX,aAAa,EAAC,OAAO,EACrB,eAAe,EAAE,aAAa,EAC9B,gBAAgB,EAAE,UAAU,EAC5B,KAAK,EAAE,EAAE,UAAU,EAAE,kCAAkC,EAAE,GACzD,IACE,EACN,eAAK,SAAS,EAAC,6IAA6I,aAC1J,gCAAQ,YAAY,CAAC,IAAI,CAAC,IAAQ,EAClC,gBAAM,SAAS,EAAC,6CAA6C,qBACtD,YAAY,CAAC,KAAK,CAAC,IACnB,IACH,IACF,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAIrC;IACC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC;IACrD,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAE3B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,MAAM,QAAQ,GAAG,KAAK;QACpB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACvB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC5B,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;YAC/B,MAAM,UAAU,GAAG,QAAQ,GAAG,aAAa,CAAC;YAC5C,MAAM,OAAO,GAAG,aAAa,GAAG,UAAU,CAAC;YAC3C,MAAM,UAAU,GAAG,CAAC,UAAU,GAAG,aAAa,CAAC;YAC/C,UAAU,IAAI,QAAQ,CAAC;YACvB,OAAO,CACL,iBAEE,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,IAAI,CAAC,SAAS,EACtB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAC,MAAM,EACX,eAAe,EAAE,GAAG,UAAU,IAAI,OAAO,EAAE,EAC3C,gBAAgB,EAAE,UAAU,IARvB,IAAI,CAAC,GAAG,CASb,CACH,CAAC;QACJ,CAAC,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,CACL,eAAK,SAAS,EAAC,UAAU,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAC5D,eACE,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,OAAO,IAAI,IAAI,IAAI,EAAE,EAC9B,SAAS,EAAC,YAAY,kCAGtB,iBACE,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,CAAC,EAAE,MAAM,EACT,MAAM,EAAC,8BAA8B,EACrC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAC,MAAM,GACX,EACD,QAAQ,IACL,EACN,eAAK,SAAS,EAAC,6IAA6I,aAC1J,yBAAO,KAAK,GAAQ,EACpB,eAAM,SAAS,EAAC,6CAA6C,YAC1D,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAC1B,IACH,IACF,CACP,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAK5B;IACC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAE5E,0EAA0E;IAC1E,2EAA2E;IAC3E,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,kCAAkC,YAAY,GAAG,CAAC;IACtE,MAAM,KAAK,GAAG,CACZ,gBAAM,SAAS,EAAC,kDAAkD,aAChE,KAAC,SAAS,IAAC,SAAS,EAAC,kBAAkB,wBAAe,EACtD,eAAM,SAAS,EAAC,UAAU,YAAE,YAAY,GAAQ,IAC3C,CACR,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,gCAAgC,aAC7C,eAAM,SAAS,EAAC,+DAA+D,sCAExE,EACP,MAAC,OAAO,IAAC,aAAa,EAAE,GAAG,aACzB,KAAC,cAAc,IAAC,OAAO,kBACpB,eAAe,CAAC,CAAC,CAAC,CACjB,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,yKAAyK,EACnL,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,iBAC7B,mCAAmC,YAE9C,KAAK,GACC,CACV,CAAC,CAAC,CAAC,CACF,eACE,SAAS,EAAC,oHAAoH,iBAClH,mCAAmC,YAE9C,KAAK,GACD,CACR,GACc,EACjB,KAAC,cAAc,IAAC,IAAI,EAAC,QAAQ,YAC1B,eAAe;4BACd,CAAC,CAAC,GAAG,WAAW,sCAAsC;4BACtD,CAAC,CAAC,WAAW,GACA,IACT,IACN,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAsBhC;IACC,MAAM,EACJ,qBAAqB,EACrB,uBAAuB,GAAG,CAAC,EAC3B,wBAAwB,GAAG,IAAI,EAC/B,+BAA+B,EAC/B,iCAAiC,EACjC,qBAAqB,GAAG,KAAK,EAC7B,oBAAoB,EACpB,oBAAoB,GAAG,KAAK,EAC5B,mBAAmB,GAAG,KAAK,EAC3B,cAAc,EACd,yBAAyB,EACzB,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,iBAAiB,GAAG,KAAK,GAC1B,GAAG,KAAK,CAAC;IACV,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9C,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvE,MAAM,0BAA0B,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,aAAa,GAAG,0BAA0B,CAAC,OAAO,CAAC;QACzD,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC;QAErC,IAAI,SAAS,GAAG,aAAa,EAAE,CAAC;YAC9B,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,0BAA0B,CAAC,OAAO,GAAG,SAAS,CAAC;IACjD,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IACzB,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACjE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;QACtC,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,kBAAkB,GACtB,OAAO,wBAAwB,KAAK,QAAQ,IAAI,wBAAwB,GAAG,CAAC;QAC1E,CAAC,CAAC,wBAAwB;QAC1B,CAAC,CAAC,kBAAkB,CAAC;IACzB,MAAM,WAAW,GAAkB,qBAAqB,IAAI,QAAQ,CAAC;IACrE,MAAM,gBAAgB,GAAyB,cAAc;QAC3D,CAAC,CAAC,WAAW,CAAC,MAAM,CAChB,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;YAClB,MAAM,MAAM,GACV,qBAAqB,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC;YACtE,OAAO;gBACL,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;gBAC/B,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;gBAC5B,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;gBACrC,UAAU,EAAE,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU;gBAC9C,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;gBAClC,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;aAC7B,CAAC;QACJ,CAAC,EACD;YACE,KAAK,EAAE,yBAAyB,CAAC,KAAK;YACtC,IAAI,EAAE,yBAAyB,CAAC,IAAI;YACpC,OAAO,EAAE,yBAAyB,CAAC,OAAO;YAC1C,UAAU,EAAE,yBAAyB,CAAC,UAAU;YAChD,MAAM,EAAE,yBAAyB,CAAC,MAAM;YACxC,IAAI,EAAE,yBAAyB,CAAC,IAAI;SACrC,CACF;QACH,CAAC,CAAC,yBAAyB,CAAC;IAE9B,MAAM,cAAc,GAClB,cAAc,IAAI,eAAe;QAC/B,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC/B,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS;YACvC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK;YAC/B,MAAM,EACJ,qBAAqB,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,YAAY;SACtE,CAAC,CAAC;QACL,CAAC,CAAC,EAAE,CAAC;IAET,OAAO,CACL,8BAAiB,6BAA6B,aAC3C,eAAe,IAAI,kBAAkB,IAAI,eAAe,IAAI,CAC3D,cAAK,SAAS,EAAC,MAAM,YACnB,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,0DAA0D,EACpE,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,eAAe,CAAC,iBACnC,iCAAiC,gCAE7B,kBAAkB,IAC3B,GACL,CACP,EAED,eACE,SAAS,EAAC,mCAAmC,iBACjC,4BAA4B,aAExC,eAAK,SAAS,EAAC,gCAAgC,aAC7C,eACE,SAAS,EAAC,+DAA+D,EACzE,EAAE,EAAC,gCAAgC,+BAG9B,EACP,KAAC,MAAM,mBACO,iCAAiC,qBAC7B,gCAAgC,EAChD,KAAK,EAAE,WAAW,EAClB,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC,KAAsB,CAAC,EAClE,QAAQ,EACN,CAAC,oBAAoB,IAAI,mBAAmB,IAAI,CAAC,cAAc,EAEjE,OAAO,EAAE;oCACP,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;oCACxC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;oCACpC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;oCACxC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;iCACzC,EACD,SAAS,EAAC,kBAAkB,GAC5B,IACE,EAEN,KAAC,mBAAmB,IAClB,UAAU,EAAE,+BAA+B,IAAI,IAAI,EACnD,YAAY,EAAE,iCAAiC,IAAI,IAAI,EACvD,eAAe,EAAE,qBAAqB,IAAI,CAAC,CAAC,oBAAoB,EAChE,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,oBAAoB,EAAE,CAAC,EAAE,CAAC,GAClD,EAEF,eAAK,SAAS,EAAC,4CAA4C,aACzD,MAAC,OAAO,IAAC,aAAa,EAAE,GAAG,aACzB,KAAC,cAAc,IAAC,OAAO,kBACrB,6BAAiB,6BAA6B,YAC5C,KAAC,gBAAgB,IACf,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,kBAAkB,GACzB,GACE,GACS,EACjB,MAAC,cAAc,IAAC,IAAI,EAAC,QAAQ,mCACR,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,UAC/C,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,IACf,IACT,EAEV,MAAC,OAAO,IAAC,aAAa,EAAE,GAAG,aACzB,KAAC,cAAc,IAAC,OAAO,kBACrB,6BAAiB,iCAAiC,YAChD,KAAC,qBAAqB,IAAC,MAAM,EAAE,gBAAgB,GAAI,GAC/C,GACS,EACjB,KAAC,cAAc,IAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,oBAAoB,YACzD,gBAAgB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAC5B,cAAK,SAAS,EAAC,WAAW,YACvB,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACzB,eAEE,SAAS,EAAC,yCAAyC,aAEnD,gBAAM,SAAS,EAAC,2BAA2B,aACzC,eACE,SAAS,EAAE,qCAAqC,IAAI,CAAC,eAAe,EAAE,GACtE,EACD,IAAI,CAAC,KAAK,IACN,EACP,yBAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAQ,KATpC,IAAI,CAAC,GAAG,CAUT,CACP,CAAC,GACE,CACP,CAAC,CAAC,CAAC,CACF,cAAc,CACf,GACc,IACT,IACN,IACF,EAEL,cAAc,IAAI,CACjB,eAAK,SAAS,EAAC,MAAM,aACnB,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,0HAA0H,EACpI,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,gBAEhD,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,iBAE/C,mCAAmC,aAE/C,KAAC,WAAW,IACV,SAAS,EAAE,gCAAgC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,EAAE,GACxF,mBACY,WAAW,CAAC,MAAM,SACzB,EAER,eAAe,IAAI,CAClB,cACE,SAAS,EAAC,WAAW,iBACT,iCAAiC,YAE5C,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAC3B,eAEE,SAAS,EAAC,WAAW,iBACR,kCAAkC,GAAG,CAAC,SAAS,EAAE,aAE9D,eAAK,SAAS,EAAC,sDAAsD,aAClE,eAAe,CAAC,CAAC,CAAC,CACjB,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,oHAAoH,EAC9H,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,iBAChC,6BAA6B,GAAG,CAAC,SAAS,EAAE,aAEzD,KAAC,MAAM,IACL,SAAS,EAAC,2CAA2C,wBAErD,EACF,eAAM,SAAS,EAAC,UAAU,YAAE,GAAG,CAAC,KAAK,GAAQ,IACtC,CACV,CAAC,CAAC,CAAC,CACF,eAAK,SAAS,EAAC,8EAA8E,aAC3F,KAAC,MAAM,IACL,SAAS,EAAC,2CAA2C,wBAErD,EACF,eAAM,SAAS,EAAC,UAAU,YAAE,GAAG,CAAC,KAAK,GAAQ,IACzC,CACP,EACD,eAAK,SAAS,EAAC,2CAA2C,aACvD,GAAG,CAAC,MAAM,CAAC,KAAK,cACb,IACF,EACN,cAAK,SAAS,EAAC,WAAW,YACxB,KAAC,oBAAoB,IAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,SAAG,GAChD,KAjCD,GAAG,CAAC,SAAS,CAkCd,CACP,CAAC,GACE,CACP,IACG,CACP,EAED,KAAC,sBAAsB,IACrB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAC,MAAM,GAChB,IACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ProjectDashboard.js","sourceRoot":"","sources":["../../../src/task-board/components/ProjectDashboard.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useMemo, useState } from "react";
3
- import { LayoutGrid, Search, Shield, Settings, FolderPlus, Clock, Loader2, } from "lucide-react";
3
+ import { LayoutGrid, Shield, Settings, FolderPlus, Clock, Loader2, } from "lucide-react";
4
4
  import { Button } from "../../components/ui/button";
5
5
  import { DeleteIcon } from "../../components/ui/delete-icon";
6
- import { Input } from "../../components/ui/input";
6
+ import { FilterInput } from "../../components/FilterInput";
7
7
  import { cn } from "../../lib/utils";
8
8
  import { formatDistanceToNow } from "date-fns";
9
9
  export function ProjectListContent({ nav, onProjectSelected, className, maxHeight = 360, }) {
@@ -28,10 +28,10 @@ export function ProjectListContent({ nav, onProjectSelected, className, maxHeigh
28
28
  status.includes(query));
29
29
  });
30
30
  }, [nav.projectOptions, projectSearch, hideArchivedProjects]);
31
- return (_jsxs("div", { className: cn("flex flex-col", className), children: [_jsxs("div", { className: "flex items-center justify-between border-b px-3 py-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "text-neutral-grey-50 text-xs font-semibold tracking-wider", children: "Projects" }), nav.isProjectsLoading ? (_jsx(Loader2, { className: "text-neutral-grey-50 h-3.5 w-3.5 animate-spin", "data-testid": "taskboard-projects-loading-spinner" })) : null] }), _jsxs("div", { className: "flex items-center gap-2", children: [nav.selectedProjectId ? (_jsxs(Button, { variant: "ghost", size: "sm", className: "text-neutral-grey-50 h-8 px-2.5", "data-testid": "taskboard-open-project-overview-button", onClick: () => {
31
+ return (_jsxs("div", { className: cn("flex flex-col", className), children: [_jsxs("div", { className: "flex items-center justify-between border-b px-3 py-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "text-neutral-grey-50 text-xs font-medium tracking-wider", children: "Projects" }), nav.isProjectsLoading ? (_jsx(Loader2, { className: "text-neutral-grey-50 h-3.5 w-3.5 animate-spin", "data-testid": "taskboard-projects-loading-spinner" })) : null] }), _jsxs("div", { className: "flex items-center gap-2", children: [nav.selectedProjectId ? (_jsxs(Button, { variant: "ghost", size: "sm", className: "text-neutral-grey-50 h-8 px-2.5", "data-testid": "taskboard-open-project-overview-button", onClick: () => {
32
32
  nav.onSelectProject?.(null);
33
33
  onProjectSelected?.();
34
- }, children: [_jsx(LayoutGrid, { className: "mr-1.5 h-3.5 w-3.5" }), "Overview"] })) : null, _jsxs(Button, { variant: "default", size: "sm", className: "h-8 px-3", "data-testid": "taskboard-create-project-button", onClick: () => nav.onCreateProject?.(), children: [_jsx(FolderPlus, { className: "mr-1.5 h-3.5 w-3.5" }), "New project"] })] })] }), _jsx("div", { className: "border-b px-3 py-2", children: _jsxs("div", { className: "grid gap-2", children: [_jsxs("div", { className: "relative", children: [_jsx(Search, { className: "text-neutral-grey-50 pointer-events-none absolute top-1/2 left-2.5 h-3.5 w-3.5 -translate-y-1/2" }), _jsx(Input, { value: projectSearch, onChange: (e) => setProjectSearch(e.target.value), placeholder: "Search projects...", className: "h-8 pl-8 text-xs", "data-testid": "taskboard-project-search-input" })] }), _jsxs("label", { className: "text-neutral-grey-50 flex items-center gap-2 text-xs", children: [_jsx("input", { type: "checkbox", checked: hideArchivedProjects, onChange: (e) => setHideArchivedProjects(e.target.checked), "data-testid": "taskboard-hide-archived-checkbox" }), "Hide archived projects"] }), nav.isAdministrator ? (_jsxs("div", { className: "grid gap-1", children: [_jsxs("label", { className: "text-neutral-grey-50 flex items-center gap-2 text-xs", children: [_jsx("input", { type: "checkbox", checked: nav.showAllProjects, onChange: (e) => nav.onToggleShowAllProjects?.(e.target.checked), "data-testid": "taskboard-show-all-projects-checkbox" }), "Show all projects"] }), _jsx("p", { className: "text-neutral-grey-50 pl-5 text-[10px]", "data-testid": "taskboard-show-all-projects-hint", children: "Admin feature: includes projects across all users." })] })) : null] }) }), _jsx("div", { className: cn("overflow-y-auto p-2", maxHeight === "none" && "min-h-0 flex-1"), style: maxHeight !== "none" ? { maxHeight } : undefined, children: nav.isProjectsLoading && nav.projectOptions.length === 0 ? (_jsxs("div", { className: "text-neutral-grey-50 flex items-center justify-center gap-2 rounded-md border border-dashed px-3 py-8 text-xs", "data-testid": "taskboard-projects-empty-loading", children: [_jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin" }), "Loading projects..."] })) : nav.projectOptions.length === 0 ? (_jsx("div", { className: "text-neutral-grey-50 rounded-md border border-dashed px-3 py-8 text-center text-xs", children: "No projects yet" })) : filteredProjectOptions.length === 0 ? (_jsx("div", { className: "text-neutral-grey-50 rounded-md border border-dashed px-3 py-8 text-center text-xs", children: "No matching projects" })) : (_jsx("div", { className: "flex flex-col gap-1", children: filteredProjectOptions.map((project) => {
34
+ }, children: [_jsx(LayoutGrid, { className: "mr-1.5 h-3.5 w-3.5" }), "Overview"] })) : null, _jsxs(Button, { variant: "default", size: "sm", className: "h-8 px-3", "data-testid": "taskboard-create-project-button", onClick: () => nav.onCreateProject?.(), children: [_jsx(FolderPlus, { className: "mr-1.5 h-3.5 w-3.5" }), "New project"] })] })] }), _jsx("div", { className: "border-b px-3 py-2", children: _jsxs("div", { className: "grid gap-2", children: [_jsx(FilterInput, { value: projectSearch, onChange: setProjectSearch, placeholder: "Search projects...", size: "md", searchIconPosition: "left", testId: "taskboard-project-search-input" }), _jsxs("label", { className: "text-neutral-grey-50 flex items-center gap-2 text-xs", children: [_jsx("input", { type: "checkbox", checked: hideArchivedProjects, onChange: (e) => setHideArchivedProjects(e.target.checked), "data-testid": "taskboard-hide-archived-checkbox" }), "Hide archived projects"] }), nav.isAdministrator ? (_jsxs("div", { className: "grid gap-1", children: [_jsxs("label", { className: "text-neutral-grey-50 flex items-center gap-2 text-xs", children: [_jsx("input", { type: "checkbox", checked: nav.showAllProjects, onChange: (e) => nav.onToggleShowAllProjects?.(e.target.checked), "data-testid": "taskboard-show-all-projects-checkbox" }), "Show all projects"] }), _jsx("p", { className: "text-neutral-grey-50 pl-5 text-[10px]", "data-testid": "taskboard-show-all-projects-hint", children: "Admin feature: includes projects across all users." })] })) : null] }) }), _jsx("div", { className: cn("overflow-y-auto p-2", maxHeight === "none" && "min-h-0 flex-1"), style: maxHeight !== "none" ? { maxHeight } : undefined, children: nav.isProjectsLoading && nav.projectOptions.length === 0 ? (_jsxs("div", { className: "text-neutral-grey-50 flex items-center justify-center gap-2 rounded-md border border-dashed px-3 py-8 text-xs", "data-testid": "taskboard-projects-empty-loading", children: [_jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin" }), "Loading projects..."] })) : nav.projectOptions.length === 0 ? (_jsx("div", { className: "text-neutral-grey-50 rounded-md border border-dashed px-3 py-8 text-center text-xs", children: "No projects yet" })) : filteredProjectOptions.length === 0 ? (_jsx("div", { className: "text-neutral-grey-50 rounded-md border border-dashed px-3 py-8 text-center text-xs", children: "No matching projects" })) : (_jsx("div", { className: "flex flex-col gap-1", children: filteredProjectOptions.map((project) => {
35
35
  const isSelected = project.projectId === nav.selectedProjectId;
36
36
  const canManage = project.permission === "Owner";
37
37
  const isSubproject = (project.depth ?? 0) > 0;
@@ -45,7 +45,7 @@ export function ProjectListContent({ nav, onProjectSelected, className, maxHeigh
45
45
  onProjectSelected?.();
46
46
  }, children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(LayoutGrid, { className: cn("text-neutral-grey-50", isSubproject ? "h-3 w-3" : "h-3.5 w-3.5") }), project.depth && project.depth > 0 ? (_jsx("span", { className: "text-neutral-grey-50 text-[10px]", children: "\u21B3" })) : null, _jsx("span", { className: cn("text-neutral-grey-100 truncate", isSubproject
47
47
  ? "text-xs font-medium"
48
- : "text-sm font-medium"), children: project.title })] }), project.description?.trim() && (_jsx("div", { className: cn("text-neutral-grey-50 line-clamp-2 pl-5", isSubproject ? "mt-0.5 text-[10px]" : "mt-1 text-xs"), children: project.description.trim() })), _jsxs("div", { className: "mt-1 flex items-center gap-3 pl-5", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx(Shield, { className: cn("text-neutral-grey-50", isSubproject ? "h-2 w-2" : "h-2.5 w-2.5") }), _jsx("span", { className: cn("text-neutral-grey-50 font-semibold tracking-wider", isSubproject ? "text-[9px]" : "text-[10px]"), children: project.permission })] }), project.updatedAt && (_jsxs("div", { className: "flex items-center gap-1.5", title: `Last updated: ${new Date(project.updatedAt).toLocaleString()}`, children: [_jsx(Clock, { className: cn("text-neutral-grey-50", isSubproject ? "h-2 w-2" : "h-2.5 w-2.5") }), _jsx("span", { className: cn("text-neutral-grey-50 font-medium", isSubproject ? "text-[9px]" : "text-[10px]"), children: formatDistanceToNow(new Date(project.updatedAt), {
48
+ : "text-sm font-medium"), children: project.title })] }), project.description?.trim() && (_jsx("div", { className: cn("text-neutral-grey-50 line-clamp-2 pl-5", isSubproject ? "mt-0.5 text-[10px]" : "mt-1 text-xs"), children: project.description.trim() })), _jsxs("div", { className: "mt-1 flex items-center gap-3 pl-5", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx(Shield, { className: cn("text-neutral-grey-50", isSubproject ? "h-2 w-2" : "h-2.5 w-2.5") }), _jsx("span", { className: cn("text-neutral-grey-50 font-medium tracking-wider", isSubproject ? "text-[9px]" : "text-[10px]"), children: project.permission })] }), project.updatedAt && (_jsxs("div", { className: "flex items-center gap-1.5", title: `Last updated: ${new Date(project.updatedAt).toLocaleString()}`, children: [_jsx(Clock, { className: cn("text-neutral-grey-50", isSubproject ? "h-2 w-2" : "h-2.5 w-2.5") }), _jsx("span", { className: cn("text-neutral-grey-50 font-medium", isSubproject ? "text-[9px]" : "text-[10px]"), children: formatDistanceToNow(new Date(project.updatedAt), {
49
49
  addSuffix: true,
50
50
  }) })] }))] })] }), canManage && (_jsxs("div", { className: "flex items-center gap-1 transition-opacity md:opacity-0 md:group-hover:opacity-100", children: [_jsx(Button, { variant: "ghost", size: "icon", className: "h-7 w-7", onClick: (e) => {
51
51
  e.stopPropagation();
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectListContent.js","sourceRoot":"","sources":["../../../src/task-board/components/ProjectListContent.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectListContent.js","sourceRoot":"","sources":["../../../src/task-board/components/ProjectListContent.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useMemo, useState } from "react";
3
- import { Clock, FileStack, FolderPlus, LayoutGrid, Loader2, Search, Settings, Shield, } from "lucide-react";
3
+ import { Clock, FileStack, FolderPlus, LayoutGrid, Loader2, Settings, Shield, } from "lucide-react";
4
4
  import { formatDistanceToNow } from "date-fns";
5
5
  import { DeleteIcon } from "../../components/ui/delete-icon";
6
6
  import { Button } from "../../components/ui/button";
7
- import { Input } from "../../components/ui/input";
7
+ import { FilterInput } from "../../components/FilterInput";
8
8
  import { cn } from "../../lib/utils";
9
9
  import { TaskStateProgressBar } from "./ProjectDashboard";
10
10
  export function ProjectOverviewContent({ nav }) {
@@ -13,6 +13,9 @@ export function ProjectOverviewContent({ nav }) {
13
13
  const filteredProjectOptions = useMemo(() => {
14
14
  const query = projectSearch.trim().toLowerCase();
15
15
  return nav.projectOptions.filter((project) => {
16
+ if (project.parentProjectId || (project.depth ?? 0) > 0) {
17
+ return false;
18
+ }
16
19
  if (hideArchivedProjects &&
17
20
  project.status?.toLowerCase() === "archived") {
18
21
  return false;
@@ -29,7 +32,7 @@ export function ProjectOverviewContent({ nav }) {
29
32
  status.includes(query));
30
33
  });
31
34
  }, [hideArchivedProjects, nav.projectOptions, projectSearch]);
32
- return (_jsxs("div", { className: "flex min-h-full w-full flex-col rounded-2xl border bg-white shadow-sm", "data-testid": "taskboard-project-overview", children: [_jsxs("div", { className: "flex flex-col gap-3 border-b px-4 py-4 md:flex-row md:items-start md:justify-between", children: [_jsxs("div", { className: "space-y-1", children: [_jsx("div", { className: "text-neutral-grey-50 text-xs font-semibold tracking-wider", children: "Taskboard" }), _jsx("h2", { className: "text-neutral-grey-100 text-xl font-semibold", children: "Projects Overview" }), _jsx("p", { className: "text-neutral-grey-50 max-w-2xl text-sm", children: "Pick a project to open the board. Progress is shown here so you can see where each project stands." })] }), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs(Button, { variant: "outline", size: "sm", className: "h-9 px-3", "data-testid": "taskboard-project-overview-edit-templates-button", onClick: () => nav.onOpenProjectTemplates?.(), children: [_jsx(FileStack, { className: "mr-1.5 h-3.5 w-3.5" }), "Edit Templates"] }), _jsxs(Button, { variant: "default", size: "sm", className: "h-9 px-3", "data-testid": "taskboard-project-overview-create-button", onClick: () => nav.onCreateProject?.(), children: [_jsx(FolderPlus, { className: "mr-1.5 h-3.5 w-3.5" }), "New project"] })] })] }), _jsx("div", { className: "border-b px-4 py-3", children: _jsxs("div", { className: "grid gap-3 lg:grid-cols-[minmax(0,1fr)_auto_auto] lg:items-center", children: [_jsxs("div", { className: "relative", children: [_jsx(Search, { className: "text-neutral-grey-50 pointer-events-none absolute top-1/2 left-2.5 h-3.5 w-3.5 -translate-y-1/2" }), _jsx(Input, { value: projectSearch, onChange: (e) => setProjectSearch(e.target.value), placeholder: "Search projects...", className: "h-9 pl-8 text-sm", "data-testid": "taskboard-project-overview-search-input" })] }), _jsxs("label", { className: "text-neutral-grey-50 flex items-center gap-2 text-xs", children: [_jsx("input", { type: "checkbox", checked: hideArchivedProjects, onChange: (e) => setHideArchivedProjects(e.target.checked), "data-testid": "taskboard-project-overview-hide-archived" }), "Hide archived projects"] }), nav.isAdministrator ? (_jsxs("label", { className: "text-neutral-grey-50 flex items-center gap-2 text-xs", children: [_jsx("input", { type: "checkbox", checked: nav.showAllProjects, onChange: (e) => nav.onToggleShowAllProjects?.(e.target.checked), "data-testid": "taskboard-project-overview-show-all-projects" }), "Show all projects"] })) : null] }) }), _jsx("div", { className: "min-h-0 flex-1 overflow-y-auto p-4", children: nav.isProjectsLoading && nav.projectOptions.length === 0 ? (_jsxs("div", { className: "text-neutral-grey-50 flex min-h-[240px] items-center justify-center gap-2 rounded-xl border border-dashed text-sm", "data-testid": "taskboard-project-overview-loading", children: [_jsx(Loader2, { className: "h-4 w-4 animate-spin" }), "Loading projects..."] })) : nav.projectOptions.length === 0 ? (_jsx("div", { className: "text-neutral-grey-50 rounded-xl border border-dashed px-4 py-12 text-center text-sm", children: "No projects yet" })) : filteredProjectOptions.length === 0 ? (_jsx("div", { className: "text-neutral-grey-50 rounded-xl border border-dashed px-4 py-12 text-center text-sm", children: "No matching projects" })) : (_jsx("div", { className: "grid gap-4 md:grid-cols-2 xl:grid-cols-3", children: filteredProjectOptions.map((project) => {
35
+ return (_jsxs("div", { className: "flex min-h-full w-full flex-col rounded-2xl border bg-white shadow-sm", "data-testid": "taskboard-project-overview", children: [_jsxs("div", { className: "flex flex-col gap-3 border-b px-4 py-4 md:flex-row md:items-start md:justify-between", children: [_jsxs("div", { className: "space-y-1", children: [_jsx("div", { className: "text-neutral-grey-50 text-xs font-medium tracking-wider", children: "Taskboard" }), _jsx("h2", { className: "text-neutral-grey-100 text-xl font-medium", children: "Projects Overview" }), _jsx("p", { className: "text-neutral-grey-50 max-w-2xl text-sm", children: "Pick a project to open the board. Progress is shown here so you can see where each project stands." })] }), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs(Button, { variant: "outline", size: "sm", className: "h-9 px-3", "data-testid": "taskboard-project-overview-edit-templates-button", onClick: () => nav.onOpenProjectTemplates?.(), children: [_jsx(FileStack, { className: "mr-1.5 h-3.5 w-3.5" }), "Edit Templates"] }), _jsxs(Button, { variant: "default", size: "sm", className: "h-9 px-3", "data-testid": "taskboard-project-overview-create-button", onClick: () => nav.onCreateProject?.(), children: [_jsx(FolderPlus, { className: "mr-1.5 h-3.5 w-3.5" }), "New project"] })] })] }), _jsx("div", { className: "border-b px-4 py-3", children: _jsxs("div", { className: "grid gap-3 lg:grid-cols-[minmax(0,1fr)_auto_auto] lg:items-center", children: [_jsx(FilterInput, { value: projectSearch, onChange: setProjectSearch, placeholder: "Search projects...", size: "lg", searchIconPosition: "left", inputClassName: "text-sm", testId: "taskboard-project-overview-search-input" }), _jsxs("label", { className: "text-neutral-grey-50 flex items-center gap-2 text-xs", children: [_jsx("input", { type: "checkbox", checked: hideArchivedProjects, onChange: (e) => setHideArchivedProjects(e.target.checked), "data-testid": "taskboard-project-overview-hide-archived" }), "Hide archived projects"] }), nav.isAdministrator ? (_jsxs("label", { className: "text-neutral-grey-50 flex items-center gap-2 text-xs", children: [_jsx("input", { type: "checkbox", checked: nav.showAllProjects, onChange: (e) => nav.onToggleShowAllProjects?.(e.target.checked), "data-testid": "taskboard-project-overview-show-all-projects" }), "Show all projects"] })) : null] }) }), _jsx("div", { className: "min-h-0 flex-1 overflow-y-auto p-4", children: nav.isProjectsLoading && nav.projectOptions.length === 0 ? (_jsxs("div", { className: "text-neutral-grey-50 flex min-h-[240px] items-center justify-center gap-2 rounded-xl border border-dashed text-sm", "data-testid": "taskboard-project-overview-loading", children: [_jsx(Loader2, { className: "h-4 w-4 animate-spin" }), "Loading projects..."] })) : nav.projectOptions.length === 0 ? (_jsx("div", { className: "text-neutral-grey-50 rounded-xl border border-dashed px-4 py-12 text-center text-sm", children: "No projects yet" })) : filteredProjectOptions.length === 0 ? (_jsx("div", { className: "text-neutral-grey-50 rounded-xl border border-dashed px-4 py-12 text-center text-sm", children: "No matching projects" })) : (_jsx("div", { className: "grid gap-4 md:grid-cols-2 xl:grid-cols-3", children: filteredProjectOptions.map((project) => {
33
36
  const counts = project.overview?.taskCounts ?? {
34
37
  total: 0,
35
38
  todo: 0,
@@ -47,7 +50,7 @@ export function ProjectOverviewContent({ nav }) {
47
50
  const subprojectCount = project.overview?.directSubprojectCount ?? 0;
48
51
  return (_jsxs("div", { className: cn("group flex flex-col rounded-xl border bg-white transition-colors", isSelected
49
52
  ? "border-border-default shadow-sm"
50
- : "border-border-default hover:border-border-default"), "data-testid": `taskboard-project-overview-card-${project.projectId}`, children: [_jsxs("div", { className: "flex items-start justify-between gap-2 px-4 pt-4", children: [_jsxs("button", { type: "button", className: "min-w-0 flex-1 text-left", onClick: () => nav.onSelectProject?.(project.projectId), children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(LayoutGrid, { className: "text-neutral-grey-50 h-4 w-4 flex-none" }), depth > 0 ? (_jsx("span", { className: "text-neutral-grey-50 text-[10px]", children: "↳".repeat(Math.min(depth, 2)) })) : null, _jsx("span", { className: "text-neutral-grey-100 truncate text-base font-semibold", children: project.title })] }), project.description?.trim() ? (_jsx("p", { className: "text-neutral-grey-50 mt-2 line-clamp-3 text-xs", children: project.description.trim() })) : (_jsx("p", { className: "text-neutral-grey-50 mt-2 text-xs", children: "No description" }))] }), canManage ? (_jsxs("div", { className: "flex items-center gap-1 opacity-100 transition-opacity md:opacity-0 md:group-hover:opacity-100", children: [_jsx(Button, { variant: "ghost", size: "icon", className: "h-8 w-8", onClick: (e) => {
53
+ : "border-border-default hover:border-border-default"), "data-testid": `taskboard-project-overview-card-${project.projectId}`, children: [_jsxs("div", { className: "flex items-start justify-between gap-2 px-4 pt-4", children: [_jsxs("button", { type: "button", className: "min-w-0 flex-1 text-left", onClick: () => nav.onSelectProject?.(project.projectId), children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(LayoutGrid, { className: "text-neutral-grey-50 h-4 w-4 flex-none" }), depth > 0 ? (_jsx("span", { className: "text-neutral-grey-50 text-[10px]", children: "↳".repeat(Math.min(depth, 2)) })) : null, _jsx("span", { className: "text-neutral-grey-100 truncate text-base font-medium", children: project.title })] }), project.description?.trim() ? (_jsx("p", { className: "text-neutral-grey-50 mt-2 line-clamp-3 text-xs", children: project.description.trim() })) : (_jsx("p", { className: "text-neutral-grey-50 mt-2 text-xs", children: "No description" }))] }), canManage ? (_jsxs("div", { className: "flex items-center gap-1 opacity-100 transition-opacity md:opacity-0 md:group-hover:opacity-100", children: [_jsx(Button, { variant: "ghost", size: "icon", className: "h-8 w-8", onClick: (e) => {
51
54
  e.stopPropagation();
52
55
  nav.onOpenProjectSettings?.(project.projectId);
53
56
  }, title: "Project settings", "data-testid": `taskboard-project-overview-settings-${project.projectId}`, children: _jsx(Settings, { className: "h-3.5 w-3.5" }) }), _jsx(Button, { variant: "ghost", size: "icon", className: "text-neutral-grey-50 hover:bg-neutral-grey-5 hover:text-neutral-grey-50 h-8 w-8", onClick: (e) => {
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectOverviewContent.js","sourceRoot":"","sources":["../../../src/task-board/components/ProjectOverviewContent.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectOverviewContent.js","sourceRoot":"","sources":["../../../src/task-board/components/ProjectOverviewContent.tsx"],"names":[],"mappings":"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"}