@parhelia/core 0.1.11955 → 0.1.12017

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 (144) hide show
  1. package/dist/agents-view/AgentsInbox.js +8 -3
  2. package/dist/agents-view/AgentsInbox.js.map +1 -1
  3. package/dist/components/ui/alert-dialog.js +2 -8
  4. package/dist/components/ui/alert-dialog.js.map +1 -1
  5. package/dist/components/ui/dialog.js +4 -127
  6. package/dist/components/ui/dialog.js.map +1 -1
  7. package/dist/components/ui/popover.js +1 -9
  8. package/dist/components/ui/popover.js.map +1 -1
  9. package/dist/components/ui/select.js +1 -1
  10. package/dist/components/ui/styled-dialog-title.js +1 -1
  11. package/dist/components/ui/styled-dialog-title.js.map +1 -1
  12. package/dist/editor/ContentTree.js +9 -2
  13. package/dist/editor/ContentTree.js.map +1 -1
  14. package/dist/editor/FieldListField.js +1 -1
  15. package/dist/editor/FieldListField.js.map +1 -1
  16. package/dist/editor/MainLayout.js +1 -2
  17. package/dist/editor/MainLayout.js.map +1 -1
  18. package/dist/editor/MobileLayout.js +18 -3
  19. package/dist/editor/MobileLayout.js.map +1 -1
  20. package/dist/editor/ai/AgentTerminal.js +81 -12
  21. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  22. package/dist/editor/ai/AgentTerminalStatusBar.d.ts +2 -1
  23. package/dist/editor/ai/AgentTerminalStatusBar.js +5 -2
  24. package/dist/editor/ai/AgentTerminalStatusBar.js.map +1 -1
  25. package/dist/editor/ai/ContextInfoBar.js +3 -0
  26. package/dist/editor/ai/ContextInfoBar.js.map +1 -1
  27. package/dist/editor/ai/dialogs/AgentDialogHandler.js +160 -48
  28. package/dist/editor/ai/dialogs/AgentDialogHandler.js.map +1 -1
  29. package/dist/editor/ai/dialogs/QuestionnaireInline.js +2 -1
  30. package/dist/editor/ai/dialogs/QuestionnaireInline.js.map +1 -1
  31. package/dist/editor/ai/dialogs/agentDialogTypes.d.ts +2 -0
  32. package/dist/editor/ai/dialogs/agentDialogTypes.js.map +1 -1
  33. package/dist/editor/client/EditorShell.js +90 -4
  34. package/dist/editor/client/EditorShell.js.map +1 -1
  35. package/dist/editor/client/editContext.d.ts +4 -0
  36. package/dist/editor/client/editContext.js.map +1 -1
  37. package/dist/editor/client/helpers.js +6 -0
  38. package/dist/editor/client/helpers.js.map +1 -1
  39. package/dist/editor/client/hooks/useEditorWebSocket.d.ts +1 -0
  40. package/dist/editor/client/hooks/useEditorWebSocket.js +10 -1
  41. package/dist/editor/client/hooks/useEditorWebSocket.js.map +1 -1
  42. package/dist/editor/client/hooks/useSocketMessageHandler.js +9 -0
  43. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  44. package/dist/editor/client/operations.js +19 -3
  45. package/dist/editor/client/operations.js.map +1 -1
  46. package/dist/editor/client/ui/EditorChrome.js +14 -54
  47. package/dist/editor/client/ui/EditorChrome.js.map +1 -1
  48. package/dist/editor/hooks/useNavigationPanelLogic.d.ts +55 -0
  49. package/dist/editor/hooks/useNavigationPanelLogic.js +127 -0
  50. package/dist/editor/hooks/useNavigationPanelLogic.js.map +1 -0
  51. package/dist/editor/media-selector/MediaSelector.js +7 -1
  52. package/dist/editor/media-selector/MediaSelector.js.map +1 -1
  53. package/dist/editor/media-selector/TreeSelector.js +37 -31
  54. package/dist/editor/media-selector/TreeSelector.js.map +1 -1
  55. package/dist/editor/menubar/PageSelector.js +3 -2
  56. package/dist/editor/menubar/PageSelector.js.map +1 -1
  57. package/dist/editor/page-editor-chrome/InlineEditor.js +4 -1
  58. package/dist/editor/page-editor-chrome/InlineEditor.js.map +1 -1
  59. package/dist/editor/page-viewer/EditorForm.js +43 -2
  60. package/dist/editor/page-viewer/EditorForm.js.map +1 -1
  61. package/dist/editor/page-viewer/PageViewerFrame.js +38 -14
  62. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  63. package/dist/editor/services/agentService.d.ts +1 -0
  64. package/dist/editor/services/agentService.js +1 -0
  65. package/dist/editor/services/agentService.js.map +1 -1
  66. package/dist/editor/services/editService.d.ts +4 -0
  67. package/dist/editor/services/editService.js +5 -0
  68. package/dist/editor/services/editService.js.map +1 -1
  69. package/dist/editor/services/serviceHelper.d.ts +1 -0
  70. package/dist/editor/services/serviceHelper.js +10 -0
  71. package/dist/editor/services/serviceHelper.js.map +1 -1
  72. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js +1 -1
  73. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js.map +1 -1
  74. package/dist/editor/settings/status/coreStatusChecks.js +82 -6
  75. package/dist/editor/settings/status/coreStatusChecks.js.map +1 -1
  76. package/dist/editor/sidebar/LabelButton.d.ts +5 -0
  77. package/dist/editor/sidebar/LabelButton.js +12 -0
  78. package/dist/editor/sidebar/LabelButton.js.map +1 -0
  79. package/dist/editor/sidebar/LeftToolbar.js +1 -1
  80. package/dist/editor/sidebar/LeftToolbar.js.map +1 -1
  81. package/dist/editor/sidebar/MobileWorkspacePopover.js +1 -1
  82. package/dist/editor/sidebar/MobileWorkspacePopover.js.map +1 -1
  83. package/dist/editor/sidebar/MorePanelsButton.d.ts +10 -0
  84. package/dist/editor/sidebar/MorePanelsButton.js +43 -0
  85. package/dist/editor/sidebar/MorePanelsButton.js.map +1 -0
  86. package/dist/editor/sidebar/NavigationPanelItem.d.ts +15 -0
  87. package/dist/editor/sidebar/NavigationPanelItem.js +40 -0
  88. package/dist/editor/sidebar/NavigationPanelItem.js.map +1 -0
  89. package/dist/editor/sidebar/NavigationPanelMenuItem.d.ts +16 -0
  90. package/dist/editor/sidebar/NavigationPanelMenuItem.js +21 -0
  91. package/dist/editor/sidebar/NavigationPanelMenuItem.js.map +1 -0
  92. package/dist/editor/sidebar/NavigationSidebar.js +38 -37
  93. package/dist/editor/sidebar/NavigationSidebar.js.map +1 -1
  94. package/dist/editor/sidebar/SidebarPanel.js +2 -2
  95. package/dist/editor/sidebar/SidebarPanel.js.map +1 -1
  96. package/dist/editor/sidebar/WorkspaceButton.d.ts +10 -0
  97. package/dist/editor/sidebar/WorkspaceButton.js +13 -0
  98. package/dist/editor/sidebar/WorkspaceButton.js.map +1 -0
  99. package/dist/editor/sidebar/WorkspaceRail.d.ts +0 -1
  100. package/dist/editor/sidebar/WorkspaceRail.js +55 -167
  101. package/dist/editor/sidebar/WorkspaceRail.js.map +1 -1
  102. package/dist/editor/sidebar/WorkspaceRailMobile.d.ts +4 -0
  103. package/dist/editor/sidebar/WorkspaceRailMobile.js +37 -0
  104. package/dist/editor/sidebar/WorkspaceRailMobile.js.map +1 -0
  105. package/dist/editor/views/SingleEditView.js +1 -1
  106. package/dist/editor/views/SingleEditView.js.map +1 -1
  107. package/dist/editor/views/editorSlotContext.js.map +1 -1
  108. package/dist/revision.d.ts +2 -2
  109. package/dist/revision.js +2 -2
  110. package/dist/task-board/TaskBoardWorkspace.js +109 -32
  111. package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
  112. package/dist/task-board/components/CommentsList.d.ts +2 -0
  113. package/dist/task-board/components/CommentsList.js +50 -7
  114. package/dist/task-board/components/CommentsList.js.map +1 -1
  115. package/dist/task-board/components/CreateProjectDialog.js +11 -9
  116. package/dist/task-board/components/CreateProjectDialog.js.map +1 -1
  117. package/dist/task-board/components/ProjectDashboard.js +25 -15
  118. package/dist/task-board/components/ProjectDashboard.js.map +1 -1
  119. package/dist/task-board/components/ProjectSettingsDialog.js +21 -19
  120. package/dist/task-board/components/ProjectSettingsDialog.js.map +1 -1
  121. package/dist/task-board/components/TaskAgentPanel.d.ts +5 -0
  122. package/dist/task-board/components/TaskAgentPanel.js +8 -2
  123. package/dist/task-board/components/TaskAgentPanel.js.map +1 -1
  124. package/dist/task-board/components/TaskBoardTitlebar.js +4 -4
  125. package/dist/task-board/components/TaskBoardTitlebar.js.map +1 -1
  126. package/dist/task-board/components/TaskDetailPanel.js +43 -17
  127. package/dist/task-board/components/TaskDetailPanel.js.map +1 -1
  128. package/dist/task-board/components/TaskRow.js +12 -10
  129. package/dist/task-board/components/TaskRow.js.map +1 -1
  130. package/dist/task-board/index.d.ts +1 -1
  131. package/dist/task-board/services/taskService.d.ts +4 -1
  132. package/dist/task-board/services/taskService.js +3 -0
  133. package/dist/task-board/services/taskService.js.map +1 -1
  134. package/dist/task-board/taskStatus.d.ts +1 -0
  135. package/dist/task-board/taskStatus.js +9 -0
  136. package/dist/task-board/taskStatus.js.map +1 -1
  137. package/dist/task-board/types.d.ts +3 -0
  138. package/dist/task-board/utils/projectHierarchy.js +0 -1
  139. package/dist/task-board/utils/projectHierarchy.js.map +1 -1
  140. package/dist/task-board/views/KanbanView.js +2 -2
  141. package/dist/task-board/views/KanbanView.js.map +1 -1
  142. package/dist/task-board/views/ListView.js +7 -7
  143. package/dist/task-board/views/ListView.js.map +1 -1
  144. package/package.json +1 -1
@@ -64,12 +64,13 @@ function suggestPrefixFromTitle(title) {
64
64
  return finalPrefix || "PRJ";
65
65
  }
66
66
  export function CreateProjectDialog(props) {
67
+ const DEFAULT_COST_LIMIT = "25";
67
68
  const { open, onOpenChange, projects = [], onCreated } = props;
68
69
  const [title, setTitle] = useState("");
69
70
  const [description, setDescription] = useState("");
70
71
  const [taskPrefix, setTaskPrefix] = useState("");
71
72
  const [taskPrefixEdited, setTaskPrefixEdited] = useState(false);
72
- const [costLimit, setCostLimit] = useState("");
73
+ const [costLimit, setCostLimit] = useState(DEFAULT_COST_LIMIT);
73
74
  const [plannerSkillId, setPlannerSkillId] = useState("");
74
75
  const [parentProjectId, setParentProjectId] = useState("");
75
76
  const [availableSkills, setAvailableSkills] = useState([]);
@@ -131,18 +132,19 @@ export function CreateProjectDialog(props) {
131
132
  toast.error("Project title is required");
132
133
  return;
133
134
  }
135
+ const parsedCostLimit = Number(costLimit);
136
+ if (Number.isNaN(parsedCostLimit) || parsedCostLimit <= 0) {
137
+ toast.error("Cost limit must be greater than 0");
138
+ return;
139
+ }
134
140
  const body = {
135
141
  title: title.trim(),
136
142
  parentProjectId: parentProjectId || null,
137
143
  description: description.trim() ? description.trim() : undefined,
138
144
  taskPrefix: taskPrefix.trim() ? sanitizePrefix(taskPrefix.trim()) : undefined,
139
- costLimit: costLimit.trim() ? Number(costLimit) : null,
145
+ costLimit: parsedCostLimit,
140
146
  plannerSkillId: plannerSkillId || null,
141
147
  };
142
- if (body.costLimit != null && Number.isNaN(body.costLimit)) {
143
- toast.error("Cost limit must be a number");
144
- return;
145
- }
146
148
  setSubmitting(true);
147
149
  try {
148
150
  const result = await createProject(body);
@@ -159,7 +161,7 @@ export function CreateProjectDialog(props) {
159
161
  setDescription("");
160
162
  setTaskPrefix("");
161
163
  setTaskPrefixEdited(false);
162
- setCostLimit("");
164
+ setCostLimit(DEFAULT_COST_LIMIT);
163
165
  setPlannerSkillId("");
164
166
  setParentProjectId("");
165
167
  }
@@ -167,9 +169,9 @@ export function CreateProjectDialog(props) {
167
169
  setSubmitting(false);
168
170
  }
169
171
  };
170
- return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { className: "max-w-lg", children: [_jsx(StyledDialogTitle, { icon: _jsx(FolderPlus, { strokeWidth: 1 }), title: "Create Project", subtitle: "Starts in Planning mode with a Project Planner" }), _jsxs("div", { className: "grid gap-6 p-6", children: [_jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectTitle", children: "Title" }), _jsx(Input, { id: "projectTitle", value: title, onChange: (e) => setTitle(e.target.value), placeholder: "e.g. Spring Launch" })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectDescription", children: "Description" }), _jsx(Textarea, { id: "projectDescription", value: description, onChange: (e) => setDescription(e.target.value), placeholder: "Optional description", rows: 3 })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectParent", children: "Parent project" }), _jsx(Select, { id: "projectParent", value: parentProjectId, onValueChange: setParentProjectId, options: parentProjectOptions, placeholder: "No parent project" }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Choose a parent to create this as a subproject." })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectTaskPrefix", children: "Task prefix" }), _jsx(Input, { id: "projectTaskPrefix", value: taskPrefix, onChange: (e) => {
172
+ return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { className: "max-w-lg", "data-testid": "taskboard-create-project-dialog", children: [_jsx(StyledDialogTitle, { icon: _jsx(FolderPlus, { strokeWidth: 1 }), title: "Create Project", subtitle: "Starts in Planning mode with a Project Planner" }), _jsxs("div", { className: "grid gap-6 p-6", children: [_jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectTitle", children: "Title" }), _jsx(Input, { id: "projectTitle", "data-testid": "taskboard-project-title-input", value: title, onChange: (e) => setTitle(e.target.value), placeholder: "e.g. Spring Launch" })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectDescription", children: "Description" }), _jsx(Textarea, { id: "projectDescription", "data-testid": "taskboard-project-description-input", className: "text-xs", value: description, onChange: (e) => setDescription(e.target.value), placeholder: "Optional description", rows: 3 })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectParent", children: "Parent project" }), _jsx(Select, { id: "projectParent", "data-testid": "taskboard-project-parent-select", value: parentProjectId, onValueChange: setParentProjectId, options: parentProjectOptions, placeholder: "No parent project" }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Choose a parent to create this as a subproject." })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectTaskPrefix", children: "Task prefix" }), _jsx(Input, { id: "projectTaskPrefix", "data-testid": "taskboard-project-prefix-input", value: taskPrefix, onChange: (e) => {
171
173
  setTaskPrefixEdited(true);
172
174
  setTaskPrefix(sanitizePrefix(e.target.value));
173
- }, placeholder: "e.g. WEB", maxLength: 4 }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Suggested from title. Max 4 chars, used for task IDs like WEB1-1." })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectCostLimit", children: "Cost limit" }), _jsx(Input, { id: "projectCostLimit", value: costLimit, onChange: (e) => setCostLimit(e.target.value), placeholder: "Unlimited" })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectPlannerSkill", children: "Planner skill" }), _jsx(Select, { id: "projectPlannerSkill", value: plannerSkillId, onValueChange: setPlannerSkillId, options: skillOptions, disabled: skillsLoading, loading: skillsLoading, placeholder: "No skill", emptyMessage: "No skills available" }), skillsError && _jsx("div", { className: "text-xs text-red-600", children: skillsError })] }), _jsxs("div", { className: "rounded-md border bg-muted/30 p-3 text-xs text-muted-foreground", children: ["After creation, the project starts in ", _jsx("span", { className: "font-medium text-foreground", children: "Planning" }), ". Review the generated plan and move the plan task to ", _jsx("span", { className: "font-medium text-foreground", children: "Done" }), " to approve."] })] }), _jsxs(DialogFooter, { className: "p-6 pt-0", children: [_jsx(Button, { variant: "outline", onClick: () => onOpenChange(false), disabled: submitting, children: "Cancel" }), _jsx(Button, { onClick: submit, disabled: submitting || !title.trim(), children: submitting ? "Creating..." : "Create Project" })] })] }) }));
175
+ }, placeholder: "e.g. WEB", maxLength: 4 }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Suggested from title. Max 4 chars, used for task IDs like WEB1-1." })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectCostLimit", children: "Cost limit" }), _jsx(Input, { id: "projectCostLimit", "data-testid": "taskboard-project-cost-limit-input", value: costLimit, onChange: (e) => setCostLimit(e.target.value), placeholder: DEFAULT_COST_LIMIT })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectPlannerSkill", children: "Planner skill" }), _jsx(Select, { id: "projectPlannerSkill", "data-testid": "taskboard-project-planner-skill-select", value: plannerSkillId, onValueChange: setPlannerSkillId, options: skillOptions, disabled: skillsLoading, loading: skillsLoading, placeholder: "No skill", emptyMessage: "No skills available" }), skillsError && _jsx("div", { className: "text-xs text-red-600", children: skillsError })] }), _jsxs("div", { className: "rounded-md border bg-muted/30 p-3 text-xs text-muted-foreground", children: ["After creation, the project starts in ", _jsx("span", { className: "font-medium text-foreground", children: "Planning" }), "."] })] }), _jsxs(DialogFooter, { className: "p-6 pt-0", children: [_jsx(Button, { variant: "outline", onClick: () => onOpenChange(false), disabled: submitting, "data-testid": "taskboard-project-cancel-button", children: "Cancel" }), _jsx(Button, { onClick: submit, disabled: submitting || !title.trim(), "data-testid": "taskboard-project-submit-button", children: submitting ? "Creating..." : "Create Project" })] })] }) }));
174
176
  }
175
177
  //# sourceMappingURL=CreateProjectDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateProjectDialog.js","sourceRoot":"","sources":["../../../src/task-board/components/CreateProjectDialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CreateProjectDialog.js","sourceRoot":"","sources":["../../../src/task-board/components/CreateProjectDialog.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useMemo, useState } from "react";
3
- import { ChevronDown, FolderTree, Loader2 } from "lucide-react";
2
+ import { useEffect, useMemo, useRef, useState } from "react";
3
+ import { ChevronDown } from "lucide-react";
4
4
  import { Select } from "../../components/ui/select";
5
5
  const EMPTY_COUNTS = {
6
6
  total: 0,
@@ -9,6 +9,7 @@ const EMPTY_COUNTS = {
9
9
  review: 0,
10
10
  done: 0,
11
11
  };
12
+ const DEFAULT_COST_LIMIT = 25;
12
13
  const STATE_STOPS = [
13
14
  { key: "todo", label: "Todo", segmentClassName: "bg-slate-300" },
14
15
  { key: "inProgress", label: "In progress", segmentClassName: "bg-blue-400" },
@@ -25,18 +26,26 @@ function TaskStateProgressBar(props) {
25
26
  }) })) : null }));
26
27
  }
27
28
  export function ProjectDashboard(props) {
28
- const { selectedProjectTitle, selectedProjectDescription, selectedProjectStatus, selectedProjectCostUsed = 0, selectedProjectCostLimit = null, canEditProjectStatus = false, savingProjectStatus = false, onStatusChange, selectedProjectTaskCounts, subprojects, taskCountsByProjectId, loading, parentProjectId, parentProjectTitle, onSelectProject, } = props;
29
+ const { selectedProjectDescription, selectedProjectStatus, selectedProjectCostUsed = 0, selectedProjectCostLimit = null, canEditProjectStatus = false, savingProjectStatus = false, onStatusChange, selectedProjectTaskCounts, subprojects, taskCountsByProjectId, parentProjectId, parentProjectTitle, onSelectProject, } = props;
29
30
  const hasSubprojects = subprojects.length > 0;
30
- const [showSubprojects, setShowSubprojects] = useState(false);
31
- const [isCollapsed, setIsCollapsed] = useState(false);
31
+ const [showSubprojects, setShowSubprojects] = useState(hasSubprojects);
32
+ const previousSubprojectCountRef = useRef(subprojects.length);
33
+ useEffect(() => {
34
+ const previousCount = previousSubprojectCountRef.current;
35
+ const nextCount = subprojects.length;
36
+ if (nextCount > previousCount) {
37
+ setShowSubprojects(true);
38
+ }
39
+ previousSubprojectCountRef.current = nextCount;
40
+ }, [subprojects.length]);
32
41
  const normalizedCostUsed = Number.isFinite(selectedProjectCostUsed) ? Math.max(0, selectedProjectCostUsed) : 0;
33
- const hasCostLimit = typeof selectedProjectCostLimit === "number" && selectedProjectCostLimit > 0;
42
+ const effectiveCostLimit = typeof selectedProjectCostLimit === "number" && selectedProjectCostLimit > 0
43
+ ? selectedProjectCostLimit
44
+ : DEFAULT_COST_LIMIT;
34
45
  const costProgressPct = useMemo(() => {
35
- if (!hasCostLimit || !selectedProjectCostLimit)
36
- return 0;
37
- const pct = (normalizedCostUsed / selectedProjectCostLimit) * 100;
46
+ const pct = (normalizedCostUsed / effectiveCostLimit) * 100;
38
47
  return Math.max(0, Math.min(pct, 100));
39
- }, [hasCostLimit, normalizedCostUsed, selectedProjectCostLimit]);
48
+ }, [effectiveCostLimit, normalizedCostUsed]);
40
49
  const costProgressClassName = costProgressPct >= 100 ? "bg-red-500" : costProgressPct >= 80 ? "bg-amber-500" : "bg-emerald-500";
41
50
  const statusValue = selectedProjectStatus ?? "Active";
42
51
  const aggregatedCounts = hasSubprojects
@@ -60,7 +69,7 @@ export function ProjectDashboard(props) {
60
69
  const rows = [
61
70
  {
62
71
  projectId: "selected-project",
63
- title: selectedProjectTitle,
72
+ title: "Progress",
64
73
  counts: aggregatedCounts,
65
74
  compact: false,
66
75
  indented: false,
@@ -77,15 +86,16 @@ export function ProjectDashboard(props) {
77
86
  }))
78
87
  : []),
79
88
  ];
80
- return (_jsxs("div", { className: "mb-4", children: [parentProjectId && parentProjectTitle && onSelectProject && (_jsx("div", { className: "mb-3", children: _jsxs("button", { type: "button", className: "text-xs text-slate-600 hover:text-slate-800", onClick: () => onSelectProject(parentProjectId), children: ["\u2190 Back to ", parentProjectTitle] }) })), _jsxs("div", { className: "mb-4", children: [_jsxs("div", { className: "grid gap-3 md:grid-cols-[minmax(0,1fr)_220px]", children: [_jsxs("div", { children: [_jsx("div", { className: "text-[11px] font-semibold uppercase tracking-wider text-slate-500", children: "Description" }), _jsx("div", { className: "mt-1 text-sm text-slate-700", children: selectedProjectDescription?.trim() || "No description" })] }), _jsxs("div", { children: [_jsx("div", { className: "text-[11px] font-semibold uppercase tracking-wider text-slate-500", children: "Status" }), _jsx("div", { className: "mt-1", children: _jsx(Select, { value: statusValue, onValueChange: (value) => onStatusChange?.(value), disabled: !canEditProjectStatus || savingProjectStatus || !onStatusChange, options: [
89
+ return (_jsxs("div", { className: "mb-4", "data-testid": "taskboard-project-dashboard", children: [parentProjectId && parentProjectTitle && onSelectProject && (_jsx("div", { className: "mb-3", children: _jsxs("button", { type: "button", className: "text-xs text-slate-600 hover:text-slate-800", onClick: () => onSelectProject(parentProjectId), "data-testid": "taskboard-parent-project-button", children: ["\u2190 Back to ", parentProjectTitle] }) })), _jsxs("div", { className: "mb-4", children: [_jsxs("div", { className: "grid gap-3 md:grid-cols-[minmax(0,1fr)_220px]", children: [_jsxs("div", { children: [_jsx("div", { className: "text-[11px] font-semibold uppercase tracking-wider text-slate-500", children: "Description" }), _jsx("div", { className: "mt-1 text-xs text-slate-700", children: selectedProjectDescription?.trim() || "No description" })] }), _jsxs("div", { children: [_jsx("div", { className: "text-[11px] font-semibold uppercase tracking-wider text-slate-500", children: "Status" }), _jsx("div", { className: "mt-1", children: _jsx(Select, { "data-testid": "taskboard-project-status-select", value: statusValue, onValueChange: (value) => onStatusChange?.(value), disabled: !canEditProjectStatus || savingProjectStatus || !onStatusChange, options: [
81
90
  { value: "Planning", label: "Planning" },
82
91
  { value: "PlanPending", label: "Plan Pending" },
83
92
  { value: "Active", label: "Active" },
84
93
  { value: "Finished", label: "Finished" },
85
94
  { value: "Archived", label: "Archived" },
86
- ], className: "h-8 text-xs" }) })] })] }), _jsxs("div", { className: "mt-3", children: [_jsxs("div", { className: "mb-2 flex items-baseline justify-between gap-3", children: [_jsxs("div", { className: "text-sm font-semibold text-slate-900", children: ["$", normalizedCostUsed.toFixed(2)] }), _jsx("div", { className: "text-xs text-slate-600", children: hasCostLimit ? `Limit: $${selectedProjectCostLimit?.toFixed(2)}` : "Limit: No limit" })] }), _jsxs("div", { className: "mb-1.5 flex items-center justify-between text-[11px] font-semibold uppercase tracking-wider text-slate-500", children: [_jsx("span", { children: "Cumulative cost" }), _jsxs("span", { className: "normal-case tracking-normal text-slate-600", children: ["$", normalizedCostUsed.toFixed(2), hasCostLimit ? ` / $${selectedProjectCostLimit?.toFixed(2)}` : " (No limit)"] })] }), _jsx("div", { className: "h-2 w-full overflow-hidden rounded-full bg-slate-100", children: hasCostLimit ? (_jsx("div", { className: `h-full ${costProgressClassName}`, style: { width: `${costProgressPct}%` } })) : (_jsx("div", { className: "h-full w-1/3 bg-slate-300/80" })) })] })] }), _jsxs("div", { className: "mb-3 flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(FolderTree, { className: "h-4 w-4 text-slate-600" }), _jsx("button", { type: "button", className: "text-left text-base font-semibold tracking-tight text-slate-900 hover:text-slate-700", onClick: () => setIsCollapsed((prev) => !prev), "aria-label": isCollapsed ? "Expand dashboard" : "Collapse dashboard", title: isCollapsed ? "Expand dashboard" : "Collapse dashboard", children: "Progress" }), _jsx("span", { className: "rounded-full bg-secondary px-2.5 py-0.5 text-xs font-semibold text-secondary-foreground", children: rows.length })] }), _jsxs("div", { className: "flex items-center gap-2", children: [loading && (_jsxs("div", { className: "flex items-center gap-1 text-xs text-slate-500", children: [_jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin" }), "Updating"] })), _jsx("button", { type: "button", className: "flex h-5 w-5 shrink-0 items-center justify-center rounded-sm text-slate-500 hover:bg-slate-100 hover:text-slate-700", onClick: () => setIsCollapsed((prev) => !prev), "aria-label": isCollapsed ? "Expand dashboard" : "Collapse dashboard", title: isCollapsed ? "Expand dashboard" : "Collapse dashboard", children: _jsx(ChevronDown, { className: `h-3.5 w-3.5 transition-transform ${isCollapsed ? "rotate-0" : "rotate-180"}` }) })] })] }), !isCollapsed && (_jsxs(_Fragment, { children: [_jsx("div", { className: hasSubprojects ? "space-y-2" : "space-y-3", children: rows.map((row) => {
95
+ ], className: "h-7 text-xs" }) })] })] }), _jsxs("div", { className: "mt-3", children: [_jsxs("div", { className: "mb-1.5 flex items-center justify-between text-[11px] font-semibold uppercase tracking-wider text-slate-500", children: [_jsx("span", { children: "Cumulative cost" }), _jsxs("span", { className: "normal-case tracking-normal text-slate-600", children: ["$", normalizedCostUsed.toFixed(2), ` / $${effectiveCostLimit.toFixed(2)}`] })] }), _jsx("div", { className: "h-2 w-full overflow-hidden rounded-full bg-slate-100", "data-testid": "taskboard-project-cost-bar", children: _jsx("div", { className: `h-full ${costProgressClassName}`, style: { width: `${costProgressPct}%` } }) })] })] }), _jsxs(_Fragment, { children: [_jsx("div", { className: hasSubprojects ? "space-y-2" : "space-y-3", "data-testid": "taskboard-project-progress-rows", children: rows.map((row) => {
87
96
  const isRootRow = row.projectId === "selected-project";
88
- return (_jsxs("div", { className: row.compact ? "space-y-0.5" : "space-y-1", children: [_jsxs("div", { className: `flex items-center justify-between gap-4 ${row.compact ? "text-xs" : "text-sm"} ${row.indented ? "pl-4" : ""}`, children: [isRootRow && hasSubprojects ? (_jsx("button", { type: "button", className: `truncate text-left text-slate-800 hover:text-slate-900 ${row.compact ? "font-medium" : "font-medium"}`, onClick: () => setShowSubprojects((prev) => !prev), "aria-label": showSubprojects ? "Hide subprojects" : "Show subprojects", title: showSubprojects ? "Hide subprojects" : "Show subprojects", children: row.title })) : row.isLink && onSelectProject ? (_jsx("button", { type: "button", className: `truncate text-left text-slate-700 hover:text-slate-900 ${row.compact ? "font-medium" : "font-medium"}`, onClick: () => onSelectProject(row.projectId), children: row.title })) : (_jsx("div", { className: `truncate text-slate-800 ${row.compact ? "font-medium" : "font-medium"}`, children: row.title })), _jsxs("div", { className: `shrink-0 text-slate-600 ${row.compact ? "text-[11px]" : "text-xs"}`, children: [row.counts.total, " tasks"] })] }), _jsxs("div", { className: `flex items-center gap-2 ${row.indented ? "pl-4 pr-6" : ""}`, children: [_jsx("div", { className: "min-w-0 flex-1", children: _jsx(TaskStateProgressBar, { counts: row.counts, compact: row.compact }) }), hasSubprojects && isRootRow && (_jsx("button", { type: "button", className: "flex h-5 w-5 shrink-0 items-center justify-center rounded-sm text-slate-500 hover:bg-slate-100 hover:text-slate-700", onClick: () => setShowSubprojects((prev) => !prev), "aria-label": showSubprojects ? "Hide subprojects" : "Show subprojects", title: showSubprojects ? "Hide subprojects" : "Show subprojects", children: _jsx(ChevronDown, { className: `h-3.5 w-3.5 transition-transform ${showSubprojects ? "rotate-180" : "rotate-0"}` }) }))] })] }, row.projectId));
89
- }) }), _jsx("div", { className: "mt-4 grid grid-cols-2 gap-1 text-[11px] sm:grid-cols-4", children: STATE_STOPS.map((stop) => (_jsxs("div", { className: "flex items-center gap-1.5 text-slate-600", children: [_jsx("span", { className: `inline-block h-2 w-2 rounded-full ${stop.segmentClassName}` }), _jsx("span", { children: stop.label })] }, stop.key))) })] }))] }));
97
+ const rootLabelClass = "text-[11px] font-semibold uppercase tracking-wider text-slate-500";
98
+ return (_jsxs("div", { className: row.compact ? "space-y-0.5" : "space-y-1", "data-testid": `taskboard-project-progress-row-${row.projectId}`, children: [_jsxs("div", { className: `flex items-center justify-between gap-4 ${row.compact ? "text-xs" : "text-sm"} ${row.indented ? "pl-4" : ""}`, children: [isRootRow && hasSubprojects ? (_jsx("button", { type: "button", className: `truncate text-left hover:text-slate-600 ${rootLabelClass}`, onClick: () => setShowSubprojects((prev) => !prev), "aria-label": showSubprojects ? "Hide subprojects" : "Show subprojects", title: showSubprojects ? "Hide subprojects" : "Show subprojects", "data-testid": "taskboard-subproject-toggle-label", children: row.title })) : row.isLink && onSelectProject ? (_jsx("button", { type: "button", className: `truncate text-left text-slate-700 hover:text-slate-900 ${row.compact ? "font-medium" : "font-medium"}`, onClick: () => onSelectProject(row.projectId), "data-testid": `taskboard-subproject-link-${row.projectId}`, children: row.title })) : (_jsx("div", { className: `truncate ${isRootRow ? rootLabelClass : `text-slate-800 ${row.compact ? "font-medium" : "font-medium"}`}`, children: row.title })), _jsxs("div", { className: `shrink-0 text-slate-600 ${row.compact ? "text-[11px]" : "text-xs"}`, children: [row.counts.total, " tasks"] })] }), _jsxs("div", { className: `flex items-center gap-2 ${row.indented ? "pl-4 pr-6" : ""}`, children: [_jsx("div", { className: "min-w-0 flex-1", children: _jsx(TaskStateProgressBar, { counts: row.counts, compact: row.compact }) }), hasSubprojects && isRootRow && (_jsx("button", { type: "button", className: "flex h-5 w-5 shrink-0 items-center justify-center rounded-sm text-slate-500 hover:bg-slate-100 hover:text-slate-700", onClick: () => setShowSubprojects((prev) => !prev), "aria-label": showSubprojects ? "Hide subprojects" : "Show subprojects", title: showSubprojects ? "Hide subprojects" : "Show subprojects", "data-testid": "taskboard-subproject-toggle-button", children: _jsx(ChevronDown, { className: `h-3.5 w-3.5 transition-transform ${showSubprojects ? "rotate-180" : "rotate-0"}` }) }))] })] }, row.projectId));
99
+ }) }), _jsx("div", { className: "mt-4 grid grid-cols-2 gap-1 text-[11px] sm:grid-cols-4", children: STATE_STOPS.map((stop) => (_jsxs("div", { className: "flex items-center gap-1.5 text-slate-600", children: [_jsx("span", { className: `inline-block h-2 w-2 rounded-full ${stop.segmentClassName}` }), _jsx("span", { children: stop.label })] }, stop.key))) })] })] }));
90
100
  }
91
101
  //# sourceMappingURL=ProjectDashboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectDashboard.js","sourceRoot":"","sources":["../../../src/task-board/components/ProjectDashboard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectDashboard.js","sourceRoot":"","sources":["../../../src/task-board/components/ProjectDashboard.tsx"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ import { Textarea } from "../../components/ui/textarea";
11
11
  import { Settings } from "lucide-react";
12
12
  import { addProjectMember, getProjectMembers, removeProjectMember, updateProject, } from "../services/taskService";
13
13
  export function ProjectSettingsDialog(props) {
14
+ const DEFAULT_COST_LIMIT = "25";
14
15
  const { open, onOpenChange, projectId, selectedProject, onChanged } = props;
15
16
  const [members, setMembers] = useState([]);
16
17
  const [loading, setLoading] = useState(false);
@@ -29,7 +30,7 @@ export function ProjectSettingsDialog(props) {
29
30
  return;
30
31
  setTitleInput(selectedProject.project.title ?? "");
31
32
  setDescriptionInput(selectedProject.project.description ?? "");
32
- setCostLimitInput(selectedProject.project.costLimit == null ? "" : String(selectedProject.project.costLimit));
33
+ setCostLimitInput(selectedProject.project.costLimit == null ? DEFAULT_COST_LIMIT : String(selectedProject.project.costLimit));
33
34
  setStatusInput(selectedProject.project.status ?? "Active");
34
35
  }, [open, selectedProject]);
35
36
  const refreshMembers = async () => {
@@ -91,9 +92,9 @@ export function ProjectSettingsDialog(props) {
91
92
  toast.error("Project title is required");
92
93
  return;
93
94
  }
94
- const parsedCostLimit = costLimitInput.trim() ? Number(costLimitInput) : null;
95
- if (parsedCostLimit != null && Number.isNaN(parsedCostLimit)) {
96
- toast.error("Cost limit must be a number");
95
+ const parsedCostLimit = Number(costLimitInput);
96
+ if (Number.isNaN(parsedCostLimit) || parsedCostLimit <= 0) {
97
+ toast.error("Cost limit must be greater than 0");
97
98
  return;
98
99
  }
99
100
  setSavingProject(true);
@@ -109,8 +110,9 @@ export function ProjectSettingsDialog(props) {
109
110
  toast.error(result.summary || "Failed to update project");
110
111
  return;
111
112
  }
112
- toast.success("Project settings updated");
113
+ // toast.success("Project settings updated");
113
114
  await onChanged();
115
+ onOpenChange(false);
114
116
  }
115
117
  finally {
116
118
  setSavingProject(false);
@@ -128,19 +130,19 @@ export function ProjectSettingsDialog(props) {
128
130
  await refreshMembers();
129
131
  await onChanged();
130
132
  };
131
- return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { className: "max-w-2xl", children: [_jsx(StyledDialogTitle, { icon: _jsx(Settings, { strokeWidth: 1 }), title: "Project Settings", subtitle: title }), _jsxs("div", { className: "grid gap-6 p-6", children: [_jsxs("div", { className: "grid gap-4 rounded-md border p-4", children: [_jsxs("div", { className: "grid gap-2", children: [_jsx("div", { className: "text-sm font-semibold", children: "General" }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Update project name, description, and budget limit." })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectSettingsTitle", children: "Title" }), _jsx(Input, { id: "projectSettingsTitle", value: titleInput, onChange: (e) => setTitleInput(e.target.value), disabled: !canManage || savingProject, placeholder: "Project title" })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectSettingsDescription", children: "Description" }), _jsx(Textarea, { id: "projectSettingsDescription", value: descriptionInput, onChange: (e) => setDescriptionInput(e.target.value), disabled: !canManage || savingProject, placeholder: "Optional description", rows: 3 })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectSettingsCostLimit", children: "Cost limit" }), _jsx(Input, { id: "projectSettingsCostLimit", value: costLimitInput, onChange: (e) => setCostLimitInput(e.target.value), disabled: !canManage || savingProject, placeholder: "Unlimited" })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectSettingsStatus", children: "Status" }), _jsx(Select, { id: "projectSettingsStatus", value: statusInput, onValueChange: (v) => setStatusInput(v), disabled: !canManage || savingProject, options: [
132
- { value: "Planning", label: "Planning" },
133
- { value: "PlanPending", label: "Plan Pending" },
134
- { value: "Active", label: "Active" },
135
- { value: "Finished", label: "Finished" },
136
- { value: "Archived", label: "Archived" },
137
- ] })] })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx("div", { className: "text-sm font-semibold", children: "Members" }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Owners can add users or roles to this project." })] }), _jsxs("div", { className: "grid grid-cols-12 gap-2", children: [_jsxs("div", { className: "col-span-3", children: [_jsx(Label, { children: "Type" }), _jsx(Select, { value: memberType, onValueChange: (v) => setMemberType(v), options: [
138
- { value: "User", label: "User" },
139
- { value: "Role", label: "Role" },
140
- ] })] }), _jsxs("div", { className: "col-span-5", children: [_jsx(Label, { children: "Identifier" }), _jsx(Input, { value: memberIdentifier, onChange: (e) => setMemberIdentifier(e.target.value), placeholder: memberType === "User" ? "sitecore\\john" : "sitecore\\Author" })] }), _jsxs("div", { className: "col-span-3", children: [_jsx(Label, { children: "Permission" }), _jsx(Select, { value: permission, onValueChange: (v) => setPermission(v), options: [
141
- { value: "Viewer", label: "Viewer" },
142
- { value: "Editor", label: "Editor" },
143
- { value: "Owner", label: "Owner" },
144
- ] })] }), _jsx("div", { className: "col-span-1 flex items-end", children: _jsx(Button, { size: "icon", onClick: submitAdd, disabled: !canManage, children: "+" }) })] }), _jsx("div", { className: "max-h-72 overflow-auto rounded-md border", children: loading ? (_jsx("div", { className: "p-3 text-sm text-muted-foreground", children: "Loading\u2026" })) : members.length === 0 ? (_jsx("div", { className: "p-3 text-sm text-muted-foreground", children: "No members" })) : (_jsx("div", { className: "divide-y", children: members.map((m) => (_jsxs("div", { className: "flex items-center justify-between gap-2 p-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate text-sm font-medium", children: m.memberIdentifier }), _jsxs("div", { className: "truncate text-xs text-muted-foreground", children: [m.memberType, " \u2022 ", m.permission] })] }), _jsx(Button, { variant: "secondary", onClick: () => submitRemove(m.memberId), disabled: !canManage, children: "Remove" })] }, m.memberId))) })) })] }), _jsxs(DialogFooter, { className: "flex items-center justify-end gap-2 p-6 pt-0", children: [_jsx(Button, { onClick: submitProjectSettings, disabled: !canManage || savingProject || !titleInput.trim(), children: savingProject ? "Saving..." : "Save Changes" }), _jsx(Button, { variant: "outline", onClick: () => onOpenChange(false), children: "Close" })] })] }) }));
133
+ return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { className: "max-w-2xl", children: [_jsx(StyledDialogTitle, { icon: _jsx(Settings, { strokeWidth: 1 }), title: "Project Settings", subtitle: title }), _jsxs("div", { className: "grid gap-6 p-6", children: [_jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectSettingsTitle", children: "Title" }), _jsx(Input, { id: "projectSettingsTitle", value: titleInput, onChange: (e) => setTitleInput(e.target.value), disabled: !canManage || savingProject, placeholder: "Project title" })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectSettingsDescription", children: "Description" }), _jsx(Textarea, { id: "projectSettingsDescription", className: "text-xs", value: descriptionInput, onChange: (e) => setDescriptionInput(e.target.value), disabled: !canManage || savingProject, placeholder: "Optional description", rows: 3 })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectSettingsCostLimit", children: "Cost limit" }), _jsx(Input, { id: "projectSettingsCostLimit", value: costLimitInput, onChange: (e) => setCostLimitInput(e.target.value), disabled: !canManage || savingProject, placeholder: DEFAULT_COST_LIMIT })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: "projectSettingsStatus", children: "Status" }), _jsx(Select, { id: "projectSettingsStatus", value: statusInput, onValueChange: (v) => setStatusInput(v), disabled: !canManage || savingProject, options: [
134
+ { value: "Planning", label: "Planning" },
135
+ { value: "PlanPending", label: "Plan Pending" },
136
+ { value: "Active", label: "Active" },
137
+ { value: "Finished", label: "Finished" },
138
+ { value: "Archived", label: "Archived" },
139
+ ] })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx("div", { className: "text-sm font-semibold", children: "Members" }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Owners can add users or roles to this project." })] }), _jsxs("div", { className: "grid grid-cols-12 items-end gap-2", children: [_jsx("div", { className: "col-span-3", children: _jsxs("div", { className: "grid gap-1.5", children: [_jsx(Label, { className: "text-xs", children: "Type" }), _jsx(Select, { value: memberType, onValueChange: (v) => setMemberType(v), options: [
140
+ { value: "User", label: "User" },
141
+ { value: "Role", label: "Role" },
142
+ ] })] }) }), _jsx("div", { className: "col-span-5", children: _jsxs("div", { className: "grid gap-1.5", children: [_jsx(Label, { className: "text-xs", children: "Identifier" }), _jsx(Input, { className: "h-[29px]", value: memberIdentifier, onChange: (e) => setMemberIdentifier(e.target.value), placeholder: memberType === "User" ? "sitecore\\john" : "sitecore\\Author" })] }) }), _jsx("div", { className: "col-span-3", children: _jsxs("div", { className: "grid gap-1.5", children: [_jsx(Label, { className: "text-xs", children: "Permission" }), _jsx(Select, { value: permission, onValueChange: (v) => setPermission(v), options: [
143
+ { value: "Viewer", label: "Viewer" },
144
+ { value: "Editor", label: "Editor" },
145
+ { value: "Owner", label: "Owner" },
146
+ ] })] }) }), _jsx("div", { className: "col-span-1", children: _jsx(Button, { size: "icon", className: "h-[29px] w-[29px]", onClick: submitAdd, disabled: !canManage, children: "+" }) })] }), _jsx("div", { className: "max-h-72 overflow-auto rounded-md border", children: loading ? (_jsx("div", { className: "p-3 text-sm text-muted-foreground", children: "Loading\u2026" })) : members.length === 0 ? (_jsx("div", { className: "p-3 text-sm text-muted-foreground", children: "No members" })) : (_jsx("div", { className: "divide-y", children: members.map((m) => (_jsxs("div", { className: "flex items-center justify-between gap-2 p-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate text-sm font-medium", children: m.memberIdentifier }), _jsxs("div", { className: "truncate text-xs text-muted-foreground", children: [m.memberType, " \u2022 ", m.permission] })] }), _jsx(Button, { variant: "secondary", onClick: () => submitRemove(m.memberId), disabled: !canManage, children: "Remove" })] }, m.memberId))) })) })] }), _jsxs(DialogFooter, { className: "flex items-center justify-end gap-2 p-6 pt-0", children: [_jsx(Button, { onClick: submitProjectSettings, disabled: !canManage || savingProject || !titleInput.trim(), children: savingProject ? "Saving..." : "Save Changes" }), _jsx(Button, { variant: "outline", onClick: () => onOpenChange(false), children: "Close" })] })] }) }));
145
147
  }
146
148
  //# sourceMappingURL=ProjectSettingsDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectSettingsDialog.js","sourceRoot":"","sources":["../../../src/task-board/components/ProjectSettingsDialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectSettingsDialog.js","sourceRoot":"","sources":["../../../src/task-board/components/ProjectSettingsDialog.tsx"],"names":[],"mappings":"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"}
@@ -4,7 +4,12 @@ export declare function TaskAgentPanel(props: {
4
4
  mode: TaskAgentPanelMode;
5
5
  label?: string;
6
6
  onAssignAgent?: () => void;
7
+ onRunAssignedAgent?: () => void;
8
+ hasAssignedAgentProfile?: boolean;
9
+ assignedAgentProfileName?: string | null;
7
10
  canAssignAgent?: boolean;
8
11
  assignAgentDisabledReason?: string;
12
+ canRunAssignedAgent?: boolean;
13
+ runAssignedAgentDisabledReason?: string;
9
14
  onStartPlanning?: () => void | Promise<void>;
10
15
  }): import("react/jsx-runtime").JSX.Element;
@@ -5,7 +5,7 @@ import { Button } from "../../components/ui/button";
5
5
  import { AgentTerminal } from "../../editor/ai/AgentTerminal";
6
6
  import { loadAiProfiles } from "../../editor/services/aiService";
7
7
  export function TaskAgentPanel(props) {
8
- const { agentId, mode, label, onAssignAgent, canAssignAgent = true, assignAgentDisabledReason, onStartPlanning } = props;
8
+ const { agentId, mode, label, onAssignAgent, onRunAssignedAgent, hasAssignedAgentProfile = false, assignedAgentProfileName, canAssignAgent = true, assignAgentDisabledReason, canRunAssignedAgent = true, runAssignedAgentDisabledReason, onStartPlanning, } = props;
9
9
  const [profiles, setProfiles] = useState([]);
10
10
  useEffect(() => {
11
11
  let cancelled = false;
@@ -28,13 +28,19 @@ export function TaskAgentPanel(props) {
28
28
  status: "running",
29
29
  };
30
30
  }, [agentId]);
31
+ const canPerformPrimaryAction = hasAssignedAgentProfile ? canRunAssignedAgent : canAssignAgent;
32
+ const primaryActionDisabledReason = hasAssignedAgentProfile
33
+ ? runAssignedAgentDisabledReason
34
+ : assignAgentDisabledReason;
31
35
  // ── empty states ──
32
36
  if (mode === "no-task-selected") {
33
37
  return (_jsxs("div", { className: "flex h-full flex-col border-l bg-white", children: [_jsxs("div", { className: "flex items-center gap-2 border-b px-4 py-3", children: [_jsx(Bot, { className: "h-5 w-5 text-muted-foreground" }), _jsx("div", { className: "text-sm font-semibold", children: label || "Agent" })] }), _jsxs("div", { className: "flex flex-1 flex-col items-center justify-center gap-3 p-6 text-center", children: [_jsx(Bot, { className: "h-10 w-10 text-muted-foreground/40" }), _jsxs("div", { className: "grid gap-1", children: [_jsx("div", { className: "text-sm font-medium text-muted-foreground", children: "No task selected" }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Click on a task to see its agent here." })] })] })] }));
34
38
  }
35
39
  if (!agentStub) {
36
40
  // mode === "no-agent"
37
- return (_jsxs("div", { className: "flex h-full flex-col border-l bg-white", children: [_jsxs("div", { className: "flex items-center gap-2 border-b px-4 py-3", children: [_jsx(Bot, { className: "h-5 w-5 text-muted-foreground" }), _jsx("div", { className: "text-sm font-semibold", children: label || "Agent" })] }), _jsxs("div", { className: "flex flex-1 flex-col items-center justify-center gap-4 p-6 text-center", children: [_jsx(Bot, { className: "h-10 w-10 text-muted-foreground/40" }), _jsxs("div", { className: "grid gap-1", children: [_jsxs("div", { className: "flex items-center justify-center gap-2", children: [_jsx("div", { className: "text-sm font-medium text-muted-foreground", children: "No agent assigned" }), onAssignAgent && (_jsxs(Button, { variant: "outline", size: "sm", onClick: onAssignAgent, disabled: !canAssignAgent, title: !canAssignAgent ? assignAgentDisabledReason : undefined, children: [_jsx(UserPlus, { className: "mr-2 h-4 w-4" }), "Assign and run agent"] }))] }), _jsx("div", { className: "text-xs text-muted-foreground", children: "This task does not have an agent assigned yet." }), !canAssignAgent && assignAgentDisabledReason && (_jsx("div", { className: "text-xs text-amber-600", children: assignAgentDisabledReason }))] }), onStartPlanning && (_jsxs(Button, { variant: "default", size: "sm", onClick: onStartPlanning, children: [_jsx(Play, { className: "mr-1 h-4 w-4" }), "Start Planning"] }))] })] }));
41
+ return (_jsxs("div", { className: "flex h-full flex-col border-l bg-white", children: [_jsxs("div", { className: "flex items-center gap-2 border-b px-4 py-3", children: [_jsx(Bot, { className: "h-5 w-5 text-muted-foreground" }), _jsx("div", { className: "text-sm font-semibold", children: label || "Agent" })] }), _jsxs("div", { className: "flex flex-1 flex-col items-center justify-center gap-4 p-6 text-center", children: [_jsx(Bot, { className: "h-10 w-10 text-muted-foreground/40" }), _jsxs("div", { className: "grid gap-1", children: [_jsxs("div", { className: "flex items-center justify-center gap-2", children: [_jsx("div", { className: "text-sm font-medium text-muted-foreground", children: hasAssignedAgentProfile ? "No agent running" : "No agent assigned" }), (onAssignAgent || onRunAssignedAgent) && (_jsxs(Button, { variant: "outline", size: "sm", onClick: hasAssignedAgentProfile ? onRunAssignedAgent : onAssignAgent, disabled: !canPerformPrimaryAction, title: !canPerformPrimaryAction ? primaryActionDisabledReason : undefined, children: [hasAssignedAgentProfile ? (_jsx(Play, { className: "mr-2 h-4 w-4" })) : (_jsx(UserPlus, { className: "mr-2 h-4 w-4" })), hasAssignedAgentProfile ? "Run agent" : "Assign and run agent"] }))] }), _jsx("div", { className: "text-xs text-muted-foreground", children: hasAssignedAgentProfile
42
+ ? `This task already has an assigned agent profile (${assignedAgentProfileName || "Unknown profile"}).`
43
+ : "This task does not have an agent assigned yet." }), !canPerformPrimaryAction && primaryActionDisabledReason && (_jsx("div", { className: "text-xs text-amber-600", children: primaryActionDisabledReason }))] }), onStartPlanning && (_jsxs(Button, { variant: "default", size: "sm", onClick: onStartPlanning, children: [_jsx(Play, { className: "mr-1 h-4 w-4" }), "Start Planning"] }))] })] }));
38
44
  }
39
45
  // ── agent terminal ──
40
46
  return (_jsx("div", { className: "flex h-full flex-col border-l bg-white", children: _jsx(AgentTerminal, { agentStub: agentStub, profiles: profiles, isActive: true, compact: true, hideGreeting: true }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"TaskAgentPanel.js","sourceRoot":"","sources":["../../../src/task-board/components/TaskAgentPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskAgentPanel.js","sourceRoot":"","sources":["../../../src/task-board/components/TaskAgentPanel.tsx"],"names":[],"mappings":"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"}
@@ -33,12 +33,12 @@ export function TaskBoardTitlebar() {
33
33
  });
34
34
  }, [nav.projectOptions, projectSearch, hideArchivedProjects]);
35
35
  const showEditorPanel = editContext?.showAgentsWorkspaceEditor ?? true;
36
- return (_jsxs("div", { className: "flex w-full items-center justify-between gap-4 pr-2", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsxs(Popover, { open: projectPopoverOpen, onOpenChange: setProjectPopoverOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("button", { type: "button", className: "group flex min-w-0 items-center gap-2 rounded-md px-2 py-1 text-left hover:bg-slate-100/70", title: "Select project", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate text-sm font-semibold text-slate-900", children: nav.projectTitle }), _jsxs("div", { className: "mt-0.5 flex items-center gap-2", children: [_jsx("div", { className: "h-1.5 w-1.5 rounded-full bg-green-500" }), _jsx("span", { className: "truncate text-[11px] text-slate-500", children: nav.projectSubtitle }), _jsx("span", { className: "truncate text-[10px] font-semibold uppercase tracking-wider text-slate-400", children: nav.permissionLabel })] })] }), _jsx(ChevronDown, { className: "h-4 w-4 shrink-0 text-slate-500 group-hover:text-slate-700" })] }) }), _jsxs(PopoverContent, { align: "start", sideOffset: 8, className: "w-[420px] p-0", children: [_jsxs("div", { className: "flex items-center justify-between border-b px-3 py-2", children: [_jsx("div", { className: "text-xs font-semibold uppercase tracking-wider text-slate-500", children: "Projects" }), _jsxs(Button, { variant: "ghost", size: "sm", className: "h-7 px-2", onClick: () => nav.onCreateProject?.(), children: [_jsx(FolderPlus, { className: "mr-1.5 h-3.5 w-3.5" }), "New"] })] }), _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: "pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-slate-400" }), _jsx(Input, { value: projectSearch, onChange: (e) => setProjectSearch(e.target.value), placeholder: "Search projects...", className: "h-8 pl-8 text-xs" })] }), _jsxs("label", { className: "flex items-center gap-2 text-xs text-slate-600", children: [_jsx("input", { type: "checkbox", checked: hideArchivedProjects, onChange: (e) => setHideArchivedProjects(e.target.checked) }), "Hide archived projects"] })] }) }), _jsx("div", { className: "max-h-[360px] overflow-y-auto p-2", children: nav.projectOptions.length === 0 ? (_jsx("div", { className: "rounded-md border border-dashed px-3 py-8 text-center text-xs text-slate-400", children: "No projects yet" })) : filteredProjectOptions.length === 0 ? (_jsx("div", { className: "rounded-md border border-dashed px-3 py-8 text-center text-xs text-slate-400", children: "No matching projects" })) : (_jsx("div", { className: "flex flex-col gap-1", children: filteredProjectOptions.map((project) => {
36
+ return (_jsxs("div", { className: "flex w-full items-center justify-between gap-4 pr-2", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsxs(Popover, { open: projectPopoverOpen, onOpenChange: setProjectPopoverOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("button", { type: "button", "data-testid": "taskboard-project-selector-trigger", className: "group flex min-w-0 items-center gap-2 rounded-md px-2 py-1 text-left hover:bg-slate-100/70", title: "Select project", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate text-sm font-semibold text-slate-900", children: nav.projectTitle }), _jsxs("div", { className: "mt-0.5 flex items-center gap-2", children: [_jsx("div", { className: "h-1.5 w-1.5 rounded-full bg-green-500" }), _jsx("span", { className: "truncate text-[11px] text-slate-500", children: nav.projectSubtitle }), _jsx("span", { className: "truncate text-[10px] font-semibold uppercase tracking-wider text-slate-400", children: nav.permissionLabel })] })] }), _jsx(ChevronDown, { className: "h-4 w-4 shrink-0 text-slate-500 group-hover:text-slate-700" })] }) }), _jsxs(PopoverContent, { align: "start", sideOffset: 8, className: "w-[420px] p-0", "data-testid": "taskboard-project-popover", children: [_jsxs("div", { className: "flex items-center justify-between border-b px-3 py-2", children: [_jsx("div", { className: "text-xs font-semibold uppercase tracking-wider text-slate-500", children: "Projects" }), _jsxs(Button, { variant: "ghost", size: "sm", className: "h-7 px-2", "data-testid": "taskboard-create-project-button", onClick: () => nav.onCreateProject?.(), children: [_jsx(FolderPlus, { className: "mr-1.5 h-3.5 w-3.5" }), "New"] })] }), _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: "pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-slate-400" }), _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: "flex items-center gap-2 text-xs text-slate-600", children: [_jsx("input", { type: "checkbox", checked: hideArchivedProjects, onChange: (e) => setHideArchivedProjects(e.target.checked) }), "Hide archived projects"] })] }) }), _jsx("div", { className: "max-h-[360px] overflow-y-auto p-2", children: nav.projectOptions.length === 0 ? (_jsx("div", { className: "rounded-md border border-dashed px-3 py-8 text-center text-xs text-slate-400", children: "No projects yet" })) : filteredProjectOptions.length === 0 ? (_jsx("div", { className: "rounded-md border border-dashed px-3 py-8 text-center text-xs text-slate-400", children: "No matching projects" })) : (_jsx("div", { className: "flex flex-col gap-1", children: filteredProjectOptions.map((project) => {
37
37
  const isSelected = project.projectId === nav.selectedProjectId;
38
38
  const canManage = project.permission === "Owner";
39
39
  const isSubproject = (project.depth ?? 0) > 0;
40
40
  const indent = Math.max(0, Math.min(project.depth ?? 0, 6)) * 14;
41
- return (_jsxs("div", { className: cn("group relative flex items-start justify-between gap-2 rounded-lg border px-2.5 transition-all", isSubproject ? "py-1.5" : "py-2", isSelected
41
+ return (_jsxs("div", { "data-testid": `taskboard-project-option-${project.projectId}`, className: cn("group relative flex items-start justify-between gap-2 rounded-lg border px-2.5 transition-all", isSubproject ? "py-1.5" : "py-2", isSelected
42
42
  ? "border-slate-300 bg-slate-50"
43
43
  : "border-transparent hover:border-slate-200 hover:bg-slate-50/60"), children: [_jsxs("button", { type: "button", className: "min-w-0 flex-1 text-left", style: { paddingLeft: indent > 0 ? `${indent}px` : undefined }, onClick: () => {
44
44
  nav.onSelectProject?.(project.projectId);
@@ -51,10 +51,10 @@ export function TaskBoardTitlebar() {
51
51
  e.stopPropagation();
52
52
  nav.onDeleteProject?.(project.projectId, project.title);
53
53
  }, title: "Delete project", children: _jsx(Trash2, { className: "h-3.5 w-3.5" }) })] }))] }, project.projectId));
54
- }) })) })] })] }), _jsx("div", { className: "mx-1 h-8 w-[1px] bg-slate-200" }), _jsxs(Button, { size: "sm", onClick: () => nav.onCreateTask?.(), disabled: !nav.hasSelectedProject || !nav.canCreateTask, className: "h-8 px-3", children: [_jsx(Plus, { className: "mr-1.5 h-4 w-4" }), "New Task"] }), _jsxs(Button, { size: "sm", variant: "outline", onClick: () => nav.onRunOrchestrator?.(), disabled: !nav.hasSelectedProject || !nav.canRunOrchestrator || nav.runningOrchestrator, className: "h-8 px-3", title: "Run orchestrator to launch queued agent tasks", children: [nav.runningOrchestrator ? (_jsx(Loader2, { className: "mr-1.5 h-4 w-4 animate-spin" })) : (_jsx(Play, { className: "mr-1.5 h-4 w-4" })), "Run Tasks"] }), _jsx(Button, { variant: "outline", size: "icon", onClick: () => nav.onRefresh?.(), disabled: !nav.hasSelectedProject, className: "h-8 w-8", title: "Refresh tasks", children: _jsx(RefreshCw, { className: "h-4 w-4 text-slate-500" }) }), _jsx(Button, { variant: "outline", size: "icon", onClick: () => {
54
+ }) })) })] })] }), _jsx("div", { className: "mx-1 h-8 w-[1px] bg-slate-200" }), _jsxs(Button, { size: "sm", onClick: () => nav.onCreateTask?.(), disabled: !nav.hasSelectedProject || !nav.canCreateTask, className: "h-8 px-3", "data-testid": "taskboard-create-task-button", children: [_jsx(Plus, { className: "mr-1.5 h-4 w-4" }), "New Task"] }), _jsxs(Button, { size: "sm", variant: "outline", onClick: () => nav.onRunOrchestrator?.(), disabled: !nav.hasSelectedProject || !nav.canRunOrchestrator || nav.runningOrchestrator, className: "h-8 px-3", title: "Run orchestrator to launch queued agent tasks", "data-testid": "taskboard-run-tasks-button", children: [nav.runningOrchestrator ? (_jsx(Loader2, { className: "mr-1.5 h-4 w-4 animate-spin" })) : (_jsx(Play, { className: "mr-1.5 h-4 w-4" })), "Run Tasks"] }), _jsx(Button, { variant: "outline", size: "icon", onClick: () => nav.onRefresh?.(), disabled: !nav.hasSelectedProject, className: "h-8 w-8", title: "Refresh tasks", "data-testid": "taskboard-refresh-button", children: _jsx(RefreshCw, { className: "h-4 w-4 text-slate-500" }) }), _jsx(Button, { variant: "outline", size: "icon", onClick: () => {
55
55
  if (nav.selectedProjectId) {
56
56
  nav.onOpenProjectSettings?.(nav.selectedProjectId);
57
57
  }
58
- }, disabled: !nav.hasSelectedProject || !nav.canManageProject, className: "h-8 w-8", title: "Project settings", children: _jsx(Settings, { className: "h-4 w-4 text-slate-500" }) })] }), _jsx(SimpleIconButton, { icon: _jsx(SquarePen, { className: "h-5 w-5", strokeWidth: 1 }), label: showEditorPanel ? "Hide Editor" : "Show Editor", size: "large", "data-testid": "taskboard-editor-panel-toggle", selected: showEditorPanel, onClick: () => editContext?.setShowAgentsWorkspaceEditor(!showEditorPanel) })] }));
58
+ }, disabled: !nav.hasSelectedProject || !nav.canManageProject, className: "h-8 w-8", title: "Project settings", "data-testid": "taskboard-project-settings-button", children: _jsx(Settings, { className: "h-4 w-4 text-slate-500" }) })] }), _jsx(SimpleIconButton, { icon: _jsx(SquarePen, { className: "h-5 w-5", strokeWidth: 1 }), label: showEditorPanel ? "Hide Editor" : "Show Editor", size: "large", "data-testid": "taskboard-editor-panel-toggle", selected: showEditorPanel, onClick: () => editContext?.setShowAgentsWorkspaceEditor(!showEditorPanel) })] }));
59
59
  }
60
60
  //# sourceMappingURL=TaskBoardTitlebar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TaskBoardTitlebar.js","sourceRoot":"","sources":["../../../src/task-board/components/TaskBoardTitlebar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskBoardTitlebar.js","sourceRoot":"","sources":["../../../src/task-board/components/TaskBoardTitlebar.tsx"],"names":[],"mappings":"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"}