@industry-theme/backlogmd-kanban-panel 1.0.31 → 1.0.33
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/mocks/panelContext.d.ts +12 -2
- package/dist/mocks/panelContext.d.ts.map +1 -1
- package/dist/panels/KanbanPanel.d.ts.map +1 -1
- package/dist/panels/KanbanPanel.stories.d.ts.map +1 -1
- package/dist/panels/TaskDetailPanel.d.ts.map +1 -1
- package/dist/panels/TaskDetailPanel.stories.d.ts +2 -0
- package/dist/panels/TaskDetailPanel.stories.d.ts.map +1 -1
- package/dist/panels/kanban/components/TaskCard.d.ts.map +1 -1
- package/dist/panels/kanban/components/TaskCard.stories.d.ts +31 -0
- package/dist/panels/kanban/components/TaskCard.stories.d.ts.map +1 -0
- package/dist/panels/kanban/hooks/useKanbanData.d.ts +2 -0
- package/dist/panels/kanban/hooks/useKanbanData.d.ts.map +1 -1
- package/dist/panels.bundle.js +395 -233
- package/dist/panels.bundle.js.map +1 -1
- package/package.json +1 -1
package/dist/panels.bundle.js
CHANGED
|
@@ -3740,70 +3740,83 @@ 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$
|
|
3744
|
-
["path", { d: "
|
|
3745
|
-
["
|
|
3746
|
-
["
|
|
3747
|
-
["path", { d: "
|
|
3743
|
+
const __iconNode$j = [
|
|
3744
|
+
["path", { d: "M12 8V4H8", key: "hb8ula" }],
|
|
3745
|
+
["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
|
|
3746
|
+
["path", { d: "M2 14h2", key: "vft8re" }],
|
|
3747
|
+
["path", { d: "M20 14h2", key: "4cs60a" }],
|
|
3748
|
+
["path", { d: "M15 13v2", key: "1xurst" }],
|
|
3749
|
+
["path", { d: "M9 13v2", key: "rq6x2g" }]
|
|
3748
3750
|
];
|
|
3749
|
-
const
|
|
3751
|
+
const Bot = createLucideIcon("bot", __iconNode$j);
|
|
3750
3752
|
/**
|
|
3751
3753
|
* @license lucide-react v0.552.0 - ISC
|
|
3752
3754
|
*
|
|
3753
3755
|
* This source code is licensed under the ISC license.
|
|
3754
3756
|
* See the LICENSE file in the root directory of this source tree.
|
|
3755
3757
|
*/
|
|
3756
|
-
const __iconNode$
|
|
3757
|
-
const Check = createLucideIcon("check", __iconNode$
|
|
3758
|
+
const __iconNode$i = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
|
|
3759
|
+
const Check = createLucideIcon("check", __iconNode$i);
|
|
3758
3760
|
/**
|
|
3759
3761
|
* @license lucide-react v0.552.0 - ISC
|
|
3760
3762
|
*
|
|
3761
3763
|
* This source code is licensed under the ISC license.
|
|
3762
3764
|
* See the LICENSE file in the root directory of this source tree.
|
|
3763
3765
|
*/
|
|
3764
|
-
const __iconNode$
|
|
3765
|
-
const ChevronDown = createLucideIcon("chevron-down", __iconNode$
|
|
3766
|
+
const __iconNode$h = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
|
|
3767
|
+
const ChevronDown = createLucideIcon("chevron-down", __iconNode$h);
|
|
3766
3768
|
/**
|
|
3767
3769
|
* @license lucide-react v0.552.0 - ISC
|
|
3768
3770
|
*
|
|
3769
3771
|
* This source code is licensed under the ISC license.
|
|
3770
3772
|
* See the LICENSE file in the root directory of this source tree.
|
|
3771
3773
|
*/
|
|
3772
|
-
const __iconNode$
|
|
3774
|
+
const __iconNode$g = [
|
|
3773
3775
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
3774
3776
|
["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
|
|
3775
3777
|
["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
|
|
3776
3778
|
];
|
|
3777
|
-
const CircleAlert = createLucideIcon("circle-alert", __iconNode$
|
|
3779
|
+
const CircleAlert = createLucideIcon("circle-alert", __iconNode$g);
|
|
3780
|
+
/**
|
|
3781
|
+
* @license lucide-react v0.552.0 - ISC
|
|
3782
|
+
*
|
|
3783
|
+
* This source code is licensed under the ISC license.
|
|
3784
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
3785
|
+
*/
|
|
3786
|
+
const __iconNode$f = [
|
|
3787
|
+
["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
|
|
3788
|
+
["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
|
|
3789
|
+
];
|
|
3790
|
+
const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$f);
|
|
3778
3791
|
/**
|
|
3779
3792
|
* @license lucide-react v0.552.0 - ISC
|
|
3780
3793
|
*
|
|
3781
3794
|
* This source code is licensed under the ISC license.
|
|
3782
3795
|
* See the LICENSE file in the root directory of this source tree.
|
|
3783
3796
|
*/
|
|
3784
|
-
const __iconNode$
|
|
3797
|
+
const __iconNode$e = [
|
|
3785
3798
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
3786
3799
|
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
3787
3800
|
];
|
|
3788
|
-
const CircleCheck = createLucideIcon("circle-check", __iconNode$
|
|
3801
|
+
const CircleCheck = createLucideIcon("circle-check", __iconNode$e);
|
|
3789
3802
|
/**
|
|
3790
3803
|
* @license lucide-react v0.552.0 - ISC
|
|
3791
3804
|
*
|
|
3792
3805
|
* This source code is licensed under the ISC license.
|
|
3793
3806
|
* See the LICENSE file in the root directory of this source tree.
|
|
3794
3807
|
*/
|
|
3795
|
-
const __iconNode$
|
|
3808
|
+
const __iconNode$d = [
|
|
3796
3809
|
["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
|
|
3797
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" }]
|
|
3798
3811
|
];
|
|
3799
|
-
const Copy = createLucideIcon("copy", __iconNode$
|
|
3812
|
+
const Copy = createLucideIcon("copy", __iconNode$d);
|
|
3800
3813
|
/**
|
|
3801
3814
|
* @license lucide-react v0.552.0 - ISC
|
|
3802
3815
|
*
|
|
3803
3816
|
* This source code is licensed under the ISC license.
|
|
3804
3817
|
* See the LICENSE file in the root directory of this source tree.
|
|
3805
3818
|
*/
|
|
3806
|
-
const __iconNode$
|
|
3819
|
+
const __iconNode$c = [
|
|
3807
3820
|
["path", { d: "m15 15 6 6", key: "1s409w" }],
|
|
3808
3821
|
["path", { d: "m15 9 6-6", key: "ko1vev" }],
|
|
3809
3822
|
["path", { d: "M21 16v5h-5", key: "1ck2sf" }],
|
|
@@ -3813,26 +3826,26 @@ const __iconNode$g = [
|
|
|
3813
3826
|
["path", { d: "M3 8V3h5", key: "1ln10m" }],
|
|
3814
3827
|
["path", { d: "M9 9 3 3", key: "v551iv" }]
|
|
3815
3828
|
];
|
|
3816
|
-
const Expand = createLucideIcon("expand", __iconNode$
|
|
3829
|
+
const Expand = createLucideIcon("expand", __iconNode$c);
|
|
3817
3830
|
/**
|
|
3818
3831
|
* @license lucide-react v0.552.0 - ISC
|
|
3819
3832
|
*
|
|
3820
3833
|
* This source code is licensed under the ISC license.
|
|
3821
3834
|
* See the LICENSE file in the root directory of this source tree.
|
|
3822
3835
|
*/
|
|
3823
|
-
const __iconNode$
|
|
3836
|
+
const __iconNode$b = [
|
|
3824
3837
|
["path", { d: "M15 3h6v6", key: "1q9fwt" }],
|
|
3825
3838
|
["path", { d: "M10 14 21 3", key: "gplh6r" }],
|
|
3826
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" }]
|
|
3827
3840
|
];
|
|
3828
|
-
const ExternalLink = createLucideIcon("external-link", __iconNode$
|
|
3841
|
+
const ExternalLink = createLucideIcon("external-link", __iconNode$b);
|
|
3829
3842
|
/**
|
|
3830
3843
|
* @license lucide-react v0.552.0 - ISC
|
|
3831
3844
|
*
|
|
3832
3845
|
* This source code is licensed under the ISC license.
|
|
3833
3846
|
* See the LICENSE file in the root directory of this source tree.
|
|
3834
3847
|
*/
|
|
3835
|
-
const __iconNode$
|
|
3848
|
+
const __iconNode$a = [
|
|
3836
3849
|
[
|
|
3837
3850
|
"path",
|
|
3838
3851
|
{
|
|
@@ -3845,30 +3858,14 @@ const __iconNode$e = [
|
|
|
3845
3858
|
["path", { d: "M16 13H8", key: "t4e002" }],
|
|
3846
3859
|
["path", { d: "M16 17H8", key: "z1uh3a" }]
|
|
3847
3860
|
];
|
|
3848
|
-
const FileText = createLucideIcon("file-text", __iconNode$
|
|
3861
|
+
const FileText = createLucideIcon("file-text", __iconNode$a);
|
|
3849
3862
|
/**
|
|
3850
3863
|
* @license lucide-react v0.552.0 - ISC
|
|
3851
3864
|
*
|
|
3852
3865
|
* This source code is licensed under the ISC license.
|
|
3853
3866
|
* See the LICENSE file in the root directory of this source tree.
|
|
3854
3867
|
*/
|
|
3855
|
-
const __iconNode$
|
|
3856
|
-
[
|
|
3857
|
-
"path",
|
|
3858
|
-
{
|
|
3859
|
-
d: "M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",
|
|
3860
|
-
key: "1jaruq"
|
|
3861
|
-
}
|
|
3862
|
-
]
|
|
3863
|
-
];
|
|
3864
|
-
const Flag = createLucideIcon("flag", __iconNode$d);
|
|
3865
|
-
/**
|
|
3866
|
-
* @license lucide-react v0.552.0 - ISC
|
|
3867
|
-
*
|
|
3868
|
-
* This source code is licensed under the ISC license.
|
|
3869
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
3870
|
-
*/
|
|
3871
|
-
const __iconNode$c = [
|
|
3868
|
+
const __iconNode$9 = [
|
|
3872
3869
|
["path", { d: "M12 10v6", key: "1bos4e" }],
|
|
3873
3870
|
["path", { d: "M9 13h6", key: "1uhe8q" }],
|
|
3874
3871
|
[
|
|
@@ -3879,35 +3876,22 @@ const __iconNode$c = [
|
|
|
3879
3876
|
}
|
|
3880
3877
|
]
|
|
3881
3878
|
];
|
|
3882
|
-
const FolderPlus = createLucideIcon("folder-plus", __iconNode$
|
|
3883
|
-
/**
|
|
3884
|
-
* @license lucide-react v0.552.0 - ISC
|
|
3885
|
-
*
|
|
3886
|
-
* This source code is licensed under the ISC license.
|
|
3887
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
3888
|
-
*/
|
|
3889
|
-
const __iconNode$b = [
|
|
3890
|
-
["line", { x1: "6", x2: "6", y1: "3", y2: "15", key: "17qcm7" }],
|
|
3891
|
-
["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
|
|
3892
|
-
["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
|
|
3893
|
-
["path", { d: "M18 9a9 9 0 0 1-9 9", key: "n2h4wq" }]
|
|
3894
|
-
];
|
|
3895
|
-
const GitBranch = createLucideIcon("git-branch", __iconNode$b);
|
|
3879
|
+
const FolderPlus = createLucideIcon("folder-plus", __iconNode$9);
|
|
3896
3880
|
/**
|
|
3897
3881
|
* @license lucide-react v0.552.0 - ISC
|
|
3898
3882
|
*
|
|
3899
3883
|
* This source code is licensed under the ISC license.
|
|
3900
3884
|
* See the LICENSE file in the root directory of this source tree.
|
|
3901
3885
|
*/
|
|
3902
|
-
const __iconNode$
|
|
3903
|
-
const LoaderCircle = createLucideIcon("loader-circle", __iconNode$
|
|
3886
|
+
const __iconNode$8 = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
|
|
3887
|
+
const LoaderCircle = createLucideIcon("loader-circle", __iconNode$8);
|
|
3904
3888
|
/**
|
|
3905
3889
|
* @license lucide-react v0.552.0 - ISC
|
|
3906
3890
|
*
|
|
3907
3891
|
* This source code is licensed under the ISC license.
|
|
3908
3892
|
* See the LICENSE file in the root directory of this source tree.
|
|
3909
3893
|
*/
|
|
3910
|
-
const __iconNode$
|
|
3894
|
+
const __iconNode$7 = [
|
|
3911
3895
|
["path", { d: "M12 13v8", key: "1l5pq0" }],
|
|
3912
3896
|
["path", { d: "M12 3v3", key: "1n5kay" }],
|
|
3913
3897
|
[
|
|
@@ -3918,37 +3902,37 @@ const __iconNode$9 = [
|
|
|
3918
3902
|
}
|
|
3919
3903
|
]
|
|
3920
3904
|
];
|
|
3921
|
-
const Milestone = createLucideIcon("milestone", __iconNode$
|
|
3905
|
+
const Milestone = createLucideIcon("milestone", __iconNode$7);
|
|
3922
3906
|
/**
|
|
3923
3907
|
* @license lucide-react v0.552.0 - ISC
|
|
3924
3908
|
*
|
|
3925
3909
|
* This source code is licensed under the ISC license.
|
|
3926
3910
|
* See the LICENSE file in the root directory of this source tree.
|
|
3927
3911
|
*/
|
|
3928
|
-
const __iconNode$
|
|
3912
|
+
const __iconNode$6 = [
|
|
3929
3913
|
["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
|
|
3930
3914
|
["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
|
|
3931
3915
|
["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
|
|
3932
3916
|
];
|
|
3933
|
-
const Monitor = createLucideIcon("monitor", __iconNode$
|
|
3917
|
+
const Monitor = createLucideIcon("monitor", __iconNode$6);
|
|
3934
3918
|
/**
|
|
3935
3919
|
* @license lucide-react v0.552.0 - ISC
|
|
3936
3920
|
*
|
|
3937
3921
|
* This source code is licensed under the ISC license.
|
|
3938
3922
|
* See the LICENSE file in the root directory of this source tree.
|
|
3939
3923
|
*/
|
|
3940
|
-
const __iconNode$
|
|
3924
|
+
const __iconNode$5 = [
|
|
3941
3925
|
["path", { d: "M18 8L22 12L18 16", key: "1r0oui" }],
|
|
3942
3926
|
["path", { d: "M2 12H22", key: "1m8cig" }]
|
|
3943
3927
|
];
|
|
3944
|
-
const MoveRight = createLucideIcon("move-right", __iconNode$
|
|
3928
|
+
const MoveRight = createLucideIcon("move-right", __iconNode$5);
|
|
3945
3929
|
/**
|
|
3946
3930
|
* @license lucide-react v0.552.0 - ISC
|
|
3947
3931
|
*
|
|
3948
3932
|
* This source code is licensed under the ISC license.
|
|
3949
3933
|
* See the LICENSE file in the root directory of this source tree.
|
|
3950
3934
|
*/
|
|
3951
|
-
const __iconNode$
|
|
3935
|
+
const __iconNode$4 = [
|
|
3952
3936
|
[
|
|
3953
3937
|
"path",
|
|
3954
3938
|
{
|
|
@@ -3957,70 +3941,42 @@ const __iconNode$6 = [
|
|
|
3957
3941
|
}
|
|
3958
3942
|
]
|
|
3959
3943
|
];
|
|
3960
|
-
const Play = createLucideIcon("play", __iconNode$
|
|
3944
|
+
const Play = createLucideIcon("play", __iconNode$4);
|
|
3961
3945
|
/**
|
|
3962
3946
|
* @license lucide-react v0.552.0 - ISC
|
|
3963
3947
|
*
|
|
3964
3948
|
* This source code is licensed under the ISC license.
|
|
3965
3949
|
* See the LICENSE file in the root directory of this source tree.
|
|
3966
3950
|
*/
|
|
3967
|
-
const __iconNode$
|
|
3951
|
+
const __iconNode$3 = [
|
|
3968
3952
|
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
3969
3953
|
["path", { d: "M12 5v14", key: "s699le" }]
|
|
3970
3954
|
];
|
|
3971
|
-
const Plus = createLucideIcon("plus", __iconNode$
|
|
3955
|
+
const Plus = createLucideIcon("plus", __iconNode$3);
|
|
3972
3956
|
/**
|
|
3973
3957
|
* @license lucide-react v0.552.0 - ISC
|
|
3974
3958
|
*
|
|
3975
3959
|
* This source code is licensed under the ISC license.
|
|
3976
3960
|
* See the LICENSE file in the root directory of this source tree.
|
|
3977
3961
|
*/
|
|
3978
|
-
const __iconNode$
|
|
3962
|
+
const __iconNode$2 = [
|
|
3979
3963
|
["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
|
|
3980
3964
|
["path", { d: "M21 3v5h-5", key: "1q7to0" }],
|
|
3981
3965
|
["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
|
|
3982
3966
|
["path", { d: "M8 16H3v5", key: "1cv678" }]
|
|
3983
3967
|
];
|
|
3984
|
-
const RefreshCw = createLucideIcon("refresh-cw", __iconNode$
|
|
3968
|
+
const RefreshCw = createLucideIcon("refresh-cw", __iconNode$2);
|
|
3985
3969
|
/**
|
|
3986
3970
|
* @license lucide-react v0.552.0 - ISC
|
|
3987
3971
|
*
|
|
3988
3972
|
* This source code is licensed under the ISC license.
|
|
3989
3973
|
* See the LICENSE file in the root directory of this source tree.
|
|
3990
3974
|
*/
|
|
3991
|
-
const __iconNode$
|
|
3975
|
+
const __iconNode$1 = [
|
|
3992
3976
|
["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
|
|
3993
3977
|
["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
|
|
3994
3978
|
];
|
|
3995
|
-
const Search = createLucideIcon("search", __iconNode$
|
|
3996
|
-
/**
|
|
3997
|
-
* @license lucide-react v0.552.0 - ISC
|
|
3998
|
-
*
|
|
3999
|
-
* This source code is licensed under the ISC license.
|
|
4000
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
4001
|
-
*/
|
|
4002
|
-
const __iconNode$2 = [
|
|
4003
|
-
[
|
|
4004
|
-
"path",
|
|
4005
|
-
{
|
|
4006
|
-
d: "M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",
|
|
4007
|
-
key: "vktsd0"
|
|
4008
|
-
}
|
|
4009
|
-
],
|
|
4010
|
-
["circle", { cx: "7.5", cy: "7.5", r: ".5", fill: "currentColor", key: "kqv944" }]
|
|
4011
|
-
];
|
|
4012
|
-
const Tag = createLucideIcon("tag", __iconNode$2);
|
|
4013
|
-
/**
|
|
4014
|
-
* @license lucide-react v0.552.0 - ISC
|
|
4015
|
-
*
|
|
4016
|
-
* This source code is licensed under the ISC license.
|
|
4017
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
4018
|
-
*/
|
|
4019
|
-
const __iconNode$1 = [
|
|
4020
|
-
["path", { d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2", key: "975kel" }],
|
|
4021
|
-
["circle", { cx: "12", cy: "7", r: "4", key: "17ys0d" }]
|
|
4022
|
-
];
|
|
4023
|
-
const User = createLucideIcon("user", __iconNode$1);
|
|
3979
|
+
const Search = createLucideIcon("search", __iconNode$1);
|
|
4024
3980
|
/**
|
|
4025
3981
|
* @license lucide-react v0.552.0 - ISC
|
|
4026
3982
|
*
|
|
@@ -4070,6 +4026,7 @@ function parseTaskMarkdown(content2, filePath) {
|
|
|
4070
4026
|
labels: frontmatter.labels || [],
|
|
4071
4027
|
milestone: frontmatter.milestone,
|
|
4072
4028
|
dependencies: frontmatter.dependencies || [],
|
|
4029
|
+
references: frontmatter.references || [],
|
|
4073
4030
|
parentTaskId: frontmatter.parentTaskId,
|
|
4074
4031
|
subtasks: frontmatter.subtasks,
|
|
4075
4032
|
branch: frontmatter.branch,
|
|
@@ -4102,6 +4059,9 @@ function serializeTaskMarkdown(task) {
|
|
|
4102
4059
|
if (task.dependencies && task.dependencies.length > 0) {
|
|
4103
4060
|
lines.push(`dependencies: [${task.dependencies.join(", ")}]`);
|
|
4104
4061
|
}
|
|
4062
|
+
if (task.references && task.references.length > 0) {
|
|
4063
|
+
lines.push(`references: [${task.references.join(", ")}]`);
|
|
4064
|
+
}
|
|
4105
4065
|
if (task.parentTaskId) {
|
|
4106
4066
|
lines.push(`parentTaskId: ${task.parentTaskId}`);
|
|
4107
4067
|
}
|
|
@@ -4197,6 +4157,7 @@ function parseFrontmatter(raw2) {
|
|
|
4197
4157
|
case "assignee":
|
|
4198
4158
|
case "labels":
|
|
4199
4159
|
case "dependencies":
|
|
4160
|
+
case "references":
|
|
4200
4161
|
case "subtasks":
|
|
4201
4162
|
result[key2] = parseArrayValue(value);
|
|
4202
4163
|
break;
|
|
@@ -5469,6 +5430,7 @@ class Core {
|
|
|
5469
5430
|
labels: input.labels || [],
|
|
5470
5431
|
milestone: input.milestone,
|
|
5471
5432
|
dependencies: input.dependencies || [],
|
|
5433
|
+
references: input.references || [],
|
|
5472
5434
|
parentTaskId: input.parentTaskId,
|
|
5473
5435
|
description: input.description,
|
|
5474
5436
|
implementationPlan: input.implementationPlan,
|
|
@@ -5520,7 +5482,8 @@ class Core {
|
|
|
5520
5482
|
implementationPlan: input.clearImplementationPlan ? void 0 : input.implementationPlan ?? existing.implementationPlan,
|
|
5521
5483
|
implementationNotes: input.clearImplementationNotes ? void 0 : input.implementationNotes ?? existing.implementationNotes,
|
|
5522
5484
|
ordinal: input.ordinal ?? existing.ordinal,
|
|
5523
|
-
dependencies: input.dependencies ?? existing.dependencies
|
|
5485
|
+
dependencies: input.dependencies ?? existing.dependencies,
|
|
5486
|
+
references: input.references ?? existing.references ?? []
|
|
5524
5487
|
};
|
|
5525
5488
|
if (input.labels) {
|
|
5526
5489
|
updated.labels = input.labels;
|
|
@@ -5547,6 +5510,15 @@ class Core {
|
|
|
5547
5510
|
return !((_a = input.removeDependencies) == null ? void 0 : _a.includes(d));
|
|
5548
5511
|
});
|
|
5549
5512
|
}
|
|
5513
|
+
if (input.addReferences) {
|
|
5514
|
+
updated.references = [.../* @__PURE__ */ new Set([...updated.references || [], ...input.addReferences])];
|
|
5515
|
+
}
|
|
5516
|
+
if (input.removeReferences) {
|
|
5517
|
+
updated.references = (updated.references || []).filter((r2) => {
|
|
5518
|
+
var _a;
|
|
5519
|
+
return !((_a = input.removeReferences) == null ? void 0 : _a.includes(r2));
|
|
5520
|
+
});
|
|
5521
|
+
}
|
|
5550
5522
|
if (input.acceptanceCriteria) {
|
|
5551
5523
|
updated.acceptanceCriteriaItems = input.acceptanceCriteria.map((ac, i) => ({
|
|
5552
5524
|
index: i + 1,
|
|
@@ -5867,7 +5839,8 @@ function useKanbanData(options) {
|
|
|
5867
5839
|
const {
|
|
5868
5840
|
context,
|
|
5869
5841
|
actions,
|
|
5870
|
-
tasksLimit = DEFAULT_TASKS_LIMIT
|
|
5842
|
+
tasksLimit = DEFAULT_TASKS_LIMIT,
|
|
5843
|
+
events: events2
|
|
5871
5844
|
} = options || {};
|
|
5872
5845
|
const [tasks, setTasks] = useState([]);
|
|
5873
5846
|
const [isLoading, setIsLoading] = useState(true);
|
|
@@ -6012,6 +5985,19 @@ function useKanbanData(options) {
|
|
|
6012
5985
|
useEffect(() => {
|
|
6013
5986
|
loadBacklogData();
|
|
6014
5987
|
}, [loadBacklogData]);
|
|
5988
|
+
useEffect(() => {
|
|
5989
|
+
if (!events2) return;
|
|
5990
|
+
const unsubscribe = events2.on("file:write-complete", (event) => {
|
|
5991
|
+
const payload = event.payload || {};
|
|
5992
|
+
const filePath = payload.path || "";
|
|
5993
|
+
if (filePath.includes("backlog/tasks/")) {
|
|
5994
|
+
console.log("[useKanbanData] Task file written, refreshing data:", filePath);
|
|
5995
|
+
fileTreeVersionRef.current = null;
|
|
5996
|
+
loadBacklogData();
|
|
5997
|
+
}
|
|
5998
|
+
});
|
|
5999
|
+
return unsubscribe;
|
|
6000
|
+
}, [events2, loadBacklogData]);
|
|
6015
6001
|
const loadMoreTasks = useCallback(async () => {
|
|
6016
6002
|
const core2 = coreRef.current;
|
|
6017
6003
|
if (!core2) {
|
|
@@ -6135,6 +6121,16 @@ function useKanbanData(options) {
|
|
|
6135
6121
|
core: coreRef.current
|
|
6136
6122
|
};
|
|
6137
6123
|
}
|
|
6124
|
+
function getGitHubIssueFromRefs$1(references) {
|
|
6125
|
+
if (!references) return null;
|
|
6126
|
+
for (const ref of references) {
|
|
6127
|
+
const match = ref.match(/github\.com\/[^/]+\/[^/]+\/issues\/(\d+)/);
|
|
6128
|
+
if (match) {
|
|
6129
|
+
return { number: parseInt(match[1], 10), url: ref };
|
|
6130
|
+
}
|
|
6131
|
+
}
|
|
6132
|
+
return null;
|
|
6133
|
+
}
|
|
6138
6134
|
const TaskCard = ({
|
|
6139
6135
|
task,
|
|
6140
6136
|
onClick,
|
|
@@ -6285,15 +6281,44 @@ const TaskCard = ({
|
|
|
6285
6281
|
color: theme2.colors.textMuted
|
|
6286
6282
|
},
|
|
6287
6283
|
children: [
|
|
6288
|
-
/* @__PURE__ */
|
|
6289
|
-
|
|
6290
|
-
|
|
6291
|
-
|
|
6292
|
-
|
|
6293
|
-
|
|
6294
|
-
|
|
6295
|
-
|
|
6296
|
-
|
|
6284
|
+
/* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
|
|
6285
|
+
/* @__PURE__ */ jsx(
|
|
6286
|
+
"span",
|
|
6287
|
+
{
|
|
6288
|
+
style: {
|
|
6289
|
+
fontFamily: theme2.fonts.monospace
|
|
6290
|
+
},
|
|
6291
|
+
children: task.id
|
|
6292
|
+
}
|
|
6293
|
+
),
|
|
6294
|
+
(() => {
|
|
6295
|
+
const issue = getGitHubIssueFromRefs$1(task.references);
|
|
6296
|
+
if (!issue) return null;
|
|
6297
|
+
return /* @__PURE__ */ jsxs(
|
|
6298
|
+
"a",
|
|
6299
|
+
{
|
|
6300
|
+
href: issue.url,
|
|
6301
|
+
target: "_blank",
|
|
6302
|
+
rel: "noopener noreferrer",
|
|
6303
|
+
onClick: (e) => e.stopPropagation(),
|
|
6304
|
+
style: {
|
|
6305
|
+
display: "inline-flex",
|
|
6306
|
+
alignItems: "center",
|
|
6307
|
+
gap: "3px",
|
|
6308
|
+
color: theme2.colors.primary,
|
|
6309
|
+
textDecoration: "none",
|
|
6310
|
+
fontSize: theme2.fontSizes[0]
|
|
6311
|
+
},
|
|
6312
|
+
title: `View issue #${issue.number} on GitHub`,
|
|
6313
|
+
children: [
|
|
6314
|
+
/* @__PURE__ */ jsx(ExternalLink, { size: 10 }),
|
|
6315
|
+
"#",
|
|
6316
|
+
issue.number
|
|
6317
|
+
]
|
|
6318
|
+
}
|
|
6319
|
+
);
|
|
6320
|
+
})()
|
|
6321
|
+
] }),
|
|
6297
6322
|
task.assignee && task.assignee.length > 0 && /* @__PURE__ */ jsxs(
|
|
6298
6323
|
"span",
|
|
6299
6324
|
{
|
|
@@ -7847,6 +7872,7 @@ const KanbanPanel = ({
|
|
|
7847
7872
|
} = useKanbanData({
|
|
7848
7873
|
context,
|
|
7849
7874
|
actions,
|
|
7875
|
+
events: events2,
|
|
7850
7876
|
tasksLimit: 20
|
|
7851
7877
|
});
|
|
7852
7878
|
const {
|
|
@@ -52770,6 +52796,16 @@ var DocumentView = ({
|
|
|
52770
52796
|
editable
|
|
52771
52797
|
})));
|
|
52772
52798
|
};
|
|
52799
|
+
function getGitHubIssueFromRefs(references) {
|
|
52800
|
+
if (!references) return null;
|
|
52801
|
+
for (const ref of references) {
|
|
52802
|
+
const match = ref.match(/github\.com\/[^/]+\/[^/]+\/issues\/(\d+)/);
|
|
52803
|
+
if (match) {
|
|
52804
|
+
return { number: parseInt(match[1], 10), url: ref };
|
|
52805
|
+
}
|
|
52806
|
+
}
|
|
52807
|
+
return null;
|
|
52808
|
+
}
|
|
52773
52809
|
function getTaskBodyMarkdown(task, options = {}) {
|
|
52774
52810
|
const { includeTitle = false } = options;
|
|
52775
52811
|
if (task.rawContent) {
|
|
@@ -52848,36 +52884,45 @@ const StatusBadge = ({ status }) => {
|
|
|
52848
52884
|
}
|
|
52849
52885
|
);
|
|
52850
52886
|
};
|
|
52851
|
-
const MetadataRow = ({ icon, label, value }) => {
|
|
52852
|
-
const { theme: theme2 } = useTheme();
|
|
52853
|
-
return /* @__PURE__ */ jsxs(
|
|
52854
|
-
"div",
|
|
52855
|
-
{
|
|
52856
|
-
style: {
|
|
52857
|
-
display: "flex",
|
|
52858
|
-
alignItems: "center",
|
|
52859
|
-
gap: "8px",
|
|
52860
|
-
fontSize: theme2.fontSizes[1]
|
|
52861
|
-
},
|
|
52862
|
-
children: [
|
|
52863
|
-
/* @__PURE__ */ jsx("span", { style: { color: theme2.colors.textMuted, display: "flex", alignItems: "center" }, children: icon }),
|
|
52864
|
-
/* @__PURE__ */ jsxs("span", { style: { color: theme2.colors.textSecondary }, children: [
|
|
52865
|
-
label,
|
|
52866
|
-
":"
|
|
52867
|
-
] }),
|
|
52868
|
-
/* @__PURE__ */ jsx("span", { style: { color: theme2.colors.text }, children: value })
|
|
52869
|
-
]
|
|
52870
|
-
}
|
|
52871
|
-
);
|
|
52872
|
-
};
|
|
52873
52887
|
const TaskDetailPanel = ({ context, actions, events: events2, config }) => {
|
|
52888
|
+
var _a;
|
|
52874
52889
|
const { theme: theme2 } = useTheme();
|
|
52875
52890
|
const [selectedTask, setSelectedTask] = useState(null);
|
|
52891
|
+
const [claudeAssignment, setClaudeAssignment] = useState({ status: "idle" });
|
|
52876
52892
|
const { editable = false } = config ?? {};
|
|
52893
|
+
const repoCapabilities = context.getRepositorySlice("repoCapabilities");
|
|
52894
|
+
const hasClaudeWorkflow = ((_a = repoCapabilities == null ? void 0 : repoCapabilities.data) == null ? void 0 : _a.hasClaudeWorkflow) ?? false;
|
|
52895
|
+
const handleAssignToClaude = useCallback(() => {
|
|
52896
|
+
if (!events2 || !selectedTask) return;
|
|
52897
|
+
setClaudeAssignment({ status: "loading" });
|
|
52898
|
+
events2.emit({
|
|
52899
|
+
type: "task:assign-to-claude",
|
|
52900
|
+
source: "task-detail-panel",
|
|
52901
|
+
timestamp: Date.now(),
|
|
52902
|
+
payload: {
|
|
52903
|
+
taskId: selectedTask.id,
|
|
52904
|
+
task: {
|
|
52905
|
+
id: selectedTask.id,
|
|
52906
|
+
title: selectedTask.title,
|
|
52907
|
+
description: selectedTask.description,
|
|
52908
|
+
priority: selectedTask.priority,
|
|
52909
|
+
labels: selectedTask.labels,
|
|
52910
|
+
assignee: selectedTask.assignee,
|
|
52911
|
+
acceptanceCriteria: selectedTask.acceptanceCriteriaItems,
|
|
52912
|
+
implementationPlan: selectedTask.implementationPlan,
|
|
52913
|
+
rawContent: selectedTask.rawContent,
|
|
52914
|
+
filePath: selectedTask.filePath,
|
|
52915
|
+
status: selectedTask.status,
|
|
52916
|
+
references: selectedTask.references
|
|
52917
|
+
}
|
|
52918
|
+
}
|
|
52919
|
+
});
|
|
52920
|
+
}, [events2, selectedTask]);
|
|
52877
52921
|
useEffect(() => {
|
|
52878
52922
|
if (!events2) return;
|
|
52879
52923
|
const handleTaskSelected = (event) => {
|
|
52880
52924
|
setSelectedTask(event.payload.task);
|
|
52925
|
+
setClaudeAssignment({ status: "idle" });
|
|
52881
52926
|
};
|
|
52882
52927
|
const unsubscribe = events2.on("task:selected", handleTaskSelected);
|
|
52883
52928
|
return () => {
|
|
@@ -52886,6 +52931,35 @@ const TaskDetailPanel = ({ context, actions, events: events2, config }) => {
|
|
|
52886
52931
|
}
|
|
52887
52932
|
};
|
|
52888
52933
|
}, [events2]);
|
|
52934
|
+
useEffect(() => {
|
|
52935
|
+
if (!events2) return;
|
|
52936
|
+
const unsubscribers = [
|
|
52937
|
+
events2.on("task:assigned-to-claude", (event) => {
|
|
52938
|
+
const payload = event.payload;
|
|
52939
|
+
if (payload.taskId === (selectedTask == null ? void 0 : selectedTask.id)) {
|
|
52940
|
+
setClaudeAssignment({
|
|
52941
|
+
status: "success",
|
|
52942
|
+
issueNumber: payload.issueNumber,
|
|
52943
|
+
issueUrl: payload.issueUrl
|
|
52944
|
+
});
|
|
52945
|
+
}
|
|
52946
|
+
}),
|
|
52947
|
+
events2.on("task:assign-to-claude:error", (event) => {
|
|
52948
|
+
const payload = event.payload;
|
|
52949
|
+
if (payload.taskId === (selectedTask == null ? void 0 : selectedTask.id)) {
|
|
52950
|
+
setClaudeAssignment({
|
|
52951
|
+
status: "error",
|
|
52952
|
+
error: payload.error
|
|
52953
|
+
});
|
|
52954
|
+
}
|
|
52955
|
+
})
|
|
52956
|
+
];
|
|
52957
|
+
return () => {
|
|
52958
|
+
unsubscribers.forEach((unsub) => {
|
|
52959
|
+
if (typeof unsub === "function") unsub();
|
|
52960
|
+
});
|
|
52961
|
+
};
|
|
52962
|
+
}, [events2, selectedTask == null ? void 0 : selectedTask.id]);
|
|
52889
52963
|
const handleBack = () => {
|
|
52890
52964
|
setSelectedTask(null);
|
|
52891
52965
|
if (events2) {
|
|
@@ -52988,40 +53062,202 @@ const TaskDetailPanel = ({ context, actions, events: events2, config }) => {
|
|
|
52988
53062
|
children: selectedTask.id
|
|
52989
53063
|
}
|
|
52990
53064
|
),
|
|
53065
|
+
selectedTask.priority && /* @__PURE__ */ jsx("span", { style: getPriorityStyles(theme2, selectedTask.priority), children: selectedTask.priority }),
|
|
52991
53066
|
/* @__PURE__ */ jsx(StatusBadge, { status: selectedTask.status })
|
|
52992
53067
|
] }),
|
|
52993
|
-
/* @__PURE__ */
|
|
52994
|
-
"
|
|
52995
|
-
|
|
52996
|
-
|
|
52997
|
-
|
|
52998
|
-
|
|
52999
|
-
|
|
53000
|
-
|
|
53001
|
-
|
|
53002
|
-
|
|
53003
|
-
|
|
53004
|
-
|
|
53005
|
-
|
|
53006
|
-
|
|
53007
|
-
|
|
53008
|
-
|
|
53009
|
-
|
|
53010
|
-
|
|
53011
|
-
|
|
53012
|
-
e
|
|
53013
|
-
|
|
53014
|
-
|
|
53015
|
-
|
|
53016
|
-
e
|
|
53017
|
-
|
|
53018
|
-
|
|
53019
|
-
|
|
53020
|
-
|
|
53021
|
-
|
|
53068
|
+
/* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
|
|
53069
|
+
hasClaudeWorkflow && claudeAssignment.status === "idle" && !getGitHubIssueFromRefs(selectedTask.references) && /* @__PURE__ */ jsxs(
|
|
53070
|
+
"button",
|
|
53071
|
+
{
|
|
53072
|
+
onClick: handleAssignToClaude,
|
|
53073
|
+
style: {
|
|
53074
|
+
display: "flex",
|
|
53075
|
+
alignItems: "center",
|
|
53076
|
+
gap: "6px",
|
|
53077
|
+
padding: "6px 12px",
|
|
53078
|
+
border: `1px solid ${theme2.colors.primary}`,
|
|
53079
|
+
borderRadius: theme2.radii[1],
|
|
53080
|
+
background: "transparent",
|
|
53081
|
+
cursor: "pointer",
|
|
53082
|
+
color: theme2.colors.primary,
|
|
53083
|
+
fontSize: theme2.fontSizes[1],
|
|
53084
|
+
fontWeight: theme2.fontWeights.medium,
|
|
53085
|
+
transition: "all 0.2s ease"
|
|
53086
|
+
},
|
|
53087
|
+
onMouseEnter: (e) => {
|
|
53088
|
+
e.currentTarget.style.background = theme2.colors.primary;
|
|
53089
|
+
e.currentTarget.style.color = theme2.colors.background;
|
|
53090
|
+
},
|
|
53091
|
+
onMouseLeave: (e) => {
|
|
53092
|
+
e.currentTarget.style.background = "transparent";
|
|
53093
|
+
e.currentTarget.style.color = theme2.colors.primary;
|
|
53094
|
+
},
|
|
53095
|
+
title: "Assign to Claude",
|
|
53096
|
+
children: [
|
|
53097
|
+
/* @__PURE__ */ jsx(Bot, { size: 14 }),
|
|
53098
|
+
"Assign to Claude"
|
|
53099
|
+
]
|
|
53100
|
+
}
|
|
53101
|
+
),
|
|
53102
|
+
(() => {
|
|
53103
|
+
const existingIssue = getGitHubIssueFromRefs(selectedTask.references);
|
|
53104
|
+
if (!existingIssue || claudeAssignment.status !== "idle") return null;
|
|
53105
|
+
return /* @__PURE__ */ jsxs(
|
|
53106
|
+
"a",
|
|
53107
|
+
{
|
|
53108
|
+
href: existingIssue.url,
|
|
53109
|
+
target: "_blank",
|
|
53110
|
+
rel: "noopener noreferrer",
|
|
53111
|
+
style: {
|
|
53112
|
+
display: "flex",
|
|
53113
|
+
alignItems: "center",
|
|
53114
|
+
gap: "6px",
|
|
53115
|
+
padding: "6px 12px",
|
|
53116
|
+
border: `1px solid ${theme2.colors.primary}`,
|
|
53117
|
+
borderRadius: theme2.radii[1],
|
|
53118
|
+
background: "transparent",
|
|
53119
|
+
color: theme2.colors.primary,
|
|
53120
|
+
fontSize: theme2.fontSizes[1],
|
|
53121
|
+
fontWeight: theme2.fontWeights.medium,
|
|
53122
|
+
textDecoration: "none",
|
|
53123
|
+
transition: "all 0.2s ease"
|
|
53124
|
+
},
|
|
53125
|
+
onMouseEnter: (e) => {
|
|
53126
|
+
e.currentTarget.style.background = theme2.colors.primary;
|
|
53127
|
+
e.currentTarget.style.color = theme2.colors.background;
|
|
53128
|
+
},
|
|
53129
|
+
onMouseLeave: (e) => {
|
|
53130
|
+
e.currentTarget.style.background = "transparent";
|
|
53131
|
+
e.currentTarget.style.color = theme2.colors.primary;
|
|
53132
|
+
},
|
|
53133
|
+
title: `View issue #${existingIssue.number} on GitHub`,
|
|
53134
|
+
children: [
|
|
53135
|
+
/* @__PURE__ */ jsx(Bot, { size: 14 }),
|
|
53136
|
+
"View Progress",
|
|
53137
|
+
/* @__PURE__ */ jsx(ExternalLink, { size: 12 })
|
|
53138
|
+
]
|
|
53139
|
+
}
|
|
53140
|
+
);
|
|
53141
|
+
})(),
|
|
53142
|
+
claudeAssignment.status === "loading" && /* @__PURE__ */ jsxs(
|
|
53143
|
+
"div",
|
|
53144
|
+
{
|
|
53145
|
+
style: {
|
|
53146
|
+
display: "flex",
|
|
53147
|
+
alignItems: "center",
|
|
53148
|
+
gap: "6px",
|
|
53149
|
+
padding: "6px 12px",
|
|
53150
|
+
color: theme2.colors.textSecondary,
|
|
53151
|
+
fontSize: theme2.fontSizes[1]
|
|
53152
|
+
},
|
|
53153
|
+
children: [
|
|
53154
|
+
/* @__PURE__ */ jsx(LoaderCircle, { size: 14, style: { animation: "spin 1s linear infinite" } }),
|
|
53155
|
+
"Assigning..."
|
|
53156
|
+
]
|
|
53157
|
+
}
|
|
53158
|
+
),
|
|
53159
|
+
claudeAssignment.status === "success" && /* @__PURE__ */ jsxs(
|
|
53160
|
+
"a",
|
|
53161
|
+
{
|
|
53162
|
+
href: claudeAssignment.issueUrl,
|
|
53163
|
+
target: "_blank",
|
|
53164
|
+
rel: "noopener noreferrer",
|
|
53165
|
+
style: {
|
|
53166
|
+
display: "flex",
|
|
53167
|
+
alignItems: "center",
|
|
53168
|
+
gap: "6px",
|
|
53169
|
+
padding: "6px 12px",
|
|
53170
|
+
border: `1px solid ${theme2.colors.success}`,
|
|
53171
|
+
borderRadius: theme2.radii[1],
|
|
53172
|
+
background: `${theme2.colors.success}15`,
|
|
53173
|
+
color: theme2.colors.success,
|
|
53174
|
+
fontSize: theme2.fontSizes[1],
|
|
53175
|
+
fontWeight: theme2.fontWeights.medium,
|
|
53176
|
+
textDecoration: "none",
|
|
53177
|
+
transition: "all 0.2s ease"
|
|
53178
|
+
},
|
|
53179
|
+
children: [
|
|
53180
|
+
/* @__PURE__ */ jsx(CircleCheckBig, { size: 14 }),
|
|
53181
|
+
"Issue #",
|
|
53182
|
+
claudeAssignment.issueNumber
|
|
53183
|
+
]
|
|
53184
|
+
}
|
|
53185
|
+
),
|
|
53186
|
+
claudeAssignment.status === "error" && /* @__PURE__ */ jsxs(
|
|
53187
|
+
"div",
|
|
53188
|
+
{
|
|
53189
|
+
style: {
|
|
53190
|
+
display: "flex",
|
|
53191
|
+
alignItems: "center",
|
|
53192
|
+
gap: "6px",
|
|
53193
|
+
padding: "6px 12px",
|
|
53194
|
+
border: `1px solid ${theme2.colors.error}`,
|
|
53195
|
+
borderRadius: theme2.radii[1],
|
|
53196
|
+
background: `${theme2.colors.error}15`,
|
|
53197
|
+
color: theme2.colors.error,
|
|
53198
|
+
fontSize: theme2.fontSizes[1]
|
|
53199
|
+
},
|
|
53200
|
+
title: claudeAssignment.error,
|
|
53201
|
+
children: [
|
|
53202
|
+
/* @__PURE__ */ jsx(CircleAlert, { size: 14 }),
|
|
53203
|
+
"Failed",
|
|
53204
|
+
/* @__PURE__ */ jsx(
|
|
53205
|
+
"button",
|
|
53206
|
+
{
|
|
53207
|
+
onClick: () => setClaudeAssignment({ status: "idle" }),
|
|
53208
|
+
style: {
|
|
53209
|
+
background: "none",
|
|
53210
|
+
border: "none",
|
|
53211
|
+
color: theme2.colors.error,
|
|
53212
|
+
cursor: "pointer",
|
|
53213
|
+
padding: "0 0 0 4px",
|
|
53214
|
+
fontSize: theme2.fontSizes[0],
|
|
53215
|
+
textDecoration: "underline"
|
|
53216
|
+
},
|
|
53217
|
+
children: "Retry"
|
|
53218
|
+
}
|
|
53219
|
+
)
|
|
53220
|
+
]
|
|
53221
|
+
}
|
|
53222
|
+
),
|
|
53223
|
+
/* @__PURE__ */ jsx(
|
|
53224
|
+
"button",
|
|
53225
|
+
{
|
|
53226
|
+
onClick: handleBack,
|
|
53227
|
+
style: {
|
|
53228
|
+
display: "flex",
|
|
53229
|
+
alignItems: "center",
|
|
53230
|
+
justifyContent: "center",
|
|
53231
|
+
width: "32px",
|
|
53232
|
+
height: "32px",
|
|
53233
|
+
border: `1px solid ${theme2.colors.border}`,
|
|
53234
|
+
borderRadius: theme2.radii[1],
|
|
53235
|
+
background: theme2.colors.surface,
|
|
53236
|
+
cursor: "pointer",
|
|
53237
|
+
color: theme2.colors.textSecondary,
|
|
53238
|
+
transition: "all 0.2s ease"
|
|
53239
|
+
},
|
|
53240
|
+
onMouseEnter: (e) => {
|
|
53241
|
+
e.currentTarget.style.background = theme2.colors.backgroundSecondary;
|
|
53242
|
+
e.currentTarget.style.color = theme2.colors.text;
|
|
53243
|
+
},
|
|
53244
|
+
onMouseLeave: (e) => {
|
|
53245
|
+
e.currentTarget.style.background = theme2.colors.surface;
|
|
53246
|
+
e.currentTarget.style.color = theme2.colors.textSecondary;
|
|
53247
|
+
},
|
|
53248
|
+
title: "Close",
|
|
53249
|
+
children: /* @__PURE__ */ jsx(X, { size: 16 })
|
|
53250
|
+
}
|
|
53251
|
+
)
|
|
53252
|
+
] })
|
|
53022
53253
|
]
|
|
53023
53254
|
}
|
|
53024
53255
|
),
|
|
53256
|
+
/* @__PURE__ */ jsx("style", { children: `
|
|
53257
|
+
@keyframes spin {
|
|
53258
|
+
to { transform: rotate(360deg); }
|
|
53259
|
+
}
|
|
53260
|
+
` }),
|
|
53025
53261
|
/* @__PURE__ */ jsx(
|
|
53026
53262
|
"h1",
|
|
53027
53263
|
{
|
|
@@ -53034,80 +53270,6 @@ const TaskDetailPanel = ({ context, actions, events: events2, config }) => {
|
|
|
53034
53270
|
},
|
|
53035
53271
|
children: selectedTask.title
|
|
53036
53272
|
}
|
|
53037
|
-
),
|
|
53038
|
-
/* @__PURE__ */ jsxs(
|
|
53039
|
-
"div",
|
|
53040
|
-
{
|
|
53041
|
-
style: {
|
|
53042
|
-
display: "grid",
|
|
53043
|
-
gridTemplateColumns: "repeat(auto-fit, minmax(200px, 1fr))",
|
|
53044
|
-
gap: "12px"
|
|
53045
|
-
},
|
|
53046
|
-
children: [
|
|
53047
|
-
selectedTask.priority && /* @__PURE__ */ jsx(
|
|
53048
|
-
MetadataRow,
|
|
53049
|
-
{
|
|
53050
|
-
icon: /* @__PURE__ */ jsx(Flag, { size: 14 }),
|
|
53051
|
-
label: "Priority",
|
|
53052
|
-
value: /* @__PURE__ */ jsx("span", { style: getPriorityStyles(theme2, selectedTask.priority), children: selectedTask.priority })
|
|
53053
|
-
}
|
|
53054
|
-
),
|
|
53055
|
-
selectedTask.assignee && selectedTask.assignee.length > 0 && /* @__PURE__ */ jsx(
|
|
53056
|
-
MetadataRow,
|
|
53057
|
-
{
|
|
53058
|
-
icon: /* @__PURE__ */ jsx(User, { size: 14 }),
|
|
53059
|
-
label: "Assignee",
|
|
53060
|
-
value: selectedTask.assignee.join(", ")
|
|
53061
|
-
}
|
|
53062
|
-
),
|
|
53063
|
-
selectedTask.createdDate && /* @__PURE__ */ jsx(
|
|
53064
|
-
MetadataRow,
|
|
53065
|
-
{
|
|
53066
|
-
icon: /* @__PURE__ */ jsx(Calendar, { size: 14 }),
|
|
53067
|
-
label: "Created",
|
|
53068
|
-
value: selectedTask.createdDate
|
|
53069
|
-
}
|
|
53070
|
-
),
|
|
53071
|
-
selectedTask.branch && /* @__PURE__ */ jsx(
|
|
53072
|
-
MetadataRow,
|
|
53073
|
-
{
|
|
53074
|
-
icon: /* @__PURE__ */ jsx(GitBranch, { size: 14 }),
|
|
53075
|
-
label: "Branch",
|
|
53076
|
-
value: selectedTask.branch
|
|
53077
|
-
}
|
|
53078
|
-
)
|
|
53079
|
-
]
|
|
53080
|
-
}
|
|
53081
|
-
),
|
|
53082
|
-
selectedTask.labels && selectedTask.labels.length > 0 && /* @__PURE__ */ jsxs(
|
|
53083
|
-
"div",
|
|
53084
|
-
{
|
|
53085
|
-
style: {
|
|
53086
|
-
display: "flex",
|
|
53087
|
-
alignItems: "center",
|
|
53088
|
-
gap: "8px",
|
|
53089
|
-
marginTop: "12px",
|
|
53090
|
-
flexWrap: "wrap"
|
|
53091
|
-
},
|
|
53092
|
-
children: [
|
|
53093
|
-
/* @__PURE__ */ jsx(Tag, { size: 14, color: theme2.colors.textMuted }),
|
|
53094
|
-
selectedTask.labels.map((label) => /* @__PURE__ */ jsx(
|
|
53095
|
-
"span",
|
|
53096
|
-
{
|
|
53097
|
-
style: {
|
|
53098
|
-
padding: "2px 8px",
|
|
53099
|
-
borderRadius: theme2.radii[1],
|
|
53100
|
-
fontSize: theme2.fontSizes[0],
|
|
53101
|
-
fontWeight: theme2.fontWeights.medium,
|
|
53102
|
-
background: `${theme2.colors.primary}15`,
|
|
53103
|
-
color: theme2.colors.primary
|
|
53104
|
-
},
|
|
53105
|
-
children: label
|
|
53106
|
-
},
|
|
53107
|
-
label
|
|
53108
|
-
))
|
|
53109
|
-
]
|
|
53110
|
-
}
|
|
53111
53273
|
)
|
|
53112
53274
|
]
|
|
53113
53275
|
}
|