@industry-theme/backlogmd-kanban-panel 1.0.32 → 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.
@@ -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$o = [
3743
+ const __iconNode$j = [
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,88 +3748,75 @@ const __iconNode$o = [
3748
3748
  ["path", { d: "M15 13v2", key: "1xurst" }],
3749
3749
  ["path", { d: "M9 13v2", key: "rq6x2g" }]
3750
3750
  ];
3751
- const Bot = createLucideIcon("bot", __iconNode$o);
3751
+ const Bot = createLucideIcon("bot", __iconNode$j);
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$n = [
3759
- ["path", { d: "M8 2v4", key: "1cmpym" }],
3760
- ["path", { d: "M16 2v4", key: "4m81vk" }],
3761
- ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
3762
- ["path", { d: "M3 10h18", key: "8toen8" }]
3763
- ];
3764
- const Calendar = createLucideIcon("calendar", __iconNode$n);
3758
+ const __iconNode$i = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
3759
+ const Check = createLucideIcon("check", __iconNode$i);
3765
3760
  /**
3766
3761
  * @license lucide-react v0.552.0 - ISC
3767
3762
  *
3768
3763
  * This source code is licensed under the ISC license.
3769
3764
  * See the LICENSE file in the root directory of this source tree.
3770
3765
  */
3771
- const __iconNode$m = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
3772
- const Check = createLucideIcon("check", __iconNode$m);
3766
+ const __iconNode$h = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
3767
+ const ChevronDown = createLucideIcon("chevron-down", __iconNode$h);
3773
3768
  /**
3774
3769
  * @license lucide-react v0.552.0 - ISC
3775
3770
  *
3776
3771
  * This source code is licensed under the ISC license.
3777
3772
  * See the LICENSE file in the root directory of this source tree.
3778
3773
  */
3779
- const __iconNode$l = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
3780
- const ChevronDown = createLucideIcon("chevron-down", __iconNode$l);
3781
- /**
3782
- * @license lucide-react v0.552.0 - ISC
3783
- *
3784
- * This source code is licensed under the ISC license.
3785
- * See the LICENSE file in the root directory of this source tree.
3786
- */
3787
- const __iconNode$k = [
3774
+ const __iconNode$g = [
3788
3775
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
3789
3776
  ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
3790
3777
  ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
3791
3778
  ];
3792
- const CircleAlert = createLucideIcon("circle-alert", __iconNode$k);
3779
+ const CircleAlert = createLucideIcon("circle-alert", __iconNode$g);
3793
3780
  /**
3794
3781
  * @license lucide-react v0.552.0 - ISC
3795
3782
  *
3796
3783
  * This source code is licensed under the ISC license.
3797
3784
  * See the LICENSE file in the root directory of this source tree.
3798
3785
  */
3799
- const __iconNode$j = [
3786
+ const __iconNode$f = [
3800
3787
  ["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
3801
3788
  ["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
3802
3789
  ];
3803
- const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$j);
3790
+ const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$f);
3804
3791
  /**
3805
3792
  * @license lucide-react v0.552.0 - ISC
3806
3793
  *
3807
3794
  * This source code is licensed under the ISC license.
3808
3795
  * See the LICENSE file in the root directory of this source tree.
3809
3796
  */
3810
- const __iconNode$i = [
3797
+ const __iconNode$e = [
3811
3798
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
3812
3799
  ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
3813
3800
  ];
3814
- const CircleCheck = createLucideIcon("circle-check", __iconNode$i);
3801
+ const CircleCheck = createLucideIcon("circle-check", __iconNode$e);
3815
3802
  /**
3816
3803
  * @license lucide-react v0.552.0 - ISC
3817
3804
  *
3818
3805
  * This source code is licensed under the ISC license.
3819
3806
  * See the LICENSE file in the root directory of this source tree.
3820
3807
  */
3821
- const __iconNode$h = [
3808
+ const __iconNode$d = [
3822
3809
  ["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
3823
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" }]
3824
3811
  ];
3825
- const Copy = createLucideIcon("copy", __iconNode$h);
3812
+ const Copy = createLucideIcon("copy", __iconNode$d);
3826
3813
  /**
3827
3814
  * @license lucide-react v0.552.0 - ISC
3828
3815
  *
3829
3816
  * This source code is licensed under the ISC license.
3830
3817
  * See the LICENSE file in the root directory of this source tree.
3831
3818
  */
3832
- const __iconNode$g = [
3819
+ const __iconNode$c = [
3833
3820
  ["path", { d: "m15 15 6 6", key: "1s409w" }],
3834
3821
  ["path", { d: "m15 9 6-6", key: "ko1vev" }],
3835
3822
  ["path", { d: "M21 16v5h-5", key: "1ck2sf" }],
@@ -3839,26 +3826,26 @@ const __iconNode$g = [
3839
3826
  ["path", { d: "M3 8V3h5", key: "1ln10m" }],
3840
3827
  ["path", { d: "M9 9 3 3", key: "v551iv" }]
3841
3828
  ];
3842
- const Expand = createLucideIcon("expand", __iconNode$g);
3829
+ const Expand = createLucideIcon("expand", __iconNode$c);
3843
3830
  /**
3844
3831
  * @license lucide-react v0.552.0 - ISC
3845
3832
  *
3846
3833
  * This source code is licensed under the ISC license.
3847
3834
  * See the LICENSE file in the root directory of this source tree.
3848
3835
  */
3849
- const __iconNode$f = [
3836
+ const __iconNode$b = [
3850
3837
  ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
3851
3838
  ["path", { d: "M10 14 21 3", key: "gplh6r" }],
3852
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" }]
3853
3840
  ];
3854
- const ExternalLink = createLucideIcon("external-link", __iconNode$f);
3841
+ const ExternalLink = createLucideIcon("external-link", __iconNode$b);
3855
3842
  /**
3856
3843
  * @license lucide-react v0.552.0 - ISC
3857
3844
  *
3858
3845
  * This source code is licensed under the ISC license.
3859
3846
  * See the LICENSE file in the root directory of this source tree.
3860
3847
  */
3861
- const __iconNode$e = [
3848
+ const __iconNode$a = [
3862
3849
  [
3863
3850
  "path",
3864
3851
  {
@@ -3871,30 +3858,14 @@ const __iconNode$e = [
3871
3858
  ["path", { d: "M16 13H8", key: "t4e002" }],
3872
3859
  ["path", { d: "M16 17H8", key: "z1uh3a" }]
3873
3860
  ];
3874
- const FileText = createLucideIcon("file-text", __iconNode$e);
3861
+ const FileText = createLucideIcon("file-text", __iconNode$a);
3875
3862
  /**
3876
3863
  * @license lucide-react v0.552.0 - ISC
3877
3864
  *
3878
3865
  * This source code is licensed under the ISC license.
3879
3866
  * See the LICENSE file in the root directory of this source tree.
3880
3867
  */
3881
- const __iconNode$d = [
3882
- [
3883
- "path",
3884
- {
3885
- 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",
3886
- key: "1jaruq"
3887
- }
3888
- ]
3889
- ];
3890
- const Flag = createLucideIcon("flag", __iconNode$d);
3891
- /**
3892
- * @license lucide-react v0.552.0 - ISC
3893
- *
3894
- * This source code is licensed under the ISC license.
3895
- * See the LICENSE file in the root directory of this source tree.
3896
- */
3897
- const __iconNode$c = [
3868
+ const __iconNode$9 = [
3898
3869
  ["path", { d: "M12 10v6", key: "1bos4e" }],
3899
3870
  ["path", { d: "M9 13h6", key: "1uhe8q" }],
3900
3871
  [
@@ -3905,35 +3876,22 @@ const __iconNode$c = [
3905
3876
  }
3906
3877
  ]
3907
3878
  ];
3908
- const FolderPlus = createLucideIcon("folder-plus", __iconNode$c);
3879
+ const FolderPlus = createLucideIcon("folder-plus", __iconNode$9);
3909
3880
  /**
3910
3881
  * @license lucide-react v0.552.0 - ISC
3911
3882
  *
3912
3883
  * This source code is licensed under the ISC license.
3913
3884
  * See the LICENSE file in the root directory of this source tree.
3914
3885
  */
3915
- const __iconNode$b = [
3916
- ["line", { x1: "6", x2: "6", y1: "3", y2: "15", key: "17qcm7" }],
3917
- ["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
3918
- ["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
3919
- ["path", { d: "M18 9a9 9 0 0 1-9 9", key: "n2h4wq" }]
3920
- ];
3921
- const GitBranch = createLucideIcon("git-branch", __iconNode$b);
3922
- /**
3923
- * @license lucide-react v0.552.0 - ISC
3924
- *
3925
- * This source code is licensed under the ISC license.
3926
- * See the LICENSE file in the root directory of this source tree.
3927
- */
3928
- const __iconNode$a = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
3929
- const LoaderCircle = createLucideIcon("loader-circle", __iconNode$a);
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);
3930
3888
  /**
3931
3889
  * @license lucide-react v0.552.0 - ISC
3932
3890
  *
3933
3891
  * This source code is licensed under the ISC license.
3934
3892
  * See the LICENSE file in the root directory of this source tree.
3935
3893
  */
3936
- const __iconNode$9 = [
3894
+ const __iconNode$7 = [
3937
3895
  ["path", { d: "M12 13v8", key: "1l5pq0" }],
3938
3896
  ["path", { d: "M12 3v3", key: "1n5kay" }],
3939
3897
  [
@@ -3944,37 +3902,37 @@ const __iconNode$9 = [
3944
3902
  }
3945
3903
  ]
3946
3904
  ];
3947
- const Milestone = createLucideIcon("milestone", __iconNode$9);
3905
+ const Milestone = createLucideIcon("milestone", __iconNode$7);
3948
3906
  /**
3949
3907
  * @license lucide-react v0.552.0 - ISC
3950
3908
  *
3951
3909
  * This source code is licensed under the ISC license.
3952
3910
  * See the LICENSE file in the root directory of this source tree.
3953
3911
  */
3954
- const __iconNode$8 = [
3912
+ const __iconNode$6 = [
3955
3913
  ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
3956
3914
  ["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
3957
3915
  ["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
3958
3916
  ];
3959
- const Monitor = createLucideIcon("monitor", __iconNode$8);
3917
+ const Monitor = createLucideIcon("monitor", __iconNode$6);
3960
3918
  /**
3961
3919
  * @license lucide-react v0.552.0 - ISC
3962
3920
  *
3963
3921
  * This source code is licensed under the ISC license.
3964
3922
  * See the LICENSE file in the root directory of this source tree.
3965
3923
  */
3966
- const __iconNode$7 = [
3924
+ const __iconNode$5 = [
3967
3925
  ["path", { d: "M18 8L22 12L18 16", key: "1r0oui" }],
3968
3926
  ["path", { d: "M2 12H22", key: "1m8cig" }]
3969
3927
  ];
3970
- const MoveRight = createLucideIcon("move-right", __iconNode$7);
3928
+ const MoveRight = createLucideIcon("move-right", __iconNode$5);
3971
3929
  /**
3972
3930
  * @license lucide-react v0.552.0 - ISC
3973
3931
  *
3974
3932
  * This source code is licensed under the ISC license.
3975
3933
  * See the LICENSE file in the root directory of this source tree.
3976
3934
  */
3977
- const __iconNode$6 = [
3935
+ const __iconNode$4 = [
3978
3936
  [
3979
3937
  "path",
3980
3938
  {
@@ -3983,70 +3941,42 @@ const __iconNode$6 = [
3983
3941
  }
3984
3942
  ]
3985
3943
  ];
3986
- const Play = createLucideIcon("play", __iconNode$6);
3944
+ const Play = createLucideIcon("play", __iconNode$4);
3987
3945
  /**
3988
3946
  * @license lucide-react v0.552.0 - ISC
3989
3947
  *
3990
3948
  * This source code is licensed under the ISC license.
3991
3949
  * See the LICENSE file in the root directory of this source tree.
3992
3950
  */
3993
- const __iconNode$5 = [
3951
+ const __iconNode$3 = [
3994
3952
  ["path", { d: "M5 12h14", key: "1ays0h" }],
3995
3953
  ["path", { d: "M12 5v14", key: "s699le" }]
3996
3954
  ];
3997
- const Plus = createLucideIcon("plus", __iconNode$5);
3955
+ const Plus = createLucideIcon("plus", __iconNode$3);
3998
3956
  /**
3999
3957
  * @license lucide-react v0.552.0 - ISC
4000
3958
  *
4001
3959
  * This source code is licensed under the ISC license.
4002
3960
  * See the LICENSE file in the root directory of this source tree.
4003
3961
  */
4004
- const __iconNode$4 = [
3962
+ const __iconNode$2 = [
4005
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" }],
4006
3964
  ["path", { d: "M21 3v5h-5", key: "1q7to0" }],
4007
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" }],
4008
3966
  ["path", { d: "M8 16H3v5", key: "1cv678" }]
4009
3967
  ];
4010
- const RefreshCw = createLucideIcon("refresh-cw", __iconNode$4);
3968
+ const RefreshCw = createLucideIcon("refresh-cw", __iconNode$2);
4011
3969
  /**
4012
3970
  * @license lucide-react v0.552.0 - ISC
4013
3971
  *
4014
3972
  * This source code is licensed under the ISC license.
4015
3973
  * See the LICENSE file in the root directory of this source tree.
4016
3974
  */
4017
- const __iconNode$3 = [
3975
+ const __iconNode$1 = [
4018
3976
  ["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
4019
3977
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
4020
3978
  ];
4021
- const Search = createLucideIcon("search", __iconNode$3);
4022
- /**
4023
- * @license lucide-react v0.552.0 - ISC
4024
- *
4025
- * This source code is licensed under the ISC license.
4026
- * See the LICENSE file in the root directory of this source tree.
4027
- */
4028
- const __iconNode$2 = [
4029
- [
4030
- "path",
4031
- {
4032
- 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",
4033
- key: "vktsd0"
4034
- }
4035
- ],
4036
- ["circle", { cx: "7.5", cy: "7.5", r: ".5", fill: "currentColor", key: "kqv944" }]
4037
- ];
4038
- const Tag = createLucideIcon("tag", __iconNode$2);
4039
- /**
4040
- * @license lucide-react v0.552.0 - ISC
4041
- *
4042
- * This source code is licensed under the ISC license.
4043
- * See the LICENSE file in the root directory of this source tree.
4044
- */
4045
- const __iconNode$1 = [
4046
- ["path", { d: "M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2", key: "975kel" }],
4047
- ["circle", { cx: "12", cy: "7", r: "4", key: "17ys0d" }]
4048
- ];
4049
- const User = createLucideIcon("user", __iconNode$1);
3979
+ const Search = createLucideIcon("search", __iconNode$1);
4050
3980
  /**
4051
3981
  * @license lucide-react v0.552.0 - ISC
4052
3982
  *
@@ -5909,7 +5839,8 @@ function useKanbanData(options) {
5909
5839
  const {
5910
5840
  context,
5911
5841
  actions,
5912
- tasksLimit = DEFAULT_TASKS_LIMIT
5842
+ tasksLimit = DEFAULT_TASKS_LIMIT,
5843
+ events: events2
5913
5844
  } = options || {};
5914
5845
  const [tasks, setTasks] = useState([]);
5915
5846
  const [isLoading, setIsLoading] = useState(true);
@@ -6054,6 +5985,19 @@ function useKanbanData(options) {
6054
5985
  useEffect(() => {
6055
5986
  loadBacklogData();
6056
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]);
6057
6001
  const loadMoreTasks = useCallback(async () => {
6058
6002
  const core2 = coreRef.current;
6059
6003
  if (!core2) {
@@ -6177,6 +6121,16 @@ function useKanbanData(options) {
6177
6121
  core: coreRef.current
6178
6122
  };
6179
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
+ }
6180
6134
  const TaskCard = ({
6181
6135
  task,
6182
6136
  onClick,
@@ -6327,15 +6281,44 @@ const TaskCard = ({
6327
6281
  color: theme2.colors.textMuted
6328
6282
  },
6329
6283
  children: [
6330
- /* @__PURE__ */ jsx(
6331
- "span",
6332
- {
6333
- style: {
6334
- fontFamily: theme2.fonts.monospace
6335
- },
6336
- children: task.id
6337
- }
6338
- ),
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
+ ] }),
6339
6322
  task.assignee && task.assignee.length > 0 && /* @__PURE__ */ jsxs(
6340
6323
  "span",
6341
6324
  {
@@ -7889,6 +7872,7 @@ const KanbanPanel = ({
7889
7872
  } = useKanbanData({
7890
7873
  context,
7891
7874
  actions,
7875
+ events: events2,
7892
7876
  tasksLimit: 20
7893
7877
  });
7894
7878
  const {
@@ -52812,6 +52796,16 @@ var DocumentView = ({
52812
52796
  editable
52813
52797
  })));
52814
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
+ }
52815
52809
  function getTaskBodyMarkdown(task, options = {}) {
52816
52810
  const { includeTitle = false } = options;
52817
52811
  if (task.rawContent) {
@@ -52890,28 +52884,6 @@ const StatusBadge = ({ status }) => {
52890
52884
  }
52891
52885
  );
52892
52886
  };
52893
- const MetadataRow = ({ icon, label, value }) => {
52894
- const { theme: theme2 } = useTheme();
52895
- return /* @__PURE__ */ jsxs(
52896
- "div",
52897
- {
52898
- style: {
52899
- display: "flex",
52900
- alignItems: "center",
52901
- gap: "8px",
52902
- fontSize: theme2.fontSizes[1]
52903
- },
52904
- children: [
52905
- /* @__PURE__ */ jsx("span", { style: { color: theme2.colors.textMuted, display: "flex", alignItems: "center" }, children: icon }),
52906
- /* @__PURE__ */ jsxs("span", { style: { color: theme2.colors.textSecondary }, children: [
52907
- label,
52908
- ":"
52909
- ] }),
52910
- /* @__PURE__ */ jsx("span", { style: { color: theme2.colors.text }, children: value })
52911
- ]
52912
- }
52913
- );
52914
- };
52915
52887
  const TaskDetailPanel = ({ context, actions, events: events2, config }) => {
52916
52888
  var _a;
52917
52889
  const { theme: theme2 } = useTheme();
@@ -52938,7 +52910,10 @@ const TaskDetailPanel = ({ context, actions, events: events2, config }) => {
52938
52910
  assignee: selectedTask.assignee,
52939
52911
  acceptanceCriteria: selectedTask.acceptanceCriteriaItems,
52940
52912
  implementationPlan: selectedTask.implementationPlan,
52941
- rawContent: selectedTask.rawContent
52913
+ rawContent: selectedTask.rawContent,
52914
+ filePath: selectedTask.filePath,
52915
+ status: selectedTask.status,
52916
+ references: selectedTask.references
52942
52917
  }
52943
52918
  }
52944
52919
  });
@@ -53087,10 +53062,11 @@ const TaskDetailPanel = ({ context, actions, events: events2, config }) => {
53087
53062
  children: selectedTask.id
53088
53063
  }
53089
53064
  ),
53065
+ selectedTask.priority && /* @__PURE__ */ jsx("span", { style: getPriorityStyles(theme2, selectedTask.priority), children: selectedTask.priority }),
53090
53066
  /* @__PURE__ */ jsx(StatusBadge, { status: selectedTask.status })
53091
53067
  ] }),
53092
53068
  /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
53093
- hasClaudeWorkflow && claudeAssignment.status === "idle" && /* @__PURE__ */ jsxs(
53069
+ hasClaudeWorkflow && claudeAssignment.status === "idle" && !getGitHubIssueFromRefs(selectedTask.references) && /* @__PURE__ */ jsxs(
53094
53070
  "button",
53095
53071
  {
53096
53072
  onClick: handleAssignToClaude,
@@ -53123,6 +53099,46 @@ const TaskDetailPanel = ({ context, actions, events: events2, config }) => {
53123
53099
  ]
53124
53100
  }
53125
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
+ })(),
53126
53142
  claudeAssignment.status === "loading" && /* @__PURE__ */ jsxs(
53127
53143
  "div",
53128
53144
  {
@@ -53254,80 +53270,6 @@ const TaskDetailPanel = ({ context, actions, events: events2, config }) => {
53254
53270
  },
53255
53271
  children: selectedTask.title
53256
53272
  }
53257
- ),
53258
- /* @__PURE__ */ jsxs(
53259
- "div",
53260
- {
53261
- style: {
53262
- display: "grid",
53263
- gridTemplateColumns: "repeat(auto-fit, minmax(200px, 1fr))",
53264
- gap: "12px"
53265
- },
53266
- children: [
53267
- selectedTask.priority && /* @__PURE__ */ jsx(
53268
- MetadataRow,
53269
- {
53270
- icon: /* @__PURE__ */ jsx(Flag, { size: 14 }),
53271
- label: "Priority",
53272
- value: /* @__PURE__ */ jsx("span", { style: getPriorityStyles(theme2, selectedTask.priority), children: selectedTask.priority })
53273
- }
53274
- ),
53275
- selectedTask.assignee && selectedTask.assignee.length > 0 && /* @__PURE__ */ jsx(
53276
- MetadataRow,
53277
- {
53278
- icon: /* @__PURE__ */ jsx(User, { size: 14 }),
53279
- label: "Assignee",
53280
- value: selectedTask.assignee.join(", ")
53281
- }
53282
- ),
53283
- selectedTask.createdDate && /* @__PURE__ */ jsx(
53284
- MetadataRow,
53285
- {
53286
- icon: /* @__PURE__ */ jsx(Calendar, { size: 14 }),
53287
- label: "Created",
53288
- value: selectedTask.createdDate
53289
- }
53290
- ),
53291
- selectedTask.branch && /* @__PURE__ */ jsx(
53292
- MetadataRow,
53293
- {
53294
- icon: /* @__PURE__ */ jsx(GitBranch, { size: 14 }),
53295
- label: "Branch",
53296
- value: selectedTask.branch
53297
- }
53298
- )
53299
- ]
53300
- }
53301
- ),
53302
- selectedTask.labels && selectedTask.labels.length > 0 && /* @__PURE__ */ jsxs(
53303
- "div",
53304
- {
53305
- style: {
53306
- display: "flex",
53307
- alignItems: "center",
53308
- gap: "8px",
53309
- marginTop: "12px",
53310
- flexWrap: "wrap"
53311
- },
53312
- children: [
53313
- /* @__PURE__ */ jsx(Tag, { size: 14, color: theme2.colors.textMuted }),
53314
- selectedTask.labels.map((label) => /* @__PURE__ */ jsx(
53315
- "span",
53316
- {
53317
- style: {
53318
- padding: "2px 8px",
53319
- borderRadius: theme2.radii[1],
53320
- fontSize: theme2.fontSizes[0],
53321
- fontWeight: theme2.fontWeights.medium,
53322
- background: `${theme2.colors.primary}15`,
53323
- color: theme2.colors.primary
53324
- },
53325
- children: label
53326
- },
53327
- label
53328
- ))
53329
- ]
53330
- }
53331
53273
  )
53332
53274
  ]
53333
53275
  }