@industry-theme/backlogmd-kanban-panel 1.0.34 → 1.0.36
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.
- package/dist/panels/KanbanPanel.d.ts.map +1 -1
- package/dist/panels/TaskDetailPanel.d.ts.map +1 -1
- package/dist/panels/kanban/components/TaskCard.d.ts.map +1 -1
- package/dist/panels/kanban/hooks/useKanbanData.d.ts +8 -5
- package/dist/panels/kanban/hooks/useKanbanData.d.ts.map +1 -1
- package/dist/panels.bundle.js +413 -304
- package/dist/panels.bundle.js.map +1 -1
- package/package.json +7 -4
- package/dist/panels/KanbanPanel.stories.d.ts +0 -21
- package/dist/panels/KanbanPanel.stories.d.ts.map +0 -1
- package/dist/panels/TaskDetailPanel.stories.d.ts +0 -26
- package/dist/panels/TaskDetailPanel.stories.d.ts.map +0 -1
- package/dist/panels/kanban/components/TaskCard.stories.d.ts +0 -31
- package/dist/panels/kanban/components/TaskCard.stories.d.ts.map +0 -1
package/dist/panels.bundle.js
CHANGED
|
@@ -3740,7 +3740,7 @@ const createLucideIcon = (iconName, iconNode) => {
|
|
|
3740
3740
|
* This source code is licensed under the ISC license.
|
|
3741
3741
|
* See the LICENSE file in the root directory of this source tree.
|
|
3742
3742
|
*/
|
|
3743
|
-
const __iconNode$
|
|
3743
|
+
const __iconNode$l = [
|
|
3744
3744
|
["path", { d: "M12 8V4H8", key: "hb8ula" }],
|
|
3745
3745
|
["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
|
|
3746
3746
|
["path", { d: "M2 14h2", key: "vft8re" }],
|
|
@@ -3748,75 +3748,75 @@ const __iconNode$k = [
|
|
|
3748
3748
|
["path", { d: "M15 13v2", key: "1xurst" }],
|
|
3749
3749
|
["path", { d: "M9 13v2", key: "rq6x2g" }]
|
|
3750
3750
|
];
|
|
3751
|
-
const Bot = createLucideIcon("bot", __iconNode$
|
|
3751
|
+
const Bot = createLucideIcon("bot", __iconNode$l);
|
|
3752
3752
|
/**
|
|
3753
3753
|
* @license lucide-react v0.552.0 - ISC
|
|
3754
3754
|
*
|
|
3755
3755
|
* This source code is licensed under the ISC license.
|
|
3756
3756
|
* See the LICENSE file in the root directory of this source tree.
|
|
3757
3757
|
*/
|
|
3758
|
-
const __iconNode$
|
|
3759
|
-
const Check = createLucideIcon("check", __iconNode$
|
|
3758
|
+
const __iconNode$k = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
|
|
3759
|
+
const Check = createLucideIcon("check", __iconNode$k);
|
|
3760
3760
|
/**
|
|
3761
3761
|
* @license lucide-react v0.552.0 - ISC
|
|
3762
3762
|
*
|
|
3763
3763
|
* This source code is licensed under the ISC license.
|
|
3764
3764
|
* See the LICENSE file in the root directory of this source tree.
|
|
3765
3765
|
*/
|
|
3766
|
-
const __iconNode$
|
|
3767
|
-
const ChevronDown = createLucideIcon("chevron-down", __iconNode$
|
|
3766
|
+
const __iconNode$j = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
|
|
3767
|
+
const ChevronDown = createLucideIcon("chevron-down", __iconNode$j);
|
|
3768
3768
|
/**
|
|
3769
3769
|
* @license lucide-react v0.552.0 - ISC
|
|
3770
3770
|
*
|
|
3771
3771
|
* This source code is licensed under the ISC license.
|
|
3772
3772
|
* See the LICENSE file in the root directory of this source tree.
|
|
3773
3773
|
*/
|
|
3774
|
-
const __iconNode$
|
|
3774
|
+
const __iconNode$i = [
|
|
3775
3775
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
3776
3776
|
["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
|
|
3777
3777
|
["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
|
|
3778
3778
|
];
|
|
3779
|
-
const CircleAlert = createLucideIcon("circle-alert", __iconNode$
|
|
3779
|
+
const CircleAlert = createLucideIcon("circle-alert", __iconNode$i);
|
|
3780
3780
|
/**
|
|
3781
3781
|
* @license lucide-react v0.552.0 - ISC
|
|
3782
3782
|
*
|
|
3783
3783
|
* This source code is licensed under the ISC license.
|
|
3784
3784
|
* See the LICENSE file in the root directory of this source tree.
|
|
3785
3785
|
*/
|
|
3786
|
-
const __iconNode$
|
|
3786
|
+
const __iconNode$h = [
|
|
3787
3787
|
["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
|
|
3788
3788
|
["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
|
|
3789
3789
|
];
|
|
3790
|
-
const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$
|
|
3790
|
+
const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$h);
|
|
3791
3791
|
/**
|
|
3792
3792
|
* @license lucide-react v0.552.0 - ISC
|
|
3793
3793
|
*
|
|
3794
3794
|
* This source code is licensed under the ISC license.
|
|
3795
3795
|
* See the LICENSE file in the root directory of this source tree.
|
|
3796
3796
|
*/
|
|
3797
|
-
const __iconNode$
|
|
3797
|
+
const __iconNode$g = [
|
|
3798
3798
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
3799
3799
|
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
3800
3800
|
];
|
|
3801
|
-
const CircleCheck = createLucideIcon("circle-check", __iconNode$
|
|
3801
|
+
const CircleCheck = createLucideIcon("circle-check", __iconNode$g);
|
|
3802
3802
|
/**
|
|
3803
3803
|
* @license lucide-react v0.552.0 - ISC
|
|
3804
3804
|
*
|
|
3805
3805
|
* This source code is licensed under the ISC license.
|
|
3806
3806
|
* See the LICENSE file in the root directory of this source tree.
|
|
3807
3807
|
*/
|
|
3808
|
-
const __iconNode$
|
|
3808
|
+
const __iconNode$f = [
|
|
3809
3809
|
["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
|
|
3810
3810
|
["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
|
|
3811
3811
|
];
|
|
3812
|
-
const Copy = createLucideIcon("copy", __iconNode$
|
|
3812
|
+
const Copy = createLucideIcon("copy", __iconNode$f);
|
|
3813
3813
|
/**
|
|
3814
3814
|
* @license lucide-react v0.552.0 - ISC
|
|
3815
3815
|
*
|
|
3816
3816
|
* This source code is licensed under the ISC license.
|
|
3817
3817
|
* See the LICENSE file in the root directory of this source tree.
|
|
3818
3818
|
*/
|
|
3819
|
-
const __iconNode$
|
|
3819
|
+
const __iconNode$e = [
|
|
3820
3820
|
["path", { d: "m15 15 6 6", key: "1s409w" }],
|
|
3821
3821
|
["path", { d: "m15 9 6-6", key: "ko1vev" }],
|
|
3822
3822
|
["path", { d: "M21 16v5h-5", key: "1ck2sf" }],
|
|
@@ -3826,26 +3826,26 @@ const __iconNode$d = [
|
|
|
3826
3826
|
["path", { d: "M3 8V3h5", key: "1ln10m" }],
|
|
3827
3827
|
["path", { d: "M9 9 3 3", key: "v551iv" }]
|
|
3828
3828
|
];
|
|
3829
|
-
const Expand = createLucideIcon("expand", __iconNode$
|
|
3829
|
+
const Expand = createLucideIcon("expand", __iconNode$e);
|
|
3830
3830
|
/**
|
|
3831
3831
|
* @license lucide-react v0.552.0 - ISC
|
|
3832
3832
|
*
|
|
3833
3833
|
* This source code is licensed under the ISC license.
|
|
3834
3834
|
* See the LICENSE file in the root directory of this source tree.
|
|
3835
3835
|
*/
|
|
3836
|
-
const __iconNode$
|
|
3836
|
+
const __iconNode$d = [
|
|
3837
3837
|
["path", { d: "M15 3h6v6", key: "1q9fwt" }],
|
|
3838
3838
|
["path", { d: "M10 14 21 3", key: "gplh6r" }],
|
|
3839
3839
|
["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
|
|
3840
3840
|
];
|
|
3841
|
-
const ExternalLink = createLucideIcon("external-link", __iconNode$
|
|
3841
|
+
const ExternalLink = createLucideIcon("external-link", __iconNode$d);
|
|
3842
3842
|
/**
|
|
3843
3843
|
* @license lucide-react v0.552.0 - ISC
|
|
3844
3844
|
*
|
|
3845
3845
|
* This source code is licensed under the ISC license.
|
|
3846
3846
|
* See the LICENSE file in the root directory of this source tree.
|
|
3847
3847
|
*/
|
|
3848
|
-
const __iconNode$
|
|
3848
|
+
const __iconNode$c = [
|
|
3849
3849
|
[
|
|
3850
3850
|
"path",
|
|
3851
3851
|
{
|
|
@@ -3858,14 +3858,14 @@ const __iconNode$b = [
|
|
|
3858
3858
|
["path", { d: "M16 13H8", key: "t4e002" }],
|
|
3859
3859
|
["path", { d: "M16 17H8", key: "z1uh3a" }]
|
|
3860
3860
|
];
|
|
3861
|
-
const FileText = createLucideIcon("file-text", __iconNode$
|
|
3861
|
+
const FileText = createLucideIcon("file-text", __iconNode$c);
|
|
3862
3862
|
/**
|
|
3863
3863
|
* @license lucide-react v0.552.0 - ISC
|
|
3864
3864
|
*
|
|
3865
3865
|
* This source code is licensed under the ISC license.
|
|
3866
3866
|
* See the LICENSE file in the root directory of this source tree.
|
|
3867
3867
|
*/
|
|
3868
|
-
const __iconNode$
|
|
3868
|
+
const __iconNode$b = [
|
|
3869
3869
|
["path", { d: "M12 10v6", key: "1bos4e" }],
|
|
3870
3870
|
["path", { d: "M9 13h6", key: "1uhe8q" }],
|
|
3871
3871
|
[
|
|
@@ -3876,7 +3876,20 @@ const __iconNode$a = [
|
|
|
3876
3876
|
}
|
|
3877
3877
|
]
|
|
3878
3878
|
];
|
|
3879
|
-
const FolderPlus = createLucideIcon("folder-plus", __iconNode$
|
|
3879
|
+
const FolderPlus = createLucideIcon("folder-plus", __iconNode$b);
|
|
3880
|
+
/**
|
|
3881
|
+
* @license lucide-react v0.552.0 - ISC
|
|
3882
|
+
*
|
|
3883
|
+
* This source code is licensed under the ISC license.
|
|
3884
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
3885
|
+
*/
|
|
3886
|
+
const __iconNode$a = [
|
|
3887
|
+
["line", { x1: "6", x2: "6", y1: "3", y2: "15", key: "17qcm7" }],
|
|
3888
|
+
["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
|
|
3889
|
+
["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
|
|
3890
|
+
["path", { d: "M18 9a9 9 0 0 1-9 9", key: "n2h4wq" }]
|
|
3891
|
+
];
|
|
3892
|
+
const GitBranch = createLucideIcon("git-branch", __iconNode$a);
|
|
3880
3893
|
/**
|
|
3881
3894
|
* @license lucide-react v0.552.0 - ISC
|
|
3882
3895
|
*
|
|
@@ -6087,6 +6100,11 @@ function gt(o, e, t, r2) {
|
|
|
6087
6100
|
};
|
|
6088
6101
|
}, [o, e, t, r2]);
|
|
6089
6102
|
}
|
|
6103
|
+
const DEFAULT_TASK_STATUSES = {
|
|
6104
|
+
TODO: "To Do",
|
|
6105
|
+
IN_PROGRESS: "In Progress",
|
|
6106
|
+
DONE: "Done"
|
|
6107
|
+
};
|
|
6090
6108
|
function parseTaskMarkdown(content2, filePath) {
|
|
6091
6109
|
const { frontmatter, title, rawContent, acceptanceCriteria, description } = parseMarkdownContent(content2);
|
|
6092
6110
|
const id = extractIdFromPath(filePath);
|
|
@@ -6764,7 +6782,11 @@ class Core {
|
|
|
6764
6782
|
}
|
|
6765
6783
|
const dirName = this.projectRoot.split("/").pop() || "Backlog";
|
|
6766
6784
|
const projectName = options.projectName || dirName;
|
|
6767
|
-
const statuses = options.statuses || [
|
|
6785
|
+
const statuses = options.statuses || [
|
|
6786
|
+
DEFAULT_TASK_STATUSES.TODO,
|
|
6787
|
+
DEFAULT_TASK_STATUSES.IN_PROGRESS,
|
|
6788
|
+
DEFAULT_TASK_STATUSES.DONE
|
|
6789
|
+
];
|
|
6768
6790
|
const config = {
|
|
6769
6791
|
projectName,
|
|
6770
6792
|
statuses,
|
|
@@ -7488,18 +7510,28 @@ class Core {
|
|
|
7488
7510
|
* @returns Created task
|
|
7489
7511
|
*/
|
|
7490
7512
|
async createTask(input) {
|
|
7491
|
-
var _a, _b;
|
|
7513
|
+
var _a, _b, _c, _d, _e2;
|
|
7492
7514
|
this.ensureInitialized();
|
|
7493
7515
|
const tasksDir = this.getTasksDir();
|
|
7494
7516
|
await this.fs.createDir(tasksDir, { recursive: true });
|
|
7495
|
-
const existingIds = Array.from(this.tasks.keys()).map((id) => parseInt(id.replace(/\D/g, ""), 10)).filter((n) => !Number.isNaN(n));
|
|
7517
|
+
const existingIds = Array.from(this.lazyInitialized ? this.taskIndex.keys() : this.tasks.keys()).map((id) => parseInt(id.replace(/\D/g, ""), 10)).filter((n) => !Number.isNaN(n));
|
|
7496
7518
|
const nextId = existingIds.length > 0 ? Math.max(...existingIds) + 1 : 1;
|
|
7497
7519
|
const taskId = String(nextId);
|
|
7520
|
+
const configStatuses = ((_a = this.config) == null ? void 0 : _a.statuses) || [
|
|
7521
|
+
DEFAULT_TASK_STATUSES.TODO,
|
|
7522
|
+
DEFAULT_TASK_STATUSES.IN_PROGRESS,
|
|
7523
|
+
DEFAULT_TASK_STATUSES.DONE
|
|
7524
|
+
];
|
|
7525
|
+
let status = input.status || ((_b = this.config) == null ? void 0 : _b.defaultStatus) || DEFAULT_TASK_STATUSES.TODO;
|
|
7526
|
+
if (!configStatuses.includes(status)) {
|
|
7527
|
+
console.warn(`Warning: Status "${status}" is not in configured statuses [${configStatuses.join(", ")}]. Using default status "${((_c = this.config) == null ? void 0 : _c.defaultStatus) || DEFAULT_TASK_STATUSES.TODO}" instead.`);
|
|
7528
|
+
status = ((_d = this.config) == null ? void 0 : _d.defaultStatus) || DEFAULT_TASK_STATUSES.TODO;
|
|
7529
|
+
}
|
|
7498
7530
|
const now = (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
|
|
7499
7531
|
const task = {
|
|
7500
7532
|
id: taskId,
|
|
7501
7533
|
title: input.title,
|
|
7502
|
-
status
|
|
7534
|
+
status,
|
|
7503
7535
|
priority: input.priority,
|
|
7504
7536
|
assignee: input.assignee || [],
|
|
7505
7537
|
createdDate: now,
|
|
@@ -7511,7 +7543,7 @@ class Core {
|
|
|
7511
7543
|
description: input.description,
|
|
7512
7544
|
implementationPlan: input.implementationPlan,
|
|
7513
7545
|
implementationNotes: input.implementationNotes,
|
|
7514
|
-
acceptanceCriteriaItems: (
|
|
7546
|
+
acceptanceCriteriaItems: (_e2 = input.acceptanceCriteria) == null ? void 0 : _e2.map((ac, i) => ({
|
|
7515
7547
|
index: i + 1,
|
|
7516
7548
|
text: ac.text,
|
|
7517
7549
|
checked: ac.checked || false
|
|
@@ -7526,6 +7558,15 @@ class Core {
|
|
|
7526
7558
|
await this.fs.writeFile(filepath, content2);
|
|
7527
7559
|
task.filePath = filepath;
|
|
7528
7560
|
this.tasks.set(taskId, task);
|
|
7561
|
+
if (this.lazyInitialized) {
|
|
7562
|
+
const relativePath = filepath.replace(this.projectRoot + "/", "");
|
|
7563
|
+
this.taskIndex.set(taskId, {
|
|
7564
|
+
id: taskId,
|
|
7565
|
+
filePath: relativePath,
|
|
7566
|
+
title: task.title,
|
|
7567
|
+
source: "tasks"
|
|
7568
|
+
});
|
|
7569
|
+
}
|
|
7529
7570
|
if (input.milestone) {
|
|
7530
7571
|
await this.addTaskToMilestone(taskId, input.milestone);
|
|
7531
7572
|
}
|
|
@@ -7900,16 +7941,11 @@ class PanelFileSystemAdapter {
|
|
|
7900
7941
|
return path2.replace(/^\/+/, "").replace(/\/+$/, "").replace(/\/+/g, "/");
|
|
7901
7942
|
}
|
|
7902
7943
|
}
|
|
7903
|
-
const
|
|
7904
|
-
|
|
7905
|
-
|
|
7906
|
-
|
|
7907
|
-
|
|
7908
|
-
const COLUMN_TO_STATUS = {
|
|
7909
|
-
"todo": "To Do",
|
|
7910
|
-
"in-progress": "In Progress",
|
|
7911
|
-
"done": "Done"
|
|
7912
|
-
};
|
|
7944
|
+
const STATUS_COLUMNS = [
|
|
7945
|
+
DEFAULT_TASK_STATUSES.TODO,
|
|
7946
|
+
DEFAULT_TASK_STATUSES.IN_PROGRESS,
|
|
7947
|
+
DEFAULT_TASK_STATUSES.DONE
|
|
7948
|
+
];
|
|
7913
7949
|
const DEFAULT_TASKS_LIMIT = 20;
|
|
7914
7950
|
function useKanbanData(options) {
|
|
7915
7951
|
const {
|
|
@@ -7960,11 +7996,9 @@ function useKanbanData(options) {
|
|
|
7960
7996
|
}, []);
|
|
7961
7997
|
const fileTreeVersionRef = useRef(null);
|
|
7962
7998
|
const buildColumnStates = useCallback((allTasks) => {
|
|
7963
|
-
const statusColumns2 = ["todo", "in-progress", "done"];
|
|
7964
7999
|
const newColumnStates = /* @__PURE__ */ new Map();
|
|
7965
|
-
for (const column of
|
|
7966
|
-
const
|
|
7967
|
-
const columnTasks = allTasks.filter((t) => t.status === status);
|
|
8000
|
+
for (const column of STATUS_COLUMNS) {
|
|
8001
|
+
const columnTasks = allTasks.filter((t) => t.status === column);
|
|
7968
8002
|
newColumnStates.set(column, {
|
|
7969
8003
|
tasks: columnTasks,
|
|
7970
8004
|
total: columnTasks.length,
|
|
@@ -8141,7 +8175,7 @@ function useKanbanData(options) {
|
|
|
8141
8175
|
);
|
|
8142
8176
|
const moveTaskOptimistic = useCallback(
|
|
8143
8177
|
(taskId, toColumn) => {
|
|
8144
|
-
const newStatus =
|
|
8178
|
+
const newStatus = toColumn;
|
|
8145
8179
|
setTasks((prev) => {
|
|
8146
8180
|
const newTasks = prev.map(
|
|
8147
8181
|
(t) => t.id === taskId ? { ...t, status: newStatus } : t
|
|
@@ -8160,7 +8194,7 @@ function useKanbanData(options) {
|
|
|
8160
8194
|
},
|
|
8161
8195
|
[tasks]
|
|
8162
8196
|
);
|
|
8163
|
-
const statusColumns =
|
|
8197
|
+
const statusColumns = STATUS_COLUMNS;
|
|
8164
8198
|
const tasksByStatus = (() => {
|
|
8165
8199
|
const result = /* @__PURE__ */ new Map();
|
|
8166
8200
|
for (const column of statusColumns) {
|
|
@@ -8292,18 +8326,40 @@ const TaskCard = ({
|
|
|
8292
8326
|
}
|
|
8293
8327
|
},
|
|
8294
8328
|
children: [
|
|
8295
|
-
/* @__PURE__ */
|
|
8296
|
-
|
|
8297
|
-
|
|
8298
|
-
|
|
8299
|
-
|
|
8300
|
-
|
|
8301
|
-
|
|
8302
|
-
|
|
8303
|
-
|
|
8304
|
-
|
|
8305
|
-
|
|
8306
|
-
|
|
8329
|
+
/* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "6px", marginBottom: "8px" }, children: [
|
|
8330
|
+
/* @__PURE__ */ jsx(
|
|
8331
|
+
"h4",
|
|
8332
|
+
{
|
|
8333
|
+
style: {
|
|
8334
|
+
margin: 0,
|
|
8335
|
+
fontSize: theme2.fontSizes[2],
|
|
8336
|
+
color: isSelected ? getPriorityColor(task.priority) : theme2.colors.text,
|
|
8337
|
+
fontWeight: theme2.fontWeights.medium,
|
|
8338
|
+
flex: 1
|
|
8339
|
+
},
|
|
8340
|
+
children: displayTitle
|
|
8341
|
+
}
|
|
8342
|
+
),
|
|
8343
|
+
getGitHubIssueFromRefs$1(task.references) && /* @__PURE__ */ jsx(
|
|
8344
|
+
"div",
|
|
8345
|
+
{
|
|
8346
|
+
style: {
|
|
8347
|
+
display: "flex",
|
|
8348
|
+
alignItems: "center",
|
|
8349
|
+
gap: "3px",
|
|
8350
|
+
padding: "2px 6px",
|
|
8351
|
+
borderRadius: theme2.radii[1],
|
|
8352
|
+
background: `${theme2.colors.success}20`,
|
|
8353
|
+
color: theme2.colors.success,
|
|
8354
|
+
fontSize: theme2.fontSizes[0],
|
|
8355
|
+
fontWeight: theme2.fontWeights.medium,
|
|
8356
|
+
flexShrink: 0
|
|
8357
|
+
},
|
|
8358
|
+
title: "Assigned to Claude",
|
|
8359
|
+
children: /* @__PURE__ */ jsx(GitBranch, { size: 10 })
|
|
8360
|
+
}
|
|
8361
|
+
)
|
|
8362
|
+
] }),
|
|
8307
8363
|
task.description && /* @__PURE__ */ jsx(
|
|
8308
8364
|
"p",
|
|
8309
8365
|
{
|
|
@@ -9886,7 +9942,7 @@ const KanbanPanel = ({
|
|
|
9886
9942
|
var _a, _b;
|
|
9887
9943
|
const { theme: theme2 } = useTheme();
|
|
9888
9944
|
const [selectedTaskId, setSelectedTaskId] = useState(null);
|
|
9889
|
-
const [selectedTab, setSelectedTab] = useState(
|
|
9945
|
+
const [selectedTab, setSelectedTab] = useState(DEFAULT_TASK_STATUSES.TODO);
|
|
9890
9946
|
const [isNarrowView, setIsNarrowView] = useState(false);
|
|
9891
9947
|
const kanbanPanelRef = useRef(null);
|
|
9892
9948
|
const [viewMode, setViewMode] = useState("board");
|
|
@@ -10005,12 +10061,7 @@ const KanbanPanel = ({
|
|
|
10005
10061
|
const targetColumn = over.id;
|
|
10006
10062
|
const task = getTaskById(taskId);
|
|
10007
10063
|
if (!task) return;
|
|
10008
|
-
const
|
|
10009
|
-
"To Do": "todo",
|
|
10010
|
-
"In Progress": "in-progress",
|
|
10011
|
-
"Done": "done"
|
|
10012
|
-
};
|
|
10013
|
-
const currentColumn = statusToColumn[task.status] || "todo";
|
|
10064
|
+
const currentColumn = task.status || DEFAULT_TASK_STATUSES.TODO;
|
|
10014
10065
|
if (currentColumn !== targetColumn) {
|
|
10015
10066
|
moveTaskOptimistic(taskId, targetColumn);
|
|
10016
10067
|
}
|
|
@@ -10147,7 +10198,11 @@ const KanbanPanel = ({
|
|
|
10147
10198
|
});
|
|
10148
10199
|
}
|
|
10149
10200
|
};
|
|
10150
|
-
const availableStatuses = [
|
|
10201
|
+
const availableStatuses = [
|
|
10202
|
+
DEFAULT_TASK_STATUSES.TODO,
|
|
10203
|
+
DEFAULT_TASK_STATUSES.IN_PROGRESS,
|
|
10204
|
+
DEFAULT_TASK_STATUSES.DONE
|
|
10205
|
+
];
|
|
10151
10206
|
const currentError = viewMode === "board" ? error : milestonesError;
|
|
10152
10207
|
return /* @__PURE__ */ jsxs(
|
|
10153
10208
|
"div",
|
|
@@ -10551,7 +10606,7 @@ const KanbanPanel = ({
|
|
|
10551
10606
|
gap: "6px"
|
|
10552
10607
|
},
|
|
10553
10608
|
children: [
|
|
10554
|
-
|
|
10609
|
+
status,
|
|
10555
10610
|
/* @__PURE__ */ jsx(
|
|
10556
10611
|
"span",
|
|
10557
10612
|
{
|
|
@@ -10601,7 +10656,7 @@ const KanbanPanel = ({
|
|
|
10601
10656
|
KanbanColumn,
|
|
10602
10657
|
{
|
|
10603
10658
|
columnId: status,
|
|
10604
|
-
status
|
|
10659
|
+
status,
|
|
10605
10660
|
tasks: columnTasks,
|
|
10606
10661
|
onTaskClick: handleTaskClick,
|
|
10607
10662
|
fullWidth: isNarrowView,
|
|
@@ -51463,9 +51518,11 @@ var createIndustryMarkdownComponents = ({
|
|
|
51463
51518
|
fontSize: theme2.fontSizes[5],
|
|
51464
51519
|
lineHeight: theme2.lineHeights.heading,
|
|
51465
51520
|
fontWeight: theme2.fontWeights.bold,
|
|
51466
|
-
marginTop:
|
|
51521
|
+
marginTop: theme2.space[4],
|
|
51467
51522
|
marginBottom: theme2.space[4],
|
|
51468
51523
|
fontFamily: theme2.fonts.heading,
|
|
51524
|
+
paddingBottom: theme2.space[2],
|
|
51525
|
+
borderBottom: `1px solid ${theme2.colors.border}`,
|
|
51469
51526
|
...headerStyles
|
|
51470
51527
|
},
|
|
51471
51528
|
...props
|
|
@@ -51476,9 +51533,11 @@ var createIndustryMarkdownComponents = ({
|
|
|
51476
51533
|
fontSize: theme2.fontSizes[4],
|
|
51477
51534
|
lineHeight: theme2.lineHeights.heading,
|
|
51478
51535
|
fontWeight: theme2.fontWeights.bold,
|
|
51479
|
-
marginTop:
|
|
51536
|
+
marginTop: theme2.space[4],
|
|
51480
51537
|
marginBottom: theme2.space[3],
|
|
51481
51538
|
fontFamily: theme2.fonts.heading,
|
|
51539
|
+
paddingBottom: theme2.space[2],
|
|
51540
|
+
borderBottom: `1px solid ${theme2.colors.border}`,
|
|
51482
51541
|
...headerStyles
|
|
51483
51542
|
},
|
|
51484
51543
|
...props
|
|
@@ -51489,12 +51548,48 @@ var createIndustryMarkdownComponents = ({
|
|
|
51489
51548
|
fontSize: theme2.fontSizes[3],
|
|
51490
51549
|
lineHeight: theme2.lineHeights.heading,
|
|
51491
51550
|
fontWeight: theme2.fontWeights.semibold,
|
|
51492
|
-
marginTop:
|
|
51551
|
+
marginTop: theme2.space[4],
|
|
51493
51552
|
marginBottom: theme2.space[3],
|
|
51494
51553
|
fontFamily: theme2.fonts.heading
|
|
51495
51554
|
},
|
|
51496
51555
|
...props
|
|
51497
51556
|
}, children2),
|
|
51557
|
+
h4: ({ children: children2, ...props }) => /* @__PURE__ */ React2__default.createElement("h4", {
|
|
51558
|
+
style: {
|
|
51559
|
+
color: theme2.colors.text,
|
|
51560
|
+
fontSize: theme2.fontSizes[2],
|
|
51561
|
+
lineHeight: theme2.lineHeights.heading,
|
|
51562
|
+
fontWeight: theme2.fontWeights.semibold,
|
|
51563
|
+
marginTop: theme2.space[3],
|
|
51564
|
+
marginBottom: theme2.space[2],
|
|
51565
|
+
fontFamily: theme2.fonts.heading
|
|
51566
|
+
},
|
|
51567
|
+
...props
|
|
51568
|
+
}, children2),
|
|
51569
|
+
h5: ({ children: children2, ...props }) => /* @__PURE__ */ React2__default.createElement("h5", {
|
|
51570
|
+
style: {
|
|
51571
|
+
color: theme2.colors.text,
|
|
51572
|
+
fontSize: theme2.fontSizes[1],
|
|
51573
|
+
lineHeight: theme2.lineHeights.heading,
|
|
51574
|
+
fontWeight: theme2.fontWeights.semibold,
|
|
51575
|
+
marginTop: theme2.space[3],
|
|
51576
|
+
marginBottom: theme2.space[1],
|
|
51577
|
+
fontFamily: theme2.fonts.heading
|
|
51578
|
+
},
|
|
51579
|
+
...props
|
|
51580
|
+
}, children2),
|
|
51581
|
+
h6: ({ children: children2, ...props }) => /* @__PURE__ */ React2__default.createElement("h6", {
|
|
51582
|
+
style: {
|
|
51583
|
+
color: theme2.colors.text,
|
|
51584
|
+
fontSize: theme2.fontSizes[1],
|
|
51585
|
+
lineHeight: theme2.lineHeights.heading,
|
|
51586
|
+
fontWeight: theme2.fontWeights.medium,
|
|
51587
|
+
marginTop: theme2.space[3],
|
|
51588
|
+
marginBottom: theme2.space[1],
|
|
51589
|
+
fontFamily: theme2.fonts.heading
|
|
51590
|
+
},
|
|
51591
|
+
...props
|
|
51592
|
+
}, children2),
|
|
51498
51593
|
p: ({ children: children2, ...props }) => /* @__PURE__ */ React2__default.createElement("p", {
|
|
51499
51594
|
style: {
|
|
51500
51595
|
color: theme2.colors.text,
|
|
@@ -51857,7 +51952,7 @@ var createIndustryMarkdownComponents = ({
|
|
|
51857
51952
|
}), "Fill & Copy (", placeholders.length, ")"))), isPrompt ? /* @__PURE__ */ React2__default.createElement("div", {
|
|
51858
51953
|
style: {
|
|
51859
51954
|
margin: 0,
|
|
51860
|
-
padding: theme2.space[
|
|
51955
|
+
padding: theme2.space[1],
|
|
51861
51956
|
backgroundColor: "transparent",
|
|
51862
51957
|
fontSize: theme2.fontSizes[1],
|
|
51863
51958
|
lineHeight: theme2.lineHeights.body,
|
|
@@ -51884,7 +51979,7 @@ var createIndustryMarkdownComponents = ({
|
|
|
51884
51979
|
})) : /* @__PURE__ */ React2__default.createElement("pre", {
|
|
51885
51980
|
style: {
|
|
51886
51981
|
margin: 0,
|
|
51887
|
-
padding: theme2.space[
|
|
51982
|
+
padding: theme2.space[1],
|
|
51888
51983
|
backgroundColor: "transparent",
|
|
51889
51984
|
overflow: "auto",
|
|
51890
51985
|
fontSize: theme2.fontSizes[1],
|
|
@@ -55217,248 +55312,262 @@ const TaskDetailPanel = ({ context, actions, events: events2, config }) => {
|
|
|
55217
55312
|
selectedTask.priority && /* @__PURE__ */ jsx("span", { style: getPriorityStyles(theme2, selectedTask.priority), children: selectedTask.priority }),
|
|
55218
55313
|
/* @__PURE__ */ jsx(StatusBadge, { status: selectedTask.status })
|
|
55219
55314
|
] }),
|
|
55220
|
-
/* @__PURE__ */
|
|
55221
|
-
|
|
55222
|
-
|
|
55223
|
-
|
|
55224
|
-
|
|
55225
|
-
|
|
55226
|
-
|
|
55227
|
-
|
|
55228
|
-
|
|
55229
|
-
|
|
55230
|
-
|
|
55231
|
-
|
|
55232
|
-
|
|
55233
|
-
|
|
55234
|
-
|
|
55235
|
-
|
|
55236
|
-
|
|
55237
|
-
|
|
55238
|
-
|
|
55239
|
-
|
|
55240
|
-
|
|
55241
|
-
|
|
55242
|
-
|
|
55243
|
-
|
|
55244
|
-
|
|
55245
|
-
|
|
55246
|
-
|
|
55247
|
-
|
|
55248
|
-
|
|
55249
|
-
|
|
55250
|
-
|
|
55251
|
-
|
|
55252
|
-
|
|
55253
|
-
|
|
55254
|
-
|
|
55255
|
-
|
|
55256
|
-
|
|
55257
|
-
|
|
55258
|
-
|
|
55259
|
-
|
|
55260
|
-
|
|
55261
|
-
|
|
55262
|
-
|
|
55263
|
-
|
|
55264
|
-
|
|
55265
|
-
|
|
55266
|
-
|
|
55267
|
-
|
|
55268
|
-
|
|
55269
|
-
|
|
55270
|
-
|
|
55271
|
-
|
|
55272
|
-
|
|
55273
|
-
|
|
55274
|
-
|
|
55275
|
-
|
|
55276
|
-
|
|
55277
|
-
|
|
55278
|
-
|
|
55279
|
-
|
|
55280
|
-
|
|
55281
|
-
|
|
55282
|
-
|
|
55283
|
-
|
|
55284
|
-
|
|
55285
|
-
|
|
55286
|
-
|
|
55287
|
-
|
|
55288
|
-
|
|
55289
|
-
|
|
55290
|
-
|
|
55291
|
-
|
|
55292
|
-
|
|
55293
|
-
|
|
55294
|
-
|
|
55295
|
-
|
|
55296
|
-
|
|
55297
|
-
|
|
55298
|
-
|
|
55299
|
-
|
|
55300
|
-
|
|
55301
|
-
|
|
55302
|
-
|
|
55303
|
-
|
|
55304
|
-
|
|
55305
|
-
|
|
55306
|
-
|
|
55307
|
-
|
|
55308
|
-
|
|
55309
|
-
|
|
55310
|
-
|
|
55311
|
-
|
|
55312
|
-
|
|
55313
|
-
|
|
55314
|
-
|
|
55315
|
-
|
|
55316
|
-
|
|
55317
|
-
|
|
55318
|
-
|
|
55319
|
-
|
|
55320
|
-
|
|
55321
|
-
|
|
55322
|
-
|
|
55323
|
-
|
|
55324
|
-
|
|
55325
|
-
|
|
55326
|
-
|
|
55327
|
-
|
|
55328
|
-
|
|
55329
|
-
|
|
55330
|
-
|
|
55331
|
-
|
|
55332
|
-
|
|
55333
|
-
|
|
55334
|
-
|
|
55335
|
-
|
|
55336
|
-
|
|
55337
|
-
|
|
55338
|
-
|
|
55339
|
-
|
|
55340
|
-
|
|
55341
|
-
|
|
55342
|
-
|
|
55343
|
-
|
|
55344
|
-
|
|
55345
|
-
|
|
55346
|
-
|
|
55347
|
-
|
|
55348
|
-
|
|
55349
|
-
|
|
55350
|
-
|
|
55351
|
-
|
|
55352
|
-
|
|
55353
|
-
|
|
55354
|
-
|
|
55355
|
-
|
|
55356
|
-
|
|
55357
|
-
|
|
55358
|
-
|
|
55359
|
-
|
|
55360
|
-
|
|
55361
|
-
|
|
55362
|
-
|
|
55363
|
-
|
|
55364
|
-
|
|
55365
|
-
|
|
55366
|
-
|
|
55367
|
-
|
|
55368
|
-
|
|
55369
|
-
|
|
55370
|
-
|
|
55371
|
-
|
|
55372
|
-
|
|
55373
|
-
|
|
55374
|
-
|
|
55375
|
-
|
|
55376
|
-
|
|
55377
|
-
|
|
55378
|
-
|
|
55379
|
-
|
|
55380
|
-
|
|
55381
|
-
|
|
55382
|
-
|
|
55383
|
-
|
|
55384
|
-
|
|
55385
|
-
|
|
55386
|
-
|
|
55387
|
-
|
|
55388
|
-
|
|
55389
|
-
|
|
55390
|
-
|
|
55391
|
-
|
|
55392
|
-
|
|
55393
|
-
|
|
55394
|
-
|
|
55395
|
-
|
|
55396
|
-
|
|
55397
|
-
|
|
55398
|
-
e.currentTarget.style.background = "transparent";
|
|
55399
|
-
e.currentTarget.style.color = theme2.colors.error;
|
|
55400
|
-
},
|
|
55401
|
-
title: "Delete task",
|
|
55402
|
-
children: [
|
|
55403
|
-
/* @__PURE__ */ jsx(Trash2, { size: 14 }),
|
|
55404
|
-
"Delete"
|
|
55405
|
-
]
|
|
55406
|
-
}
|
|
55407
|
-
),
|
|
55408
|
-
deleteState.status === "success" && /* @__PURE__ */ jsxs(
|
|
55409
|
-
"div",
|
|
55410
|
-
{
|
|
55411
|
-
style: {
|
|
55412
|
-
display: "flex",
|
|
55413
|
-
alignItems: "center",
|
|
55414
|
-
gap: "6px",
|
|
55415
|
-
padding: "6px 12px",
|
|
55416
|
-
border: `1px solid ${theme2.colors.success}`,
|
|
55417
|
-
borderRadius: theme2.radii[1],
|
|
55418
|
-
background: `${theme2.colors.success}15`,
|
|
55419
|
-
color: theme2.colors.success,
|
|
55420
|
-
fontSize: theme2.fontSizes[1],
|
|
55421
|
-
fontWeight: theme2.fontWeights.medium
|
|
55422
|
-
},
|
|
55423
|
-
children: [
|
|
55424
|
-
/* @__PURE__ */ jsx(CircleCheckBig, { size: 14 }),
|
|
55425
|
-
"Task deleted"
|
|
55426
|
-
]
|
|
55427
|
-
}
|
|
55428
|
-
),
|
|
55315
|
+
/* @__PURE__ */ jsx(
|
|
55316
|
+
"button",
|
|
55317
|
+
{
|
|
55318
|
+
onClick: handleBack,
|
|
55319
|
+
style: {
|
|
55320
|
+
display: "flex",
|
|
55321
|
+
alignItems: "center",
|
|
55322
|
+
justifyContent: "center",
|
|
55323
|
+
width: "32px",
|
|
55324
|
+
height: "32px",
|
|
55325
|
+
border: `1px solid ${theme2.colors.border}`,
|
|
55326
|
+
borderRadius: theme2.radii[1],
|
|
55327
|
+
background: theme2.colors.surface,
|
|
55328
|
+
cursor: "pointer",
|
|
55329
|
+
color: theme2.colors.textSecondary,
|
|
55330
|
+
transition: "all 0.2s ease"
|
|
55331
|
+
},
|
|
55332
|
+
onMouseEnter: (e) => {
|
|
55333
|
+
e.currentTarget.style.background = theme2.colors.backgroundSecondary;
|
|
55334
|
+
e.currentTarget.style.color = theme2.colors.text;
|
|
55335
|
+
},
|
|
55336
|
+
onMouseLeave: (e) => {
|
|
55337
|
+
e.currentTarget.style.background = theme2.colors.surface;
|
|
55338
|
+
e.currentTarget.style.color = theme2.colors.textSecondary;
|
|
55339
|
+
},
|
|
55340
|
+
title: "Close",
|
|
55341
|
+
children: /* @__PURE__ */ jsx(X, { size: 16 })
|
|
55342
|
+
}
|
|
55343
|
+
)
|
|
55344
|
+
]
|
|
55345
|
+
}
|
|
55346
|
+
),
|
|
55347
|
+
/* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px", marginBottom: "12px" }, children: [
|
|
55348
|
+
hasClaudeWorkflow && claudeAssignment.status === "idle" && !getGitHubIssueFromRefs(selectedTask.references) && /* @__PURE__ */ jsxs(
|
|
55349
|
+
"button",
|
|
55350
|
+
{
|
|
55351
|
+
onClick: handleAssignToClaude,
|
|
55352
|
+
style: {
|
|
55353
|
+
flex: 1,
|
|
55354
|
+
display: "flex",
|
|
55355
|
+
alignItems: "center",
|
|
55356
|
+
justifyContent: "center",
|
|
55357
|
+
gap: "6px",
|
|
55358
|
+
padding: "6px 12px",
|
|
55359
|
+
border: `1px solid ${theme2.colors.primary}`,
|
|
55360
|
+
borderRadius: theme2.radii[1],
|
|
55361
|
+
background: "transparent",
|
|
55362
|
+
cursor: "pointer",
|
|
55363
|
+
color: theme2.colors.primary,
|
|
55364
|
+
fontSize: theme2.fontSizes[1],
|
|
55365
|
+
fontWeight: theme2.fontWeights.medium,
|
|
55366
|
+
transition: "all 0.2s ease"
|
|
55367
|
+
},
|
|
55368
|
+
onMouseEnter: (e) => {
|
|
55369
|
+
e.currentTarget.style.background = theme2.colors.primary;
|
|
55370
|
+
e.currentTarget.style.color = theme2.colors.background;
|
|
55371
|
+
},
|
|
55372
|
+
onMouseLeave: (e) => {
|
|
55373
|
+
e.currentTarget.style.background = "transparent";
|
|
55374
|
+
e.currentTarget.style.color = theme2.colors.primary;
|
|
55375
|
+
},
|
|
55376
|
+
title: "Assign to Claude",
|
|
55377
|
+
children: [
|
|
55378
|
+
/* @__PURE__ */ jsx(Bot, { size: 14 }),
|
|
55379
|
+
"Assign to Claude"
|
|
55380
|
+
]
|
|
55381
|
+
}
|
|
55382
|
+
),
|
|
55383
|
+
(() => {
|
|
55384
|
+
const existingIssue = getGitHubIssueFromRefs(selectedTask.references);
|
|
55385
|
+
if (!existingIssue || claudeAssignment.status !== "idle") return null;
|
|
55386
|
+
return /* @__PURE__ */ jsxs(
|
|
55387
|
+
"a",
|
|
55388
|
+
{
|
|
55389
|
+
href: existingIssue.url,
|
|
55390
|
+
target: "_blank",
|
|
55391
|
+
rel: "noopener noreferrer",
|
|
55392
|
+
style: {
|
|
55393
|
+
flex: 1,
|
|
55394
|
+
display: "flex",
|
|
55395
|
+
alignItems: "center",
|
|
55396
|
+
justifyContent: "center",
|
|
55397
|
+
gap: "6px",
|
|
55398
|
+
padding: "6px 12px",
|
|
55399
|
+
border: `1px solid ${theme2.colors.primary}`,
|
|
55400
|
+
borderRadius: theme2.radii[1],
|
|
55401
|
+
background: "transparent",
|
|
55402
|
+
color: theme2.colors.primary,
|
|
55403
|
+
fontSize: theme2.fontSizes[1],
|
|
55404
|
+
fontWeight: theme2.fontWeights.medium,
|
|
55405
|
+
textDecoration: "none",
|
|
55406
|
+
transition: "all 0.2s ease"
|
|
55407
|
+
},
|
|
55408
|
+
onMouseEnter: (e) => {
|
|
55409
|
+
e.currentTarget.style.background = theme2.colors.primary;
|
|
55410
|
+
e.currentTarget.style.color = theme2.colors.background;
|
|
55411
|
+
},
|
|
55412
|
+
onMouseLeave: (e) => {
|
|
55413
|
+
e.currentTarget.style.background = "transparent";
|
|
55414
|
+
e.currentTarget.style.color = theme2.colors.primary;
|
|
55415
|
+
},
|
|
55416
|
+
title: `View issue #${existingIssue.number} on GitHub`,
|
|
55417
|
+
children: [
|
|
55418
|
+
/* @__PURE__ */ jsx(Bot, { size: 14 }),
|
|
55419
|
+
"View Progress",
|
|
55420
|
+
/* @__PURE__ */ jsx(ExternalLink, { size: 12 })
|
|
55421
|
+
]
|
|
55422
|
+
}
|
|
55423
|
+
);
|
|
55424
|
+
})(),
|
|
55425
|
+
claudeAssignment.status === "loading" && /* @__PURE__ */ jsxs(
|
|
55426
|
+
"div",
|
|
55427
|
+
{
|
|
55428
|
+
style: {
|
|
55429
|
+
flex: 1,
|
|
55430
|
+
display: "flex",
|
|
55431
|
+
alignItems: "center",
|
|
55432
|
+
justifyContent: "center",
|
|
55433
|
+
gap: "6px",
|
|
55434
|
+
padding: "6px 12px",
|
|
55435
|
+
color: theme2.colors.textSecondary,
|
|
55436
|
+
fontSize: theme2.fontSizes[1]
|
|
55437
|
+
},
|
|
55438
|
+
children: [
|
|
55439
|
+
/* @__PURE__ */ jsx(LoaderCircle, { size: 14, style: { animation: "spin 1s linear infinite" } }),
|
|
55440
|
+
"Assigning..."
|
|
55441
|
+
]
|
|
55442
|
+
}
|
|
55443
|
+
),
|
|
55444
|
+
claudeAssignment.status === "success" && /* @__PURE__ */ jsxs(
|
|
55445
|
+
"a",
|
|
55446
|
+
{
|
|
55447
|
+
href: claudeAssignment.issueUrl,
|
|
55448
|
+
target: "_blank",
|
|
55449
|
+
rel: "noopener noreferrer",
|
|
55450
|
+
style: {
|
|
55451
|
+
flex: 1,
|
|
55452
|
+
display: "flex",
|
|
55453
|
+
alignItems: "center",
|
|
55454
|
+
justifyContent: "center",
|
|
55455
|
+
gap: "6px",
|
|
55456
|
+
padding: "6px 12px",
|
|
55457
|
+
border: `1px solid ${theme2.colors.success}`,
|
|
55458
|
+
borderRadius: theme2.radii[1],
|
|
55459
|
+
background: `${theme2.colors.success}15`,
|
|
55460
|
+
color: theme2.colors.success,
|
|
55461
|
+
fontSize: theme2.fontSizes[1],
|
|
55462
|
+
fontWeight: theme2.fontWeights.medium,
|
|
55463
|
+
textDecoration: "none",
|
|
55464
|
+
transition: "all 0.2s ease"
|
|
55465
|
+
},
|
|
55466
|
+
children: [
|
|
55467
|
+
/* @__PURE__ */ jsx(CircleCheckBig, { size: 14 }),
|
|
55468
|
+
"Issue #",
|
|
55469
|
+
claudeAssignment.issueNumber
|
|
55470
|
+
]
|
|
55471
|
+
}
|
|
55472
|
+
),
|
|
55473
|
+
claudeAssignment.status === "error" && /* @__PURE__ */ jsxs(
|
|
55474
|
+
"div",
|
|
55475
|
+
{
|
|
55476
|
+
style: {
|
|
55477
|
+
flex: 1,
|
|
55478
|
+
display: "flex",
|
|
55479
|
+
alignItems: "center",
|
|
55480
|
+
justifyContent: "center",
|
|
55481
|
+
gap: "6px",
|
|
55482
|
+
padding: "6px 12px",
|
|
55483
|
+
border: `1px solid ${theme2.colors.error}`,
|
|
55484
|
+
borderRadius: theme2.radii[1],
|
|
55485
|
+
background: `${theme2.colors.error}15`,
|
|
55486
|
+
color: theme2.colors.error,
|
|
55487
|
+
fontSize: theme2.fontSizes[1]
|
|
55488
|
+
},
|
|
55489
|
+
title: claudeAssignment.error,
|
|
55490
|
+
children: [
|
|
55491
|
+
/* @__PURE__ */ jsx(CircleAlert, { size: 14 }),
|
|
55492
|
+
"Failed",
|
|
55429
55493
|
/* @__PURE__ */ jsx(
|
|
55430
55494
|
"button",
|
|
55431
55495
|
{
|
|
55432
|
-
onClick:
|
|
55496
|
+
onClick: () => setClaudeAssignment({ status: "idle" }),
|
|
55433
55497
|
style: {
|
|
55434
|
-
|
|
55435
|
-
|
|
55436
|
-
|
|
55437
|
-
width: "32px",
|
|
55438
|
-
height: "32px",
|
|
55439
|
-
border: `1px solid ${theme2.colors.border}`,
|
|
55440
|
-
borderRadius: theme2.radii[1],
|
|
55441
|
-
background: theme2.colors.surface,
|
|
55498
|
+
background: "none",
|
|
55499
|
+
border: "none",
|
|
55500
|
+
color: theme2.colors.error,
|
|
55442
55501
|
cursor: "pointer",
|
|
55443
|
-
|
|
55444
|
-
|
|
55445
|
-
|
|
55446
|
-
onMouseEnter: (e) => {
|
|
55447
|
-
e.currentTarget.style.background = theme2.colors.backgroundSecondary;
|
|
55448
|
-
e.currentTarget.style.color = theme2.colors.text;
|
|
55449
|
-
},
|
|
55450
|
-
onMouseLeave: (e) => {
|
|
55451
|
-
e.currentTarget.style.background = theme2.colors.surface;
|
|
55452
|
-
e.currentTarget.style.color = theme2.colors.textSecondary;
|
|
55502
|
+
padding: "0 0 0 4px",
|
|
55503
|
+
fontSize: theme2.fontSizes[0],
|
|
55504
|
+
textDecoration: "underline"
|
|
55453
55505
|
},
|
|
55454
|
-
|
|
55455
|
-
children: /* @__PURE__ */ jsx(X, { size: 16 })
|
|
55506
|
+
children: "Retry"
|
|
55456
55507
|
}
|
|
55457
55508
|
)
|
|
55458
|
-
]
|
|
55459
|
-
|
|
55460
|
-
|
|
55461
|
-
|
|
55509
|
+
]
|
|
55510
|
+
}
|
|
55511
|
+
),
|
|
55512
|
+
deleteState.status === "idle" && /* @__PURE__ */ jsxs(
|
|
55513
|
+
"button",
|
|
55514
|
+
{
|
|
55515
|
+
onClick: () => setIsDeleteModalOpen(true),
|
|
55516
|
+
style: {
|
|
55517
|
+
flex: 1,
|
|
55518
|
+
display: "flex",
|
|
55519
|
+
alignItems: "center",
|
|
55520
|
+
justifyContent: "center",
|
|
55521
|
+
gap: "6px",
|
|
55522
|
+
padding: "6px 12px",
|
|
55523
|
+
border: `1px solid ${theme2.colors.error}`,
|
|
55524
|
+
borderRadius: theme2.radii[1],
|
|
55525
|
+
background: "transparent",
|
|
55526
|
+
cursor: "pointer",
|
|
55527
|
+
color: theme2.colors.error,
|
|
55528
|
+
fontSize: theme2.fontSizes[1],
|
|
55529
|
+
fontWeight: theme2.fontWeights.medium,
|
|
55530
|
+
transition: "all 0.2s ease"
|
|
55531
|
+
},
|
|
55532
|
+
onMouseEnter: (e) => {
|
|
55533
|
+
e.currentTarget.style.background = theme2.colors.error;
|
|
55534
|
+
e.currentTarget.style.color = theme2.colors.background;
|
|
55535
|
+
},
|
|
55536
|
+
onMouseLeave: (e) => {
|
|
55537
|
+
e.currentTarget.style.background = "transparent";
|
|
55538
|
+
e.currentTarget.style.color = theme2.colors.error;
|
|
55539
|
+
},
|
|
55540
|
+
title: "Delete task",
|
|
55541
|
+
children: [
|
|
55542
|
+
/* @__PURE__ */ jsx(Trash2, { size: 14 }),
|
|
55543
|
+
"Delete"
|
|
55544
|
+
]
|
|
55545
|
+
}
|
|
55546
|
+
),
|
|
55547
|
+
deleteState.status === "success" && /* @__PURE__ */ jsxs(
|
|
55548
|
+
"div",
|
|
55549
|
+
{
|
|
55550
|
+
style: {
|
|
55551
|
+
flex: 1,
|
|
55552
|
+
display: "flex",
|
|
55553
|
+
alignItems: "center",
|
|
55554
|
+
justifyContent: "center",
|
|
55555
|
+
gap: "6px",
|
|
55556
|
+
padding: "6px 12px",
|
|
55557
|
+
border: `1px solid ${theme2.colors.success}`,
|
|
55558
|
+
borderRadius: theme2.radii[1],
|
|
55559
|
+
background: `${theme2.colors.success}15`,
|
|
55560
|
+
color: theme2.colors.success,
|
|
55561
|
+
fontSize: theme2.fontSizes[1],
|
|
55562
|
+
fontWeight: theme2.fontWeights.medium
|
|
55563
|
+
},
|
|
55564
|
+
children: [
|
|
55565
|
+
/* @__PURE__ */ jsx(CircleCheckBig, { size: 14 }),
|
|
55566
|
+
"Task deleted"
|
|
55567
|
+
]
|
|
55568
|
+
}
|
|
55569
|
+
)
|
|
55570
|
+
] }),
|
|
55462
55571
|
/* @__PURE__ */ jsx("style", { children: `
|
|
55463
55572
|
@keyframes spin {
|
|
55464
55573
|
to { transform: rotate(360deg); }
|