@industry-theme/backlogmd-kanban-panel 1.0.22 → 1.0.23

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.
@@ -1 +1 @@
1
- {"version":3,"file":"KanbanPanel.d.ts","sourceRoot":"","sources":["../../src/panels/KanbanPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAc9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAYpD;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAserD,CAAC"}
1
+ {"version":3,"file":"KanbanPanel.d.ts","sourceRoot":"","sources":["../../src/panels/KanbanPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkE,MAAM,OAAO,CAAC;AAcvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAYpD;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAskBrD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TaskDetailPanel.d.ts","sourceRoot":"","sources":["../../src/panels/TaskDetailPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAE,mBAAmB,EAAqB,MAAM,UAAU,CAAC;AA+IvE;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAgRzD,CAAC"}
1
+ {"version":3,"file":"TaskDetailPanel.d.ts","sourceRoot":"","sources":["../../src/panels/TaskDetailPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAE,mBAAmB,EAAqB,MAAM,UAAU,CAAC;AA+IvE;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAkRzD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TaskCard.d.ts","sourceRoot":"","sources":["../../../../src/panels/kanban/components/TaskCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,UAAU,aAAa;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA6K5C,CAAC"}
1
+ {"version":3,"file":"TaskCard.d.ts","sourceRoot":"","sources":["../../../../src/panels/kanban/components/TaskCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,UAAU,aAAa;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAgL5C,CAAC"}
@@ -3741,88 +3741,77 @@ const createLucideIcon = (iconName, iconNode) => {
3741
3741
  * See the LICENSE file in the root directory of this source tree.
3742
3742
  */
3743
3743
  const __iconNode$o = [
3744
- ["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
3745
- ["path", { d: "M19 12H5", key: "x3x0zl" }]
3746
- ];
3747
- const ArrowLeft = createLucideIcon("arrow-left", __iconNode$o);
3748
- /**
3749
- * @license lucide-react v0.552.0 - ISC
3750
- *
3751
- * This source code is licensed under the ISC license.
3752
- * See the LICENSE file in the root directory of this source tree.
3753
- */
3754
- const __iconNode$n = [
3755
3744
  ["path", { d: "M8 2v4", key: "1cmpym" }],
3756
3745
  ["path", { d: "M16 2v4", key: "4m81vk" }],
3757
3746
  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
3758
3747
  ["path", { d: "M3 10h18", key: "8toen8" }]
3759
3748
  ];
3760
- const Calendar = createLucideIcon("calendar", __iconNode$n);
3749
+ const Calendar = createLucideIcon("calendar", __iconNode$o);
3761
3750
  /**
3762
3751
  * @license lucide-react v0.552.0 - ISC
3763
3752
  *
3764
3753
  * This source code is licensed under the ISC license.
3765
3754
  * See the LICENSE file in the root directory of this source tree.
3766
3755
  */
3767
- const __iconNode$m = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
3768
- const Check = createLucideIcon("check", __iconNode$m);
3756
+ const __iconNode$n = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
3757
+ const Check = createLucideIcon("check", __iconNode$n);
3769
3758
  /**
3770
3759
  * @license lucide-react v0.552.0 - ISC
3771
3760
  *
3772
3761
  * This source code is licensed under the ISC license.
3773
3762
  * See the LICENSE file in the root directory of this source tree.
3774
3763
  */
3775
- const __iconNode$l = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
3776
- const ChevronDown = createLucideIcon("chevron-down", __iconNode$l);
3764
+ const __iconNode$m = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
3765
+ const ChevronDown = createLucideIcon("chevron-down", __iconNode$m);
3777
3766
  /**
3778
3767
  * @license lucide-react v0.552.0 - ISC
3779
3768
  *
3780
3769
  * This source code is licensed under the ISC license.
3781
3770
  * See the LICENSE file in the root directory of this source tree.
3782
3771
  */
3783
- const __iconNode$k = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
3784
- const ChevronRight = createLucideIcon("chevron-right", __iconNode$k);
3772
+ const __iconNode$l = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
3773
+ const ChevronRight = createLucideIcon("chevron-right", __iconNode$l);
3785
3774
  /**
3786
3775
  * @license lucide-react v0.552.0 - ISC
3787
3776
  *
3788
3777
  * This source code is licensed under the ISC license.
3789
3778
  * See the LICENSE file in the root directory of this source tree.
3790
3779
  */
3791
- const __iconNode$j = [
3780
+ const __iconNode$k = [
3792
3781
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
3793
3782
  ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
3794
3783
  ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
3795
3784
  ];
3796
- const CircleAlert = createLucideIcon("circle-alert", __iconNode$j);
3785
+ const CircleAlert = createLucideIcon("circle-alert", __iconNode$k);
3797
3786
  /**
3798
3787
  * @license lucide-react v0.552.0 - ISC
3799
3788
  *
3800
3789
  * This source code is licensed under the ISC license.
3801
3790
  * See the LICENSE file in the root directory of this source tree.
3802
3791
  */
3803
- const __iconNode$i = [
3792
+ const __iconNode$j = [
3804
3793
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
3805
3794
  ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
3806
3795
  ];
3807
- const CircleCheck = createLucideIcon("circle-check", __iconNode$i);
3796
+ const CircleCheck = createLucideIcon("circle-check", __iconNode$j);
3808
3797
  /**
3809
3798
  * @license lucide-react v0.552.0 - ISC
3810
3799
  *
3811
3800
  * This source code is licensed under the ISC license.
3812
3801
  * See the LICENSE file in the root directory of this source tree.
3813
3802
  */
3814
- const __iconNode$h = [
3803
+ const __iconNode$i = [
3815
3804
  ["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
3816
3805
  ["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" }]
3817
3806
  ];
3818
- const Copy = createLucideIcon("copy", __iconNode$h);
3807
+ const Copy = createLucideIcon("copy", __iconNode$i);
3819
3808
  /**
3820
3809
  * @license lucide-react v0.552.0 - ISC
3821
3810
  *
3822
3811
  * This source code is licensed under the ISC license.
3823
3812
  * See the LICENSE file in the root directory of this source tree.
3824
3813
  */
3825
- const __iconNode$g = [
3814
+ const __iconNode$h = [
3826
3815
  ["path", { d: "m15 15 6 6", key: "1s409w" }],
3827
3816
  ["path", { d: "m15 9 6-6", key: "ko1vev" }],
3828
3817
  ["path", { d: "M21 16v5h-5", key: "1ck2sf" }],
@@ -3832,26 +3821,26 @@ const __iconNode$g = [
3832
3821
  ["path", { d: "M3 8V3h5", key: "1ln10m" }],
3833
3822
  ["path", { d: "M9 9 3 3", key: "v551iv" }]
3834
3823
  ];
3835
- const Expand = createLucideIcon("expand", __iconNode$g);
3824
+ const Expand = createLucideIcon("expand", __iconNode$h);
3836
3825
  /**
3837
3826
  * @license lucide-react v0.552.0 - ISC
3838
3827
  *
3839
3828
  * This source code is licensed under the ISC license.
3840
3829
  * See the LICENSE file in the root directory of this source tree.
3841
3830
  */
3842
- const __iconNode$f = [
3831
+ const __iconNode$g = [
3843
3832
  ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
3844
3833
  ["path", { d: "M10 14 21 3", key: "gplh6r" }],
3845
3834
  ["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
3846
3835
  ];
3847
- const ExternalLink = createLucideIcon("external-link", __iconNode$f);
3836
+ const ExternalLink = createLucideIcon("external-link", __iconNode$g);
3848
3837
  /**
3849
3838
  * @license lucide-react v0.552.0 - ISC
3850
3839
  *
3851
3840
  * This source code is licensed under the ISC license.
3852
3841
  * See the LICENSE file in the root directory of this source tree.
3853
3842
  */
3854
- const __iconNode$e = [
3843
+ const __iconNode$f = [
3855
3844
  [
3856
3845
  "path",
3857
3846
  {
@@ -3864,14 +3853,14 @@ const __iconNode$e = [
3864
3853
  ["path", { d: "M16 13H8", key: "t4e002" }],
3865
3854
  ["path", { d: "M16 17H8", key: "z1uh3a" }]
3866
3855
  ];
3867
- const FileText = createLucideIcon("file-text", __iconNode$e);
3856
+ const FileText = createLucideIcon("file-text", __iconNode$f);
3868
3857
  /**
3869
3858
  * @license lucide-react v0.552.0 - ISC
3870
3859
  *
3871
3860
  * This source code is licensed under the ISC license.
3872
3861
  * See the LICENSE file in the root directory of this source tree.
3873
3862
  */
3874
- const __iconNode$d = [
3863
+ const __iconNode$e = [
3875
3864
  [
3876
3865
  "path",
3877
3866
  {
@@ -3880,14 +3869,14 @@ const __iconNode$d = [
3880
3869
  }
3881
3870
  ]
3882
3871
  ];
3883
- const Flag = createLucideIcon("flag", __iconNode$d);
3872
+ const Flag = createLucideIcon("flag", __iconNode$e);
3884
3873
  /**
3885
3874
  * @license lucide-react v0.552.0 - ISC
3886
3875
  *
3887
3876
  * This source code is licensed under the ISC license.
3888
3877
  * See the LICENSE file in the root directory of this source tree.
3889
3878
  */
3890
- const __iconNode$c = [
3879
+ const __iconNode$d = [
3891
3880
  ["path", { d: "M12 10v6", key: "1bos4e" }],
3892
3881
  ["path", { d: "M9 13h6", key: "1uhe8q" }],
3893
3882
  [
@@ -3898,47 +3887,47 @@ const __iconNode$c = [
3898
3887
  }
3899
3888
  ]
3900
3889
  ];
3901
- const FolderPlus = createLucideIcon("folder-plus", __iconNode$c);
3890
+ const FolderPlus = createLucideIcon("folder-plus", __iconNode$d);
3902
3891
  /**
3903
3892
  * @license lucide-react v0.552.0 - ISC
3904
3893
  *
3905
3894
  * This source code is licensed under the ISC license.
3906
3895
  * See the LICENSE file in the root directory of this source tree.
3907
3896
  */
3908
- const __iconNode$b = [
3897
+ const __iconNode$c = [
3909
3898
  ["line", { x1: "6", x2: "6", y1: "3", y2: "15", key: "17qcm7" }],
3910
3899
  ["circle", { cx: "18", cy: "6", r: "3", key: "1h7g24" }],
3911
3900
  ["circle", { cx: "6", cy: "18", r: "3", key: "fqmcym" }],
3912
3901
  ["path", { d: "M18 9a9 9 0 0 1-9 9", key: "n2h4wq" }]
3913
3902
  ];
3914
- const GitBranch = createLucideIcon("git-branch", __iconNode$b);
3903
+ const GitBranch = createLucideIcon("git-branch", __iconNode$c);
3915
3904
  /**
3916
3905
  * @license lucide-react v0.552.0 - ISC
3917
3906
  *
3918
3907
  * This source code is licensed under the ISC license.
3919
3908
  * See the LICENSE file in the root directory of this source tree.
3920
3909
  */
3921
- const __iconNode$a = [
3910
+ const __iconNode$b = [
3922
3911
  ["path", { d: "M5 3v14", key: "9nsxs2" }],
3923
3912
  ["path", { d: "M12 3v8", key: "1h2ygw" }],
3924
3913
  ["path", { d: "M19 3v18", key: "1sk56x" }]
3925
3914
  ];
3926
- const Kanban = createLucideIcon("kanban", __iconNode$a);
3915
+ const Kanban = createLucideIcon("kanban", __iconNode$b);
3927
3916
  /**
3928
3917
  * @license lucide-react v0.552.0 - ISC
3929
3918
  *
3930
3919
  * This source code is licensed under the ISC license.
3931
3920
  * See the LICENSE file in the root directory of this source tree.
3932
3921
  */
3933
- const __iconNode$9 = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
3934
- const LoaderCircle = createLucideIcon("loader-circle", __iconNode$9);
3922
+ const __iconNode$a = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
3923
+ const LoaderCircle = createLucideIcon("loader-circle", __iconNode$a);
3935
3924
  /**
3936
3925
  * @license lucide-react v0.552.0 - ISC
3937
3926
  *
3938
3927
  * This source code is licensed under the ISC license.
3939
3928
  * See the LICENSE file in the root directory of this source tree.
3940
3929
  */
3941
- const __iconNode$8 = [
3930
+ const __iconNode$9 = [
3942
3931
  ["path", { d: "M12 13v8", key: "1l5pq0" }],
3943
3932
  ["path", { d: "M12 3v3", key: "1n5kay" }],
3944
3933
  [
@@ -3949,37 +3938,37 @@ const __iconNode$8 = [
3949
3938
  }
3950
3939
  ]
3951
3940
  ];
3952
- const Milestone = createLucideIcon("milestone", __iconNode$8);
3941
+ const Milestone = createLucideIcon("milestone", __iconNode$9);
3953
3942
  /**
3954
3943
  * @license lucide-react v0.552.0 - ISC
3955
3944
  *
3956
3945
  * This source code is licensed under the ISC license.
3957
3946
  * See the LICENSE file in the root directory of this source tree.
3958
3947
  */
3959
- const __iconNode$7 = [
3948
+ const __iconNode$8 = [
3960
3949
  ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
3961
3950
  ["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
3962
3951
  ["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
3963
3952
  ];
3964
- const Monitor = createLucideIcon("monitor", __iconNode$7);
3953
+ const Monitor = createLucideIcon("monitor", __iconNode$8);
3965
3954
  /**
3966
3955
  * @license lucide-react v0.552.0 - ISC
3967
3956
  *
3968
3957
  * This source code is licensed under the ISC license.
3969
3958
  * See the LICENSE file in the root directory of this source tree.
3970
3959
  */
3971
- const __iconNode$6 = [
3960
+ const __iconNode$7 = [
3972
3961
  ["path", { d: "M18 8L22 12L18 16", key: "1r0oui" }],
3973
3962
  ["path", { d: "M2 12H22", key: "1m8cig" }]
3974
3963
  ];
3975
- const MoveRight = createLucideIcon("move-right", __iconNode$6);
3964
+ const MoveRight = createLucideIcon("move-right", __iconNode$7);
3976
3965
  /**
3977
3966
  * @license lucide-react v0.552.0 - ISC
3978
3967
  *
3979
3968
  * This source code is licensed under the ISC license.
3980
3969
  * See the LICENSE file in the root directory of this source tree.
3981
3970
  */
3982
- const __iconNode$5 = [
3971
+ const __iconNode$6 = [
3983
3972
  [
3984
3973
  "path",
3985
3974
  {
@@ -3988,31 +3977,42 @@ const __iconNode$5 = [
3988
3977
  }
3989
3978
  ]
3990
3979
  ];
3991
- const Play = createLucideIcon("play", __iconNode$5);
3980
+ const Play = createLucideIcon("play", __iconNode$6);
3992
3981
  /**
3993
3982
  * @license lucide-react v0.552.0 - ISC
3994
3983
  *
3995
3984
  * This source code is licensed under the ISC license.
3996
3985
  * See the LICENSE file in the root directory of this source tree.
3997
3986
  */
3998
- const __iconNode$4 = [
3987
+ const __iconNode$5 = [
3999
3988
  ["path", { d: "M5 12h14", key: "1ays0h" }],
4000
3989
  ["path", { d: "M12 5v14", key: "s699le" }]
4001
3990
  ];
4002
- const Plus = createLucideIcon("plus", __iconNode$4);
3991
+ const Plus = createLucideIcon("plus", __iconNode$5);
4003
3992
  /**
4004
3993
  * @license lucide-react v0.552.0 - ISC
4005
3994
  *
4006
3995
  * This source code is licensed under the ISC license.
4007
3996
  * See the LICENSE file in the root directory of this source tree.
4008
3997
  */
4009
- const __iconNode$3 = [
3998
+ const __iconNode$4 = [
4010
3999
  ["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
4011
4000
  ["path", { d: "M21 3v5h-5", key: "1q7to0" }],
4012
4001
  ["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
4013
4002
  ["path", { d: "M8 16H3v5", key: "1cv678" }]
4014
4003
  ];
4015
- const RefreshCw = createLucideIcon("refresh-cw", __iconNode$3);
4004
+ const RefreshCw = createLucideIcon("refresh-cw", __iconNode$4);
4005
+ /**
4006
+ * @license lucide-react v0.552.0 - ISC
4007
+ *
4008
+ * This source code is licensed under the ISC license.
4009
+ * See the LICENSE file in the root directory of this source tree.
4010
+ */
4011
+ const __iconNode$3 = [
4012
+ ["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
4013
+ ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
4014
+ ];
4015
+ const Search = createLucideIcon("search", __iconNode$3);
4016
4016
  /**
4017
4017
  * @license lucide-react v0.552.0 - ISC
4018
4018
  *
@@ -6202,6 +6202,7 @@ const TaskCard = ({
6202
6202
  onClick(task);
6203
6203
  }
6204
6204
  };
6205
+ const displayTitle = task.title.replace(/^Task\s+\d+\s*[:\-–—]?\s*/i, "").trim() || task.title;
6205
6206
  return /* @__PURE__ */ jsxs(
6206
6207
  "div",
6207
6208
  {
@@ -6232,7 +6233,7 @@ const TaskCard = ({
6232
6233
  color: theme2.colors.text,
6233
6234
  fontWeight: theme2.fontWeights.medium
6234
6235
  },
6235
- children: task.title
6236
+ children: displayTitle
6236
6237
  }
6237
6238
  ),
6238
6239
  task.description && /* @__PURE__ */ jsx(
@@ -7261,6 +7262,7 @@ const KanbanPanel = ({
7261
7262
  const [activeTask, setActiveTask] = useState(null);
7262
7263
  const [isTaskModalOpen, setIsTaskModalOpen] = useState(false);
7263
7264
  const [editingTask, setEditingTask] = useState(void 0);
7265
+ const [searchQuery, setSearchQuery] = useState("");
7264
7266
  const sensors = useSensors(
7265
7267
  useSensor(PointerSensor, {
7266
7268
  activationConstraint: {
@@ -7302,6 +7304,26 @@ const KanbanPanel = ({
7302
7304
  actions,
7303
7305
  tasksLimit: 20
7304
7306
  });
7307
+ const filteredTasksByStatus = useMemo(() => {
7308
+ if (!searchQuery.trim()) {
7309
+ return tasksByStatus;
7310
+ }
7311
+ const query = searchQuery.toLowerCase().trim();
7312
+ const filtered = /* @__PURE__ */ new Map();
7313
+ for (const [status, state] of tasksByStatus) {
7314
+ const filteredTasks = state.tasks.filter((task) => {
7315
+ var _a2, _b2, _c, _d;
7316
+ if (task.title.toLowerCase().includes(query)) return true;
7317
+ if ((_a2 = task.description) == null ? void 0 : _a2.toLowerCase().includes(query)) return true;
7318
+ if ((_b2 = task.labels) == null ? void 0 : _b2.some((label) => label.toLowerCase().includes(query))) return true;
7319
+ if ((_c = task.assignee) == null ? void 0 : _c.some((a) => a.toLowerCase().includes(query))) return true;
7320
+ if ((_d = task.milestone) == null ? void 0 : _d.toLowerCase().includes(query)) return true;
7321
+ return false;
7322
+ });
7323
+ filtered.set(status, { tasks: filteredTasks, count: filteredTasks.length });
7324
+ }
7325
+ return filtered;
7326
+ }, [tasksByStatus, searchQuery]);
7305
7327
  const handleDragStart = useCallback((event) => {
7306
7328
  const { active } = event;
7307
7329
  const task = getTaskById(active.id);
@@ -7469,6 +7491,76 @@ const KanbanPanel = ({
7469
7491
  }
7470
7492
  )
7471
7493
  ] }),
7494
+ isBacklogProject && /* @__PURE__ */ jsxs(
7495
+ "div",
7496
+ {
7497
+ style: {
7498
+ position: "relative",
7499
+ flex: "1 1 200px",
7500
+ maxWidth: "300px",
7501
+ minWidth: "150px"
7502
+ },
7503
+ children: [
7504
+ /* @__PURE__ */ jsx(
7505
+ Search,
7506
+ {
7507
+ size: 16,
7508
+ color: theme2.colors.textSecondary,
7509
+ style: {
7510
+ position: "absolute",
7511
+ left: "10px",
7512
+ top: "50%",
7513
+ transform: "translateY(-50%)",
7514
+ pointerEvents: "none"
7515
+ }
7516
+ }
7517
+ ),
7518
+ /* @__PURE__ */ jsx(
7519
+ "input",
7520
+ {
7521
+ type: "text",
7522
+ placeholder: "Search tasks...",
7523
+ value: searchQuery,
7524
+ onChange: (e) => setSearchQuery(e.target.value),
7525
+ style: {
7526
+ width: "100%",
7527
+ padding: "8px 32px 8px 32px",
7528
+ fontSize: theme2.fontSizes[1],
7529
+ fontFamily: theme2.fonts.body,
7530
+ border: `1px solid ${theme2.colors.border}`,
7531
+ borderRadius: theme2.radii[2],
7532
+ background: theme2.colors.backgroundSecondary,
7533
+ color: theme2.colors.text,
7534
+ outline: "none",
7535
+ boxSizing: "border-box"
7536
+ }
7537
+ }
7538
+ ),
7539
+ searchQuery && /* @__PURE__ */ jsx(
7540
+ "button",
7541
+ {
7542
+ onClick: () => setSearchQuery(""),
7543
+ style: {
7544
+ position: "absolute",
7545
+ right: "6px",
7546
+ top: "50%",
7547
+ transform: "translateY(-50%)",
7548
+ background: "transparent",
7549
+ border: "none",
7550
+ padding: "4px",
7551
+ cursor: "pointer",
7552
+ display: "flex",
7553
+ alignItems: "center",
7554
+ justifyContent: "center",
7555
+ color: theme2.colors.textSecondary
7556
+ },
7557
+ "aria-label": "Clear search",
7558
+ children: /* @__PURE__ */ jsx(X, { size: 14 })
7559
+ }
7560
+ )
7561
+ ]
7562
+ }
7563
+ ),
7472
7564
  isBacklogProject && /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "16px", flexWrap: "wrap" }, children: [
7473
7565
  canWrite && /* @__PURE__ */ jsxs(
7474
7566
  "button",
@@ -7578,7 +7670,7 @@ const KanbanPanel = ({
7578
7670
  },
7579
7671
  children: statusColumns.map((status) => {
7580
7672
  const isSelected = status === selectedTab;
7581
- const statusState = tasksByStatus.get(status);
7673
+ const statusState = filteredTasksByStatus.get(status);
7582
7674
  const count = (statusState == null ? void 0 : statusState.count) || 0;
7583
7675
  return /* @__PURE__ */ jsxs(
7584
7676
  "button",
@@ -7645,7 +7737,7 @@ const KanbanPanel = ({
7645
7737
  alignItems: "stretch"
7646
7738
  },
7647
7739
  children: statusColumns.filter((status) => !isNarrowView || status === selectedTab).map((status) => {
7648
- const statusState = tasksByStatus.get(status);
7740
+ const statusState = filteredTasksByStatus.get(status);
7649
7741
  const columnTasks = (statusState == null ? void 0 : statusState.tasks) || [];
7650
7742
  return /* @__PURE__ */ jsx(
7651
7743
  KanbanColumn,
@@ -51847,10 +51939,24 @@ const TaskDetailPanel = ({ context, actions, events: events2 }) => {
51847
51939
  style: {
51848
51940
  display: "flex",
51849
51941
  alignItems: "center",
51850
- gap: "12px",
51942
+ justifyContent: "space-between",
51851
51943
  marginBottom: "12px"
51852
51944
  },
51853
51945
  children: [
51946
+ /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "12px" }, children: [
51947
+ /* @__PURE__ */ jsx(
51948
+ "span",
51949
+ {
51950
+ style: {
51951
+ fontFamily: theme2.fonts.monospace,
51952
+ fontSize: theme2.fontSizes[0],
51953
+ color: theme2.colors.textMuted
51954
+ },
51955
+ children: selectedTask.id
51956
+ }
51957
+ ),
51958
+ /* @__PURE__ */ jsx(StatusBadge, { status: selectedTask.status })
51959
+ ] }),
51854
51960
  /* @__PURE__ */ jsx(
51855
51961
  "button",
51856
51962
  {
@@ -51876,22 +51982,10 @@ const TaskDetailPanel = ({ context, actions, events: events2 }) => {
51876
51982
  e.currentTarget.style.background = theme2.colors.surface;
51877
51983
  e.currentTarget.style.color = theme2.colors.textSecondary;
51878
51984
  },
51879
- title: "Back",
51880
- children: /* @__PURE__ */ jsx(ArrowLeft, { size: 16 })
51881
- }
51882
- ),
51883
- /* @__PURE__ */ jsx(
51884
- "span",
51885
- {
51886
- style: {
51887
- fontFamily: theme2.fonts.monospace,
51888
- fontSize: theme2.fontSizes[0],
51889
- color: theme2.colors.textMuted
51890
- },
51891
- children: selectedTask.id
51985
+ title: "Close",
51986
+ children: /* @__PURE__ */ jsx(X, { size: 16 })
51892
51987
  }
51893
- ),
51894
- /* @__PURE__ */ jsx(StatusBadge, { status: selectedTask.status })
51988
+ )
51895
51989
  ]
51896
51990
  }
51897
51991
  ),