@tutti-os/workspace-issue-manager 0.0.4 → 0.0.5

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.
@@ -599,6 +599,7 @@ async function executeIssueManagerRunTask(input) {
599
599
  workspaceId: input.workspaceId
600
600
  });
601
601
  return {
602
+ ...result.errorMessage?.trim() ? { errorMessage: result.errorMessage.trim() } : {},
602
603
  status: result.status
603
604
  };
604
605
  }
@@ -920,6 +921,28 @@ function createIssueManagerControllerActions(input) {
920
921
  }
921
922
  applyOutcome(createIssueManagerAttachReferencesOutcome(attached));
922
923
  };
924
+ const updateTaskStatus = async (taskId, status, options) => {
925
+ const selectedIssueId = nodeState.selectedIssueId;
926
+ const normalizedTaskId = taskId?.trim() ?? "";
927
+ if (!selectedIssueId || !normalizedTaskId) {
928
+ return;
929
+ }
930
+ try {
931
+ const task = await feature.backend.updateTask({
932
+ issueId: selectedIssueId,
933
+ status,
934
+ taskId: normalizedTaskId,
935
+ workspaceId
936
+ });
937
+ applyOutcome(
938
+ options.selectTaskOnSuccess ? createIssueManagerSaveTaskSuccessOutcome(task.taskId) : {
939
+ refreshAll: true
940
+ }
941
+ );
942
+ } catch (error) {
943
+ notifyError(error, "messages.taskSaveFailed");
944
+ }
945
+ };
923
946
  return {
924
947
  async attachReferences(parentKind) {
925
948
  const fileAdapter = feature.fileAdapter;
@@ -1160,7 +1183,11 @@ function createIssueManagerControllerActions(input) {
1160
1183
  const outcome = createIssueManagerRunTaskSuccessOutcome({
1161
1184
  status: result.status
1162
1185
  });
1163
- applyOutcome(outcome);
1186
+ if (outcome.notificationKey && result.errorMessage?.trim()) {
1187
+ notifyTip(result.errorMessage.trim());
1188
+ } else {
1189
+ applyOutcome(outcome);
1190
+ }
1164
1191
  } catch (error) {
1165
1192
  notifyTip(
1166
1193
  resolveIssueManagerErrorMessage(error, copy, "messages.runFailed")
@@ -1197,6 +1224,7 @@ function createIssueManagerControllerActions(input) {
1197
1224
  )
1198
1225
  );
1199
1226
  }
1227
+ setIsRunningTask(true);
1200
1228
  try {
1201
1229
  trackIssueManagerAnalytics(feature, {
1202
1230
  name: "issue_manager.issue_breakdown_initiated",
@@ -1206,6 +1234,9 @@ function createIssueManagerControllerActions(input) {
1206
1234
  }
1207
1235
  });
1208
1236
  const result = await breakdownLauncher.startBreakdown({
1237
+ ...nodeState.selectedExecutionDirectory?.trim() ? {
1238
+ executionDirectory: nodeState.selectedExecutionDirectory.trim()
1239
+ } : {},
1209
1240
  issueDetail: currentIssueDetail,
1210
1241
  provider: breakdownPlan.provider,
1211
1242
  workspaceId
@@ -1223,6 +1254,8 @@ function createIssueManagerControllerActions(input) {
1223
1254
  "messages.breakdownOpenFailed"
1224
1255
  )
1225
1256
  );
1257
+ } finally {
1258
+ setIsRunningTask(false);
1226
1259
  }
1227
1260
  },
1228
1261
  async saveIssue() {
@@ -1335,23 +1368,13 @@ function createIssueManagerControllerActions(input) {
1335
1368
  notifyError(error, "messages.taskSaveFailed");
1336
1369
  }
1337
1370
  },
1371
+ async setTaskStatus(taskId, status) {
1372
+ await updateTaskStatus(taskId, status, { selectTaskOnSuccess: false });
1373
+ },
1338
1374
  async setSelectedTaskStatus(status) {
1339
- const selectedIssueId = nodeState.selectedIssueId;
1340
- const selectedTaskId = nodeState.selectedTaskId;
1341
- if (!selectedIssueId || !selectedTaskId) {
1342
- return;
1343
- }
1344
- try {
1345
- const task = await feature.backend.updateTask({
1346
- issueId: selectedIssueId,
1347
- status,
1348
- taskId: selectedTaskId,
1349
- workspaceId
1350
- });
1351
- applyOutcome(createIssueManagerSaveTaskSuccessOutcome(task.taskId));
1352
- } catch (error) {
1353
- notifyError(error, "messages.taskSaveFailed");
1354
- }
1375
+ await updateTaskStatus(nodeState.selectedTaskId, status, {
1376
+ selectTaskOnSuccess: true
1377
+ });
1355
1378
  },
1356
1379
  async shareSelection() {
1357
1380
  const selectedIssueId = nodeState.selectedIssueId;
@@ -1942,7 +1965,6 @@ function useIssueManagerNodeView({
1942
1965
  selectedTask,
1943
1966
  shell: {
1944
1967
  onCloseTaskDrawer: () => {
1945
- controller.setTaskEditorMode("read");
1946
1968
  controller.selectTask(null);
1947
1969
  },
1948
1970
  onDismissIssueCreate: () => {
@@ -1962,18 +1984,18 @@ import {
1962
1984
  useEffect as useEffect9,
1963
1985
  useRef as useRef5
1964
1986
  } from "react";
1965
- import { Button as Button12, PanelIcon, cn as cn11 } from "@tutti-os/ui-system";
1987
+ import { Button as Button13, PanelIcon, cn as cn11 } from "@tutti-os/ui-system";
1966
1988
  import { WorkspaceFileReferencePicker } from "@tutti-os/workspace-file-reference/ui";
1967
1989
 
1968
1990
  // src/ui/internal/shell/IssueManagerShell.tsx
1969
1991
  import { useEffect as useEffect7, useState as useState8 } from "react";
1970
- import { Button as Button10, FileCreateIcon as FileCreateIcon4, cn as cn9 } from "@tutti-os/ui-system";
1992
+ import { Button as Button11, FileCreateIcon as FileCreateIcon4, cn as cn9 } from "@tutti-os/ui-system";
1971
1993
 
1972
1994
  // src/ui/internal/shell/IssueManagerPanels.tsx
1973
1995
  import { useState as useState5 } from "react";
1974
1996
  import {
1975
1997
  Badge as Badge2,
1976
- Button as Button4,
1998
+ Button as Button5,
1977
1999
  ConfirmationDialog,
1978
2000
  ScrollArea as ScrollArea2
1979
2001
  } from "@tutti-os/ui-system";
@@ -2001,9 +2023,11 @@ function issueManagerStatusBadgeVariant(status) {
2001
2023
  // src/ui/internal/issue/IssueManagerIssueSections.tsx
2002
2024
  import {
2003
2025
  AgentSessionsIcon,
2026
+ ArrowRightIcon,
2004
2027
  Badge,
2005
2028
  Button as Button2,
2006
2029
  FileCreateIcon as FileCreateIcon2,
2030
+ FileIcon,
2007
2031
  ScrollArea,
2008
2032
  cn
2009
2033
  } from "@tutti-os/ui-system";
@@ -2229,7 +2253,9 @@ function IssueManagerOutputSection({
2229
2253
  outputs.length === 0 ? /* @__PURE__ */ jsx3("p", { className: "text-[13px] font-normal leading-6 text-[var(--text-secondary)]", children: copy.t("messages.noExecutionOutputs") }) : /* @__PURE__ */ jsx3("div", { className: "overflow-hidden rounded-[12px] border border-[var(--line-2)] bg-transparent", children: outputs.map((output) => /* @__PURE__ */ jsxs3(
2230
2254
  "button",
2231
2255
  {
2232
- className: "flex w-full items-start justify-between gap-4 border-b border-[var(--line-2)] px-4 py-3 text-left transition-colors last:border-b-0 hover:bg-transparency-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/25 focus-visible:ring-inset",
2256
+ "aria-label": copy.t("actions.openReference"),
2257
+ className: "flex w-full items-center justify-between gap-4 border-b border-[var(--line-2)] px-4 py-3 text-left transition-colors last:border-b-0 hover:bg-transparency-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/25 focus-visible:ring-inset",
2258
+ title: copy.t("actions.openReference"),
2233
2259
  type: "button",
2234
2260
  onClick: () => {
2235
2261
  void onOpen({
@@ -2239,11 +2265,27 @@ function IssueManagerOutputSection({
2239
2265
  });
2240
2266
  },
2241
2267
  children: [
2242
- /* @__PURE__ */ jsxs3("span", { className: "min-w-0 flex-1", children: [
2243
- /* @__PURE__ */ jsx3("span", { className: "block truncate text-[13px] font-semibold text-[var(--text-primary)]", children: output.displayName }),
2244
- /* @__PURE__ */ jsx3("span", { className: "mt-1 block truncate text-[11px] font-normal text-[var(--text-secondary)]", children: output.path })
2268
+ /* @__PURE__ */ jsxs3("span", { className: "flex min-w-0 flex-1 items-center gap-3", children: [
2269
+ /* @__PURE__ */ jsx3(
2270
+ "span",
2271
+ {
2272
+ "aria-hidden": "true",
2273
+ className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-md border border-[var(--line-2)] bg-transparency-actived text-primary",
2274
+ children: /* @__PURE__ */ jsx3(FileIcon, { size: 16 })
2275
+ }
2276
+ ),
2277
+ /* @__PURE__ */ jsxs3("span", { className: "min-w-0 flex-1", children: [
2278
+ /* @__PURE__ */ jsx3("span", { className: "block truncate text-[13px] font-semibold text-[var(--text-primary)]", children: output.displayName }),
2279
+ /* @__PURE__ */ jsx3("span", { className: "mt-1 block truncate text-[11px] font-normal text-[var(--text-secondary)]", children: output.path })
2280
+ ] })
2245
2281
  ] }),
2246
- /* @__PURE__ */ jsx3("span", { className: "shrink-0 text-[11px] font-normal text-[var(--text-secondary)]", children: formatIssueManagerTimestamp(output.createdAtUnix) || "" })
2282
+ /* @__PURE__ */ jsxs3("span", { className: "flex shrink-0 items-center gap-2", children: [
2283
+ /* @__PURE__ */ jsx3("span", { className: "text-[11px] font-normal text-[var(--text-secondary)]", children: formatIssueManagerTimestamp(output.createdAtUnix) || "" }),
2284
+ /* @__PURE__ */ jsxs3("span", { className: "inline-flex h-7 items-center gap-1 rounded-md border border-primary/20 bg-transparency-actived px-2 text-[11px] font-semibold text-primary", children: [
2285
+ copy.t("actions.openReference"),
2286
+ /* @__PURE__ */ jsx3(ArrowRightIcon, { size: 13 })
2287
+ ] })
2288
+ ] })
2247
2289
  ]
2248
2290
  },
2249
2291
  output.outputId
@@ -2295,6 +2337,33 @@ function IssueManagerSubtaskSection({
2295
2337
  ] });
2296
2338
  }
2297
2339
 
2340
+ // src/ui/internal/issue/IssueManagerIssueAcceptanceState.ts
2341
+ function resolveIssueManagerIssueAcceptanceTaskId(input) {
2342
+ if (input.selectedIssue?.status !== "pending_acceptance" || input.selectedTaskId || input.latestRun?.status !== "completed") {
2343
+ return null;
2344
+ }
2345
+ const taskId = input.latestRun.taskId?.trim() ?? "";
2346
+ if (!taskId) {
2347
+ return null;
2348
+ }
2349
+ const visibleTask = input.tasks.find((task) => task.taskId === taskId);
2350
+ const issueTitle = input.selectedIssue.title.trim();
2351
+ const taskTitle = visibleTask?.title.trim() ?? "";
2352
+ if (visibleTask && taskTitle !== "" && taskTitle !== issueTitle) {
2353
+ return null;
2354
+ }
2355
+ return taskId;
2356
+ }
2357
+ function resolveIssueManagerVisibleSubtasks(input) {
2358
+ const hiddenTaskId = input.hiddenAcceptanceTaskId?.trim() ?? "";
2359
+ if (!hiddenTaskId) {
2360
+ return [...input.tasks];
2361
+ }
2362
+ return input.tasks.filter((task) => {
2363
+ return task.taskId !== hiddenTaskId;
2364
+ });
2365
+ }
2366
+
2298
2367
  // src/ui/internal/content/IssueManagerDescriptionSection.tsx
2299
2368
  import { useEffect as useEffect4, useRef, useState as useState3 } from "react";
2300
2369
  import { RichTextReadonlyContent } from "@tutti-os/ui-rich-text/editor";
@@ -2488,11 +2557,57 @@ function IssueManagerRichTextTextarea({
2488
2557
  );
2489
2558
  }
2490
2559
 
2560
+ // src/ui/internal/task/IssueManagerTaskAcceptanceCard.tsx
2561
+ import { Button as Button4 } from "@tutti-os/ui-system";
2562
+ import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
2563
+ function IssueManagerTaskAcceptanceCard({
2564
+ controller,
2565
+ taskId
2566
+ }) {
2567
+ const copy = controller.copy;
2568
+ const updateStatus = (status) => {
2569
+ if (taskId) {
2570
+ void controller.setTaskStatus(taskId, status);
2571
+ return;
2572
+ }
2573
+ void controller.setSelectedTaskStatus(status);
2574
+ };
2575
+ return /* @__PURE__ */ jsxs6("div", { className: "grid gap-2 rounded-md bg-[var(--transparency-block)] px-3 py-2", children: [
2576
+ /* @__PURE__ */ jsxs6("div", { className: "min-w-0 text-[11px] font-normal leading-[1.45] text-[var(--text-secondary)] [overflow-wrap:anywhere]", children: [
2577
+ /* @__PURE__ */ jsx6("span", { className: "font-semibold text-[var(--text-primary)]", children: copy.t("labels.taskAcceptance") }),
2578
+ /* @__PURE__ */ jsx6("span", { className: "mx-1 text-[var(--text-tertiary)]", children: "\xB7" }),
2579
+ /* @__PURE__ */ jsx6("span", { children: copy.t("messages.taskAcceptanceHint") })
2580
+ ] }),
2581
+ /* @__PURE__ */ jsxs6("div", { className: "flex items-center justify-end gap-2", children: [
2582
+ /* @__PURE__ */ jsx6(
2583
+ Button4,
2584
+ {
2585
+ className: "h-7 px-2 text-[11px] text-[var(--state-danger)] hover:bg-[var(--on-danger)] hover:text-[var(--state-danger)]",
2586
+ type: "button",
2587
+ variant: "ghost",
2588
+ onClick: () => updateStatus("not_started"),
2589
+ children: copy.t("actions.rejectTask")
2590
+ }
2591
+ ),
2592
+ /* @__PURE__ */ jsx6(
2593
+ Button4,
2594
+ {
2595
+ className: "h-7 px-2.5 text-[11px]",
2596
+ type: "button",
2597
+ variant: "secondary",
2598
+ onClick: () => updateStatus("completed"),
2599
+ children: copy.t("actions.acceptTask")
2600
+ }
2601
+ )
2602
+ ] })
2603
+ ] });
2604
+ }
2605
+
2491
2606
  // src/ui/internal/shell/IssueManagerDraftTitleInput.tsx
2492
2607
  import { useComposedInputValue } from "@tutti-os/ui-react-hooks";
2493
2608
  import { useLayoutEffect, useRef as useRef3 } from "react";
2494
2609
  import { Input } from "@tutti-os/ui-system";
2495
- import { jsx as jsx6 } from "react/jsx-runtime";
2610
+ import { jsx as jsx7 } from "react/jsx-runtime";
2496
2611
  function IssueManagerDraftTitleInput({
2497
2612
  onChange,
2498
2613
  placeholder,
@@ -2527,7 +2642,7 @@ function IssueManagerDraftTitleInput({
2527
2642
  start
2528
2643
  };
2529
2644
  };
2530
- return /* @__PURE__ */ jsx6(
2645
+ return /* @__PURE__ */ jsx7(
2531
2646
  Input,
2532
2647
  {
2533
2648
  ref: inputRef,
@@ -2556,7 +2671,7 @@ var issueManagerEditorRiseInDelay2ClassName = "motion-safe:[animation-delay:110m
2556
2671
  var issueManagerEditorFooterFadeInClassName = "motion-safe:animate-in motion-safe:fade-in-0 motion-safe:duration-[180ms] motion-safe:ease-[cubic-bezier(0.22,1,0.36,1)] motion-safe:[animation-delay:180ms] motion-safe:[animation-fill-mode:both] motion-reduce:animate-none";
2557
2672
 
2558
2673
  // src/ui/internal/shell/IssueManagerPanels.tsx
2559
- import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
2674
+ import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
2560
2675
  function IssueManagerIssuePane({
2561
2676
  controller,
2562
2677
  renderLatestRunStatus,
@@ -2573,31 +2688,41 @@ function IssueManagerIssuePane({
2573
2688
  const selectedTask = selectedTaskId ? (controller.taskDetail.value?.task?.taskId === selectedTaskId ? controller.taskDetail.value.task : tasks.find((task) => task.taskId === selectedTaskId)) ?? null : null;
2574
2689
  const latestRun = selectedTask ? controller.taskDetail.value?.latestRun ?? controller.taskDetail.value?.recentRuns[0] ?? null : controller.issueDetail.value?.latestRun ?? controller.issueDetail.value?.recentRuns[0] ?? null;
2575
2690
  const latestOutputs = selectedTask ? controller.taskDetail.value?.latestOutputs ?? [] : controller.issueDetail.value?.latestOutputs ?? [];
2691
+ const issueAcceptanceTaskId = resolveIssueManagerIssueAcceptanceTaskId({
2692
+ latestRun,
2693
+ selectedIssue,
2694
+ selectedTaskId,
2695
+ tasks
2696
+ });
2697
+ const visibleTasks = resolveIssueManagerVisibleSubtasks({
2698
+ hiddenAcceptanceTaskId: issueAcceptanceTaskId,
2699
+ tasks
2700
+ });
2576
2701
  const [deleteDialogOpen, setDeleteDialogOpen] = useState5(false);
2577
2702
  const [deleteBusy, setDeleteBusy] = useState5(false);
2578
2703
  if (isCreatingIssue || isEditingIssue) {
2579
- return /* @__PURE__ */ jsxs6("div", { className: "flex h-full min-h-0 flex-col overflow-hidden", children: [
2580
- /* @__PURE__ */ jsx7(
2704
+ return /* @__PURE__ */ jsxs7("div", { className: "flex h-full min-h-0 flex-col overflow-hidden", children: [
2705
+ /* @__PURE__ */ jsx8(
2581
2706
  ScrollArea2,
2582
2707
  {
2583
2708
  scrollbarMode: "native",
2584
2709
  className: "min-h-0 flex-1 [&_[data-orientation=vertical][data-slot=scroll-area-scrollbar]]:opacity-100 [&_[data-slot=scroll-area-viewport]]:overscroll-contain",
2585
- children: /* @__PURE__ */ jsx7("div", { className: "flex min-h-full flex-col gap-[14px] px-7 py-8", children: /* @__PURE__ */ jsxs6("div", { className: "flex w-full min-w-0 flex-col gap-3", children: [
2586
- /* @__PURE__ */ jsx7(
2710
+ children: /* @__PURE__ */ jsx8("div", { className: "flex min-h-full flex-col gap-[14px] px-7 py-8", children: /* @__PURE__ */ jsxs7("div", { className: "flex w-full min-w-0 flex-col gap-3", children: [
2711
+ /* @__PURE__ */ jsx8(
2587
2712
  "div",
2588
2713
  {
2589
2714
  className: `${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay0ClassName}`,
2590
- children: /* @__PURE__ */ jsx7("h2", { className: "m-0 text-[15px] font-semibold leading-[1.35] text-[var(--text-primary)]", children: isCreatingIssue ? copy.t("actions.createIssue") : copy.t("actions.editIssue") })
2715
+ children: /* @__PURE__ */ jsx8("h2", { className: "m-0 text-[15px] font-semibold leading-[1.35] text-[var(--text-primary)]", children: isCreatingIssue ? copy.t("actions.createIssue") : copy.t("actions.editIssue") })
2591
2716
  }
2592
2717
  ),
2593
- /* @__PURE__ */ jsxs6("div", { className: "flex w-full min-w-0 flex-col gap-6", children: [
2594
- /* @__PURE__ */ jsxs6(
2718
+ /* @__PURE__ */ jsxs7("div", { className: "flex w-full min-w-0 flex-col gap-6", children: [
2719
+ /* @__PURE__ */ jsxs7(
2595
2720
  "label",
2596
2721
  {
2597
2722
  className: `flex w-full min-w-0 flex-col gap-2 text-[13px] font-semibold text-[var(--text-secondary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay1ClassName}`,
2598
2723
  children: [
2599
- /* @__PURE__ */ jsx7("span", { className: "leading-5", children: copy.t("labels.title") }),
2600
- /* @__PURE__ */ jsx7(
2724
+ /* @__PURE__ */ jsx8("span", { className: "leading-5", children: copy.t("labels.title") }),
2725
+ /* @__PURE__ */ jsx8(
2601
2726
  IssueManagerDraftTitleInput,
2602
2727
  {
2603
2728
  placeholder: copy.t("composer.issueTitlePlaceholder"),
@@ -2608,13 +2733,13 @@ function IssueManagerIssuePane({
2608
2733
  ]
2609
2734
  }
2610
2735
  ),
2611
- /* @__PURE__ */ jsxs6(
2736
+ /* @__PURE__ */ jsxs7(
2612
2737
  "div",
2613
2738
  {
2614
2739
  className: `flex min-h-0 w-full min-w-0 flex-col gap-2 text-[13px] font-semibold text-[var(--text-secondary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay2ClassName}`,
2615
2740
  children: [
2616
- /* @__PURE__ */ jsx7("span", { className: "leading-5", children: copy.t("labels.content") }),
2617
- /* @__PURE__ */ jsx7(
2741
+ /* @__PURE__ */ jsx8("span", { className: "leading-5", children: copy.t("labels.content") }),
2742
+ /* @__PURE__ */ jsx8(
2618
2743
  IssueManagerRichTextTextarea,
2619
2744
  {
2620
2745
  controller,
@@ -2632,13 +2757,13 @@ function IssueManagerIssuePane({
2632
2757
  ] }) })
2633
2758
  }
2634
2759
  ),
2635
- /* @__PURE__ */ jsx7(
2760
+ /* @__PURE__ */ jsx8(
2636
2761
  "div",
2637
2762
  {
2638
2763
  className: `shrink-0 border-t border-border-1 px-7 py-4 ${issueManagerEditorFooterFadeInClassName}`,
2639
- children: /* @__PURE__ */ jsxs6("div", { className: "flex items-center justify-end gap-3", children: [
2640
- /* @__PURE__ */ jsx7(
2641
- Button4,
2764
+ children: /* @__PURE__ */ jsxs7("div", { className: "flex items-center justify-end gap-3", children: [
2765
+ /* @__PURE__ */ jsx8(
2766
+ Button5,
2642
2767
  {
2643
2768
  size: "dialog",
2644
2769
  type: "button",
@@ -2647,8 +2772,8 @@ function IssueManagerIssuePane({
2647
2772
  children: copy.t("actions.cancel")
2648
2773
  }
2649
2774
  ),
2650
- /* @__PURE__ */ jsx7(
2651
- Button4,
2775
+ /* @__PURE__ */ jsx8(
2776
+ Button5,
2652
2777
  {
2653
2778
  disabled: isIssueTitleMissing,
2654
2779
  size: "dialog",
@@ -2663,20 +2788,20 @@ function IssueManagerIssuePane({
2663
2788
  ] });
2664
2789
  }
2665
2790
  if (!selectedIssue) {
2666
- return /* @__PURE__ */ jsx7("div", { className: "h-full min-h-0" });
2791
+ return /* @__PURE__ */ jsx8("div", { className: "h-full min-h-0" });
2667
2792
  }
2668
- return /* @__PURE__ */ jsx7("div", { className: "flex h-full min-h-0 flex-col overflow-hidden", children: /* @__PURE__ */ jsx7(
2793
+ return /* @__PURE__ */ jsx8("div", { className: "flex h-full min-h-0 flex-col overflow-hidden", children: /* @__PURE__ */ jsx8(
2669
2794
  ScrollArea2,
2670
2795
  {
2671
2796
  scrollbarMode: "native",
2672
2797
  className: "min-h-0 flex-1 [&_[data-orientation=vertical][data-slot=scroll-area-scrollbar]]:opacity-100 [&_[data-slot=scroll-area-viewport]]:overscroll-contain",
2673
- children: /* @__PURE__ */ jsx7("div", { className: "px-8 py-7", children: controller.issueDetail.isLoading && controller.issueDetail.value === null ? /* @__PURE__ */ jsx7(IssueManagerPaneLoadingState, {}) : /* @__PURE__ */ jsxs6("div", { className: "flex w-full min-w-0 flex-col gap-9", children: [
2674
- /* @__PURE__ */ jsxs6("header", { className: "grid gap-3", children: [
2675
- /* @__PURE__ */ jsxs6("div", { className: "flex items-center justify-between gap-6", children: [
2676
- /* @__PURE__ */ jsx7(IssueManagerTitleTooltip, { title: selectedIssue.title, children: /* @__PURE__ */ jsx7("h2", { className: "line-clamp-2 min-w-0 flex-1 whitespace-normal text-[15px] font-semibold leading-6 text-[var(--text-primary)] [overflow-wrap:anywhere]", children: selectedIssue.title }) }),
2677
- /* @__PURE__ */ jsxs6("div", { className: "flex shrink-0 items-center gap-2", children: [
2678
- /* @__PURE__ */ jsx7(
2679
- Button4,
2798
+ children: /* @__PURE__ */ jsx8("div", { className: "px-8 py-7", children: controller.issueDetail.isLoading && controller.issueDetail.value === null ? /* @__PURE__ */ jsx8(IssueManagerPaneLoadingState, {}) : /* @__PURE__ */ jsxs7("div", { className: "flex w-full min-w-0 flex-col gap-9", children: [
2799
+ /* @__PURE__ */ jsxs7("header", { className: "grid gap-3", children: [
2800
+ /* @__PURE__ */ jsxs7("div", { className: "flex items-center justify-between gap-6", children: [
2801
+ /* @__PURE__ */ jsx8(IssueManagerTitleTooltip, { title: selectedIssue.title, children: /* @__PURE__ */ jsx8("h2", { className: "line-clamp-2 min-w-0 flex-1 whitespace-normal text-[15px] font-semibold leading-6 text-[var(--text-primary)] [overflow-wrap:anywhere]", children: selectedIssue.title }) }),
2802
+ /* @__PURE__ */ jsxs7("div", { className: "flex shrink-0 items-center gap-2", children: [
2803
+ /* @__PURE__ */ jsx8(
2804
+ Button5,
2680
2805
  {
2681
2806
  type: "button",
2682
2807
  variant: "ghost",
@@ -2684,8 +2809,8 @@ function IssueManagerIssuePane({
2684
2809
  children: copy.t("actions.edit")
2685
2810
  }
2686
2811
  ),
2687
- /* @__PURE__ */ jsx7(
2688
- Button4,
2812
+ /* @__PURE__ */ jsx8(
2813
+ Button5,
2689
2814
  {
2690
2815
  className: "text-[var(--state-danger)] hover:bg-[var(--on-danger)] hover:text-[var(--state-danger)]",
2691
2816
  type: "button",
@@ -2696,8 +2821,8 @@ function IssueManagerIssuePane({
2696
2821
  )
2697
2822
  ] })
2698
2823
  ] }),
2699
- /* @__PURE__ */ jsxs6("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-2 text-[11px] font-normal leading-[1.3] text-[var(--text-secondary)]", children: [
2700
- /* @__PURE__ */ jsx7(
2824
+ /* @__PURE__ */ jsxs7("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-2 text-[11px] font-normal leading-[1.3] text-[var(--text-secondary)]", children: [
2825
+ /* @__PURE__ */ jsx8(
2701
2826
  Badge2,
2702
2827
  {
2703
2828
  variant: issueManagerStatusBadgeVariant(
@@ -2706,33 +2831,40 @@ function IssueManagerIssuePane({
2706
2831
  children: resolveIssueManagerStatusLabel(copy, selectedIssue.status)
2707
2832
  }
2708
2833
  ),
2709
- /* @__PURE__ */ jsx7(
2834
+ /* @__PURE__ */ jsx8(
2710
2835
  "span",
2711
2836
  {
2712
2837
  "aria-hidden": "true",
2713
2838
  className: "h-4 w-px shrink-0 bg-[var(--line-2)]"
2714
2839
  }
2715
2840
  ),
2716
- /* @__PURE__ */ jsxs6("span", { className: "text-[11px] font-normal leading-[1.3]", children: [
2841
+ /* @__PURE__ */ jsxs7("span", { className: "text-[11px] font-normal leading-[1.3]", children: [
2717
2842
  copy.t("labels.creator"),
2718
2843
  " ",
2719
2844
  resolveIssueManagerCreatorLabel(selectedIssue)
2720
2845
  ] }),
2721
- /* @__PURE__ */ jsx7(
2846
+ /* @__PURE__ */ jsx8(
2722
2847
  "span",
2723
2848
  {
2724
2849
  "aria-hidden": "true",
2725
2850
  className: "h-4 w-px shrink-0 bg-[var(--line-2)]"
2726
2851
  }
2727
2852
  ),
2728
- /* @__PURE__ */ jsxs6("span", { className: "text-[11px] font-normal leading-[1.3]", children: [
2853
+ /* @__PURE__ */ jsxs7("span", { className: "text-[11px] font-normal leading-[1.3]", children: [
2729
2854
  copy.t("labels.createdAt"),
2730
2855
  " ",
2731
2856
  formatIssueManagerTimestamp(selectedIssue.createdAtUnix) || "-"
2732
2857
  ] })
2733
- ] })
2858
+ ] }),
2859
+ issueAcceptanceTaskId ? /* @__PURE__ */ jsx8(
2860
+ IssueManagerTaskAcceptanceCard,
2861
+ {
2862
+ controller,
2863
+ taskId: issueAcceptanceTaskId
2864
+ }
2865
+ ) : null
2734
2866
  ] }),
2735
- /* @__PURE__ */ jsx7(
2867
+ /* @__PURE__ */ jsx8(
2736
2868
  ConfirmationDialog,
2737
2869
  {
2738
2870
  cancelLabel: copy.t("actions.cancel"),
@@ -2752,7 +2884,7 @@ function IssueManagerIssuePane({
2752
2884
  onOpenChange: setDeleteDialogOpen
2753
2885
  }
2754
2886
  ),
2755
- /* @__PURE__ */ jsx7(
2887
+ /* @__PURE__ */ jsx8(
2756
2888
  IssueManagerDescriptionSection,
2757
2889
  {
2758
2890
  content: issueContent,
@@ -2762,7 +2894,7 @@ function IssueManagerIssuePane({
2762
2894
  variant: "plain"
2763
2895
  }
2764
2896
  ),
2765
- /* @__PURE__ */ jsx7(
2897
+ /* @__PURE__ */ jsx8(
2766
2898
  IssueManagerLatestRunStatusSection,
2767
2899
  {
2768
2900
  copy,
@@ -2772,7 +2904,7 @@ function IssueManagerIssuePane({
2772
2904
  title: selectedTask?.title ?? selectedIssue.title
2773
2905
  }
2774
2906
  ),
2775
- /* @__PURE__ */ jsx7(
2907
+ /* @__PURE__ */ jsx8(
2776
2908
  IssueManagerOutputSection,
2777
2909
  {
2778
2910
  copy,
@@ -2780,14 +2912,14 @@ function IssueManagerIssuePane({
2780
2912
  onOpen: controller.openReference
2781
2913
  }
2782
2914
  ),
2783
- /* @__PURE__ */ jsx7(
2915
+ /* @__PURE__ */ jsx8(
2784
2916
  IssueManagerSubtaskSection,
2785
2917
  {
2786
2918
  copy,
2787
2919
  onCreate: controller.createTaskDraft,
2788
2920
  onSelectTask: controller.selectTask,
2789
2921
  selectedTaskId: selectedTask?.taskId ?? null,
2790
- tasks
2922
+ tasks: visibleTasks
2791
2923
  }
2792
2924
  )
2793
2925
  ] }) })
@@ -2796,13 +2928,13 @@ function IssueManagerIssuePane({
2796
2928
  }
2797
2929
 
2798
2930
  // src/ui/internal/shell/IssueManagerBottomBar.tsx
2799
- import { Button as Button6, cn as cn5 } from "@tutti-os/ui-system";
2931
+ import { Button as Button7, cn as cn5 } from "@tutti-os/ui-system";
2800
2932
 
2801
2933
  // src/ui/internal/task/IssueManagerRunSections.tsx
2802
2934
  import {
2803
2935
  Badge as Badge3,
2804
2936
  AgentSessionsIcon as AgentSessionsIcon2,
2805
- Button as Button5,
2937
+ Button as Button6,
2806
2938
  CheckIcon,
2807
2939
  ChevronDownIcon,
2808
2940
  DropdownMenu,
@@ -2813,7 +2945,7 @@ import {
2813
2945
  cn as cn4
2814
2946
  } from "@tutti-os/ui-system";
2815
2947
  import { WorkspaceUserProjectSelect } from "@tutti-os/workspace-user-project/ui";
2816
- import { Fragment, jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
2948
+ import { Fragment, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
2817
2949
  var providerMenuItemClassName = "min-h-8 overflow-hidden rounded-md py-1.5 pr-7 pl-2.5 text-[13px] font-normal leading-[1.2] text-[var(--text-primary)]";
2818
2950
  var providerMenuItemCheckClassName = "pointer-events-none absolute right-2 top-1/2 shrink-0 -translate-y-1/2";
2819
2951
  var providerActionTriggerClassName = "font-[var(--font-weight-emphasis-cjk)]";
@@ -2823,12 +2955,12 @@ function IssueManagerRunActionTrigger({
2823
2955
  triggerClassName,
2824
2956
  triggerVariant = "default"
2825
2957
  }) {
2826
- return /* @__PURE__ */ jsx8(
2958
+ return /* @__PURE__ */ jsx9(
2827
2959
  IssueManagerProviderActionMenu,
2828
2960
  {
2829
2961
  controller,
2830
2962
  disabled,
2831
- icon: /* @__PURE__ */ jsx8(AgentSessionsIcon2, { size: 16 }),
2963
+ icon: /* @__PURE__ */ jsx9(AgentSessionsIcon2, { size: 16 }),
2832
2964
  label: controller.copy.t("actions.askAgentToRun"),
2833
2965
  triggerClassName,
2834
2966
  triggerVariant,
@@ -2842,12 +2974,12 @@ function IssueManagerBreakdownActionTrigger({
2842
2974
  triggerClassName,
2843
2975
  triggerVariant = "default"
2844
2976
  }) {
2845
- return /* @__PURE__ */ jsx8(
2977
+ return /* @__PURE__ */ jsx9(
2846
2978
  IssueManagerProviderActionMenu,
2847
2979
  {
2848
2980
  controller,
2849
2981
  disabled,
2850
- icon: /* @__PURE__ */ jsx8(IssueIcon, { size: 16 }),
2982
+ icon: /* @__PURE__ */ jsx9(IssueIcon, { size: 16 }),
2851
2983
  label: controller.copy.t("actions.askAgentToBreakdown"),
2852
2984
  triggerClassName,
2853
2985
  triggerVariant,
@@ -2868,9 +3000,9 @@ function IssueManagerProviderActionMenu({
2868
3000
  }) {
2869
3001
  const providerOptions = controller.providerOptions;
2870
3002
  const selectedProvider = controller.nodeState.selectedAgentProvider.trim();
2871
- return /* @__PURE__ */ jsxs7(DropdownMenu, { children: [
2872
- /* @__PURE__ */ jsx8(DropdownMenuTrigger, { asChild: true, disabled, children: /* @__PURE__ */ jsxs7(
2873
- Button5,
3003
+ return /* @__PURE__ */ jsxs8(DropdownMenu, { children: [
3004
+ /* @__PURE__ */ jsx9(DropdownMenuTrigger, { asChild: true, disabled, children: /* @__PURE__ */ jsxs8(
3005
+ Button6,
2874
3006
  {
2875
3007
  className: cn4(
2876
3008
  "min-w-0",
@@ -2884,8 +3016,8 @@ function IssueManagerProviderActionMenu({
2884
3016
  variant: triggerButtonVariant,
2885
3017
  children: [
2886
3018
  icon,
2887
- /* @__PURE__ */ jsx8("span", { className: "truncate", children: label }),
2888
- /* @__PURE__ */ jsx8(
3019
+ /* @__PURE__ */ jsx9("span", { className: "truncate", children: label }),
3020
+ /* @__PURE__ */ jsx9(
2889
3021
  ChevronDownIcon,
2890
3022
  {
2891
3023
  className: "shrink-0 transition-transform duration-200",
@@ -2896,13 +3028,13 @@ function IssueManagerProviderActionMenu({
2896
3028
  ]
2897
3029
  }
2898
3030
  ) }),
2899
- /* @__PURE__ */ jsx8(
3031
+ /* @__PURE__ */ jsx9(
2900
3032
  DropdownMenuContent,
2901
3033
  {
2902
3034
  align: "end",
2903
3035
  className: "w-[220px] min-w-[220px]",
2904
3036
  style: { zIndex: "var(--z-panel-popover)" },
2905
- children: providerOptions.length === 0 ? /* @__PURE__ */ jsx8(DropdownMenuItem, { className: providerMenuItemClassName, disabled: true, children: controller.copy.t("messages.noAgentProviders") }) : providerOptions.map((option) => /* @__PURE__ */ jsx8(
3037
+ children: providerOptions.length === 0 ? /* @__PURE__ */ jsx9(DropdownMenuItem, { className: providerMenuItemClassName, disabled: true, children: controller.copy.t("messages.noAgentProviders") }) : providerOptions.map((option) => /* @__PURE__ */ jsx9(
2906
3038
  DropdownMenuItem,
2907
3039
  {
2908
3040
  className: providerMenuItemClassName,
@@ -2911,16 +3043,16 @@ function IssueManagerProviderActionMenu({
2911
3043
  onSelect: () => {
2912
3044
  void onSelectProvider(option.provider);
2913
3045
  },
2914
- children: /* @__PURE__ */ jsxs7("span", { className: "flex min-w-0 flex-1 items-center gap-2 pr-1", children: [
2915
- /* @__PURE__ */ jsx8(
3046
+ children: /* @__PURE__ */ jsxs8("span", { className: "flex min-w-0 flex-1 items-center gap-2 pr-1", children: [
3047
+ /* @__PURE__ */ jsx9(
2916
3048
  IssueManagerAgentProviderIcon,
2917
3049
  {
2918
- fallbackIcon: /* @__PURE__ */ jsx8(AgentSessionsIcon2, { "aria-hidden": true, size: 15 }),
3050
+ fallbackIcon: /* @__PURE__ */ jsx9(AgentSessionsIcon2, { "aria-hidden": true, size: 15 }),
2919
3051
  iconUrl: option.iconUrl
2920
3052
  }
2921
3053
  ),
2922
- /* @__PURE__ */ jsx8("span", { className: "min-w-0 flex-1 truncate", children: option.label }),
2923
- option.provider === selectedProvider ? /* @__PURE__ */ jsx8(
3054
+ /* @__PURE__ */ jsx9("span", { className: "min-w-0 flex-1 truncate", children: option.label }),
3055
+ option.provider === selectedProvider ? /* @__PURE__ */ jsx9(
2924
3056
  CheckIcon,
2925
3057
  {
2926
3058
  className: providerMenuItemCheckClassName,
@@ -2941,9 +3073,9 @@ function IssueManagerAgentProviderIcon({
2941
3073
  }) {
2942
3074
  const normalizedIconUrl = iconUrl?.trim();
2943
3075
  if (!normalizedIconUrl) {
2944
- return /* @__PURE__ */ jsx8(Fragment, { children: fallbackIcon });
3076
+ return /* @__PURE__ */ jsx9(Fragment, { children: fallbackIcon });
2945
3077
  }
2946
- return /* @__PURE__ */ jsx8(
3078
+ return /* @__PURE__ */ jsx9(
2947
3079
  "img",
2948
3080
  {
2949
3081
  alt: "",
@@ -2963,7 +3095,7 @@ function IssueManagerExecutionDirectoryTrigger({
2963
3095
  if (!controller.canSelectExecutionDirectory) {
2964
3096
  return null;
2965
3097
  }
2966
- return /* @__PURE__ */ jsx8(
3098
+ return /* @__PURE__ */ jsx9(
2967
3099
  WorkspaceUserProjectSelect,
2968
3100
  {
2969
3101
  classNames: {
@@ -3021,7 +3153,7 @@ function isIssueManagerRunControlDisabled(input) {
3021
3153
  }
3022
3154
 
3023
3155
  // src/ui/internal/shell/IssueManagerBottomBar.tsx
3024
- import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
3156
+ import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
3025
3157
  function IssueManagerBottomBar({
3026
3158
  controller,
3027
3159
  isNarrowLayout,
@@ -3036,7 +3168,7 @@ function IssueManagerBottomBar({
3036
3168
  selectedIssueStatus: selectedIssue.status,
3037
3169
  selectedTaskStatus: null
3038
3170
  });
3039
- return /* @__PURE__ */ jsx9("div", { className: "border-t border-[var(--border-1)] bg-transparent px-6 py-4 backdrop-blur", children: /* @__PURE__ */ jsxs8(
3171
+ return /* @__PURE__ */ jsx10("div", { className: "border-t border-[var(--border-1)] bg-transparent px-6 py-4 backdrop-blur", children: /* @__PURE__ */ jsxs9(
3040
3172
  "div",
3041
3173
  {
3042
3174
  className: cn5(
@@ -3044,7 +3176,7 @@ function IssueManagerBottomBar({
3044
3176
  isNarrowLayout ? "flex-wrap items-center justify-end" : "items-center justify-end"
3045
3177
  ),
3046
3178
  children: [
3047
- /* @__PURE__ */ jsx9(
3179
+ /* @__PURE__ */ jsx10(
3048
3180
  IssueManagerExecutionDirectoryTrigger,
3049
3181
  {
3050
3182
  className: "mr-auto min-w-0 max-w-[240px] justify-start overflow-hidden",
@@ -3052,8 +3184,8 @@ function IssueManagerBottomBar({
3052
3184
  disabled: runControlsDisabled
3053
3185
  }
3054
3186
  ),
3055
- /* @__PURE__ */ jsxs8("div", { className: "flex shrink-0 flex-nowrap items-center justify-end gap-3", children: [
3056
- /* @__PURE__ */ jsx9(
3187
+ /* @__PURE__ */ jsxs9("div", { className: "flex shrink-0 flex-nowrap items-center justify-end gap-3", children: [
3188
+ /* @__PURE__ */ jsx10(
3057
3189
  IssueManagerBreakdownActionTrigger,
3058
3190
  {
3059
3191
  controller,
@@ -3061,7 +3193,7 @@ function IssueManagerBottomBar({
3061
3193
  triggerVariant: "button"
3062
3194
  }
3063
3195
  ),
3064
- /* @__PURE__ */ jsx9(
3196
+ /* @__PURE__ */ jsx10(
3065
3197
  IssueManagerRunActionTrigger,
3066
3198
  {
3067
3199
  controller,
@@ -3069,8 +3201,8 @@ function IssueManagerBottomBar({
3069
3201
  triggerVariant: "button"
3070
3202
  }
3071
3203
  ),
3072
- controller.canInviteCollaborators ? /* @__PURE__ */ jsx9(
3073
- Button6,
3204
+ controller.canInviteCollaborators ? /* @__PURE__ */ jsx10(
3205
+ Button7,
3074
3206
  {
3075
3207
  className: "px-4",
3076
3208
  disabled: !selectedIssue,
@@ -3090,12 +3222,12 @@ function IssueManagerBottomBar({
3090
3222
 
3091
3223
  // src/ui/internal/shell/IssueManagerFloatingNotice.tsx
3092
3224
  import { ToastProvider, ToastRoot, ToastTitle } from "@tutti-os/ui-system";
3093
- import { jsx as jsx10 } from "react/jsx-runtime";
3225
+ import { jsx as jsx11 } from "react/jsx-runtime";
3094
3226
  function IssueManagerFloatingNotice({
3095
3227
  notice
3096
3228
  }) {
3097
3229
  const variant = notice.tone === "destructive" ? "destructive" : "default";
3098
- return /* @__PURE__ */ jsx10(ToastProvider, { children: /* @__PURE__ */ jsx10(
3230
+ return /* @__PURE__ */ jsx11(ToastProvider, { children: /* @__PURE__ */ jsx11(
3099
3231
  ToastRoot,
3100
3232
  {
3101
3233
  open: true,
@@ -3104,7 +3236,7 @@ function IssueManagerFloatingNotice({
3104
3236
  className: "z-30 w-fit max-w-[min(72vw,40rem)] px-4 py-3 shadow-lg",
3105
3237
  nodeInsetTopPx: 16,
3106
3238
  variant,
3107
- children: /* @__PURE__ */ jsx10(ToastTitle, { className: "whitespace-normal [overflow-wrap:anywhere]", children: notice.title })
3239
+ children: /* @__PURE__ */ jsx11(ToastTitle, { className: "whitespace-normal [overflow-wrap:anywhere]", children: notice.title })
3108
3240
  },
3109
3241
  notice.id
3110
3242
  ) });
@@ -3117,7 +3249,7 @@ import { cn as cn7 } from "@tutti-os/ui-system";
3117
3249
  import { useComposedInputValue as useComposedInputValue2 } from "@tutti-os/ui-react-hooks";
3118
3250
  import {
3119
3251
  Badge as Badge4,
3120
- Button as Button7,
3252
+ Button as Button8,
3121
3253
  CloseIcon,
3122
3254
  FileCreateIcon as FileCreateIcon3,
3123
3255
  Input as Input2,
@@ -3189,7 +3321,7 @@ function mapIssueManagerStatusCounts(counts) {
3189
3321
  canceled: counts.canceled,
3190
3322
  completed: counts.completed,
3191
3323
  failed: counts.failed,
3192
- in_progress: 0,
3324
+ in_progress: counts.inProgress,
3193
3325
  not_started: counts.notStarted,
3194
3326
  pending_acceptance: counts.pendingAcceptance,
3195
3327
  running: counts.running
@@ -3208,7 +3340,7 @@ function resolveIssueManagerShellContentViewState(input) {
3208
3340
  }
3209
3341
 
3210
3342
  // src/ui/internal/shell/IssueManagerSidebarSections.tsx
3211
- import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
3343
+ import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
3212
3344
  function IssueManagerSidebarHeader({
3213
3345
  copy,
3214
3346
  issueSearchQuery,
@@ -3216,8 +3348,8 @@ function IssueManagerSidebarHeader({
3216
3348
  onIssueSearchUsage,
3217
3349
  onIssueSearchQueryChange
3218
3350
  }) {
3219
- return /* @__PURE__ */ jsx11("div", { className: "px-4 py-4", children: /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-2.5", children: [
3220
- /* @__PURE__ */ jsx11(
3351
+ return /* @__PURE__ */ jsx12("div", { className: "px-4 py-4", children: /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-2.5", children: [
3352
+ /* @__PURE__ */ jsx12(
3221
3353
  IssueManagerSearchField,
3222
3354
  {
3223
3355
  clearLabel: copy.t("actions.clearSearch"),
@@ -3227,8 +3359,8 @@ function IssueManagerSidebarHeader({
3227
3359
  onSearchUsage: onIssueSearchUsage
3228
3360
  }
3229
3361
  ),
3230
- /* @__PURE__ */ jsxs9(
3231
- Button7,
3362
+ /* @__PURE__ */ jsxs10(
3363
+ Button8,
3232
3364
  {
3233
3365
  className: "gap-2 px-3",
3234
3366
  size: "dialog",
@@ -3236,7 +3368,7 @@ function IssueManagerSidebarHeader({
3236
3368
  variant: "secondary",
3237
3369
  onClick: onCreateIssue,
3238
3370
  children: [
3239
- /* @__PURE__ */ jsx11(FileCreateIcon3, { size: 16 }),
3371
+ /* @__PURE__ */ jsx12(FileCreateIcon3, { size: 16 }),
3240
3372
  copy.t("actions.createIssue")
3241
3373
  ]
3242
3374
  }
@@ -3249,7 +3381,7 @@ function IssueManagerSidebarStatusTabs({
3249
3381
  statusCounts,
3250
3382
  onIssueStatusFilterChange
3251
3383
  }) {
3252
- return /* @__PURE__ */ jsx11(
3384
+ return /* @__PURE__ */ jsx12(
3253
3385
  UnderlineTabs,
3254
3386
  {
3255
3387
  ariaLabel: copy.t("labels.status"),
@@ -3274,19 +3406,19 @@ function IssueManagerSidebarBody({
3274
3406
  onRetry,
3275
3407
  onSelectIssue
3276
3408
  }) {
3277
- return /* @__PURE__ */ jsx11(
3409
+ return /* @__PURE__ */ jsx12(
3278
3410
  ScrollArea3,
3279
3411
  {
3280
3412
  scrollbarMode: "native",
3281
3413
  className: cn6("min-h-0", isNarrowLayout ? "flex-none" : "h-full flex-1"),
3282
- children: /* @__PURE__ */ jsx11(
3414
+ children: /* @__PURE__ */ jsx12(
3283
3415
  "div",
3284
3416
  {
3285
3417
  className: cn6(
3286
3418
  "flex min-h-full flex-col gap-2.5 px-4 pt-1.5 pb-4",
3287
3419
  isNarrowLayout ? "min-h-0" : "h-full"
3288
3420
  ),
3289
- children: sidebarViewState.kind === "loading" ? /* @__PURE__ */ jsx11(IssueManagerSidebarLoadingState, { isNarrowLayout }) : sidebarViewState.kind === "error" ? /* @__PURE__ */ jsx11(
3421
+ children: sidebarViewState.kind === "loading" ? /* @__PURE__ */ jsx12(IssueManagerSidebarLoadingState, { isNarrowLayout }) : sidebarViewState.kind === "error" ? /* @__PURE__ */ jsx12(
3290
3422
  IssueManagerSidebarErrorState,
3291
3423
  {
3292
3424
  isNarrowLayout,
@@ -3294,14 +3426,14 @@ function IssueManagerSidebarBody({
3294
3426
  title: sidebarViewState.title,
3295
3427
  onRetry
3296
3428
  }
3297
- ) : sidebarViewState.kind === "empty" ? /* @__PURE__ */ jsx11(
3429
+ ) : sidebarViewState.kind === "empty" ? /* @__PURE__ */ jsx12(
3298
3430
  IssueManagerSidebarEmptyState,
3299
3431
  {
3300
3432
  body: sidebarViewState.body,
3301
3433
  isNarrowLayout,
3302
3434
  title: sidebarViewState.title
3303
3435
  }
3304
- ) : /* @__PURE__ */ jsx11(
3436
+ ) : /* @__PURE__ */ jsx12(
3305
3437
  IssueManagerSidebarIssueList,
3306
3438
  {
3307
3439
  copy,
@@ -3325,7 +3457,7 @@ function IssueManagerSidebarStandalonePane({
3325
3457
  onRetry
3326
3458
  }) {
3327
3459
  if (kind === "error" && retryLabel) {
3328
- return /* @__PURE__ */ jsx11(
3460
+ return /* @__PURE__ */ jsx12(
3329
3461
  IssueManagerSidebarErrorState,
3330
3462
  {
3331
3463
  isNarrowLayout,
@@ -3335,7 +3467,7 @@ function IssueManagerSidebarStandalonePane({
3335
3467
  }
3336
3468
  );
3337
3469
  }
3338
- return /* @__PURE__ */ jsx11(
3470
+ return /* @__PURE__ */ jsx12(
3339
3471
  IssueManagerSidebarEmptyState,
3340
3472
  {
3341
3473
  body: body ?? "",
@@ -3352,13 +3484,13 @@ function IssueManagerSearchField({
3352
3484
  value
3353
3485
  }) {
3354
3486
  const searchInput = useComposedInputValue2({ onCommit: onChange, value });
3355
- return /* @__PURE__ */ jsxs9(
3487
+ return /* @__PURE__ */ jsxs10(
3356
3488
  "div",
3357
3489
  {
3358
3490
  className: "relative min-w-0 flex-1",
3359
3491
  "data-has-value": searchInput.value ? "true" : "false",
3360
3492
  children: [
3361
- /* @__PURE__ */ jsx11(
3493
+ /* @__PURE__ */ jsx12(
3362
3494
  Input2,
3363
3495
  {
3364
3496
  "aria-label": placeholder,
@@ -3379,7 +3511,7 @@ function IssueManagerSearchField({
3379
3511
  onCompositionStart: searchInput.onCompositionStart
3380
3512
  }
3381
3513
  ),
3382
- searchInput.value ? /* @__PURE__ */ jsx11(
3514
+ searchInput.value ? /* @__PURE__ */ jsx12(
3383
3515
  "button",
3384
3516
  {
3385
3517
  "aria-label": clearLabel,
@@ -3387,7 +3519,7 @@ function IssueManagerSearchField({
3387
3519
  type: "button",
3388
3520
  onClick: searchInput.clearValue,
3389
3521
  onMouseDown: (event) => event.preventDefault(),
3390
- children: /* @__PURE__ */ jsx11(CloseIcon, { className: "size-3.5" })
3522
+ children: /* @__PURE__ */ jsx12(CloseIcon, { className: "size-3.5" })
3391
3523
  }
3392
3524
  ) : null
3393
3525
  ]
@@ -3401,14 +3533,14 @@ function IssueManagerSidebarIssueList({
3401
3533
  selectedIssueId,
3402
3534
  onSelectIssue
3403
3535
  }) {
3404
- return /* @__PURE__ */ jsx11(
3536
+ return /* @__PURE__ */ jsx12(
3405
3537
  "div",
3406
3538
  {
3407
3539
  className: cn6(
3408
3540
  "flex gap-2.5",
3409
3541
  isNarrowLayout ? "flex-row flex-nowrap items-start overflow-x-auto overflow-y-hidden [scrollbar-width:none] [&::-webkit-scrollbar]:hidden" : "flex-col"
3410
3542
  ),
3411
- children: issues.map((issue) => /* @__PURE__ */ jsx11(
3543
+ children: issues.map((issue) => /* @__PURE__ */ jsx12(
3412
3544
  IssueManagerSidebarItem,
3413
3545
  {
3414
3546
  copy,
@@ -3429,7 +3561,7 @@ function IssueManagerSidebarItem({
3429
3561
  onSelect,
3430
3562
  selected
3431
3563
  }) {
3432
- return /* @__PURE__ */ jsxs9(
3564
+ return /* @__PURE__ */ jsxs10(
3433
3565
  "button",
3434
3566
  {
3435
3567
  className: cn6(
@@ -3440,7 +3572,7 @@ function IssueManagerSidebarItem({
3440
3572
  type: "button",
3441
3573
  onClick: () => onSelect(issue.issueId),
3442
3574
  children: [
3443
- /* @__PURE__ */ jsx11(
3575
+ /* @__PURE__ */ jsx12(
3444
3576
  Badge4,
3445
3577
  {
3446
3578
  className: "absolute top-3.5 right-3.5",
@@ -3448,11 +3580,11 @@ function IssueManagerSidebarItem({
3448
3580
  children: resolveIssueManagerStatusLabel(copy, issue.status)
3449
3581
  }
3450
3582
  ),
3451
- /* @__PURE__ */ jsxs9("div", { className: "min-w-0 space-y-2", children: [
3452
- /* @__PURE__ */ jsx11("p", { className: "pr-28 text-[11px] leading-[1.55] text-[var(--text-secondary)]", children: formatIssueManagerDate(issue.updatedAtUnix ?? issue.createdAtUnix) }),
3453
- /* @__PURE__ */ jsx11("p", { className: "line-clamp-4 text-[13px] font-medium leading-[1.35rem] text-[var(--text-primary)]", children: issue.title })
3583
+ /* @__PURE__ */ jsxs10("div", { className: "min-w-0 space-y-2", children: [
3584
+ /* @__PURE__ */ jsx12("p", { className: "pr-28 text-[11px] leading-[1.55] text-[var(--text-secondary)]", children: formatIssueManagerDate(issue.updatedAtUnix ?? issue.createdAtUnix) }),
3585
+ /* @__PURE__ */ jsx12("p", { className: "line-clamp-4 text-[13px] font-medium leading-[1.35rem] text-[var(--text-primary)]", children: issue.title })
3454
3586
  ] }),
3455
- /* @__PURE__ */ jsx11("div", { className: "mt-2 text-[11px] leading-[1.55] text-[var(--text-secondary)]", children: copy.t("labels.taskCount", { count: issue.taskCount ?? 0 }) })
3587
+ /* @__PURE__ */ jsx12("div", { className: "mt-2 text-[11px] leading-[1.55] text-[var(--text-secondary)]", children: copy.t("labels.taskCount", { count: issue.taskCount ?? 0 }) })
3456
3588
  ]
3457
3589
  }
3458
3590
  );
@@ -3460,7 +3592,7 @@ function IssueManagerSidebarItem({
3460
3592
  function IssueManagerSidebarLoadingState({
3461
3593
  isNarrowLayout
3462
3594
  }) {
3463
- return /* @__PURE__ */ jsx11(
3595
+ return /* @__PURE__ */ jsx12(
3464
3596
  "div",
3465
3597
  {
3466
3598
  "aria-hidden": "true",
@@ -3468,7 +3600,7 @@ function IssueManagerSidebarLoadingState({
3468
3600
  "gap-2.5",
3469
3601
  isNarrowLayout ? "flex flex-row flex-nowrap overflow-x-hidden" : "grid"
3470
3602
  ),
3471
- children: Array.from({ length: 4 }, (_, index) => /* @__PURE__ */ jsxs9(
3603
+ children: Array.from({ length: 4 }, (_, index) => /* @__PURE__ */ jsxs10(
3472
3604
  "div",
3473
3605
  {
3474
3606
  className: cn6(
@@ -3476,9 +3608,9 @@ function IssueManagerSidebarLoadingState({
3476
3608
  isNarrowLayout && "h-24 max-h-24 min-h-24 w-[clamp(220px,58vw,320px)] flex-[0_0_clamp(220px,58vw,320px)]"
3477
3609
  ),
3478
3610
  children: [
3479
- /* @__PURE__ */ jsx11("div", { className: "h-3.5 w-20 rounded-full bg-[var(--transparency-block)]" }),
3480
- /* @__PURE__ */ jsx11("div", { className: "mt-3 h-4 w-4/5 rounded-full bg-[var(--transparency-block)]" }),
3481
- /* @__PURE__ */ jsx11("div", { className: "mt-4 h-3.5 w-24 rounded-full bg-[var(--transparency-block)]" })
3611
+ /* @__PURE__ */ jsx12("div", { className: "h-3.5 w-20 rounded-full bg-[var(--transparency-block)]" }),
3612
+ /* @__PURE__ */ jsx12("div", { className: "mt-3 h-4 w-4/5 rounded-full bg-[var(--transparency-block)]" }),
3613
+ /* @__PURE__ */ jsx12("div", { className: "mt-4 h-3.5 w-24 rounded-full bg-[var(--transparency-block)]" })
3482
3614
  ]
3483
3615
  },
3484
3616
  index
@@ -3491,14 +3623,14 @@ function IssueManagerSidebarEmptyState({
3491
3623
  title,
3492
3624
  tone = "default"
3493
3625
  }) {
3494
- return /* @__PURE__ */ jsx11(
3626
+ return /* @__PURE__ */ jsx12(
3495
3627
  "div",
3496
3628
  {
3497
3629
  className: cn6(
3498
3630
  "relative flex flex-1 flex-col items-center justify-center self-stretch overflow-hidden p-0 text-center",
3499
3631
  isNarrowLayout ? "h-24 max-h-24 min-h-24 w-full flex-[0_0_100%]" : "min-h-full"
3500
3632
  ),
3501
- children: /* @__PURE__ */ jsx11(
3633
+ children: /* @__PURE__ */ jsx12(
3502
3634
  "p",
3503
3635
  {
3504
3636
  className: cn6(
@@ -3517,7 +3649,7 @@ function IssueManagerSidebarErrorState({
3517
3649
  title,
3518
3650
  onRetry
3519
3651
  }) {
3520
- return /* @__PURE__ */ jsxs9(
3652
+ return /* @__PURE__ */ jsxs10(
3521
3653
  "div",
3522
3654
  {
3523
3655
  className: cn6(
@@ -3525,9 +3657,9 @@ function IssueManagerSidebarErrorState({
3525
3657
  isNarrowLayout ? "h-24 max-h-24 min-h-24 w-full flex-[0_0_100%]" : "min-h-full"
3526
3658
  ),
3527
3659
  children: [
3528
- /* @__PURE__ */ jsx11("p", { className: "text-[13px] font-semibold leading-5 text-[var(--state-danger)]", children: title }),
3529
- /* @__PURE__ */ jsx11(
3530
- Button7,
3660
+ /* @__PURE__ */ jsx12("p", { className: "text-[13px] font-semibold leading-5 text-[var(--state-danger)]", children: title }),
3661
+ /* @__PURE__ */ jsx12(
3662
+ Button8,
3531
3663
  {
3532
3664
  className: "mt-3",
3533
3665
  size: "sm",
@@ -3566,7 +3698,7 @@ function resolveIssueManagerSidebarPresentationState(input) {
3566
3698
  }
3567
3699
 
3568
3700
  // src/ui/internal/shell/IssueManagerSidebar.tsx
3569
- import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
3701
+ import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
3570
3702
  function IssueManagerSidebar({
3571
3703
  controller,
3572
3704
  isCollapsed,
@@ -3580,7 +3712,7 @@ function IssueManagerSidebar({
3580
3712
  showStandaloneState,
3581
3713
  sidebarViewState
3582
3714
  });
3583
- return /* @__PURE__ */ jsxs10(
3715
+ return /* @__PURE__ */ jsxs11(
3584
3716
  "aside",
3585
3717
  {
3586
3718
  "aria-hidden": isCollapsed ? "true" : void 0,
@@ -3591,7 +3723,7 @@ function IssueManagerSidebar({
3591
3723
  ),
3592
3724
  inert: isCollapsed ? true : void 0,
3593
3725
  children: [
3594
- /* @__PURE__ */ jsx12(
3726
+ /* @__PURE__ */ jsx13(
3595
3727
  IssueManagerSidebarHeader,
3596
3728
  {
3597
3729
  copy,
@@ -3601,7 +3733,7 @@ function IssueManagerSidebar({
3601
3733
  onIssueSearchQueryChange: controller.setIssueSearchQuery
3602
3734
  }
3603
3735
  ),
3604
- /* @__PURE__ */ jsx12(
3736
+ /* @__PURE__ */ jsx13(
3605
3737
  IssueManagerSidebarStatusTabs,
3606
3738
  {
3607
3739
  copy,
@@ -3610,15 +3742,15 @@ function IssueManagerSidebar({
3610
3742
  onIssueStatusFilterChange: controller.setIssueStatusFilter
3611
3743
  }
3612
3744
  ),
3613
- /* @__PURE__ */ jsx12("div", { "aria-hidden": "true", className: "h-2.5 flex-none" }),
3614
- /* @__PURE__ */ jsx12(
3745
+ /* @__PURE__ */ jsx13("div", { "aria-hidden": "true", className: "h-2.5 flex-none" }),
3746
+ /* @__PURE__ */ jsx13(
3615
3747
  "div",
3616
3748
  {
3617
3749
  className: cn7(
3618
3750
  "relative flex min-h-0 flex-col",
3619
3751
  isNarrowLayout ? "flex-none" : "flex-1"
3620
3752
  ),
3621
- children: presentation.kind !== "none" ? /* @__PURE__ */ jsx12("div", { className: "flex h-full min-h-0 items-center justify-center px-4 pt-1.5 pb-4", children: /* @__PURE__ */ jsx12(
3753
+ children: presentation.kind !== "none" ? /* @__PURE__ */ jsx13("div", { className: "flex h-full min-h-0 items-center justify-center px-4 pt-1.5 pb-4", children: /* @__PURE__ */ jsx13(
3622
3754
  IssueManagerSidebarStandalonePane,
3623
3755
  {
3624
3756
  body: presentation.kind === "empty" ? presentation.body : void 0,
@@ -3628,7 +3760,7 @@ function IssueManagerSidebar({
3628
3760
  title: presentation.title,
3629
3761
  onRetry: () => controller.refreshAll()
3630
3762
  }
3631
- ) }) : /* @__PURE__ */ jsx12(
3763
+ ) }) : /* @__PURE__ */ jsx13(
3632
3764
  IssueManagerSidebarBody,
3633
3765
  {
3634
3766
  copy,
@@ -3647,8 +3779,8 @@ function IssueManagerSidebar({
3647
3779
  }
3648
3780
 
3649
3781
  // src/ui/internal/shell/IssueManagerTaskComposerPane.tsx
3650
- import { Button as Button8 } from "@tutti-os/ui-system";
3651
- import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
3782
+ import { Button as Button9 } from "@tutti-os/ui-system";
3783
+ import { jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
3652
3784
  function IssueManagerTaskComposerPane({
3653
3785
  controller,
3654
3786
  onCancel,
@@ -3656,23 +3788,23 @@ function IssueManagerTaskComposerPane({
3656
3788
  }) {
3657
3789
  const copy = controller.copy;
3658
3790
  const isTaskTitleMissing = controller.taskDraft.title.trim().length === 0;
3659
- return /* @__PURE__ */ jsxs11("div", { className: "flex h-full min-h-0 flex-col overflow-hidden", children: [
3660
- /* @__PURE__ */ jsx13("div", { className: "flex min-h-0 flex-1 flex-col gap-[14px] overflow-y-auto px-7 py-8", children: /* @__PURE__ */ jsxs11("div", { className: "flex w-full min-w-0 flex-col gap-3", children: [
3661
- /* @__PURE__ */ jsx13(
3791
+ return /* @__PURE__ */ jsxs12("div", { className: "flex h-full min-h-0 flex-col overflow-hidden", children: [
3792
+ /* @__PURE__ */ jsx14("div", { className: "flex min-h-0 flex-1 flex-col gap-[14px] overflow-y-auto px-7 py-8", children: /* @__PURE__ */ jsxs12("div", { className: "flex w-full min-w-0 flex-col gap-3", children: [
3793
+ /* @__PURE__ */ jsx14(
3662
3794
  "div",
3663
3795
  {
3664
3796
  className: `${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay0ClassName}`,
3665
- children: /* @__PURE__ */ jsx13("h2", { className: "m-0 text-[15px] font-semibold leading-[1.35] text-[var(--text-primary)]", children: copy.t("actions.addSubtask") })
3797
+ children: /* @__PURE__ */ jsx14("h2", { className: "m-0 text-[15px] font-semibold leading-[1.35] text-[var(--text-primary)]", children: copy.t("actions.addSubtask") })
3666
3798
  }
3667
3799
  ),
3668
- /* @__PURE__ */ jsxs11("div", { className: "flex w-full min-w-0 flex-col gap-6", children: [
3669
- /* @__PURE__ */ jsxs11(
3800
+ /* @__PURE__ */ jsxs12("div", { className: "flex w-full min-w-0 flex-col gap-6", children: [
3801
+ /* @__PURE__ */ jsxs12(
3670
3802
  "label",
3671
3803
  {
3672
3804
  className: `flex w-full min-w-0 flex-col gap-2 text-[13px] font-semibold text-[var(--text-secondary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay1ClassName}`,
3673
3805
  children: [
3674
- /* @__PURE__ */ jsx13("span", { className: "leading-5", children: copy.t("labels.title") }),
3675
- /* @__PURE__ */ jsx13(
3806
+ /* @__PURE__ */ jsx14("span", { className: "leading-5", children: copy.t("labels.title") }),
3807
+ /* @__PURE__ */ jsx14(
3676
3808
  IssueManagerDraftTitleInput,
3677
3809
  {
3678
3810
  placeholder: copy.t("composer.subtaskTitlePlaceholder"),
@@ -3683,13 +3815,13 @@ function IssueManagerTaskComposerPane({
3683
3815
  ]
3684
3816
  }
3685
3817
  ),
3686
- /* @__PURE__ */ jsxs11(
3818
+ /* @__PURE__ */ jsxs12(
3687
3819
  "div",
3688
3820
  {
3689
3821
  className: `flex min-h-0 w-full min-w-0 flex-col gap-2 text-[13px] font-semibold text-[var(--text-secondary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay2ClassName}`,
3690
3822
  children: [
3691
- /* @__PURE__ */ jsx13("span", { className: "leading-5", children: copy.t("labels.requirementDescription") }),
3692
- /* @__PURE__ */ jsx13(
3823
+ /* @__PURE__ */ jsx14("span", { className: "leading-5", children: copy.t("labels.requirementDescription") }),
3824
+ /* @__PURE__ */ jsx14(
3693
3825
  IssueManagerRichTextTextarea,
3694
3826
  {
3695
3827
  controller,
@@ -3705,13 +3837,13 @@ function IssueManagerTaskComposerPane({
3705
3837
  )
3706
3838
  ] })
3707
3839
  ] }) }),
3708
- /* @__PURE__ */ jsx13(
3840
+ /* @__PURE__ */ jsx14(
3709
3841
  "div",
3710
3842
  {
3711
3843
  className: `shrink-0 border-t border-border-1 px-7 py-4 ${issueManagerEditorFooterFadeInClassName}`,
3712
- children: /* @__PURE__ */ jsxs11("div", { className: "flex items-center justify-end gap-3", children: [
3713
- /* @__PURE__ */ jsx13(
3714
- Button8,
3844
+ children: /* @__PURE__ */ jsxs12("div", { className: "flex items-center justify-end gap-3", children: [
3845
+ /* @__PURE__ */ jsx14(
3846
+ Button9,
3715
3847
  {
3716
3848
  size: "default",
3717
3849
  type: "button",
@@ -3720,8 +3852,8 @@ function IssueManagerTaskComposerPane({
3720
3852
  children: copy.t("actions.cancel")
3721
3853
  }
3722
3854
  ),
3723
- /* @__PURE__ */ jsx13(
3724
- Button8,
3855
+ /* @__PURE__ */ jsx14(
3856
+ Button9,
3725
3857
  {
3726
3858
  disabled: !selectedIssue || isTaskTitleMissing,
3727
3859
  size: "default",
@@ -3741,8 +3873,8 @@ import { ScrollArea as ScrollArea4, cn as cn8 } from "@tutti-os/ui-system";
3741
3873
 
3742
3874
  // src/ui/internal/shell/IssueManagerTaskDrawerSections.tsx
3743
3875
  import { useState as useState6 } from "react";
3744
- import { Badge as Badge5, Button as Button9, ConfirmationDialog as ConfirmationDialog2 } from "@tutti-os/ui-system";
3745
- import { Fragment as Fragment2, jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
3876
+ import { Badge as Badge5, Button as Button10, ConfirmationDialog as ConfirmationDialog2 } from "@tutti-os/ui-system";
3877
+ import { Fragment as Fragment2, jsx as jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
3746
3878
  function IssueManagerTaskDrawerHeader({
3747
3879
  controller,
3748
3880
  selectedTask,
@@ -3751,13 +3883,13 @@ function IssueManagerTaskDrawerHeader({
3751
3883
  const copy = controller.copy;
3752
3884
  const [deleteDialogOpen, setDeleteDialogOpen] = useState6(false);
3753
3885
  const [deleteBusy, setDeleteBusy] = useState6(false);
3754
- return /* @__PURE__ */ jsxs12(Fragment2, { children: [
3755
- /* @__PURE__ */ jsxs12("div", { className: "grid gap-3 px-6 py-7", children: [
3756
- /* @__PURE__ */ jsxs12("div", { className: "flex items-center justify-between gap-6", children: [
3757
- view.showTaskMetadata && selectedTask ? /* @__PURE__ */ jsx14(IssueManagerTitleTooltip, { title: view.title, children: /* @__PURE__ */ jsx14("h3", { className: "line-clamp-2 min-w-0 flex-1 whitespace-normal text-[15px] font-semibold leading-6 text-[var(--text-primary)] [overflow-wrap:anywhere]", children: view.title }) }) : /* @__PURE__ */ jsx14(IssueManagerTitleTooltip, { title: view.title, children: /* @__PURE__ */ jsx14("h3", { className: "line-clamp-2 min-w-0 flex-1 whitespace-normal text-[15px] font-semibold leading-[1.35] text-[var(--text-primary)] [overflow-wrap:anywhere]", children: view.title }) }),
3758
- /* @__PURE__ */ jsx14("div", { className: "flex shrink-0 items-center gap-2", children: view.showTaskActions && selectedTask ? /* @__PURE__ */ jsxs12(Fragment2, { children: [
3759
- /* @__PURE__ */ jsx14(
3760
- Button9,
3886
+ return /* @__PURE__ */ jsxs13(Fragment2, { children: [
3887
+ /* @__PURE__ */ jsxs13("div", { className: "grid gap-3 px-6 py-7", children: [
3888
+ /* @__PURE__ */ jsxs13("div", { className: "flex items-center justify-between gap-6", children: [
3889
+ view.showTaskMetadata && selectedTask ? /* @__PURE__ */ jsx15(IssueManagerTitleTooltip, { title: view.title, children: /* @__PURE__ */ jsx15("h3", { className: "line-clamp-2 min-w-0 flex-1 whitespace-normal text-[15px] font-semibold leading-6 text-[var(--text-primary)] [overflow-wrap:anywhere]", children: view.title }) }) : /* @__PURE__ */ jsx15(IssueManagerTitleTooltip, { title: view.title, children: /* @__PURE__ */ jsx15("h3", { className: "line-clamp-2 min-w-0 flex-1 whitespace-normal text-[15px] font-semibold leading-[1.35] text-[var(--text-primary)] [overflow-wrap:anywhere]", children: view.title }) }),
3890
+ /* @__PURE__ */ jsx15("div", { className: "flex shrink-0 items-center gap-2", children: view.showTaskActions && selectedTask ? /* @__PURE__ */ jsxs13(Fragment2, { children: [
3891
+ /* @__PURE__ */ jsx15(
3892
+ Button10,
3761
3893
  {
3762
3894
  type: "button",
3763
3895
  variant: "ghost",
@@ -3765,8 +3897,8 @@ function IssueManagerTaskDrawerHeader({
3765
3897
  children: copy.t("actions.edit")
3766
3898
  }
3767
3899
  ),
3768
- /* @__PURE__ */ jsx14(
3769
- Button9,
3900
+ /* @__PURE__ */ jsx15(
3901
+ Button10,
3770
3902
  {
3771
3903
  className: "text-[var(--state-danger)] hover:bg-[var(--on-danger)] hover:text-[var(--state-danger)]",
3772
3904
  type: "button",
@@ -3777,24 +3909,24 @@ function IssueManagerTaskDrawerHeader({
3777
3909
  )
3778
3910
  ] }) : null })
3779
3911
  ] }),
3780
- view.showTaskMetadata && selectedTask ? /* @__PURE__ */ jsxs12("div", { className: "grid gap-2", children: [
3781
- /* @__PURE__ */ jsx14(
3912
+ view.showTaskMetadata && selectedTask ? /* @__PURE__ */ jsxs13("div", { className: "grid gap-2", children: [
3913
+ /* @__PURE__ */ jsx15(
3782
3914
  IssueManagerTaskMetadataRow,
3783
3915
  {
3784
3916
  copy,
3785
3917
  selectedTask
3786
3918
  }
3787
3919
  ),
3788
- selectedTask.status === "pending_acceptance" ? /* @__PURE__ */ jsx14(IssueManagerTaskAcceptanceCard, { controller }) : null
3920
+ selectedTask.status === "pending_acceptance" ? /* @__PURE__ */ jsx15(IssueManagerTaskAcceptanceCard, { controller }) : null
3789
3921
  ] }) : null
3790
3922
  ] }),
3791
- selectedTask ? /* @__PURE__ */ jsx14(
3923
+ selectedTask ? /* @__PURE__ */ jsx15(
3792
3924
  ConfirmationDialog2,
3793
3925
  {
3794
3926
  cancelLabel: copy.t("actions.cancel"),
3795
3927
  confirmBusy: deleteBusy,
3796
3928
  confirmLabel: copy.t("actions.delete"),
3797
- description: /* @__PURE__ */ jsx14("span", { className: "block max-w-full whitespace-normal [overflow-wrap:anywhere]", children: selectedTask.title }),
3929
+ description: /* @__PURE__ */ jsx15("span", { className: "block max-w-full whitespace-normal [overflow-wrap:anywhere]", children: selectedTask.title }),
3798
3930
  open: deleteDialogOpen,
3799
3931
  title: copy.t("confirmations.deleteTask"),
3800
3932
  tone: "destructive",
@@ -3814,70 +3946,36 @@ function IssueManagerTaskMetadataRow({
3814
3946
  copy,
3815
3947
  selectedTask
3816
3948
  }) {
3817
- return /* @__PURE__ */ jsxs12("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-2 text-[11px] font-normal leading-[1.3] text-[var(--text-secondary)]", children: [
3818
- /* @__PURE__ */ jsx14(Badge5, { variant: issueManagerStatusBadgeVariant(selectedTask.status), children: resolveIssueManagerStatusLabel(copy, selectedTask.status) }),
3819
- /* @__PURE__ */ jsx14(
3949
+ return /* @__PURE__ */ jsxs13("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-2 text-[11px] font-normal leading-[1.3] text-[var(--text-secondary)]", children: [
3950
+ /* @__PURE__ */ jsx15(Badge5, { variant: issueManagerStatusBadgeVariant(selectedTask.status), children: resolveIssueManagerStatusLabel(copy, selectedTask.status) }),
3951
+ /* @__PURE__ */ jsx15(
3820
3952
  "span",
3821
3953
  {
3822
3954
  "aria-hidden": "true",
3823
3955
  className: "h-4 w-px shrink-0 bg-[var(--line-2)]"
3824
3956
  }
3825
3957
  ),
3826
- /* @__PURE__ */ jsxs12("span", { className: "text-[11px] font-normal leading-[1.3]", children: [
3958
+ /* @__PURE__ */ jsxs13("span", { className: "text-[11px] font-normal leading-[1.3]", children: [
3827
3959
  copy.t("labels.creator"),
3828
3960
  " ",
3829
3961
  resolveTaskCreatorLabel(selectedTask)
3830
3962
  ] }),
3831
- /* @__PURE__ */ jsx14(
3963
+ /* @__PURE__ */ jsx15(
3832
3964
  "span",
3833
3965
  {
3834
3966
  "aria-hidden": "true",
3835
3967
  className: "h-4 w-px shrink-0 bg-[var(--line-2)]"
3836
3968
  }
3837
3969
  ),
3838
- /* @__PURE__ */ jsxs12("span", { className: "text-[11px] font-normal leading-[1.3]", children: [
3970
+ /* @__PURE__ */ jsxs13("span", { className: "text-[11px] font-normal leading-[1.3]", children: [
3839
3971
  copy.t("labels.createdAt"),
3840
3972
  " ",
3841
3973
  formatIssueManagerTimestamp(selectedTask.createdAtUnix) || "-"
3842
3974
  ] })
3843
3975
  ] });
3844
3976
  }
3845
- function IssueManagerTaskAcceptanceCard({
3846
- controller
3847
- }) {
3848
- const copy = controller.copy;
3849
- return /* @__PURE__ */ jsxs12("div", { className: "grid gap-2 rounded-md bg-[var(--transparency-block)] px-3 py-2", children: [
3850
- /* @__PURE__ */ jsxs12("div", { className: "min-w-0 text-[11px] font-normal leading-[1.45] text-[var(--text-secondary)] [overflow-wrap:anywhere]", children: [
3851
- /* @__PURE__ */ jsx14("span", { className: "font-semibold text-[var(--text-primary)]", children: copy.t("labels.taskAcceptance") }),
3852
- /* @__PURE__ */ jsx14("span", { className: "mx-1 text-[var(--text-tertiary)]", children: "\xB7" }),
3853
- /* @__PURE__ */ jsx14("span", { children: copy.t("messages.taskAcceptanceHint") })
3854
- ] }),
3855
- /* @__PURE__ */ jsxs12("div", { className: "flex items-center justify-end gap-2", children: [
3856
- /* @__PURE__ */ jsx14(
3857
- Button9,
3858
- {
3859
- className: "h-7 px-2 text-[11px] text-[var(--state-danger)] hover:bg-[var(--on-danger)] hover:text-[var(--state-danger)]",
3860
- type: "button",
3861
- variant: "ghost",
3862
- onClick: () => void controller.setSelectedTaskStatus("not_started"),
3863
- children: copy.t("actions.rejectTask")
3864
- }
3865
- ),
3866
- /* @__PURE__ */ jsx14(
3867
- Button9,
3868
- {
3869
- className: "h-7 px-2.5 text-[11px]",
3870
- type: "button",
3871
- variant: "secondary",
3872
- onClick: () => void controller.setSelectedTaskStatus("completed"),
3873
- children: copy.t("actions.acceptTask")
3874
- }
3875
- )
3876
- ] })
3877
- ] });
3878
- }
3879
3977
  function IssueManagerTaskDrawerLoadingBody() {
3880
- return /* @__PURE__ */ jsx14(IssueManagerTaskDrawerLoadingState, {});
3978
+ return /* @__PURE__ */ jsx15(IssueManagerTaskDrawerLoadingState, {});
3881
3979
  }
3882
3980
  function IssueManagerTaskDrawerBody({
3883
3981
  controller,
@@ -3886,10 +3984,10 @@ function IssueManagerTaskDrawerBody({
3886
3984
  view
3887
3985
  }) {
3888
3986
  if (view.bodyKind === "loading") {
3889
- return /* @__PURE__ */ jsx14(IssueManagerTaskDrawerLoadingBody, {});
3987
+ return /* @__PURE__ */ jsx15(IssueManagerTaskDrawerLoadingBody, {});
3890
3988
  }
3891
3989
  if (view.bodyKind === "edit") {
3892
- return /* @__PURE__ */ jsx14(
3990
+ return /* @__PURE__ */ jsx15(
3893
3991
  IssueManagerTaskDrawerEditBody,
3894
3992
  {
3895
3993
  controller,
@@ -3897,7 +3995,7 @@ function IssueManagerTaskDrawerBody({
3897
3995
  }
3898
3996
  );
3899
3997
  }
3900
- return /* @__PURE__ */ jsx14(
3998
+ return /* @__PURE__ */ jsx15(
3901
3999
  IssueManagerTaskDrawerReadBody,
3902
4000
  {
3903
4001
  controller,
@@ -3912,22 +4010,22 @@ function IssueManagerTaskDrawerEditBody({
3912
4010
  title
3913
4011
  }) {
3914
4012
  const copy = controller.copy;
3915
- return /* @__PURE__ */ jsxs12("div", { className: "flex w-full min-w-0 flex-col gap-3", children: [
3916
- /* @__PURE__ */ jsx14(
4013
+ return /* @__PURE__ */ jsxs13("div", { className: "flex w-full min-w-0 flex-col gap-3", children: [
4014
+ /* @__PURE__ */ jsx15(
3917
4015
  "div",
3918
4016
  {
3919
4017
  className: `${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay0ClassName}`,
3920
- children: /* @__PURE__ */ jsx14("h2", { className: "m-0 text-[15px] font-semibold leading-[1.35] text-[var(--text-primary)]", children: title })
4018
+ children: /* @__PURE__ */ jsx15("h2", { className: "m-0 text-[15px] font-semibold leading-[1.35] text-[var(--text-primary)]", children: title })
3921
4019
  }
3922
4020
  ),
3923
- /* @__PURE__ */ jsxs12("div", { className: "flex w-full min-w-0 flex-col gap-6", children: [
3924
- /* @__PURE__ */ jsxs12(
4021
+ /* @__PURE__ */ jsxs13("div", { className: "flex w-full min-w-0 flex-col gap-6", children: [
4022
+ /* @__PURE__ */ jsxs13(
3925
4023
  "label",
3926
4024
  {
3927
4025
  className: `flex w-full min-w-0 flex-col gap-2 text-[13px] font-semibold text-[var(--text-secondary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay1ClassName}`,
3928
4026
  children: [
3929
- /* @__PURE__ */ jsx14("span", { className: "leading-5", children: copy.t("labels.title") }),
3930
- /* @__PURE__ */ jsx14(
4027
+ /* @__PURE__ */ jsx15("span", { className: "leading-5", children: copy.t("labels.title") }),
4028
+ /* @__PURE__ */ jsx15(
3931
4029
  IssueManagerDraftTitleInput,
3932
4030
  {
3933
4031
  placeholder: copy.t("composer.taskTitlePlaceholder"),
@@ -3938,13 +4036,13 @@ function IssueManagerTaskDrawerEditBody({
3938
4036
  ]
3939
4037
  }
3940
4038
  ),
3941
- /* @__PURE__ */ jsxs12(
4039
+ /* @__PURE__ */ jsxs13(
3942
4040
  "div",
3943
4041
  {
3944
4042
  className: `flex min-h-0 w-full min-w-0 flex-col gap-2 text-[13px] font-semibold text-[var(--text-secondary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay2ClassName}`,
3945
4043
  children: [
3946
- /* @__PURE__ */ jsx14("span", { className: "leading-5", children: copy.t("labels.content") }),
3947
- /* @__PURE__ */ jsx14(
4044
+ /* @__PURE__ */ jsx15("span", { className: "leading-5", children: copy.t("labels.content") }),
4045
+ /* @__PURE__ */ jsx15(
3948
4046
  IssueManagerRichTextTextarea,
3949
4047
  {
3950
4048
  controller,
@@ -3970,8 +4068,8 @@ function IssueManagerTaskDrawerReadBody({
3970
4068
  const copy = controller.copy;
3971
4069
  const latestRun = controller.taskDetail.value?.latestRun ?? controller.taskDetail.value?.recentRuns[0] ?? null;
3972
4070
  const latestOutputs = controller.taskDetail.value?.latestOutputs ?? [];
3973
- return /* @__PURE__ */ jsxs12(Fragment2, { children: [
3974
- /* @__PURE__ */ jsx14(
4071
+ return /* @__PURE__ */ jsxs13(Fragment2, { children: [
4072
+ /* @__PURE__ */ jsx15(
3975
4073
  IssueManagerDescriptionSection,
3976
4074
  {
3977
4075
  content: taskContent,
@@ -3981,7 +4079,7 @@ function IssueManagerTaskDrawerReadBody({
3981
4079
  variant: "plain"
3982
4080
  }
3983
4081
  ),
3984
- /* @__PURE__ */ jsx14(
4082
+ /* @__PURE__ */ jsx15(
3985
4083
  IssueManagerLatestRunStatusSection,
3986
4084
  {
3987
4085
  copy,
@@ -3991,7 +4089,7 @@ function IssueManagerTaskDrawerReadBody({
3991
4089
  title: latestRunTitle
3992
4090
  }
3993
4091
  ),
3994
- /* @__PURE__ */ jsx14(
4092
+ /* @__PURE__ */ jsx15(
3995
4093
  IssueManagerOutputSection,
3996
4094
  {
3997
4095
  copy,
@@ -4013,8 +4111,8 @@ function IssueManagerTaskDrawerFooter({
4013
4111
  selectedTaskStatus: selectedTask?.status
4014
4112
  });
4015
4113
  if (view.showReadFooter && selectedTask) {
4016
- return /* @__PURE__ */ jsx14("div", { className: "border-t border-[var(--border-1)] bg-transparent px-6 py-4 backdrop-blur", children: /* @__PURE__ */ jsxs12("div", { className: "flex items-center justify-end gap-3", children: [
4017
- /* @__PURE__ */ jsx14(
4114
+ return /* @__PURE__ */ jsx15("div", { className: "border-t border-[var(--border-1)] bg-transparent px-6 py-4 backdrop-blur", children: /* @__PURE__ */ jsxs13("div", { className: "flex items-center justify-end gap-3", children: [
4115
+ /* @__PURE__ */ jsx15(
4018
4116
  IssueManagerExecutionDirectoryTrigger,
4019
4117
  {
4020
4118
  className: "mr-auto",
@@ -4022,7 +4120,7 @@ function IssueManagerTaskDrawerFooter({
4022
4120
  disabled: runControlsDisabled
4023
4121
  }
4024
4122
  ),
4025
- /* @__PURE__ */ jsx14(
4123
+ /* @__PURE__ */ jsx15(
4026
4124
  IssueManagerRunActionTrigger,
4027
4125
  {
4028
4126
  controller,
@@ -4030,8 +4128,8 @@ function IssueManagerTaskDrawerFooter({
4030
4128
  triggerVariant: "button"
4031
4129
  }
4032
4130
  ),
4033
- controller.canInviteCollaborators ? /* @__PURE__ */ jsx14(
4034
- Button9,
4131
+ controller.canInviteCollaborators ? /* @__PURE__ */ jsx15(
4132
+ Button10,
4035
4133
  {
4036
4134
  disabled: !selectedIssue,
4037
4135
  size: "dialog",
@@ -4045,13 +4143,13 @@ function IssueManagerTaskDrawerFooter({
4045
4143
  ] }) });
4046
4144
  }
4047
4145
  if (view.showEditFooter) {
4048
- return /* @__PURE__ */ jsx14(
4146
+ return /* @__PURE__ */ jsx15(
4049
4147
  "div",
4050
4148
  {
4051
4149
  className: `border-t border-border-1 px-6 py-4 ${issueManagerEditorFooterFadeInClassName}`,
4052
- children: /* @__PURE__ */ jsxs12("div", { className: "flex items-center justify-end gap-3", children: [
4053
- /* @__PURE__ */ jsx14(
4054
- Button9,
4150
+ children: /* @__PURE__ */ jsxs13("div", { className: "flex items-center justify-end gap-3", children: [
4151
+ /* @__PURE__ */ jsx15(
4152
+ Button10,
4055
4153
  {
4056
4154
  size: "dialog",
4057
4155
  type: "button",
@@ -4060,8 +4158,8 @@ function IssueManagerTaskDrawerFooter({
4060
4158
  children: copy.t("actions.cancel")
4061
4159
  }
4062
4160
  ),
4063
- /* @__PURE__ */ jsx14(
4064
- Button9,
4161
+ /* @__PURE__ */ jsx15(
4162
+ Button10,
4065
4163
  {
4066
4164
  disabled: canIssueManagerSaveTask({
4067
4165
  selectedIssue,
@@ -4081,7 +4179,7 @@ function IssueManagerTaskDrawerFooter({
4081
4179
  }
4082
4180
 
4083
4181
  // src/ui/internal/shell/IssueManagerTaskDrawer.tsx
4084
- import { jsx as jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
4182
+ import { jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
4085
4183
  function IssueManagerTaskDrawer({
4086
4184
  controller,
4087
4185
  isClosing,
@@ -4095,7 +4193,7 @@ function IssueManagerTaskDrawer({
4095
4193
  selectedTask
4096
4194
  });
4097
4195
  const taskContent = selectedTask?.content ?? "";
4098
- return /* @__PURE__ */ jsx15(
4196
+ return /* @__PURE__ */ jsx16(
4099
4197
  "div",
4100
4198
  {
4101
4199
  className: cn8(
@@ -4109,7 +4207,7 @@ function IssueManagerTaskDrawer({
4109
4207
  onWheel: (event) => {
4110
4208
  event.preventDefault();
4111
4209
  },
4112
- children: /* @__PURE__ */ jsxs13(
4210
+ children: /* @__PURE__ */ jsxs14(
4113
4211
  "aside",
4114
4212
  {
4115
4213
  className: cn8(
@@ -4120,7 +4218,7 @@ function IssueManagerTaskDrawer({
4120
4218
  onTouchMove: (event) => event.stopPropagation(),
4121
4219
  onWheel: (event) => event.stopPropagation(),
4122
4220
  children: [
4123
- view.bodyKind === "edit" ? null : /* @__PURE__ */ jsx15(
4221
+ view.bodyKind === "edit" ? null : /* @__PURE__ */ jsx16(
4124
4222
  IssueManagerTaskDrawerHeader,
4125
4223
  {
4126
4224
  controller,
@@ -4128,19 +4226,19 @@ function IssueManagerTaskDrawer({
4128
4226
  view
4129
4227
  }
4130
4228
  ),
4131
- /* @__PURE__ */ jsx15(
4229
+ /* @__PURE__ */ jsx16(
4132
4230
  ScrollArea4,
4133
4231
  {
4134
4232
  scrollbarMode: "native",
4135
4233
  className: "min-h-0 flex-1 [&_[data-slot=scroll-area-viewport]]:overscroll-contain",
4136
- children: /* @__PURE__ */ jsx15(
4234
+ children: /* @__PURE__ */ jsx16(
4137
4235
  "div",
4138
4236
  {
4139
4237
  className: cn8(
4140
4238
  "flex flex-col",
4141
4239
  view.bodyKind === "edit" ? "gap-[14px] px-6 py-8" : "gap-9 px-6 py-7"
4142
4240
  ),
4143
- children: /* @__PURE__ */ jsx15(
4241
+ children: /* @__PURE__ */ jsx16(
4144
4242
  IssueManagerTaskDrawerBody,
4145
4243
  {
4146
4244
  controller,
@@ -4153,7 +4251,7 @@ function IssueManagerTaskDrawer({
4153
4251
  )
4154
4252
  }
4155
4253
  ),
4156
- /* @__PURE__ */ jsx15(
4254
+ /* @__PURE__ */ jsx16(
4157
4255
  IssueManagerTaskDrawerFooter,
4158
4256
  {
4159
4257
  controller,
@@ -4324,7 +4422,7 @@ function useIssueManagerShellView({
4324
4422
  }
4325
4423
 
4326
4424
  // src/ui/internal/shell/IssueManagerShell.tsx
4327
- import { jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
4425
+ import { jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
4328
4426
  var issueManagerTaskDrawerExitDurationMs = 180;
4329
4427
  function IssueManagerShell({
4330
4428
  controller,
@@ -4365,7 +4463,7 @@ function IssueManagerShell({
4365
4463
  shellView.content.isTaskDrawerOpen
4366
4464
  ]);
4367
4465
  const taskDrawerTask = shellView.content.isTaskDrawerOpen ? selectedTask : renderedTaskDrawerTask;
4368
- return /* @__PURE__ */ jsxs14(
4466
+ return /* @__PURE__ */ jsxs15(
4369
4467
  "div",
4370
4468
  {
4371
4469
  className: "relative grid min-h-0 flex-1 grid-rows-[minmax(0,1fr)] overflow-hidden bg-transparent transition-[grid-template-columns] duration-[180ms] ease-[cubic-bezier(0.4,0,0.2,1)] motion-reduce:transition-none",
@@ -4374,8 +4472,8 @@ function IssueManagerShell({
4374
4472
  ref: shellView.layoutRef,
4375
4473
  style: shellView.layoutStyle,
4376
4474
  children: [
4377
- shellView.floatingNotice ? /* @__PURE__ */ jsx16(IssueManagerFloatingNotice, { notice: shellView.floatingNotice }) : null,
4378
- /* @__PURE__ */ jsx16(
4475
+ shellView.floatingNotice ? /* @__PURE__ */ jsx17(IssueManagerFloatingNotice, { notice: shellView.floatingNotice }) : null,
4476
+ /* @__PURE__ */ jsx17(
4379
4477
  IssueManagerSidebar,
4380
4478
  {
4381
4479
  controller,
@@ -4386,7 +4484,7 @@ function IssueManagerShell({
4386
4484
  statusCounts: shellView.sidebar.statusCounts
4387
4485
  }
4388
4486
  ),
4389
- shellView.sidebar.isAutoCollapsed ? null : /* @__PURE__ */ jsx16(
4487
+ shellView.sidebar.isAutoCollapsed ? null : /* @__PURE__ */ jsx17(
4390
4488
  "div",
4391
4489
  {
4392
4490
  "aria-label": controller.copy.t("labels.resizeIssueList"),
@@ -4405,12 +4503,12 @@ function IssueManagerShell({
4405
4503
  onPointerDown: shellView.resizeHandle.onPointerDown,
4406
4504
  onPointerMove: shellView.resizeHandle.onPointerMove,
4407
4505
  onPointerUp: shellView.resizeHandle.onPointerUp,
4408
- children: /* @__PURE__ */ jsx16("span", { className: "absolute top-0 bottom-0 left-1/2 w-px -translate-x-1/2 bg-transparent transition-[background-color,width] duration-150 group-hover:w-0.5 group-hover:bg-[color-mix(in_srgb,var(--border-focus)_40%,transparent)] group-focus-visible:w-0.5 group-focus-visible:bg-[color-mix(in_srgb,var(--border-focus)_40%,transparent)]" })
4506
+ children: /* @__PURE__ */ jsx17("span", { className: "absolute top-0 bottom-0 left-1/2 w-px -translate-x-1/2 bg-transparent transition-[background-color,width] duration-150 group-hover:w-0.5 group-hover:bg-[color-mix(in_srgb,var(--border-focus)_40%,transparent)] group-focus-visible:w-0.5 group-focus-visible:bg-[color-mix(in_srgb,var(--border-focus)_40%,transparent)]" })
4409
4507
  }
4410
4508
  ),
4411
- /* @__PURE__ */ jsxs14("div", { className: "relative h-full min-h-0 overflow-hidden bg-transparent @container/issue-manager-content", children: [
4412
- /* @__PURE__ */ jsxs14("div", { className: "flex h-full min-h-0 flex-col", children: [
4413
- /* @__PURE__ */ jsx16("div", { className: "min-h-0 flex-1 overflow-hidden", children: shellView.content.isIssueEditing ? /* @__PURE__ */ jsx16(
4509
+ /* @__PURE__ */ jsxs15("div", { className: "relative h-full min-h-0 overflow-hidden bg-transparent @container/issue-manager-content", children: [
4510
+ /* @__PURE__ */ jsxs15("div", { className: "flex h-full min-h-0 flex-col", children: [
4511
+ /* @__PURE__ */ jsx17("div", { className: "min-h-0 flex-1 overflow-hidden", children: shellView.content.isIssueEditing ? /* @__PURE__ */ jsx17(
4414
4512
  IssueManagerIssuePane,
4415
4513
  {
4416
4514
  controller,
@@ -4418,14 +4516,14 @@ function IssueManagerShell({
4418
4516
  selectedIssue,
4419
4517
  onDismissCreate: onDismissIssueCreate
4420
4518
  }
4421
- ) : shellView.content.isTaskCreating ? /* @__PURE__ */ jsx16(
4519
+ ) : shellView.content.isTaskCreating ? /* @__PURE__ */ jsx17(
4422
4520
  IssueManagerTaskComposerPane,
4423
4521
  {
4424
4522
  controller,
4425
4523
  selectedIssue,
4426
4524
  onCancel: () => controller.setTaskEditorMode("read")
4427
4525
  }
4428
- ) : selectedIssue ? /* @__PURE__ */ jsx16(
4526
+ ) : selectedIssue ? /* @__PURE__ */ jsx17(
4429
4527
  IssueManagerIssuePane,
4430
4528
  {
4431
4529
  controller,
@@ -4433,14 +4531,14 @@ function IssueManagerShell({
4433
4531
  selectedIssue,
4434
4532
  onDismissCreate: onDismissIssueCreate
4435
4533
  }
4436
- ) : /* @__PURE__ */ jsx16(
4534
+ ) : /* @__PURE__ */ jsx17(
4437
4535
  IssueManagerShellEmptyState,
4438
4536
  {
4439
4537
  controller,
4440
4538
  emptyIllustration
4441
4539
  }
4442
4540
  ) }),
4443
- /* @__PURE__ */ jsx16(
4541
+ /* @__PURE__ */ jsx17(
4444
4542
  IssueManagerBottomBar,
4445
4543
  {
4446
4544
  controller,
@@ -4450,7 +4548,7 @@ function IssueManagerShell({
4450
4548
  }
4451
4549
  )
4452
4550
  ] }),
4453
- taskDrawerTask ? /* @__PURE__ */ jsx16(
4551
+ taskDrawerTask ? /* @__PURE__ */ jsx17(
4454
4552
  IssueManagerTaskDrawer,
4455
4553
  {
4456
4554
  controller,
@@ -4470,18 +4568,18 @@ function IssueManagerShellEmptyState({
4470
4568
  controller,
4471
4569
  emptyIllustration
4472
4570
  }) {
4473
- return /* @__PURE__ */ jsx16("div", { className: "flex h-full min-h-[320px] items-center justify-center px-10 py-10", children: /* @__PURE__ */ jsxs14("div", { className: "grid max-w-[420px] justify-items-center gap-2 text-center", children: [
4474
- emptyIllustration ? /* @__PURE__ */ jsx16("div", { className: "mb-4", children: emptyIllustration }) : null,
4475
- /* @__PURE__ */ jsx16("h2", { className: "text-[13px] font-semibold leading-5 text-[var(--text-primary)]", children: controller.copy.t("messages.noIssues") }),
4476
- /* @__PURE__ */ jsx16("p", { className: "max-w-[420px] text-[13px] leading-5 text-[var(--text-secondary)]", children: controller.copy.t("emptyState") }),
4477
- /* @__PURE__ */ jsxs14(
4478
- Button10,
4571
+ return /* @__PURE__ */ jsx17("div", { className: "flex h-full min-h-[320px] items-center justify-center px-10 py-10", children: /* @__PURE__ */ jsxs15("div", { className: "grid max-w-[420px] justify-items-center gap-2 text-center", children: [
4572
+ emptyIllustration ? /* @__PURE__ */ jsx17("div", { className: "mb-4", children: emptyIllustration }) : null,
4573
+ /* @__PURE__ */ jsx17("h2", { className: "text-[13px] font-semibold leading-5 text-[var(--text-primary)]", children: controller.copy.t("messages.noIssues") }),
4574
+ /* @__PURE__ */ jsx17("p", { className: "max-w-[420px] text-[13px] leading-5 text-[var(--text-secondary)]", children: controller.copy.t("emptyState") }),
4575
+ /* @__PURE__ */ jsxs15(
4576
+ Button11,
4479
4577
  {
4480
4578
  className: "mt-2 gap-2",
4481
4579
  type: "button",
4482
4580
  onClick: () => controller.setIssueEditorMode("create"),
4483
4581
  children: [
4484
- /* @__PURE__ */ jsx16(FileCreateIcon4, { size: 16 }),
4582
+ /* @__PURE__ */ jsx17(FileCreateIcon4, { size: 16 }),
4485
4583
  controller.copy.t("actions.createIssue")
4486
4584
  ]
4487
4585
  }
@@ -4493,7 +4591,7 @@ function IssueManagerShellEmptyState({
4493
4591
  import { useEffect as useEffect8, useState as useState9 } from "react";
4494
4592
  import {
4495
4593
  BareIconButton,
4496
- Button as Button11,
4594
+ Button as Button12,
4497
4595
  CheckIcon as CheckIcon2,
4498
4596
  ChevronDownIcon as ChevronDownIcon2,
4499
4597
  ConfirmationDialog as ConfirmationDialog3,
@@ -4517,7 +4615,7 @@ import {
4517
4615
  Textarea,
4518
4616
  cn as cn10
4519
4617
  } from "@tutti-os/ui-system";
4520
- import { Fragment as Fragment3, jsx as jsx17, jsxs as jsxs15 } from "react/jsx-runtime";
4618
+ import { Fragment as Fragment3, jsx as jsx18, jsxs as jsxs16 } from "react/jsx-runtime";
4521
4619
  var topicSelectorMenuItemClassName = "min-h-7 overflow-hidden rounded-md py-1 text-[13px] font-normal leading-[1.2] text-[var(--text-primary)]";
4522
4620
  var topicSelectorRowItemClassName = "min-w-0 flex-1 bg-transparent pr-2 pl-1 hover:bg-transparent focus:bg-transparent data-[highlighted]:bg-transparent";
4523
4621
  function IssueManagerTopicSelector({
@@ -4545,10 +4643,10 @@ function IssueManagerTopicSelector({
4545
4643
  setMenuOpen(false);
4546
4644
  setDialogMode(mode);
4547
4645
  };
4548
- return /* @__PURE__ */ jsxs15(Fragment3, { children: [
4549
- /* @__PURE__ */ jsxs15(DropdownMenu2, { open: menuOpen, onOpenChange: setMenuOpen, children: [
4550
- /* @__PURE__ */ jsx17(DropdownMenuTrigger2, { asChild: true, children: /* @__PURE__ */ jsxs15(
4551
- Button11,
4646
+ return /* @__PURE__ */ jsxs16(Fragment3, { children: [
4647
+ /* @__PURE__ */ jsxs16(DropdownMenu2, { open: menuOpen, onOpenChange: setMenuOpen, children: [
4648
+ /* @__PURE__ */ jsx18(DropdownMenuTrigger2, { asChild: true, children: /* @__PURE__ */ jsxs16(
4649
+ Button12,
4552
4650
  {
4553
4651
  "aria-label": topicLabel,
4554
4652
  className: cn10(
@@ -4559,18 +4657,18 @@ function IssueManagerTopicSelector({
4559
4657
  type: "button",
4560
4658
  variant: "ghost",
4561
4659
  children: [
4562
- /* @__PURE__ */ jsx17("span", { className: "min-w-0 truncate", children: triggerLabel }),
4563
- /* @__PURE__ */ jsx17(ChevronDownIcon2, { className: "size-4 shrink-0 text-[var(--text-tertiary)] transition-transform duration-200" })
4660
+ /* @__PURE__ */ jsx18("span", { className: "min-w-0 truncate", children: triggerLabel }),
4661
+ /* @__PURE__ */ jsx18(ChevronDownIcon2, { className: "size-4 shrink-0 text-[var(--text-tertiary)] transition-transform duration-200" })
4564
4662
  ]
4565
4663
  }
4566
4664
  ) }),
4567
- /* @__PURE__ */ jsxs15(DropdownMenuContent2, { align: "start", className: "w-[200px] px-1", children: [
4665
+ /* @__PURE__ */ jsxs16(DropdownMenuContent2, { align: "start", className: "w-[200px] px-1", children: [
4568
4666
  topics.map((topic) => {
4569
4667
  const isPinned = (topic.pinnedAtUnix ?? 0) > 0;
4570
4668
  const isActive = topic.topicId === activeTopicId;
4571
4669
  const pinLabel = isPinned ? copy.t("actions.unpinTopic") : copy.t("actions.pinTopic");
4572
- return /* @__PURE__ */ jsx17("div", { className: "min-w-0", children: /* @__PURE__ */ jsxs15("div", { className: "group/topic-row relative flex min-h-7 min-w-0 items-center gap-0.5 rounded-md pr-0.5 pl-0.5 hover:bg-[var(--transparency-block)] focus-within:bg-[var(--transparency-block)]", children: [
4573
- /* @__PURE__ */ jsxs15(
4670
+ return /* @__PURE__ */ jsx18("div", { className: "min-w-0", children: /* @__PURE__ */ jsxs16("div", { className: "group/topic-row relative flex min-h-7 min-w-0 items-center gap-0.5 rounded-md pr-0.5 pl-0.5 hover:bg-[var(--transparency-block)] focus-within:bg-[var(--transparency-block)]", children: [
4671
+ /* @__PURE__ */ jsxs16(
4574
4672
  DropdownMenuItem2,
4575
4673
  {
4576
4674
  className: cn10(
@@ -4582,15 +4680,15 @@ function IssueManagerTopicSelector({
4582
4680
  onSelectTopic(topic.topicId);
4583
4681
  },
4584
4682
  children: [
4585
- /* @__PURE__ */ jsx17("span", { className: "flex size-4 shrink-0 items-center justify-center text-[var(--accent)]", children: isActive ? /* @__PURE__ */ jsx17(CheckIcon2, { className: "size-4" }) : null }),
4586
- /* @__PURE__ */ jsxs15("span", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
4587
- /* @__PURE__ */ jsx17("span", { className: "truncate", children: topic.title }),
4588
- topic.isDefault ? /* @__PURE__ */ jsx17("span", { className: "shrink-0 text-[11px] text-[var(--text-tertiary)]", children: copy.t("labels.topicDefault") }) : null
4683
+ /* @__PURE__ */ jsx18("span", { className: "flex size-4 shrink-0 items-center justify-center text-[var(--accent)]", children: isActive ? /* @__PURE__ */ jsx18(CheckIcon2, { className: "size-4" }) : null }),
4684
+ /* @__PURE__ */ jsxs16("span", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
4685
+ /* @__PURE__ */ jsx18("span", { className: "truncate", children: topic.title }),
4686
+ topic.isDefault ? /* @__PURE__ */ jsx18("span", { className: "shrink-0 text-[11px] text-[var(--text-tertiary)]", children: copy.t("labels.topicDefault") }) : null
4589
4687
  ] })
4590
4688
  ]
4591
4689
  }
4592
4690
  ),
4593
- /* @__PURE__ */ jsx17(
4691
+ /* @__PURE__ */ jsx18(
4594
4692
  BareIconButton,
4595
4693
  {
4596
4694
  "aria-label": pinLabel,
@@ -4608,11 +4706,11 @@ function IssueManagerTopicSelector({
4608
4706
  topicId: topic.topicId
4609
4707
  });
4610
4708
  },
4611
- children: isPinned ? /* @__PURE__ */ jsx17(PinFilledIcon, { className: "size-3.5" }) : /* @__PURE__ */ jsx17(PinIcon, { className: "size-3.5" })
4709
+ children: isPinned ? /* @__PURE__ */ jsx18(PinFilledIcon, { className: "size-3.5" }) : /* @__PURE__ */ jsx18(PinIcon, { className: "size-3.5" })
4612
4710
  }
4613
4711
  ),
4614
- /* @__PURE__ */ jsxs15(DropdownMenu2, { modal: false, children: [
4615
- /* @__PURE__ */ jsx17(DropdownMenuTrigger2, { asChild: true, children: /* @__PURE__ */ jsx17(
4712
+ /* @__PURE__ */ jsxs16(DropdownMenu2, { modal: false, children: [
4713
+ /* @__PURE__ */ jsx18(DropdownMenuTrigger2, { asChild: true, children: /* @__PURE__ */ jsx18(
4616
4714
  BareIconButton,
4617
4715
  {
4618
4716
  "aria-label": copy.t("actions.moreActions"),
@@ -4622,17 +4720,17 @@ function IssueManagerTopicSelector({
4622
4720
  onClick: (event) => {
4623
4721
  event.stopPropagation();
4624
4722
  },
4625
- children: /* @__PURE__ */ jsx17(MoreHorizontalIcon, { className: "size-3.5" })
4723
+ children: /* @__PURE__ */ jsx18(MoreHorizontalIcon, { className: "size-3.5" })
4626
4724
  }
4627
4725
  ) }),
4628
- /* @__PURE__ */ jsxs15(
4726
+ /* @__PURE__ */ jsxs16(
4629
4727
  DropdownMenuContent2,
4630
4728
  {
4631
4729
  align: "end",
4632
4730
  className: "w-32",
4633
4731
  sideOffset: 6,
4634
4732
  children: [
4635
- /* @__PURE__ */ jsxs15(
4733
+ /* @__PURE__ */ jsxs16(
4636
4734
  DropdownMenuItem2,
4637
4735
  {
4638
4736
  onSelect: (event) => {
@@ -4643,12 +4741,12 @@ function IssueManagerTopicSelector({
4643
4741
  });
4644
4742
  },
4645
4743
  children: [
4646
- /* @__PURE__ */ jsx17(EditIcon, { className: "size-3.5" }),
4647
- /* @__PURE__ */ jsx17("span", { children: copy.t("actions.editTopic") })
4744
+ /* @__PURE__ */ jsx18(EditIcon, { className: "size-3.5" }),
4745
+ /* @__PURE__ */ jsx18("span", { children: copy.t("actions.editTopic") })
4648
4746
  ]
4649
4747
  }
4650
4748
  ),
4651
- !topic.isDefault ? /* @__PURE__ */ jsxs15(
4749
+ !topic.isDefault ? /* @__PURE__ */ jsxs16(
4652
4750
  DropdownMenuItem2,
4653
4751
  {
4654
4752
  variant: "destructive",
@@ -4658,8 +4756,8 @@ function IssueManagerTopicSelector({
4658
4756
  setDeleteTopic(topic);
4659
4757
  },
4660
4758
  children: [
4661
- /* @__PURE__ */ jsx17(DeleteIcon, { className: "size-3.5" }),
4662
- /* @__PURE__ */ jsx17("span", { children: copy.t("actions.delete") })
4759
+ /* @__PURE__ */ jsx18(DeleteIcon, { className: "size-3.5" }),
4760
+ /* @__PURE__ */ jsx18("span", { children: copy.t("actions.delete") })
4663
4761
  ]
4664
4762
  }
4665
4763
  ) : null
@@ -4669,9 +4767,9 @@ function IssueManagerTopicSelector({
4669
4767
  ] })
4670
4768
  ] }) }, topic.topicId);
4671
4769
  }),
4672
- topics.length === 0 ? /* @__PURE__ */ jsx17("div", { className: "px-3 py-2 text-[11px] leading-4 text-[var(--text-tertiary)]", children: copy.t("messages.topicListEmpty") }) : null,
4673
- /* @__PURE__ */ jsx17(DropdownMenuSeparator, {}),
4674
- /* @__PURE__ */ jsxs15(
4770
+ topics.length === 0 ? /* @__PURE__ */ jsx18("div", { className: "px-3 py-2 text-[11px] leading-4 text-[var(--text-tertiary)]", children: copy.t("messages.topicListEmpty") }) : null,
4771
+ /* @__PURE__ */ jsx18(DropdownMenuSeparator, {}),
4772
+ /* @__PURE__ */ jsxs16(
4675
4773
  DropdownMenuItem2,
4676
4774
  {
4677
4775
  className: cn10(
@@ -4686,14 +4784,14 @@ function IssueManagerTopicSelector({
4686
4784
  });
4687
4785
  },
4688
4786
  children: [
4689
- /* @__PURE__ */ jsx17(FileCreateIcon5, { className: "size-3.5" }),
4690
- /* @__PURE__ */ jsx17("span", { className: "truncate", children: copy.t("actions.createTopic") })
4787
+ /* @__PURE__ */ jsx18(FileCreateIcon5, { className: "size-3.5" }),
4788
+ /* @__PURE__ */ jsx18("span", { className: "truncate", children: copy.t("actions.createTopic") })
4691
4789
  ]
4692
4790
  }
4693
4791
  )
4694
4792
  ] })
4695
4793
  ] }),
4696
- /* @__PURE__ */ jsx17(
4794
+ /* @__PURE__ */ jsx18(
4697
4795
  IssueManagerTopicDialog,
4698
4796
  {
4699
4797
  copy,
@@ -4708,7 +4806,7 @@ function IssueManagerTopicSelector({
4708
4806
  onUpdateTopic
4709
4807
  }
4710
4808
  ),
4711
- /* @__PURE__ */ jsx17(
4809
+ /* @__PURE__ */ jsx18(
4712
4810
  ConfirmationDialog3,
4713
4811
  {
4714
4812
  cancelLabel: copy.t("actions.cancel"),
@@ -4776,12 +4874,12 @@ function IssueManagerTopicDialog({
4776
4874
  }
4777
4875
  onOpenChange(false);
4778
4876
  };
4779
- return /* @__PURE__ */ jsx17(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs15(DialogContent, { className: "sm:max-w-[480px]", children: [
4780
- /* @__PURE__ */ jsx17(DialogHeader, { children: /* @__PURE__ */ jsx17(DialogTitle, { children: dialogTitle }) }),
4781
- /* @__PURE__ */ jsxs15("form", { className: "grid gap-4", onSubmit: submit, children: [
4782
- /* @__PURE__ */ jsxs15("label", { className: "grid gap-2", children: [
4783
- /* @__PURE__ */ jsx17("span", { className: "text-[11px] font-medium leading-4 text-[var(--text-secondary)]", children: copy.t("labels.topicTitle") }),
4784
- /* @__PURE__ */ jsx17(
4877
+ return /* @__PURE__ */ jsx18(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs16(DialogContent, { className: "sm:max-w-[480px]", children: [
4878
+ /* @__PURE__ */ jsx18(DialogHeader, { children: /* @__PURE__ */ jsx18(DialogTitle, { children: dialogTitle }) }),
4879
+ /* @__PURE__ */ jsxs16("form", { className: "grid gap-4", onSubmit: submit, children: [
4880
+ /* @__PURE__ */ jsxs16("label", { className: "grid gap-2", children: [
4881
+ /* @__PURE__ */ jsx18("span", { className: "text-[11px] font-medium leading-4 text-[var(--text-secondary)]", children: copy.t("labels.topicTitle") }),
4882
+ /* @__PURE__ */ jsx18(
4785
4883
  Input3,
4786
4884
  {
4787
4885
  autoFocus: true,
@@ -4791,9 +4889,9 @@ function IssueManagerTopicDialog({
4791
4889
  }
4792
4890
  )
4793
4891
  ] }),
4794
- /* @__PURE__ */ jsxs15("label", { className: "grid gap-2", children: [
4795
- /* @__PURE__ */ jsx17("span", { className: "text-[11px] font-medium leading-4 text-[var(--text-secondary)]", children: copy.t("labels.topicSummary") }),
4796
- /* @__PURE__ */ jsx17(
4892
+ /* @__PURE__ */ jsxs16("label", { className: "grid gap-2", children: [
4893
+ /* @__PURE__ */ jsx18("span", { className: "text-[11px] font-medium leading-4 text-[var(--text-secondary)]", children: copy.t("labels.topicSummary") }),
4894
+ /* @__PURE__ */ jsx18(
4797
4895
  Textarea,
4798
4896
  {
4799
4897
  className: "min-h-24 resize-none",
@@ -4803,9 +4901,9 @@ function IssueManagerTopicDialog({
4803
4901
  }
4804
4902
  )
4805
4903
  ] }),
4806
- /* @__PURE__ */ jsxs15(DialogFooter, { className: "pt-2", children: [
4807
- /* @__PURE__ */ jsx17(
4808
- Button11,
4904
+ /* @__PURE__ */ jsxs16(DialogFooter, { className: "pt-2", children: [
4905
+ /* @__PURE__ */ jsx18(
4906
+ Button12,
4809
4907
  {
4810
4908
  size: "dialog",
4811
4909
  type: "button",
@@ -4814,14 +4912,14 @@ function IssueManagerTopicDialog({
4814
4912
  children: copy.t("actions.cancel")
4815
4913
  }
4816
4914
  ),
4817
- /* @__PURE__ */ jsx17(Button11, { disabled: !title, size: "dialog", type: "submit", children: copy.t("actions.saveTopic") })
4915
+ /* @__PURE__ */ jsx18(Button12, { disabled: !title, size: "dialog", type: "submit", children: copy.t("actions.saveTopic") })
4818
4916
  ] })
4819
4917
  ] })
4820
4918
  ] }) });
4821
4919
  }
4822
4920
 
4823
4921
  // src/ui/IssueManagerNode.tsx
4824
- import { jsx as jsx18, jsxs as jsxs16 } from "react/jsx-runtime";
4922
+ import { jsx as jsx19, jsxs as jsxs17 } from "react/jsx-runtime";
4825
4923
  function IssueManagerNode({
4826
4924
  emptyIllustration,
4827
4925
  feature,
@@ -4887,7 +4985,7 @@ function IssueManagerNode({
4887
4985
  },
4888
4986
  workspaceId
4889
4987
  });
4890
- return /* @__PURE__ */ jsxs16(
4988
+ return /* @__PURE__ */ jsxs17(
4891
4989
  "section",
4892
4990
  {
4893
4991
  "aria-label": controller.copy.t("title"),
@@ -4895,7 +4993,7 @@ function IssueManagerNode({
4895
4993
  "data-issue-manager-node-id": nodeId,
4896
4994
  "data-issue-manager-workspace-id": workspaceId,
4897
4995
  children: [
4898
- /* @__PURE__ */ jsx18(
4996
+ /* @__PURE__ */ jsx19(
4899
4997
  IssueManagerShell,
4900
4998
  {
4901
4999
  controller,
@@ -4907,7 +5005,7 @@ function IssueManagerNode({
4907
5005
  selectedTask
4908
5006
  }
4909
5007
  ),
4910
- /* @__PURE__ */ jsx18(
5008
+ /* @__PURE__ */ jsx19(
4911
5009
  WorkspaceFileReferencePicker,
4912
5010
  {
4913
5011
  copy: controller.copy,
@@ -4948,7 +5046,7 @@ function IssueManagerNodeHeader({
4948
5046
  nodeId,
4949
5047
  workspaceId
4950
5048
  });
4951
- return /* @__PURE__ */ jsxs16(
5049
+ return /* @__PURE__ */ jsxs17(
4952
5050
  "header",
4953
5051
  {
4954
5052
  ...headerProps,
@@ -4957,10 +5055,10 @@ function IssueManagerNodeHeader({
4957
5055
  className
4958
5056
  ),
4959
5057
  children: [
4960
- /* @__PURE__ */ jsxs16("div", { className: "z-10 flex min-w-0 items-center gap-2", children: [
4961
- /* @__PURE__ */ jsx18("span", { className: "min-w-0 truncate text-[13px] font-semibold leading-5 text-[var(--text-primary)]", children: title?.trim() || copy.t("title") }),
4962
- /* @__PURE__ */ jsx18(
4963
- Button12,
5058
+ /* @__PURE__ */ jsxs17("div", { className: "z-10 flex min-w-0 items-center gap-2", children: [
5059
+ /* @__PURE__ */ jsx19("span", { className: "min-w-0 truncate text-[13px] font-semibold leading-5 text-[var(--text-primary)]", children: title?.trim() || copy.t("title") }),
5060
+ /* @__PURE__ */ jsx19(
5061
+ Button13,
4964
5062
  {
4965
5063
  "aria-label": toggleLabel,
4966
5064
  className: "cursor-pointer rounded-md",
@@ -4976,17 +5074,17 @@ function IssueManagerNodeHeader({
4976
5074
  },
4977
5075
  onDoubleClick: (event) => event.stopPropagation(),
4978
5076
  onPointerDown: (event) => event.stopPropagation(),
4979
- children: /* @__PURE__ */ jsx18(PanelIcon, { className: "size-[18px]" })
5077
+ children: /* @__PURE__ */ jsx19(PanelIcon, { className: "size-[18px]" })
4980
5078
  }
4981
5079
  )
4982
5080
  ] }),
4983
- /* @__PURE__ */ jsx18("div", { className: "pointer-events-none absolute top-1/2 left-1/2 z-20 flex max-w-[220px] -translate-x-1/2 -translate-y-1/2 items-center justify-center", children: /* @__PURE__ */ jsx18(
5081
+ /* @__PURE__ */ jsx19("div", { className: "pointer-events-none absolute top-1/2 left-1/2 z-20 flex max-w-[220px] -translate-x-1/2 -translate-y-1/2 items-center justify-center", children: /* @__PURE__ */ jsx19(
4984
5082
  "div",
4985
5083
  {
4986
5084
  className: "pointer-events-auto flex min-w-0 flex-none",
4987
5085
  onDoubleClick: (event) => event.stopPropagation(),
4988
5086
  onPointerDown: (event) => event.stopPropagation(),
4989
- children: /* @__PURE__ */ jsx18(
5087
+ children: /* @__PURE__ */ jsx19(
4990
5088
  IssueManagerTopicSelector,
4991
5089
  {
4992
5090
  activeTopicId: topicState.activeTopicId,
@@ -5025,7 +5123,7 @@ function IssueManagerNodeHeader({
5025
5123
  )
5026
5124
  }
5027
5125
  ) }),
5028
- /* @__PURE__ */ jsx18(
5126
+ /* @__PURE__ */ jsx19(
5029
5127
  "div",
5030
5128
  {
5031
5129
  className: "z-10 flex flex-none items-center gap-1",
@@ -5044,4 +5142,4 @@ export {
5044
5142
  IssueManagerNode,
5045
5143
  IssueManagerNodeHeader
5046
5144
  };
5047
- //# sourceMappingURL=chunk-RJX54QWL.js.map
5145
+ //# sourceMappingURL=chunk-UXVTGSOH.js.map