@devalok/shilp-sutra-karm 0.16.0 → 0.17.0

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.
Files changed (142) hide show
  1. package/dist/_chunks/chat-panel.js +292 -230
  2. package/dist/_chunks/kanban-board.js +1113 -1078
  3. package/dist/_chunks/project-card.js +51 -51
  4. package/dist/_chunks/render-adjustment-type.js +2044 -2037
  5. package/dist/_chunks/sidebar-scratchpad.js +508 -0
  6. package/dist/_chunks/task-detail-panel.js +774 -752
  7. package/dist/_chunks/vendor.js +10425 -5216
  8. package/dist/admin/adjustments/approved-adjustments.d.ts +2 -1
  9. package/dist/admin/adjustments/approved-adjustments.d.ts.map +1 -1
  10. package/dist/admin/adjustments/index.d.ts +1 -0
  11. package/dist/admin/break/break-admin-skeleton.d.ts +2 -1
  12. package/dist/admin/break/break-admin-skeleton.d.ts.map +1 -1
  13. package/dist/admin/break/break-admin.d.ts +2 -1
  14. package/dist/admin/break/break-admin.d.ts.map +1 -1
  15. package/dist/admin/break/break-balance.d.ts +2 -1
  16. package/dist/admin/break/break-balance.d.ts.map +1 -1
  17. package/dist/admin/break/breaks.d.ts +2 -1
  18. package/dist/admin/break/breaks.d.ts.map +1 -1
  19. package/dist/admin/break/delete-break.d.ts +2 -1
  20. package/dist/admin/break/delete-break.d.ts.map +1 -1
  21. package/dist/admin/break/edit-break-balance.d.ts +2 -1
  22. package/dist/admin/break/edit-break-balance.d.ts.map +1 -1
  23. package/dist/admin/break/edit-break.d.ts +2 -1
  24. package/dist/admin/break/edit-break.d.ts.map +1 -1
  25. package/dist/admin/break/header.d.ts +2 -1
  26. package/dist/admin/break/header.d.ts.map +1 -1
  27. package/dist/admin/break/index.d.ts +1 -0
  28. package/dist/admin/break/leave-request.d.ts +2 -1
  29. package/dist/admin/break/leave-request.d.ts.map +1 -1
  30. package/dist/admin/break/use-break-date-picker.d.ts +1 -0
  31. package/dist/admin/dashboard/admin-dashboard.d.ts +7 -6
  32. package/dist/admin/dashboard/admin-dashboard.d.ts.map +1 -1
  33. package/dist/admin/dashboard/associate-detail.d.ts +2 -1
  34. package/dist/admin/dashboard/associate-detail.d.ts.map +1 -1
  35. package/dist/admin/dashboard/attendance-overview.d.ts +2 -1
  36. package/dist/admin/dashboard/attendance-overview.d.ts.map +1 -1
  37. package/dist/admin/dashboard/break-request.d.ts +2 -1
  38. package/dist/admin/dashboard/break-request.d.ts.map +1 -1
  39. package/dist/admin/dashboard/calendar.d.ts +2 -1
  40. package/dist/admin/dashboard/calendar.d.ts.map +1 -1
  41. package/dist/admin/dashboard/correction-list.d.ts +2 -1
  42. package/dist/admin/dashboard/correction-list.d.ts.map +1 -1
  43. package/dist/admin/dashboard/dashboard-header.d.ts +2 -1
  44. package/dist/admin/dashboard/dashboard-header.d.ts.map +1 -1
  45. package/dist/admin/dashboard/dashboard-skeleton.d.ts +2 -1
  46. package/dist/admin/dashboard/dashboard-skeleton.d.ts.map +1 -1
  47. package/dist/admin/dashboard/index.d.ts +1 -0
  48. package/dist/admin/dashboard/leave-requests.d.ts +2 -1
  49. package/dist/admin/dashboard/leave-requests.d.ts.map +1 -1
  50. package/dist/admin/dashboard/render-date.d.ts +2 -1
  51. package/dist/admin/dashboard/render-date.d.ts.map +1 -1
  52. package/dist/admin/dashboard/use-calendar-navigation.d.ts +1 -0
  53. package/dist/admin/dashboard/use-calendar-navigation.d.ts.map +1 -1
  54. package/dist/admin/dashboard/use-leave-request-interaction.d.ts +1 -0
  55. package/dist/admin/icons.d.ts +1 -0
  56. package/dist/admin/index.d.ts +1 -0
  57. package/dist/admin/types.d.ts +1 -0
  58. package/dist/admin/utils/date-range-utils.d.ts +1 -0
  59. package/dist/admin/utils/date-utils.d.ts +1 -0
  60. package/dist/admin/utils/emoji-utils.d.ts +1 -0
  61. package/dist/admin/utils/render-adjustment-type.d.ts +1 -0
  62. package/dist/admin/utils/render-status.d.ts +1 -0
  63. package/dist/board/board-column.d.ts +2 -1
  64. package/dist/board/board-column.d.ts.map +1 -1
  65. package/dist/board/board-constants.d.ts +6 -5
  66. package/dist/board/board-constants.d.ts.map +1 -1
  67. package/dist/board/board-context.d.ts +2 -1
  68. package/dist/board/board-context.d.ts.map +1 -1
  69. package/dist/board/board-toolbar.d.ts +4 -3
  70. package/dist/board/board-toolbar.d.ts.map +1 -1
  71. package/dist/board/board-types.d.ts +1 -0
  72. package/dist/board/board-utils.d.ts +1 -0
  73. package/dist/board/bulk-action-bar.d.ts +4 -3
  74. package/dist/board/bulk-action-bar.d.ts.map +1 -1
  75. package/dist/board/column-empty.d.ts +4 -6
  76. package/dist/board/column-empty.d.ts.map +1 -1
  77. package/dist/board/column-header.d.ts +4 -5
  78. package/dist/board/column-header.d.ts.map +1 -1
  79. package/dist/board/index.d.ts +1 -0
  80. package/dist/board/kanban-board.d.ts +1 -0
  81. package/dist/board/kanban-board.d.ts.map +1 -1
  82. package/dist/board/task-card.d.ts +5 -4
  83. package/dist/board/task-card.d.ts.map +1 -1
  84. package/dist/board/task-context-menu.d.ts +3 -4
  85. package/dist/board/task-context-menu.d.ts.map +1 -1
  86. package/dist/board/use-board-filters.d.ts +1 -0
  87. package/dist/board/use-board-keyboard.d.ts +1 -0
  88. package/dist/chat/chat-input.d.ts +2 -1
  89. package/dist/chat/chat-input.d.ts.map +1 -1
  90. package/dist/chat/chat-panel.d.ts +2 -1
  91. package/dist/chat/chat-panel.d.ts.map +1 -1
  92. package/dist/chat/conversation-list.d.ts +2 -1
  93. package/dist/chat/conversation-list.d.ts.map +1 -1
  94. package/dist/chat/index.d.ts +1 -0
  95. package/dist/chat/markdown-components.d.ts +1 -0
  96. package/dist/chat/message-list.d.ts +2 -1
  97. package/dist/chat/message-list.d.ts.map +1 -1
  98. package/dist/chat/streaming-text.d.ts +4 -1
  99. package/dist/chat/streaming-text.d.ts.map +1 -1
  100. package/dist/client/accent-provider.d.ts +1 -0
  101. package/dist/client/client-portal-header.d.ts +1 -0
  102. package/dist/client/index.d.ts +1 -0
  103. package/dist/client/project-card.d.ts +1 -0
  104. package/dist/dashboard/attendance-cta.d.ts +2 -1
  105. package/dist/dashboard/attendance-cta.d.ts.map +1 -1
  106. package/dist/dashboard/daily-brief.d.ts +2 -2
  107. package/dist/dashboard/daily-brief.d.ts.map +1 -1
  108. package/dist/dashboard/index.d.ts +1 -0
  109. package/dist/dashboard/index.js +5 -267
  110. package/dist/dashboard/scratchpad-widget.d.ts +2 -2
  111. package/dist/dashboard/scratchpad-widget.d.ts.map +1 -1
  112. package/dist/dashboard/sidebar-scratchpad.d.ts +2 -2
  113. package/dist/dashboard/sidebar-scratchpad.d.ts.map +1 -1
  114. package/dist/index.d.ts +3 -1
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.js +211 -103
  117. package/dist/page-skeletons.d.ts +3 -2
  118. package/dist/page-skeletons.d.ts.map +1 -1
  119. package/dist/shell/karm-command-registry.d.ts +4 -0
  120. package/dist/shell/karm-command-registry.d.ts.map +1 -0
  121. package/dist/tasks/activity-tab.d.ts +2 -2
  122. package/dist/tasks/activity-tab.d.ts.map +1 -1
  123. package/dist/tasks/conversation-tab.d.ts +2 -2
  124. package/dist/tasks/conversation-tab.d.ts.map +1 -1
  125. package/dist/tasks/files-tab.d.ts +2 -2
  126. package/dist/tasks/files-tab.d.ts.map +1 -1
  127. package/dist/tasks/index.d.ts +1 -0
  128. package/dist/tasks/review-tab.d.ts +2 -2
  129. package/dist/tasks/review-tab.d.ts.map +1 -1
  130. package/dist/tasks/subtasks-tab.d.ts +2 -2
  131. package/dist/tasks/subtasks-tab.d.ts.map +1 -1
  132. package/dist/tasks/task-constants.d.ts +1 -0
  133. package/dist/tasks/task-detail-panel.d.ts +2 -1
  134. package/dist/tasks/task-detail-panel.d.ts.map +1 -1
  135. package/dist/tasks/task-properties.d.ts +2 -2
  136. package/dist/tasks/task-properties.d.ts.map +1 -1
  137. package/dist/tasks/task-utils.d.ts +9 -0
  138. package/dist/tasks/task-utils.d.ts.map +1 -0
  139. package/dist/utils/use-composed-ref.d.ts +1 -0
  140. package/llms.txt +3 -1
  141. package/package.json +80 -78
  142. package/dist/_chunks/daily-brief.js +0 -226
@@ -1,65 +1,67 @@
1
1
  "use client";
2
- import { jsx as e, jsxs as a, Fragment as re } from "react/jsx-runtime";
3
- import * as Q from "react";
4
- import { useMemo as J, useState as E, useEffect as ce, useCallback as W, useContext as Xe, createContext as Je, useRef as ie } from "react";
5
- import { createPortal as Ze } from "react-dom";
6
- import { u as Ie, C as De, c as Te, a as et, S as Re, v as tt, b as st, d as he, D as nt, e as at, h as rt, f as it, s as ot, K as lt, T as ct, P as dt } from "./vendor.js";
2
+ import { jsx as e, jsxs as a, Fragment as ve } from "react/jsx-runtime";
3
+ import * as P from "react";
4
+ import { useMemo as re, useState as E, useEffect as oe, useCallback as O, useContext as bt, createContext as xt, useRef as ye } from "react";
5
+ import { createPortal as wt } from "react-dom";
6
+ import { A as ie, m as se, u as Pe, C as _e, c as ze, a as vt, S as Ue, v as yt, b as kt, d as De, D as Ct, e as Nt, h as It, f as Dt, s as Tt, K as Rt, T as St, P as At } from "./vendor.js";
7
7
  import { cn as N } from "@devalok/shilp-sutra/ui/lib/utils";
8
- import { Input as oe } from "@devalok/shilp-sutra/ui/input";
9
- import { Button as _ } from "@devalok/shilp-sutra/ui/button";
10
- import { Badge as mt } from "@devalok/shilp-sutra/ui/badge";
11
- import { DropdownMenu as F, DropdownMenuTrigger as V, DropdownMenuContent as U, DropdownMenuLabel as q, DropdownMenuSeparator as H, DropdownMenuCheckboxItem as ge, DropdownMenuRadioGroup as ut, DropdownMenuRadioItem as ht, DropdownMenuItem as z } from "@devalok/shilp-sutra/ui/dropdown-menu";
12
- import { SegmentedControl as gt } from "@devalok/shilp-sutra/ui/segmented-control";
13
- import { IconX as le, IconSearch as ft, IconFilter as pt, IconUser as Z, IconLayoutGrid as xt, IconLayoutList as yt, IconArrowRight as pe, IconAlertTriangle as de, IconEye as ee, IconTrash as xe, IconPlus as ye, IconDots as vt, IconPencil as bt, IconGauge as wt, IconEyeOff as Se, IconCalendar as ve, IconCheck as kt, IconArrowUp as Ae, IconArrowDown as Me, IconGripVertical as Ct, IconSubtask as Nt, IconLock as It, IconTag as Dt } from "@tabler/icons-react";
14
- import { AvatarGroup as Tt } from "@devalok/shilp-sutra/composed/avatar-group";
15
- import { u as Le } from "./use-composed-ref.js";
16
- import { Checkbox as Ee } from "@devalok/shilp-sutra/ui";
17
- import { Avatar as Rt, AvatarImage as St, AvatarFallback as At } from "@devalok/shilp-sutra/ui/avatar";
18
- import { ContextMenu as Mt, ContextMenuTrigger as Lt, ContextMenuContent as Et, ContextMenuSub as se, ContextMenuSubTrigger as ne, ContextMenuSubContent as ae, ContextMenuItem as Y, ContextMenuSeparator as Ot } from "@devalok/shilp-sutra/ui/context-menu";
19
- const Bt = 320, we = [
20
- "bg-category-cyan",
21
- "bg-category-amber",
22
- "bg-category-teal",
23
- "bg-category-indigo",
24
- "bg-category-orange",
25
- "bg-category-emerald",
26
- "bg-category-slate",
27
- "bg-accent"
28
- ], ys = {
8
+ import { MotionStagger as le, MotionStaggerItem as Q } from "@devalok/shilp-sutra/motion/primitives";
9
+ import { Input as ke } from "@devalok/shilp-sutra/ui/input";
10
+ import { Button as F } from "@devalok/shilp-sutra/ui/button";
11
+ import { Badge as Mt } from "@devalok/shilp-sutra/ui/badge";
12
+ import { DropdownMenu as U, DropdownMenuTrigger as V, DropdownMenuContent as G, DropdownMenuLabel as te, DropdownMenuSeparator as Y, DropdownMenuCheckboxItem as Te, DropdownMenuRadioGroup as Lt, DropdownMenuRadioItem as Et, DropdownMenuItem as _ } from "@devalok/shilp-sutra/ui/dropdown-menu";
13
+ import { SegmentedControl as Ot } from "@devalok/shilp-sutra/ui/segmented-control";
14
+ import { IconX as Ce, IconSearch as Bt, IconFilter as Wt, IconUser as ce, IconLayoutGrid as Ft, IconLayoutList as $t, IconArrowRight as Se, IconAlertTriangle as Ne, IconEye as de, IconTrash as Ae, IconPlus as Me, IconDots as Pt, IconPencil as _t, IconGauge as zt, IconEyeOff as Ve, IconCalendar as Le, IconCheck as Ut, IconArrowUp as Ge, IconArrowDown as Ke, IconGripVertical as Vt, IconSubtask as Gt, IconLock as Kt, IconTag as Ht } from "@tabler/icons-react";
15
+ import { springs as ae, motionProps as jt } from "@devalok/shilp-sutra/ui/lib/motion";
16
+ import { AvatarGroup as Yt } from "@devalok/shilp-sutra/composed/avatar-group";
17
+ import { u as He } from "./use-composed-ref.js";
18
+ import { Checkbox as je } from "@devalok/shilp-sutra/ui";
19
+ import { Avatar as Qt, AvatarImage as qt, AvatarFallback as Xt } from "@devalok/shilp-sutra/ui/avatar";
20
+ import { ContextMenu as Jt, ContextMenuTrigger as Zt, ContextMenuContent as es, ContextMenuSub as be, ContextMenuSubTrigger as xe, ContextMenuSubContent as we, ContextMenuItem as ee, ContextMenuSeparator as ts } from "@devalok/shilp-sutra/ui/context-menu";
21
+ const ss = 320, Be = [
22
+ "bg-category-cyan-9",
23
+ "bg-category-amber-9",
24
+ "bg-category-teal-9",
25
+ "bg-category-indigo-9",
26
+ "bg-category-orange-9",
27
+ "bg-category-emerald-9",
28
+ "bg-category-slate-9",
29
+ "bg-accent-9"
30
+ ], zs = {
29
31
  LOW: "IconArrowDown",
30
32
  MEDIUM: "IconArrowRight",
31
33
  HIGH: "IconArrowUp",
32
34
  URGENT: "IconAlertTriangle"
33
- }, me = {
34
- LOW: "text-text-tertiary",
35
- MEDIUM: "text-warning",
36
- HIGH: "text-error",
37
- URGENT: "text-error"
38
- }, ke = {
35
+ }, Ie = {
36
+ LOW: "text-surface-fg-subtle",
37
+ MEDIUM: "text-warning-11",
38
+ HIGH: "text-error-11",
39
+ URGENT: "text-error-11"
40
+ }, We = {
39
41
  search: "",
40
42
  assignees: [],
41
43
  priorities: [],
42
44
  labels: [],
43
45
  dueDateRange: null
44
46
  };
45
- function Wt(t) {
47
+ function as(t) {
46
48
  const s = /* @__PURE__ */ new Set(), n = [];
47
49
  for (const r of t)
48
- for (const i of r.tasks) {
49
- i.owner && !s.has(i.owner.id) && (s.add(i.owner.id), n.push(i.owner));
50
- for (const u of i.assignees)
51
- s.has(u.id) || (s.add(u.id), n.push(u));
50
+ for (const c of r.tasks) {
51
+ c.owner && !s.has(c.owner.id) && (s.add(c.owner.id), n.push(c.owner));
52
+ for (const o of c.assignees)
53
+ s.has(o.id) || (s.add(o.id), n.push(o));
52
54
  }
53
55
  return n;
54
56
  }
55
- function Oe(t) {
57
+ function Ye(t) {
56
58
  const s = /* @__PURE__ */ new Set();
57
59
  for (const n of t)
58
60
  for (const r of n.tasks)
59
- for (const i of r.labels) s.add(i);
61
+ for (const c of r.labels) s.add(c);
60
62
  return Array.from(s).sort();
61
63
  }
62
- function $t(t, s) {
64
+ function ns(t, s) {
63
65
  if (s.search) {
64
66
  const n = s.search.toLowerCase();
65
67
  if (!t.title.toLowerCase().includes(n) && !t.taskId.toLowerCase().includes(n))
@@ -80,369 +82,400 @@ function $t(t, s) {
80
82
  if (!t.dueDate) return !1;
81
83
  const n = new Date(t.dueDate), r = /* @__PURE__ */ new Date();
82
84
  r.setHours(0, 0, 0, 0);
83
- const i = new Date(r);
84
- switch (i.setHours(23, 59, 59, 999), s.dueDateRange) {
85
+ const c = new Date(r);
86
+ switch (c.setHours(23, 59, 59, 999), s.dueDateRange) {
85
87
  case "overdue":
86
88
  if (n >= r) return !1;
87
89
  break;
88
90
  case "today":
89
- if (n < r || n > i) return !1;
91
+ if (n < r || n > c) return !1;
90
92
  break;
91
93
  case "this-week": {
92
- const u = new Date(r);
93
- if (u.setDate(r.getDate() + (7 - r.getDay())), u.setHours(23, 59, 59, 999), n > u) return !1;
94
+ const o = new Date(r);
95
+ if (o.setDate(r.getDate() + (7 - r.getDay())), o.setHours(23, 59, 59, 999), n < r || n > o) return !1;
94
96
  break;
95
97
  }
96
98
  }
97
99
  }
98
100
  return !0;
99
101
  }
100
- function Pt(t, s) {
101
- return J(() => s.search !== "" || s.priorities.length > 0 || s.assignees.length > 0 || s.labels.length > 0 || s.dueDateRange != null && s.dueDateRange !== "none" ? t.map((r) => ({
102
+ function rs(t, s) {
103
+ return re(() => s.search !== "" || s.priorities.length > 0 || s.assignees.length > 0 || s.labels.length > 0 || s.dueDateRange != null && s.dueDateRange !== "none" ? t.map((r) => ({
102
104
  ...r,
103
- tasks: r.tasks.filter((i) => $t(i, s))
105
+ tasks: r.tasks.filter((c) => ns(c, s))
104
106
  })) : t, [t, s]);
105
107
  }
106
- const Be = Je(null);
107
- function G() {
108
- const t = Xe(Be);
108
+ const Qe = xt(null);
109
+ function K() {
110
+ const t = bt(Qe);
109
111
  if (!t) throw new Error("useBoardContext must be used within <BoardProvider>");
110
112
  return t;
111
113
  }
112
- const $ = () => {
114
+ const B = () => {
113
115
  };
114
- function _t({
116
+ function is({
115
117
  initialData: t,
116
118
  currentUserId: s = null,
117
119
  members: n,
118
120
  children: r,
119
- ...i
121
+ onTaskMove: c,
122
+ onTaskAdd: o,
123
+ onBulkAction: u,
124
+ onColumnReorder: I,
125
+ onColumnRename: w,
126
+ onColumnDelete: p,
127
+ onColumnToggleVisibility: x,
128
+ onColumnWipLimitChange: g,
129
+ onClickTask: d,
130
+ onAddColumn: C,
131
+ onQuickPriorityChange: D,
132
+ onQuickAssign: l,
133
+ onQuickDueDateChange: v,
134
+ onQuickLabelAdd: m,
135
+ onQuickVisibilityChange: R,
136
+ onQuickDelete: h
120
137
  }) {
121
- const [u, w] = E(t.columns);
122
- ce(() => {
123
- w(t.columns);
138
+ const [f, T] = E(t.columns);
139
+ oe(() => {
140
+ T(t.columns);
124
141
  }, [t]);
125
- const [k, h] = E("default"), [l, f] = E(ke), S = W((C) => {
126
- f((M) => ({ ...M, ...C }));
127
- }, []), I = W(() => f(ke), []), c = J(
128
- () => l.search !== "" || l.priorities.length > 0 || l.assignees.length > 0 || l.labels.length > 0 || l.dueDateRange != null && l.dueDateRange !== "none",
129
- [l]
130
- ), D = Pt(u, l), d = J(
131
- () => n ?? Wt(u),
132
- [n, u]
133
- ), [v, m] = E(/* @__PURE__ */ new Set()), T = W((C) => {
134
- m((M) => {
135
- const B = new Set(M);
136
- return B.has(C) ? B.delete(C) : B.add(C), B;
142
+ const [L, $] = E("default"), [y, i] = E(We), b = O((H) => {
143
+ i((Z) => ({ ...Z, ...H }));
144
+ }, []), A = O(() => i(We), []), M = re(
145
+ () => y.search !== "" || y.priorities.length > 0 || y.assignees.length > 0 || y.labels.length > 0 || y.dueDateRange != null && y.dueDateRange !== "none",
146
+ [y]
147
+ ), S = rs(f, y), W = re(
148
+ () => n ?? as(f),
149
+ [n, f]
150
+ ), [q, X] = E(/* @__PURE__ */ new Set()), ue = O((H) => {
151
+ X((Z) => {
152
+ const z = new Set(Z);
153
+ return z.has(H) ? z.delete(H) : z.add(H), z;
137
154
  });
138
- }, []), g = W(
139
- (C, M) => {
140
- const B = D.flatMap((K) => K.tasks), j = B.findIndex((K) => K.id === C), X = B.findIndex((K) => K.id === M);
141
- if (j === -1 || X === -1) return;
142
- const [ue, te] = j < X ? [j, X] : [X, j], b = B.slice(ue, te + 1).map((K) => K.id);
143
- m((K) => {
144
- const be = new Set(K);
145
- return b.forEach((qe) => be.add(qe)), be;
155
+ }, []), J = O(
156
+ (H, Z) => {
157
+ const z = S.flatMap((j) => j.tasks), ge = z.findIndex((j) => j.id === H), pe = z.findIndex((j) => j.id === Z);
158
+ if (ge === -1 || pe === -1) return;
159
+ const [ht, ft] = ge < pe ? [ge, pe] : [pe, ge], gt = z.slice(ht, ft + 1).map((j) => j.id);
160
+ X((j) => {
161
+ const Oe = new Set(j);
162
+ return gt.forEach((pt) => Oe.add(pt)), Oe;
146
163
  });
147
164
  },
148
- [D]
149
- ), y = W(() => {
150
- const C = D.flatMap((M) => M.tasks.map((B) => B.id));
151
- m(new Set(C));
152
- }, [D]), x = W(() => m(/* @__PURE__ */ new Set()), []), [o, p] = E(null), [R, L] = E(!1), [A, P] = E(null), O = J(
165
+ [S]
166
+ ), ne = O(() => {
167
+ const H = S.flatMap((Z) => Z.tasks.map((z) => z.id));
168
+ X(new Set(H));
169
+ }, [S]), me = O(() => X(/* @__PURE__ */ new Set()), []), [he, fe] = E(null), [k, dt] = E(!1), [Ee, ut] = E(null), mt = re(
153
170
  () => ({
154
- columns: D,
155
- rawColumns: u,
156
- members: d,
157
- viewMode: k,
158
- setViewMode: h,
159
- filters: l,
160
- setFilters: S,
161
- clearFilters: I,
162
- hasActiveFilters: c,
163
- selectedTaskIds: v,
164
- toggleTaskSelection: T,
165
- selectRange: g,
166
- selectAll: y,
167
- clearSelection: x,
168
- focusedTaskId: o,
169
- setFocusedTaskId: p,
171
+ columns: S,
172
+ rawColumns: f,
173
+ members: W,
174
+ viewMode: L,
175
+ setViewMode: $,
176
+ filters: y,
177
+ setFilters: b,
178
+ clearFilters: A,
179
+ hasActiveFilters: M,
180
+ selectedTaskIds: q,
181
+ toggleTaskSelection: ue,
182
+ selectRange: J,
183
+ selectAll: ne,
184
+ clearSelection: me,
185
+ focusedTaskId: he,
186
+ setFocusedTaskId: fe,
170
187
  currentUserId: s,
171
- highlightMyTasks: R,
172
- setHighlightMyTasks: L,
173
- activeTask: A,
174
- setActiveTask: P,
175
- onTaskMove: i.onTaskMove ?? $,
176
- onTaskAdd: i.onTaskAdd ?? $,
177
- onBulkAction: i.onBulkAction ?? $,
178
- onColumnReorder: i.onColumnReorder ?? $,
179
- onColumnRename: i.onColumnRename ?? $,
180
- onColumnDelete: i.onColumnDelete ?? $,
181
- onColumnToggleVisibility: i.onColumnToggleVisibility ?? $,
182
- onColumnWipLimitChange: i.onColumnWipLimitChange ?? $,
183
- onClickTask: i.onClickTask ?? $,
184
- onAddColumn: i.onAddColumn ?? $,
185
- onQuickPriorityChange: i.onQuickPriorityChange ?? $,
186
- onQuickAssign: i.onQuickAssign ?? $,
187
- onQuickDueDateChange: i.onQuickDueDateChange ?? $,
188
- onQuickLabelAdd: i.onQuickLabelAdd ?? $,
189
- onQuickVisibilityChange: i.onQuickVisibilityChange ?? $,
190
- onQuickDelete: i.onQuickDelete ?? $
188
+ highlightMyTasks: k,
189
+ setHighlightMyTasks: dt,
190
+ activeTask: Ee,
191
+ setActiveTask: ut,
192
+ onTaskMove: c ?? B,
193
+ onTaskAdd: o ?? B,
194
+ onBulkAction: u ?? B,
195
+ onColumnReorder: I ?? B,
196
+ onColumnRename: w ?? B,
197
+ onColumnDelete: p ?? B,
198
+ onColumnToggleVisibility: x ?? B,
199
+ onColumnWipLimitChange: g ?? B,
200
+ onClickTask: d ?? B,
201
+ onAddColumn: C ?? B,
202
+ onQuickPriorityChange: D ?? B,
203
+ onQuickAssign: l ?? B,
204
+ onQuickDueDateChange: v ?? B,
205
+ onQuickLabelAdd: m ?? B,
206
+ onQuickVisibilityChange: R ?? B,
207
+ onQuickDelete: h ?? B
191
208
  }),
192
209
  [
193
- D,
210
+ S,
211
+ f,
212
+ W,
213
+ L,
214
+ y,
215
+ b,
216
+ A,
217
+ M,
218
+ q,
219
+ ue,
220
+ J,
221
+ ne,
222
+ me,
223
+ he,
224
+ s,
225
+ k,
226
+ Ee,
227
+ c,
228
+ o,
194
229
  u,
230
+ I,
231
+ w,
232
+ p,
233
+ x,
234
+ g,
195
235
  d,
196
- k,
236
+ C,
237
+ D,
197
238
  l,
198
- S,
199
- I,
200
- c,
201
239
  v,
202
- T,
203
- g,
204
- y,
205
- x,
206
- o,
207
- s,
240
+ m,
208
241
  R,
209
- A,
210
- i
242
+ h
211
243
  ]
212
244
  );
213
- return /* @__PURE__ */ e(Be.Provider, { value: O, children: r });
245
+ return /* @__PURE__ */ e(Qe.Provider, { value: mt, children: r });
214
246
  }
215
- const zt = ["LOW", "MEDIUM", "HIGH", "URGENT"], Ce = [
247
+ const os = ["LOW", "MEDIUM", "HIGH", "URGENT"], Fe = [
216
248
  { value: "overdue", label: "Overdue" },
217
249
  { value: "today", label: "Today" },
218
250
  { value: "this-week", label: "This week" }
219
- ];
220
- function We() {
251
+ ], qe = P.forwardRef(({ className: t, ...s }, n) => {
221
252
  const {
222
- rawColumns: t,
223
- members: s,
224
- filters: n,
225
- setFilters: r,
226
- clearFilters: i,
227
- hasActiveFilters: u,
228
- viewMode: w,
229
- setViewMode: k,
230
- highlightMyTasks: h,
231
- setHighlightMyTasks: l
232
- } = G(), [f, S] = E(n.search), I = ie(null), c = W(
233
- (o) => {
234
- const p = o.target.value;
235
- S(p), I.current && clearTimeout(I.current), I.current = setTimeout(() => {
236
- r({ search: p });
253
+ rawColumns: r,
254
+ members: c,
255
+ filters: o,
256
+ setFilters: u,
257
+ clearFilters: I,
258
+ hasActiveFilters: w,
259
+ viewMode: p,
260
+ setViewMode: x,
261
+ highlightMyTasks: g,
262
+ setHighlightMyTasks: d
263
+ } = K(), [C, D] = E(o.search), l = ye(null), v = O(
264
+ (i) => {
265
+ const b = i.target.value;
266
+ D(b), l.current && clearTimeout(l.current), l.current = setTimeout(() => {
267
+ u({ search: b });
237
268
  }, 200);
238
269
  },
239
- [r]
270
+ [u]
240
271
  );
241
- ce(() => {
242
- S(n.search);
243
- }, [n.search]);
244
- const D = s, d = Oe(t), v = (o) => {
245
- const p = n.priorities;
246
- r({
247
- priorities: p.includes(o) ? p.filter((R) => R !== o) : [...p, o]
272
+ oe(() => () => {
273
+ l.current && clearTimeout(l.current);
274
+ }, []), oe(() => {
275
+ D(o.search);
276
+ }, [o.search]);
277
+ const m = c, R = Ye(r), h = (i) => {
278
+ const b = o.priorities;
279
+ u({
280
+ priorities: b.includes(i) ? b.filter((A) => A !== i) : [...b, i]
248
281
  });
249
- }, m = (o) => {
250
- const p = n.assignees;
251
- r({
252
- assignees: p.includes(o) ? p.filter((R) => R !== o) : [...p, o]
282
+ }, f = (i) => {
283
+ const b = o.assignees;
284
+ u({
285
+ assignees: b.includes(i) ? b.filter((A) => A !== i) : [...b, i]
253
286
  });
254
- }, T = (o) => {
255
- const p = n.labels;
256
- r({
257
- labels: p.includes(o) ? p.filter((R) => R !== o) : [...p, o]
287
+ }, T = (i) => {
288
+ const b = o.labels;
289
+ u({
290
+ labels: b.includes(i) ? b.filter((A) => A !== i) : [...b, i]
258
291
  });
259
- }, g = (o) => {
260
- r({
261
- dueDateRange: o === n.dueDateRange ? null : o
292
+ }, L = (i) => {
293
+ u({
294
+ dueDateRange: i === o.dueDateRange ? null : i
262
295
  });
263
- }, y = [
264
- { id: "default", text: "Board", icon: xt },
265
- { id: "compact", text: "Compact", icon: yt }
266
- ], x = [];
267
- for (const o of n.priorities)
268
- x.push({
269
- key: `priority-${o}`,
270
- label: o.charAt(0) + o.slice(1).toLowerCase(),
271
- onRemove: () => v(o)
296
+ }, $ = [
297
+ { id: "default", text: "Board", icon: Ft },
298
+ { id: "compact", text: "Compact", icon: $t }
299
+ ], y = [];
300
+ for (const i of o.priorities)
301
+ y.push({
302
+ key: `priority-${i}`,
303
+ label: i.charAt(0) + i.slice(1).toLowerCase(),
304
+ onRemove: () => h(i)
272
305
  });
273
- for (const o of n.assignees) {
274
- const p = D.find((R) => R.id === o);
275
- x.push({
276
- key: `assignee-${o}`,
277
- label: (p == null ? void 0 : p.name) ?? o,
278
- onRemove: () => m(o)
306
+ for (const i of o.assignees) {
307
+ const b = m.find((A) => A.id === i);
308
+ y.push({
309
+ key: `assignee-${i}`,
310
+ label: (b == null ? void 0 : b.name) ?? i,
311
+ onRemove: () => f(i)
279
312
  });
280
313
  }
281
- for (const o of n.labels)
282
- x.push({
283
- key: `label-${o}`,
284
- label: o,
285
- onRemove: () => T(o)
314
+ for (const i of o.labels)
315
+ y.push({
316
+ key: `label-${i}`,
317
+ label: i,
318
+ onRemove: () => T(i)
286
319
  });
287
- if (n.dueDateRange && n.dueDateRange !== "none") {
288
- const o = Ce.find((p) => p.value === n.dueDateRange);
289
- x.push({
320
+ if (o.dueDateRange && o.dueDateRange !== "none") {
321
+ const i = Fe.find((b) => b.value === o.dueDateRange);
322
+ y.push({
290
323
  key: "due-date",
291
- label: (o == null ? void 0 : o.label) ?? n.dueDateRange,
292
- onRemove: () => r({ dueDateRange: null })
324
+ label: (i == null ? void 0 : i.label) ?? o.dueDateRange,
325
+ onRemove: () => u({ dueDateRange: null })
293
326
  });
294
327
  }
295
- return /* @__PURE__ */ a("div", { className: "flex flex-col gap-ds-02", children: [
328
+ return /* @__PURE__ */ a("div", { ref: n, className: N("flex flex-col gap-ds-02", t), ...s, children: [
296
329
  /* @__PURE__ */ a("div", { className: "flex items-center gap-ds-03", children: [
297
330
  /* @__PURE__ */ e("div", { className: "relative flex-1 max-w-xs", children: /* @__PURE__ */ e(
298
- oe,
331
+ ke,
299
332
  {
300
- value: f,
301
- onChange: c,
333
+ value: C,
334
+ onChange: v,
302
335
  placeholder: "Search tasks...",
303
336
  "aria-label": "Search tasks",
304
337
  size: "sm",
305
- startIcon: /* @__PURE__ */ e(ft, { className: "h-ico-sm w-ico-sm" }),
306
- endIcon: f ? /* @__PURE__ */ e(
338
+ startIcon: /* @__PURE__ */ e(Bt, { className: "h-ico-sm w-ico-sm" }),
339
+ endIcon: C ? /* @__PURE__ */ e(
307
340
  "button",
308
341
  {
309
342
  onClick: () => {
310
- S(""), r({ search: "" });
343
+ D(""), u({ search: "" });
311
344
  },
312
- className: "pointer-events-auto cursor-pointer text-text-tertiary hover:text-text-primary",
345
+ className: "pointer-events-auto cursor-pointer text-surface-fg-subtle hover:text-surface-fg",
313
346
  "aria-label": "Clear search",
314
- children: /* @__PURE__ */ e(le, { className: "h-3 w-3" })
347
+ children: /* @__PURE__ */ e(Ce, { className: "h-3 w-3" })
315
348
  }
316
349
  ) : void 0
317
350
  }
318
351
  ) }),
319
352
  /* @__PURE__ */ a("div", { className: "flex items-center gap-ds-01", children: [
320
- /* @__PURE__ */ a(F, { children: [
353
+ /* @__PURE__ */ a(U, { children: [
321
354
  /* @__PURE__ */ e(V, { asChild: !0, children: /* @__PURE__ */ a(
322
- _,
355
+ F,
323
356
  {
324
357
  variant: "ghost",
325
358
  size: "sm",
326
359
  className: N(
327
- n.priorities.length > 0 && "text-interactive"
360
+ o.priorities.length > 0 && "text-accent-11"
328
361
  ),
329
362
  title: "Filter by priority",
330
363
  children: [
331
- /* @__PURE__ */ e(pt, { className: "h-ico-sm w-ico-sm mr-ds-01" }),
364
+ /* @__PURE__ */ e(Wt, { className: "h-ico-sm w-ico-sm mr-ds-01" }),
332
365
  "Priority",
333
- n.priorities.length > 0 && /* @__PURE__ */ a("span", { className: "ml-ds-01 text-ds-xs", children: [
366
+ o.priorities.length > 0 && /* @__PURE__ */ a("span", { className: "ml-ds-01 text-ds-xs", children: [
334
367
  "(",
335
- n.priorities.length,
368
+ o.priorities.length,
336
369
  ")"
337
370
  ] })
338
371
  ]
339
372
  }
340
373
  ) }),
341
- /* @__PURE__ */ a(U, { align: "start", className: "w-44", children: [
342
- /* @__PURE__ */ e(q, { children: "Priority" }),
343
- /* @__PURE__ */ e(H, {}),
344
- zt.map((o) => /* @__PURE__ */ e(
345
- ge,
374
+ /* @__PURE__ */ a(G, { align: "start", className: "w-44", children: [
375
+ /* @__PURE__ */ e(te, { children: "Priority" }),
376
+ /* @__PURE__ */ e(Y, {}),
377
+ os.map((i) => /* @__PURE__ */ e(
378
+ Te,
346
379
  {
347
- checked: n.priorities.includes(o),
348
- onCheckedChange: () => v(o),
349
- children: o.charAt(0) + o.slice(1).toLowerCase()
380
+ checked: o.priorities.includes(i),
381
+ onCheckedChange: () => h(i),
382
+ children: i.charAt(0) + i.slice(1).toLowerCase()
350
383
  },
351
- o
384
+ i
352
385
  ))
353
386
  ] })
354
387
  ] }),
355
- D.length > 0 && /* @__PURE__ */ a(F, { children: [
388
+ m.length > 0 && /* @__PURE__ */ a(U, { children: [
356
389
  /* @__PURE__ */ e(V, { asChild: !0, children: /* @__PURE__ */ a(
357
- _,
390
+ F,
358
391
  {
359
392
  variant: "ghost",
360
393
  size: "sm",
361
394
  className: N(
362
- n.assignees.length > 0 && "text-interactive"
395
+ o.assignees.length > 0 && "text-accent-11"
363
396
  ),
364
397
  title: "Filter by assignee",
365
398
  children: [
366
- /* @__PURE__ */ e(Z, { className: "h-ico-sm w-ico-sm mr-ds-01" }),
399
+ /* @__PURE__ */ e(ce, { className: "h-ico-sm w-ico-sm mr-ds-01" }),
367
400
  "Assignee",
368
- n.assignees.length > 0 && /* @__PURE__ */ a("span", { className: "ml-ds-01 text-ds-xs", children: [
401
+ o.assignees.length > 0 && /* @__PURE__ */ a("span", { className: "ml-ds-01 text-ds-xs", children: [
369
402
  "(",
370
- n.assignees.length,
403
+ o.assignees.length,
371
404
  ")"
372
405
  ] })
373
406
  ]
374
407
  }
375
408
  ) }),
376
- /* @__PURE__ */ a(U, { align: "start", className: "w-48 max-h-56 overflow-y-auto", children: [
377
- /* @__PURE__ */ e(q, { children: "Assignee" }),
378
- /* @__PURE__ */ e(H, {}),
379
- D.map((o) => /* @__PURE__ */ e(
380
- ge,
409
+ /* @__PURE__ */ a(G, { align: "start", className: "w-48 max-h-56 overflow-y-auto", children: [
410
+ /* @__PURE__ */ e(te, { children: "Assignee" }),
411
+ /* @__PURE__ */ e(Y, {}),
412
+ m.map((i) => /* @__PURE__ */ e(
413
+ Te,
381
414
  {
382
- checked: n.assignees.includes(o.id),
383
- onCheckedChange: () => m(o.id),
384
- children: o.name
415
+ checked: o.assignees.includes(i.id),
416
+ onCheckedChange: () => f(i.id),
417
+ children: i.name
385
418
  },
386
- o.id
419
+ i.id
387
420
  ))
388
421
  ] })
389
422
  ] }),
390
- d.length > 0 && /* @__PURE__ */ a(F, { children: [
423
+ R.length > 0 && /* @__PURE__ */ a(U, { children: [
391
424
  /* @__PURE__ */ e(V, { asChild: !0, children: /* @__PURE__ */ a(
392
- _,
425
+ F,
393
426
  {
394
427
  variant: "ghost",
395
428
  size: "sm",
396
429
  className: N(
397
- n.labels.length > 0 && "text-interactive"
430
+ o.labels.length > 0 && "text-accent-11"
398
431
  ),
399
432
  title: "Filter by label",
400
433
  children: [
401
434
  "Label",
402
- n.labels.length > 0 && /* @__PURE__ */ a("span", { className: "ml-ds-01 text-ds-xs", children: [
435
+ o.labels.length > 0 && /* @__PURE__ */ a("span", { className: "ml-ds-01 text-ds-xs", children: [
403
436
  "(",
404
- n.labels.length,
437
+ o.labels.length,
405
438
  ")"
406
439
  ] })
407
440
  ]
408
441
  }
409
442
  ) }),
410
- /* @__PURE__ */ a(U, { align: "start", className: "w-44 max-h-56 overflow-y-auto", children: [
411
- /* @__PURE__ */ e(q, { children: "Label" }),
412
- /* @__PURE__ */ e(H, {}),
413
- d.map((o) => /* @__PURE__ */ e(
414
- ge,
443
+ /* @__PURE__ */ a(G, { align: "start", className: "w-44 max-h-56 overflow-y-auto", children: [
444
+ /* @__PURE__ */ e(te, { children: "Label" }),
445
+ /* @__PURE__ */ e(Y, {}),
446
+ R.map((i) => /* @__PURE__ */ e(
447
+ Te,
415
448
  {
416
- checked: n.labels.includes(o),
417
- onCheckedChange: () => T(o),
418
- children: o
449
+ checked: o.labels.includes(i),
450
+ onCheckedChange: () => T(i),
451
+ children: i
419
452
  },
420
- o
453
+ i
421
454
  ))
422
455
  ] })
423
456
  ] }),
424
- /* @__PURE__ */ a(F, { children: [
457
+ /* @__PURE__ */ a(U, { children: [
425
458
  /* @__PURE__ */ e(V, { asChild: !0, children: /* @__PURE__ */ e(
426
- _,
459
+ F,
427
460
  {
428
461
  variant: "ghost",
429
462
  size: "sm",
430
463
  className: N(
431
- n.dueDateRange && n.dueDateRange !== "none" && "text-interactive"
464
+ o.dueDateRange && o.dueDateRange !== "none" && "text-accent-11"
432
465
  ),
433
466
  title: "Filter by due date",
434
467
  children: "Due date"
435
468
  }
436
469
  ) }),
437
- /* @__PURE__ */ a(U, { align: "start", className: "w-40", children: [
438
- /* @__PURE__ */ e(q, { children: "Due date" }),
439
- /* @__PURE__ */ e(H, {}),
470
+ /* @__PURE__ */ a(G, { align: "start", className: "w-40", children: [
471
+ /* @__PURE__ */ e(te, { children: "Due date" }),
472
+ /* @__PURE__ */ e(Y, {}),
440
473
  /* @__PURE__ */ e(
441
- ut,
474
+ Lt,
442
475
  {
443
- value: n.dueDateRange ?? "",
444
- onValueChange: g,
445
- children: Ce.map((o) => /* @__PURE__ */ e(ht, { value: o.value, children: o.label }, o.value))
476
+ value: o.dueDateRange ?? "",
477
+ onValueChange: L,
478
+ children: Fe.map((i) => /* @__PURE__ */ e(Et, { value: i.value, children: i.label }, i.value))
446
479
  }
447
480
  )
448
481
  ] })
@@ -450,217 +483,212 @@ function We() {
450
483
  ] }),
451
484
  /* @__PURE__ */ e("div", { className: "flex-1" }),
452
485
  /* @__PURE__ */ e(
453
- _,
486
+ F,
454
487
  {
455
- variant: h ? "outline" : "ghost",
488
+ variant: g ? "outline" : "ghost",
456
489
  size: "sm",
457
- onClick: () => l(!h),
490
+ onClick: () => d(!g),
458
491
  title: "Highlight my tasks",
459
492
  "aria-label": "Highlight my tasks",
460
- "aria-pressed": h,
461
- className: N(h && "text-interactive"),
462
- children: /* @__PURE__ */ e(Z, { className: "h-ico-sm w-ico-sm" })
493
+ "aria-pressed": g,
494
+ className: N(g && "text-accent-11"),
495
+ children: /* @__PURE__ */ e(ce, { className: "h-ico-sm w-ico-sm" })
463
496
  }
464
497
  ),
465
498
  /* @__PURE__ */ e(
466
- gt,
499
+ Ot,
467
500
  {
468
501
  size: "sm",
469
502
  variant: "tonal",
470
- options: y,
471
- selectedId: w,
472
- onSelect: (o) => k(o)
503
+ options: $,
504
+ selectedId: p,
505
+ onSelect: (i) => x(i)
473
506
  }
474
507
  )
475
508
  ] }),
476
- x.length > 0 && /* @__PURE__ */ a("div", { className: "flex items-center gap-ds-02 flex-wrap", children: [
477
- x.map((o, p) => /* @__PURE__ */ e(
478
- "div",
509
+ y.length > 0 && /* @__PURE__ */ a(le, { className: "flex items-center gap-ds-02 flex-wrap", children: [
510
+ y.map((i) => /* @__PURE__ */ e(Q, { children: /* @__PURE__ */ e(
511
+ Mt,
479
512
  {
480
- className: "animate-scale-in delay-stagger",
481
- style: { "--stagger-index": p },
482
- children: /* @__PURE__ */ e(
483
- mt,
484
- {
485
- variant: "subtle",
486
- size: "sm",
487
- onDismiss: o.onRemove,
488
- children: o.label
489
- }
490
- )
491
- },
492
- o.key
493
- )),
513
+ variant: "subtle",
514
+ size: "sm",
515
+ onDismiss: i.onRemove,
516
+ children: i.label
517
+ }
518
+ ) }, i.key)),
494
519
  /* @__PURE__ */ e(
495
520
  "button",
496
521
  {
497
- onClick: i,
498
- className: "text-ds-xs text-text-tertiary hover:text-interactive transition-colors",
522
+ onClick: I,
523
+ className: "text-ds-xs text-surface-fg-subtle hover:text-accent-11 transition-colors",
499
524
  "aria-label": "Clear all filters",
500
525
  children: "Clear all"
501
526
  }
502
527
  )
503
528
  ] })
504
529
  ] });
505
- }
506
- We.displayName = "BoardToolbar";
507
- const Ft = ["LOW", "MEDIUM", "HIGH", "URGENT"];
508
- function $e() {
530
+ });
531
+ qe.displayName = "BoardToolbar";
532
+ const ls = ["LOW", "MEDIUM", "HIGH", "URGENT"], Xe = P.forwardRef(({ className: t, ...s }, n) => {
509
533
  const {
510
- columns: t,
511
- members: s,
512
- selectedTaskIds: n,
513
- clearSelection: r,
514
- onBulkAction: i
515
- } = G(), u = n.size, w = Array.from(n), k = s, h = (l, f) => {
516
- i({ type: l, taskIds: w, value: f }), r();
534
+ columns: r,
535
+ members: c,
536
+ selectedTaskIds: o,
537
+ clearSelection: u,
538
+ onBulkAction: I
539
+ } = K(), w = o.size, p = Array.from(o), x = c, g = (d, C) => {
540
+ I({ type: d, taskIds: p, value: C }), u();
517
541
  };
518
- return /* @__PURE__ */ e(
519
- "div",
542
+ return /* @__PURE__ */ e(ie, { initial: !1, children: w > 0 && /* @__PURE__ */ e(
543
+ se.div,
520
544
  {
521
- className: N(
522
- "grid transition-[grid-template-rows,opacity] duration-moderate-02 ease-expressive-entrance",
523
- u > 0 ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"
524
- ),
545
+ ref: n,
546
+ initial: { height: 0, opacity: 0 },
547
+ animate: { height: "auto", opacity: 1 },
548
+ exit: { height: 0, opacity: 0 },
549
+ transition: ae.smooth,
550
+ className: N("overflow-hidden", t),
551
+ ...jt(s),
525
552
  "aria-live": "polite",
526
- children: /* @__PURE__ */ e("div", { className: "overflow-hidden", children: /* @__PURE__ */ a("div", { className: "flex items-center gap-ds-03 py-ds-02", children: [
553
+ children: /* @__PURE__ */ a("div", { className: "flex items-center gap-ds-03 py-ds-02", children: [
527
554
  /* @__PURE__ */ a("div", { className: "flex items-center gap-ds-02", children: [
528
- /* @__PURE__ */ a("span", { className: "text-ds-sm font-medium text-text-primary", children: [
529
- u,
555
+ /* @__PURE__ */ a("span", { className: "text-ds-sm font-medium text-surface-fg", children: [
556
+ w,
530
557
  " selected"
531
558
  ] }),
532
559
  /* @__PURE__ */ e(
533
- _,
560
+ F,
534
561
  {
535
562
  variant: "ghost",
536
563
  size: "icon-md",
537
- onClick: r,
564
+ onClick: u,
538
565
  "aria-label": "Clear selection",
539
566
  title: "Clear selection",
540
567
  className: "h-6 w-6",
541
- children: /* @__PURE__ */ e(le, { className: "h-3.5 w-3.5" })
568
+ children: /* @__PURE__ */ e(Ce, { className: "h-3.5 w-3.5" })
542
569
  }
543
570
  )
544
571
  ] }),
545
- /* @__PURE__ */ e("div", { className: "h-4 w-px bg-border-subtle" }),
546
- /* @__PURE__ */ e("div", { className: "animate-fade-in delay-stagger", style: { "--stagger-index": 0 }, children: /* @__PURE__ */ a(F, { children: [
547
- /* @__PURE__ */ e(V, { asChild: !0, children: /* @__PURE__ */ a(_, { variant: "ghost", size: "sm", title: "Move to column", tabIndex: u > 0 ? 0 : -1, children: [
548
- /* @__PURE__ */ e(pe, { className: "h-ico-sm w-ico-sm mr-ds-01" }),
549
- "Move"
550
- ] }) }),
551
- /* @__PURE__ */ a(U, { align: "start", className: "w-44", children: [
552
- /* @__PURE__ */ e(q, { children: "Move to" }),
553
- /* @__PURE__ */ e(H, {}),
554
- t.map((l) => /* @__PURE__ */ e(
555
- z,
556
- {
557
- onClick: () => h("move", l.id),
558
- children: l.name
559
- },
560
- l.id
561
- ))
562
- ] })
563
- ] }) }),
564
- /* @__PURE__ */ e("div", { className: "animate-fade-in delay-stagger", style: { "--stagger-index": 1 }, children: /* @__PURE__ */ a(F, { children: [
565
- /* @__PURE__ */ e(V, { asChild: !0, children: /* @__PURE__ */ a(_, { variant: "ghost", size: "sm", title: "Set priority", tabIndex: u > 0 ? 0 : -1, children: [
566
- /* @__PURE__ */ e(de, { className: "h-ico-sm w-ico-sm mr-ds-01" }),
567
- "Priority"
572
+ /* @__PURE__ */ e("div", { className: "h-4 w-px bg-surface-border" }),
573
+ /* @__PURE__ */ a(le, { className: "contents", children: [
574
+ /* @__PURE__ */ e(Q, { children: /* @__PURE__ */ a(U, { children: [
575
+ /* @__PURE__ */ e(V, { asChild: !0, children: /* @__PURE__ */ a(F, { variant: "ghost", size: "sm", title: "Move to column", children: [
576
+ /* @__PURE__ */ e(Se, { className: "h-ico-sm w-ico-sm mr-ds-01" }),
577
+ "Move"
578
+ ] }) }),
579
+ /* @__PURE__ */ a(G, { align: "start", className: "w-44", children: [
580
+ /* @__PURE__ */ e(te, { children: "Move to" }),
581
+ /* @__PURE__ */ e(Y, {}),
582
+ r.map((d) => /* @__PURE__ */ e(
583
+ _,
584
+ {
585
+ onClick: () => g("move", d.id),
586
+ children: d.name
587
+ },
588
+ d.id
589
+ ))
590
+ ] })
568
591
  ] }) }),
569
- /* @__PURE__ */ a(U, { align: "start", className: "w-40", children: [
570
- /* @__PURE__ */ e(q, { children: "Set priority" }),
571
- /* @__PURE__ */ e(H, {}),
572
- Ft.map((l) => /* @__PURE__ */ e(
573
- z,
574
- {
575
- onClick: () => h("priority", l),
576
- className: me[l],
577
- children: l.charAt(0) + l.slice(1).toLowerCase()
578
- },
579
- l
580
- ))
581
- ] })
582
- ] }) }),
583
- k.length > 0 && /* @__PURE__ */ e("div", { className: "animate-fade-in delay-stagger", style: { "--stagger-index": 2 }, children: /* @__PURE__ */ a(F, { children: [
584
- /* @__PURE__ */ e(V, { asChild: !0, children: /* @__PURE__ */ a(_, { variant: "ghost", size: "sm", title: "Assign", tabIndex: u > 0 ? 0 : -1, children: [
585
- /* @__PURE__ */ e(Z, { className: "h-ico-sm w-ico-sm mr-ds-01" }),
586
- "Assign"
592
+ /* @__PURE__ */ e(Q, { children: /* @__PURE__ */ a(U, { children: [
593
+ /* @__PURE__ */ e(V, { asChild: !0, children: /* @__PURE__ */ a(F, { variant: "ghost", size: "sm", title: "Set priority", children: [
594
+ /* @__PURE__ */ e(Ne, { className: "h-ico-sm w-ico-sm mr-ds-01" }),
595
+ "Priority"
596
+ ] }) }),
597
+ /* @__PURE__ */ a(G, { align: "start", className: "w-40", children: [
598
+ /* @__PURE__ */ e(te, { children: "Set priority" }),
599
+ /* @__PURE__ */ e(Y, {}),
600
+ ls.map((d) => /* @__PURE__ */ e(
601
+ _,
602
+ {
603
+ onClick: () => g("priority", d),
604
+ className: Ie[d],
605
+ children: d.charAt(0) + d.slice(1).toLowerCase()
606
+ },
607
+ d
608
+ ))
609
+ ] })
587
610
  ] }) }),
588
- /* @__PURE__ */ a(U, { align: "start", className: "w-44 max-h-48 overflow-y-auto", children: [
589
- /* @__PURE__ */ e(q, { children: "Assign to" }),
590
- /* @__PURE__ */ e(H, {}),
591
- k.map((l) => /* @__PURE__ */ e(
592
- z,
593
- {
594
- onClick: () => h("assign", l.id),
595
- children: l.name
596
- },
597
- l.id
598
- ))
599
- ] })
600
- ] }) }),
601
- /* @__PURE__ */ e("div", { className: "animate-fade-in delay-stagger", style: { "--stagger-index": 3 }, children: /* @__PURE__ */ a(F, { children: [
602
- /* @__PURE__ */ e(V, { asChild: !0, children: /* @__PURE__ */ a(_, { variant: "ghost", size: "sm", title: "Set visibility", tabIndex: u > 0 ? 0 : -1, children: [
603
- /* @__PURE__ */ e(ee, { className: "h-ico-sm w-ico-sm mr-ds-01" }),
604
- "Visibility"
611
+ x.length > 0 && /* @__PURE__ */ e(Q, { children: /* @__PURE__ */ a(U, { children: [
612
+ /* @__PURE__ */ e(V, { asChild: !0, children: /* @__PURE__ */ a(F, { variant: "ghost", size: "sm", title: "Assign", children: [
613
+ /* @__PURE__ */ e(ce, { className: "h-ico-sm w-ico-sm mr-ds-01" }),
614
+ "Assign"
615
+ ] }) }),
616
+ /* @__PURE__ */ a(G, { align: "start", className: "w-44 max-h-48 overflow-y-auto", children: [
617
+ /* @__PURE__ */ e(te, { children: "Assign to" }),
618
+ /* @__PURE__ */ e(Y, {}),
619
+ x.map((d) => /* @__PURE__ */ e(
620
+ _,
621
+ {
622
+ onClick: () => g("assign", d.id),
623
+ children: d.name
624
+ },
625
+ d.id
626
+ ))
627
+ ] })
605
628
  ] }) }),
606
- /* @__PURE__ */ a(U, { align: "start", className: "w-40", children: [
607
- /* @__PURE__ */ e(z, { onClick: () => h("visibility", "INTERNAL"), children: "Internal only" }),
608
- /* @__PURE__ */ e(z, { onClick: () => h("visibility", "EVERYONE"), children: "Visible to all" })
609
- ] })
610
- ] }) }),
629
+ /* @__PURE__ */ e(Q, { children: /* @__PURE__ */ a(U, { children: [
630
+ /* @__PURE__ */ e(V, { asChild: !0, children: /* @__PURE__ */ a(F, { variant: "ghost", size: "sm", title: "Set visibility", children: [
631
+ /* @__PURE__ */ e(de, { className: "h-ico-sm w-ico-sm mr-ds-01" }),
632
+ "Visibility"
633
+ ] }) }),
634
+ /* @__PURE__ */ a(G, { align: "start", className: "w-40", children: [
635
+ /* @__PURE__ */ e(_, { onClick: () => g("visibility", "INTERNAL"), children: "Internal only" }),
636
+ /* @__PURE__ */ e(_, { onClick: () => g("visibility", "EVERYONE"), children: "Visible to all" })
637
+ ] })
638
+ ] }) })
639
+ ] }),
611
640
  /* @__PURE__ */ e("div", { className: "flex-1" }),
612
- /* @__PURE__ */ e("div", { className: "animate-fade-in delay-stagger", style: { "--stagger-index": 4 }, children: /* @__PURE__ */ a(
613
- _,
641
+ /* @__PURE__ */ e(le, { children: /* @__PURE__ */ e(Q, { children: /* @__PURE__ */ a(
642
+ F,
614
643
  {
615
644
  variant: "ghost",
616
645
  size: "sm",
617
646
  className: "text-error hover:text-error",
618
- onClick: () => h("delete"),
647
+ onClick: () => g("delete"),
619
648
  title: "Delete selected tasks",
620
- tabIndex: u > 0 ? 0 : -1,
621
649
  children: [
622
- /* @__PURE__ */ e(xe, { className: "h-ico-sm w-ico-sm mr-ds-01" }),
650
+ /* @__PURE__ */ e(Ae, { className: "h-ico-sm w-ico-sm mr-ds-01" }),
623
651
  "Delete"
624
652
  ]
625
653
  }
626
- ) })
627
- ] }) })
654
+ ) }) })
655
+ ] })
628
656
  }
629
- );
630
- }
631
- $e.displayName = "BulkActionBar";
632
- function Vt(t) {
657
+ ) });
658
+ });
659
+ Xe.displayName = "BulkActionBar";
660
+ function cs(t) {
633
661
  const s = /* @__PURE__ */ new Set(), n = [];
634
662
  for (const r of t.tasks) {
635
663
  r.owner && !s.has(r.owner.id) && (s.add(r.owner.id), n.push(r.owner));
636
- for (const i of r.assignees)
637
- s.has(i.id) || (s.add(i.id), n.push(i));
664
+ for (const c of r.assignees)
665
+ s.has(c.id) || (s.add(c.id), n.push(c));
638
666
  }
639
667
  return n;
640
668
  }
641
- function Ut({ columnId: t, currentLimit: s, onClose: n }) {
642
- const { onColumnWipLimitChange: r } = G(), [i, u] = E(s != null ? String(s) : ""), w = W(() => {
643
- const h = i.trim();
644
- if (h === "")
669
+ function ds({ columnId: t, currentLimit: s, onClose: n }) {
670
+ const { onColumnWipLimitChange: r } = K(), [c, o] = E(s != null ? String(s) : ""), u = O(() => {
671
+ const w = c.trim();
672
+ if (w === "")
645
673
  r(t, null);
646
674
  else {
647
- const l = parseInt(h, 10);
648
- !isNaN(l) && l > 0 && r(t, l);
675
+ const p = parseInt(w, 10);
676
+ !isNaN(p) && p > 0 && r(t, p);
649
677
  }
650
678
  n();
651
- }, [i, t, r, n]);
679
+ }, [c, t, r, n]);
652
680
  return (
653
681
  // eslint-disable-next-line jsx-a11y/no-autofocus -- intentional: input opens after user selects "Set WIP Limit"
654
682
  /* @__PURE__ */ e(
655
- oe,
683
+ ke,
656
684
  {
657
685
  type: "number",
658
686
  min: 1,
659
- value: i,
660
- onChange: (h) => u(h.target.value),
661
- onBlur: w,
662
- onKeyDown: (h) => {
663
- h.key === "Enter" && w(), h.key === "Escape" && n();
687
+ value: c,
688
+ onChange: (w) => o(w.target.value),
689
+ onBlur: u,
690
+ onKeyDown: (w) => {
691
+ w.key === "Enter" && u(), w.key === "Escape" && n();
664
692
  },
665
693
  placeholder: "Limit...",
666
694
  "aria-label": "WIP limit",
@@ -671,57 +699,57 @@ function Ut({ columnId: t, currentLimit: s, onClose: n }) {
671
699
  )
672
700
  );
673
701
  }
674
- function Pe({ column: t, index: s }) {
675
- var te;
702
+ const Je = P.forwardRef(({ column: t, index: s, className: n, ...r }, c) => {
703
+ var fe;
676
704
  const {
677
- members: n,
678
- onColumnRename: r,
679
- onColumnDelete: i,
680
- onColumnToggleVisibility: u,
681
- onTaskAdd: w
682
- } = G(), [k, h] = E(!1), [l, f] = E(t.name), [S, I] = E(!1), [c, D] = E(!1), [d, v] = E(""), [m, T] = E(null), [g, y] = E(""), x = ie(null), o = n, p = we[s % we.length], R = t.tasks.length, L = t.wipLimit ?? null, A = L != null && R > L, P = Vt(t), O = () => {
683
- f(t.name), h(!0);
684
- }, C = () => {
685
- const b = l.trim();
686
- b && b !== t.name && r(t.id, b), h(!1);
687
- }, M = (b) => {
688
- b.key === "Enter" && C(), b.key === "Escape" && (f(t.name), h(!1));
689
- }, B = () => {
690
- v(""), T(null), y(""), D(!1);
691
- }, j = () => {
692
- const b = d.trim();
693
- b && (w(t.id, {
694
- title: b,
695
- ownerId: m,
696
- dueDate: g || null
697
- }), B());
698
- }, X = (b) => {
699
- b.key === "Enter" && j(), b.key === "Escape" && B();
700
- }, ue = () => {
701
- c ? B() : (D(!0), setTimeout(() => {
702
- var b;
703
- return (b = x.current) == null ? void 0 : b.focus();
705
+ members: o,
706
+ onColumnRename: u,
707
+ onColumnDelete: I,
708
+ onColumnToggleVisibility: w,
709
+ onTaskAdd: p
710
+ } = K(), [x, g] = E(!1), [d, C] = E(t.name), [D, l] = E(!1), [v, m] = E(!1), [R, h] = E(""), [f, T] = E(null), [L, $] = E(""), y = ye(null), i = o, b = Be[s % Be.length], A = t.tasks.length, M = t.wipLimit ?? null, S = M != null && A > M, W = cs(t), q = () => {
711
+ C(t.name), g(!0);
712
+ }, X = () => {
713
+ const k = d.trim();
714
+ k && k !== t.name && u(t.id, k), g(!1);
715
+ }, ue = (k) => {
716
+ k.key === "Enter" && X(), k.key === "Escape" && (C(t.name), g(!1));
717
+ }, J = () => {
718
+ h(""), T(null), $(""), m(!1);
719
+ }, ne = () => {
720
+ const k = R.trim();
721
+ k && (p(t.id, {
722
+ title: k,
723
+ ownerId: f,
724
+ dueDate: L || null
725
+ }), J());
726
+ }, me = (k) => {
727
+ k.key === "Enter" && ne(), k.key === "Escape" && J();
728
+ }, he = () => {
729
+ v ? J() : (m(!0), setTimeout(() => {
730
+ var k;
731
+ return (k = y.current) == null ? void 0 : k.focus();
704
732
  }, 50));
705
733
  };
706
- return /* @__PURE__ */ a("div", { className: "group/header flex flex-col gap-ds-02", children: [
734
+ return /* @__PURE__ */ a("div", { ref: c, className: N("group/header flex flex-col gap-ds-02", n), ...r, children: [
707
735
  /* @__PURE__ */ a("div", { className: "flex items-center gap-ds-02 px-ds-04 pt-ds-03 pb-ds-02", children: [
708
736
  /* @__PURE__ */ e(
709
737
  "span",
710
738
  {
711
- className: N("h-2.5 w-2.5 flex-shrink-0 rounded-full", p),
739
+ className: N("h-2.5 w-2.5 flex-shrink-0 rounded-full", b),
712
740
  "aria-hidden": "true",
713
741
  title: t.name
714
742
  }
715
743
  ),
716
- k ? (
744
+ x ? (
717
745
  // eslint-disable-next-line jsx-a11y/no-autofocus -- intentional: input appears after user double-clicks to rename
718
746
  /* @__PURE__ */ e(
719
- oe,
747
+ ke,
720
748
  {
721
- value: l,
722
- onChange: (b) => f(b.target.value),
723
- onBlur: C,
724
- onKeyDown: M,
749
+ value: d,
750
+ onChange: (k) => C(k.target.value),
751
+ onBlur: X,
752
+ onKeyDown: ue,
725
753
  "aria-label": "Column name",
726
754
  size: "sm",
727
755
  className: "h-ds-xs flex-1 text-ds-sm font-semibold",
@@ -731,60 +759,60 @@ function Pe({ column: t, index: s }) {
731
759
  ) : /* @__PURE__ */ a(
732
760
  "h3",
733
761
  {
734
- className: "flex-1 truncate text-ds-sm font-semibold text-text-primary",
735
- onDoubleClick: O,
762
+ className: "flex-1 truncate text-ds-sm font-semibold text-surface-fg",
763
+ onDoubleClick: q,
736
764
  title: t.name,
737
- "aria-label": L != null ? `${t.name}, ${R} of ${L} tasks${A ? ", WIP limit exceeded" : ""}` : `${t.name}, ${R} tasks`,
765
+ "aria-label": M != null ? `${t.name}, ${A} of ${M} tasks${S ? ", WIP limit exceeded" : ""}` : `${t.name}, ${A} tasks`,
738
766
  children: [
739
767
  t.name,
740
- /* @__PURE__ */ a("span", { className: "ml-ds-02 text-ds-xs font-normal text-text-tertiary", children: [
768
+ /* @__PURE__ */ a("span", { className: "ml-ds-02 text-ds-xs font-normal text-surface-fg-subtle", children: [
741
769
  "(",
742
- R,
770
+ A,
743
771
  ")"
744
772
  ] })
745
773
  ]
746
774
  }
747
775
  ),
748
- S ? /* @__PURE__ */ e(
749
- Ut,
776
+ D ? /* @__PURE__ */ e(
777
+ ds,
750
778
  {
751
779
  columnId: t.id,
752
- currentLimit: L,
753
- onClose: () => I(!1)
780
+ currentLimit: M,
781
+ onClose: () => l(!1)
754
782
  }
755
- ) : L != null ? /* @__PURE__ */ a(
783
+ ) : M != null ? /* @__PURE__ */ a(
756
784
  "span",
757
785
  {
758
786
  className: N(
759
787
  "flex-shrink-0 text-ds-xs tabular-nums",
760
- A ? "font-semibold text-error" : "text-text-tertiary"
788
+ S ? "font-semibold text-error-11" : "text-surface-fg-subtle"
761
789
  ),
762
- "aria-label": `WIP limit: ${L}${A ? ", exceeded" : ""}`,
790
+ "aria-label": `WIP limit: ${M}${S ? ", exceeded" : ""}`,
763
791
  children: [
764
792
  "/ ",
765
- L
793
+ M
766
794
  ]
767
795
  }
768
796
  ) : null,
769
797
  /* @__PURE__ */ e(
770
- _,
798
+ F,
771
799
  {
772
800
  variant: "ghost",
773
801
  size: "icon-md",
774
802
  className: N(
775
803
  "h-ds-xs w-ds-xs flex-shrink-0 opacity-0 transition-opacity",
776
804
  "group-hover/header:opacity-100 focus:opacity-100",
777
- "hover:bg-interactive-subtle hover:text-interactive"
805
+ "hover:bg-accent-2 hover:text-accent-11"
778
806
  ),
779
807
  "aria-label": "Add task",
780
808
  title: "Add task",
781
- onClick: ue,
782
- children: /* @__PURE__ */ e(ye, { className: "h-ico-sm w-ico-sm" })
809
+ onClick: he,
810
+ children: /* @__PURE__ */ e(Me, { className: "h-ico-sm w-ico-sm" })
783
811
  }
784
812
  ),
785
- /* @__PURE__ */ a(F, { children: [
813
+ /* @__PURE__ */ a(U, { children: [
786
814
  /* @__PURE__ */ e(V, { asChild: !0, children: /* @__PURE__ */ e(
787
- _,
815
+ F,
788
816
  {
789
817
  variant: "ghost",
790
818
  size: "icon-md",
@@ -794,39 +822,39 @@ function Pe({ column: t, index: s }) {
794
822
  ),
795
823
  "aria-label": "Column options",
796
824
  title: "Column options",
797
- children: /* @__PURE__ */ e(vt, { className: "h-ico-sm w-ico-sm" })
825
+ children: /* @__PURE__ */ e(Pt, { className: "h-ico-sm w-ico-sm" })
798
826
  }
799
827
  ) }),
800
- /* @__PURE__ */ a(U, { align: "end", className: "w-48", children: [
801
- /* @__PURE__ */ a(z, { onClick: O, children: [
802
- /* @__PURE__ */ e(bt, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
828
+ /* @__PURE__ */ a(G, { align: "end", className: "w-48", children: [
829
+ /* @__PURE__ */ a(_, { onClick: q, children: [
830
+ /* @__PURE__ */ e(_t, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
803
831
  "Rename"
804
832
  ] }),
805
- /* @__PURE__ */ a(z, { onClick: () => I(!0), children: [
806
- /* @__PURE__ */ e(wt, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
833
+ /* @__PURE__ */ a(_, { onClick: () => l(!0), children: [
834
+ /* @__PURE__ */ e(zt, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
807
835
  "Set WIP Limit"
808
836
  ] }),
809
837
  /* @__PURE__ */ e(
810
- z,
838
+ _,
811
839
  {
812
- onClick: () => u(t.id, !(t.isClientVisible ?? !1)),
813
- children: t.isClientVisible ? /* @__PURE__ */ a(re, { children: [
814
- /* @__PURE__ */ e(Se, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
840
+ onClick: () => w(t.id, !(t.isClientVisible ?? !1)),
841
+ children: t.isClientVisible ? /* @__PURE__ */ a(ve, { children: [
842
+ /* @__PURE__ */ e(Ve, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
815
843
  "Hide from client"
816
- ] }) : /* @__PURE__ */ a(re, { children: [
817
- /* @__PURE__ */ e(ee, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
844
+ ] }) : /* @__PURE__ */ a(ve, { children: [
845
+ /* @__PURE__ */ e(de, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
818
846
  "Show to client"
819
847
  ] })
820
848
  }
821
849
  ),
822
- /* @__PURE__ */ e(H, {}),
850
+ /* @__PURE__ */ e(Y, {}),
823
851
  /* @__PURE__ */ a(
824
- z,
852
+ _,
825
853
  {
826
- className: "text-error focus:text-error",
827
- onClick: () => i(t.id),
854
+ className: "text-error-11 focus:text-error-11",
855
+ onClick: () => I(t.id),
828
856
  children: [
829
- /* @__PURE__ */ e(xe, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
857
+ /* @__PURE__ */ e(Ae, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
830
858
  "Delete column"
831
859
  ]
832
860
  }
@@ -834,69 +862,68 @@ function Pe({ column: t, index: s }) {
834
862
  ] })
835
863
  ] })
836
864
  ] }),
837
- P.length > 0 && /* @__PURE__ */ e("div", { className: "px-ds-04 pb-ds-02", children: /* @__PURE__ */ e(
838
- Tt,
865
+ W.length > 0 && /* @__PURE__ */ e("div", { className: "px-ds-04 pb-ds-02", children: /* @__PURE__ */ e(
866
+ Yt,
839
867
  {
840
- users: P,
868
+ users: W,
841
869
  max: 3,
842
870
  size: "sm",
843
871
  showTooltip: !0
844
872
  }
845
873
  ) }),
846
- /* @__PURE__ */ e(
847
- "div",
874
+ /* @__PURE__ */ e(ie, { initial: !1, children: v && /* @__PURE__ */ e(
875
+ se.div,
848
876
  {
849
- className: N(
850
- "grid transition-[grid-template-rows,opacity] duration-moderate-02 ease-expressive-entrance",
851
- c ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"
852
- ),
853
- children: /* @__PURE__ */ e("div", { className: "overflow-hidden", children: /* @__PURE__ */ a("div", { className: "px-ds-04 pb-ds-03 flex flex-col gap-ds-02", children: [
877
+ initial: { height: 0, opacity: 0 },
878
+ animate: { height: "auto", opacity: 1 },
879
+ exit: { height: 0, opacity: 0 },
880
+ transition: ae.smooth,
881
+ className: "overflow-hidden",
882
+ children: /* @__PURE__ */ a("div", { className: "px-ds-04 pb-ds-03 flex flex-col gap-ds-02", children: [
854
883
  /* @__PURE__ */ e(
855
- oe,
884
+ ke,
856
885
  {
857
- ref: x,
858
- value: d,
859
- onChange: (b) => v(b.target.value),
860
- onKeyDown: X,
886
+ ref: y,
887
+ value: R,
888
+ onChange: (k) => h(k.target.value),
889
+ onKeyDown: me,
861
890
  placeholder: "Task title...",
862
891
  "aria-label": "New task title",
863
892
  size: "sm",
864
- tabIndex: c ? 0 : -1,
865
- autoFocus: c
893
+ autoFocus: !0
866
894
  }
867
895
  ),
868
896
  /* @__PURE__ */ a("div", { className: "flex items-center gap-ds-01", children: [
869
- /* @__PURE__ */ a(F, { children: [
897
+ /* @__PURE__ */ a(U, { children: [
870
898
  /* @__PURE__ */ e(V, { asChild: !0, children: /* @__PURE__ */ e(
871
899
  "button",
872
900
  {
873
901
  className: N(
874
902
  "flex items-center justify-center h-6 w-6 rounded-ds-md transition-colors",
875
- m ? "text-interactive bg-interactive-subtle" : "text-text-tertiary hover:text-text-primary hover:bg-layer-active"
903
+ f ? "text-accent-11 bg-accent-2" : "text-surface-fg-subtle hover:text-surface-fg hover:bg-surface-4"
876
904
  ),
877
- title: m ? `Lead: ${(te = o.find((b) => b.id === m)) == null ? void 0 : te.name}` : "Assign task lead",
905
+ title: f ? `Lead: ${(fe = i.find((k) => k.id === f)) == null ? void 0 : fe.name}` : "Assign task lead",
878
906
  "aria-label": "Assign task lead",
879
- tabIndex: c ? 0 : -1,
880
- children: /* @__PURE__ */ e(Z, { className: "h-3.5 w-3.5" })
907
+ children: /* @__PURE__ */ e(ce, { className: "h-3.5 w-3.5" })
881
908
  }
882
909
  ) }),
883
- /* @__PURE__ */ a(U, { align: "start", className: "w-44 max-h-48 overflow-y-auto", children: [
884
- o.length === 0 && /* @__PURE__ */ e("div", { className: "px-ds-03 py-ds-02 text-ds-xs text-text-tertiary", children: "No members found" }),
885
- m && /* @__PURE__ */ a(re, { children: [
886
- /* @__PURE__ */ a(z, { onClick: () => T(null), children: [
887
- /* @__PURE__ */ e(le, { className: "mr-ds-02 h-3 w-3 text-text-tertiary" }),
910
+ /* @__PURE__ */ a(G, { align: "start", className: "w-44 max-h-48 overflow-y-auto", children: [
911
+ i.length === 0 && /* @__PURE__ */ e("div", { className: "px-ds-03 py-ds-02 text-ds-xs text-surface-fg-subtle", children: "No members found" }),
912
+ f && /* @__PURE__ */ a(ve, { children: [
913
+ /* @__PURE__ */ a(_, { onClick: () => T(null), children: [
914
+ /* @__PURE__ */ e(Ce, { className: "mr-ds-02 h-3 w-3 text-surface-fg-subtle" }),
888
915
  "Clear lead"
889
916
  ] }),
890
- /* @__PURE__ */ e(H, {})
917
+ /* @__PURE__ */ e(Y, {})
891
918
  ] }),
892
- o.map((b) => /* @__PURE__ */ e(
893
- z,
919
+ i.map((k) => /* @__PURE__ */ e(
920
+ _,
894
921
  {
895
- onClick: () => T(b.id),
896
- className: N(m === b.id && "bg-interactive-subtle"),
897
- children: b.name
922
+ onClick: () => T(k.id),
923
+ className: N(f === k.id && "bg-accent-2"),
924
+ children: k.name
898
925
  },
899
- b.id
926
+ k.id
900
927
  ))
901
928
  ] })
902
929
  ] }),
@@ -905,21 +932,20 @@ function Pe({ column: t, index: s }) {
905
932
  {
906
933
  className: N(
907
934
  "relative flex items-center justify-center h-6 w-6 rounded-ds-md cursor-pointer transition-colors",
908
- g ? "text-interactive bg-interactive-subtle" : "text-text-tertiary hover:text-text-primary hover:bg-layer-active"
935
+ L ? "text-accent-11 bg-accent-2" : "text-surface-fg-subtle hover:text-surface-fg hover:bg-surface-4"
909
936
  ),
910
- title: g ? `Due: ${g}` : "Set due date",
937
+ title: L ? `Due: ${L}` : "Set due date",
911
938
  "aria-label": "Set due date",
912
939
  children: [
913
- /* @__PURE__ */ e(ve, { className: "h-3.5 w-3.5" }),
940
+ /* @__PURE__ */ e(Le, { className: "h-3.5 w-3.5" }),
914
941
  /* @__PURE__ */ e(
915
942
  "input",
916
943
  {
917
944
  type: "date",
918
- value: g,
919
- onChange: (b) => y(b.target.value),
945
+ value: L,
946
+ onChange: (k) => $(k.target.value),
920
947
  className: "absolute inset-0 opacity-0 cursor-pointer w-full h-full",
921
- "aria-label": "Due date",
922
- tabIndex: c ? 0 : -1
948
+ "aria-label": "Due date"
923
949
  }
924
950
  )
925
951
  ]
@@ -929,37 +955,35 @@ function Pe({ column: t, index: s }) {
929
955
  /* @__PURE__ */ e(
930
956
  "button",
931
957
  {
932
- onClick: j,
933
- disabled: !d.trim(),
958
+ onClick: ne,
959
+ disabled: !R.trim(),
934
960
  className: N(
935
961
  "flex items-center justify-center h-6 w-6 rounded-ds-md transition-colors",
936
- d.trim() ? "text-success hover:bg-success-surface" : "text-text-quaternary cursor-not-allowed"
962
+ R.trim() ? "text-success-11 hover:bg-success-3" : "text-surface-fg-subtle cursor-not-allowed"
937
963
  ),
938
964
  title: "Confirm add task",
939
965
  "aria-label": "Confirm add task",
940
- tabIndex: c ? 0 : -1,
941
- children: /* @__PURE__ */ e(kt, { className: "h-3.5 w-3.5" })
966
+ children: /* @__PURE__ */ e(Ut, { className: "h-3.5 w-3.5" })
942
967
  }
943
968
  ),
944
969
  /* @__PURE__ */ e(
945
970
  "button",
946
971
  {
947
- onClick: B,
948
- className: "flex items-center justify-center h-6 w-6 rounded-ds-md text-text-tertiary hover:text-text-primary hover:bg-layer-active transition-colors",
972
+ onClick: J,
973
+ className: "flex items-center justify-center h-6 w-6 rounded-ds-md text-surface-fg-subtle hover:text-surface-fg hover:bg-surface-4 transition-colors",
949
974
  title: "Cancel",
950
975
  "aria-label": "Cancel adding task",
951
- tabIndex: c ? 0 : -1,
952
- children: /* @__PURE__ */ e(le, { className: "h-3.5 w-3.5" })
976
+ children: /* @__PURE__ */ e(Ce, { className: "h-3.5 w-3.5" })
953
977
  }
954
978
  )
955
979
  ] })
956
- ] }) })
980
+ ] })
957
981
  }
958
- )
982
+ ) })
959
983
  ] });
960
- }
961
- Pe.displayName = "ColumnHeader";
962
- function Gt() {
984
+ });
985
+ Je.displayName = "ColumnHeader";
986
+ function us() {
963
987
  return /* @__PURE__ */ a(
964
988
  "svg",
965
989
  {
@@ -979,7 +1003,7 @@ function Gt() {
979
1003
  }
980
1004
  );
981
1005
  }
982
- function Kt() {
1006
+ function ms() {
983
1007
  return /* @__PURE__ */ a(
984
1008
  "svg",
985
1009
  {
@@ -998,7 +1022,7 @@ function Kt() {
998
1022
  }
999
1023
  );
1000
1024
  }
1001
- function Ht() {
1025
+ function hs() {
1002
1026
  return /* @__PURE__ */ a(
1003
1027
  "svg",
1004
1028
  {
@@ -1024,7 +1048,7 @@ function Ht() {
1024
1048
  }
1025
1049
  );
1026
1050
  }
1027
- function Qt() {
1051
+ function fs() {
1028
1052
  return /* @__PURE__ */ a(
1029
1053
  "svg",
1030
1054
  {
@@ -1060,33 +1084,34 @@ function Qt() {
1060
1084
  }
1061
1085
  );
1062
1086
  }
1063
- const Ne = [
1064
- Gt,
1065
- Kt,
1066
- Ht,
1067
- Qt
1068
- ];
1069
- function _e({ index: t, onAddTask: s, isDropTarget: n = !1, className: r }) {
1070
- const i = Ne[t % Ne.length];
1087
+ const $e = [
1088
+ us,
1089
+ ms,
1090
+ hs,
1091
+ fs
1092
+ ], Ze = P.forwardRef(({ index: t, onAddTask: s, isDropTarget: n = !1, className: r, ...c }, o) => {
1093
+ const u = $e[t % $e.length];
1071
1094
  return /* @__PURE__ */ a(
1072
1095
  "div",
1073
1096
  {
1097
+ ref: o,
1074
1098
  className: N(
1075
1099
  "flex flex-col items-center justify-center gap-ds-03 py-ds-07 text-center",
1076
1100
  r
1077
1101
  ),
1102
+ ...c,
1078
1103
  children: [
1079
- /* @__PURE__ */ e("span", { className: "text-text-quaternary", children: /* @__PURE__ */ e(i, {}) }),
1080
- n ? /* @__PURE__ */ e("p", { className: "text-ds-sm text-text-tertiary", children: "Drop tasks here" }) : /* @__PURE__ */ a(re, { children: [
1081
- /* @__PURE__ */ e("p", { className: "text-ds-sm text-text-tertiary", children: "No tasks yet" }),
1104
+ /* @__PURE__ */ e("span", { className: "text-surface-fg-subtle", children: /* @__PURE__ */ e(u, {}) }),
1105
+ n ? /* @__PURE__ */ e("p", { className: "text-ds-sm text-surface-fg-subtle", children: "Drop tasks here" }) : /* @__PURE__ */ a(ve, { children: [
1106
+ /* @__PURE__ */ e("p", { className: "text-ds-sm text-surface-fg-subtle", children: "No tasks yet" }),
1082
1107
  /* @__PURE__ */ a(
1083
- _,
1108
+ F,
1084
1109
  {
1085
1110
  variant: "ghost",
1086
1111
  size: "sm",
1087
1112
  onClick: s,
1088
1113
  children: [
1089
- /* @__PURE__ */ e(ye, { className: "h-ico-sm w-ico-sm" }),
1114
+ /* @__PURE__ */ e(Me, { className: "h-ico-sm w-ico-sm" }),
1090
1115
  "Add a task"
1091
1116
  ]
1092
1117
  }
@@ -1095,35 +1120,35 @@ function _e({ index: t, onAddTask: s, isDropTarget: n = !1, className: r }) {
1095
1120
  ]
1096
1121
  }
1097
1122
  );
1098
- }
1099
- _e.displayName = "ColumnEmpty";
1100
- function jt(t) {
1101
- const s = new Date(t), n = /* @__PURE__ */ new Date(), r = s.getTime() - n.getTime(), i = Math.ceil(r / (1e3 * 60 * 60 * 24));
1102
- return i < 0 ? { label: "Overdue", className: "text-error" } : i === 0 ? { label: "Today", className: "text-warning" } : i === 1 ? { label: "Tomorrow", className: "text-warning" } : {
1123
+ });
1124
+ Ze.displayName = "ColumnEmpty";
1125
+ function gs(t) {
1126
+ const s = new Date(t), n = /* @__PURE__ */ new Date(), r = new Date(s.getFullYear(), s.getMonth(), s.getDate()), c = new Date(n.getFullYear(), n.getMonth(), n.getDate()), o = Math.round((r.getTime() - c.getTime()) / (1e3 * 60 * 60 * 24));
1127
+ return o < 0 ? { label: "Overdue", className: "text-error-11" } : o === 0 ? { label: "Today", className: "text-warning-11" } : o === 1 ? { label: "Tomorrow", className: "text-warning-11" } : {
1103
1128
  label: s.toLocaleDateString("en-IN", { month: "short", day: "numeric" }),
1104
- className: "text-text-tertiary"
1129
+ className: "text-surface-fg-subtle"
1105
1130
  };
1106
1131
  }
1107
- const ze = {
1108
- LOW: Me,
1109
- MEDIUM: pe,
1110
- HIGH: Ae,
1111
- URGENT: de
1112
- }, Yt = Te(
1113
- "group/card relative rounded-ds-lg border border-transparent bg-layer-01 pl-3 pr-ds-03 py-ds-03 transition-all duration-fast-02 ease-productive-standard cursor-pointer",
1132
+ const et = {
1133
+ LOW: Ke,
1134
+ MEDIUM: Se,
1135
+ HIGH: Ge,
1136
+ URGENT: Ne
1137
+ }, ps = ze(
1138
+ "group/card relative rounded-ds-lg border border-transparent bg-surface-3 pl-3 pr-ds-03 py-ds-03 transition-all duration-100 ease-out cursor-pointer",
1114
1139
  {
1115
1140
  variants: {
1116
1141
  state: {
1117
- default: "shadow-01 hover:shadow-02 hover:-translate-y-px hover:border-border",
1118
- dragging: "opacity-[0.38]",
1119
- overlay: "rotate-[2deg] shadow-03 backdrop-blur-sm ring-1 ring-interactive/40"
1142
+ default: "shadow-01 hover:shadow-02 hover:-translate-y-px hover:border-surface-border-strong",
1143
+ dragging: "opacity-action-disabled",
1144
+ overlay: "rotate-[2deg] shadow-03 backdrop-blur-sm ring-1 ring-accent-7"
1120
1145
  },
1121
1146
  blocked: {
1122
- true: "border-l-2 border-l-error",
1147
+ true: "border-l-2 border-l-error-9",
1123
1148
  false: ""
1124
1149
  },
1125
1150
  selected: {
1126
- true: "ring-1 ring-accent/50 shadow-[0_0_6px_rgba(var(--accent-rgb,99,102,241),0.15)] animate-glow-pulse",
1151
+ true: "ring-1 ring-accent-6 shadow-[0_0_6px_rgba(var(--accent-rgb,99,102,241),0.15)] ",
1127
1152
  false: ""
1128
1153
  },
1129
1154
  dimmed: {
@@ -1139,193 +1164,199 @@ const ze = {
1139
1164
  }
1140
1165
  }
1141
1166
  );
1142
- function Fe(t) {
1167
+ function tt(t) {
1143
1168
  const s = t.trim();
1144
1169
  if (!s) return "";
1145
1170
  const n = s.split(/\s+/);
1146
1171
  return n.length >= 2 ? (n[0][0] + n[1][0]).toUpperCase() : s.slice(0, 2).toUpperCase();
1147
1172
  }
1148
- function Ve({
1173
+ function st({
1149
1174
  task: t,
1150
1175
  isDragging: s,
1151
1176
  isDragOverlay: n,
1152
1177
  dragHandleProps: r
1153
1178
  }) {
1154
- var T;
1179
+ var R;
1155
1180
  const {
1156
- selectedTaskIds: i,
1157
- toggleTaskSelection: u,
1158
- focusedTaskId: w,
1159
- currentUserId: k,
1160
- highlightMyTasks: h,
1161
- onClickTask: l
1162
- } = G(), f = i.has(t.id), S = i.size > 0, I = w === t.id, c = t.dueDate ? jt(t.dueDate) : null, D = ze[t.priority], d = me[t.priority], v = h && k != null && ((T = t.owner) == null ? void 0 : T.id) !== k && !t.assignees.some((g) => g.id === k), m = [];
1181
+ selectedTaskIds: c,
1182
+ toggleTaskSelection: o,
1183
+ focusedTaskId: u,
1184
+ currentUserId: I,
1185
+ highlightMyTasks: w,
1186
+ onClickTask: p
1187
+ } = K(), x = c.has(t.id), g = c.size > 0, d = u === t.id, C = t.dueDate ? gs(t.dueDate) : null, D = et[t.priority], l = Ie[t.priority], v = w && I != null && ((R = t.owner) == null ? void 0 : R.id) !== I && !t.assignees.some((h) => h.id === I), m = [];
1163
1188
  t.owner && m.push({ name: t.owner.name, image: t.owner.image, isOwner: !0 });
1164
- for (const g of t.assignees)
1165
- t.owner && g.id === t.owner.id || m.push({ name: g.name, image: g.image, isOwner: !1 });
1166
- return /* @__PURE__ */ a(
1167
- "div",
1168
- {
1169
- role: "group",
1170
- tabIndex: 0,
1171
- "data-task-id": t.id,
1172
- "aria-label": `Task ${t.taskId}: ${t.title}`,
1173
- className: N(
1174
- Yt({
1175
- state: n ? "overlay" : s ? "dragging" : "default",
1176
- blocked: t.isBlocked,
1177
- selected: f,
1178
- dimmed: v
1179
- }),
1180
- n && "scale-[1.03] rotate-[1.5deg] shadow-03",
1181
- s && "opacity-40",
1182
- I && "ring-1 ring-focus"
1183
- ),
1184
- onClick: () => l(t.id),
1185
- onKeyDown: (g) => {
1186
- (g.key === "Enter" || g.key === " ") && (g.preventDefault(), l(t.id));
1187
- },
1188
- children: [
1189
- /* @__PURE__ */ e(
1190
- "div",
1191
- {
1192
- className: N(
1193
- "absolute -top-2 -left-2 z-10 transition-opacity",
1194
- S || f ? "opacity-100 animate-scale-bounce" : "opacity-0 group-hover/card:opacity-100"
1195
- ),
1196
- children: /* @__PURE__ */ e(
1197
- Ee,
1198
- {
1199
- checked: f,
1200
- onCheckedChange: () => u(t.id),
1201
- onClick: (g) => g.stopPropagation(),
1202
- "aria-label": `Select task ${t.taskId}`,
1203
- className: "rounded-full bg-layer-01 shadow-01"
1204
- }
1205
- )
1206
- }
1189
+ for (const h of t.assignees)
1190
+ t.owner && h.id === t.owner.id || m.push({ name: h.name, image: h.image, isOwner: !1 });
1191
+ return (
1192
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions -- role="group" groups task content for screen readers; click/key handlers are intentional
1193
+ /* @__PURE__ */ a(
1194
+ "div",
1195
+ {
1196
+ role: "group",
1197
+ tabIndex: 0,
1198
+ "data-task-id": t.id,
1199
+ "aria-label": `Task ${t.taskId}: ${t.title}`,
1200
+ className: N(
1201
+ ps({
1202
+ state: n ? "overlay" : s ? "dragging" : "default",
1203
+ blocked: t.isBlocked,
1204
+ selected: x,
1205
+ dimmed: v
1206
+ }),
1207
+ n && "scale-[1.03] rotate-[1.5deg] shadow-03",
1208
+ s && "opacity-40",
1209
+ d && "ring-1 ring-accent-9"
1207
1210
  ),
1208
- /* @__PURE__ */ a("div", { className: "flex items-center gap-ds-02", children: [
1209
- /* @__PURE__ */ e("span", { className: "text-ds-xs font-mono leading-none text-text-tertiary", children: t.taskId }),
1210
- /* @__PURE__ */ e(D, { className: N("h-3 w-3 flex-shrink-0", d), title: `Priority: ${t.priority}` }),
1211
- /* @__PURE__ */ e("div", { className: "flex-1" }),
1211
+ onClick: () => p(t.id),
1212
+ onKeyDown: (h) => {
1213
+ (h.key === "Enter" || h.key === " ") && (h.preventDefault(), p(t.id));
1214
+ },
1215
+ children: [
1212
1216
  /* @__PURE__ */ e(
1213
- "button",
1214
- {
1215
- className: N(
1216
- "flex-shrink-0 cursor-grab rounded p-ds-01 opacity-0 transition-opacity",
1217
- "group-hover/card:opacity-[0.38] hover:!opacity-100",
1218
- "active:cursor-grabbing",
1219
- n && "opacity-[0.38]"
1220
- ),
1221
- ...(r == null ? void 0 : r.attributes) ?? {},
1222
- ...(r == null ? void 0 : r.listeners) ?? {},
1223
- "aria-label": `Drag handle for task: ${t.title}`,
1224
- "aria-roledescription": "sortable",
1225
- onClick: (g) => g.stopPropagation(),
1226
- children: /* @__PURE__ */ e(Ct, { className: "h-ico-sm w-ico-sm text-icon-secondary" })
1227
- }
1228
- )
1229
- ] }),
1230
- /* @__PURE__ */ e("p", { className: "mt-ds-02 text-ds-sm font-medium text-text-primary line-clamp-2", children: t.title }),
1231
- /* @__PURE__ */ a("div", { className: "mt-ds-03 flex items-center gap-ds-02", children: [
1232
- c && /* @__PURE__ */ a(
1233
- "div",
1217
+ se.div,
1234
1218
  {
1235
1219
  className: N(
1236
- "flex items-center gap-ds-01 text-ds-xs leading-tight",
1237
- c.className
1220
+ "absolute -top-2 -left-2 z-10 transition-opacity",
1221
+ g || x ? "opacity-100" : "opacity-0 group-hover/card:opacity-100"
1238
1222
  ),
1239
- title: `Due: ${c.label}`,
1240
- children: [
1241
- /* @__PURE__ */ e(ve, { className: "h-3 w-3" }),
1242
- /* @__PURE__ */ e("span", { children: c.label })
1243
- ]
1244
- }
1245
- ),
1246
- t.subtaskCount > 0 && /* @__PURE__ */ a(
1247
- "div",
1248
- {
1249
- className: "flex items-center gap-ds-01 text-ds-xs text-text-tertiary",
1250
- title: `Subtasks: ${t.subtasksDone} of ${t.subtaskCount} done`,
1251
- children: [
1252
- /* @__PURE__ */ e(Nt, { className: "h-3 w-3" }),
1253
- /* @__PURE__ */ a("span", { children: [
1254
- t.subtasksDone,
1255
- "/",
1256
- t.subtaskCount
1257
- ] })
1258
- ]
1223
+ initial: g || x ? { scale: 0.85 } : !1,
1224
+ animate: { scale: 1 },
1225
+ transition: ae.bouncy,
1226
+ children: /* @__PURE__ */ e(
1227
+ je,
1228
+ {
1229
+ checked: x,
1230
+ onCheckedChange: () => o(t.id),
1231
+ onClick: (h) => h.stopPropagation(),
1232
+ "aria-label": `Select task ${t.taskId}`,
1233
+ className: "rounded-full bg-surface-1 shadow-01"
1234
+ }
1235
+ )
1259
1236
  }
1260
1237
  ),
1261
- t.visibility === "EVERYONE" && /* @__PURE__ */ e("span", { className: "flex items-center text-text-tertiary", "aria-label": "Client visible", title: "Visible to client", children: /* @__PURE__ */ e(ee, { className: "h-3 w-3" }) }),
1262
- t.isBlocked && /* @__PURE__ */ e("span", { className: "flex items-center text-error", "aria-label": "Blocked", title: "Blocked", children: /* @__PURE__ */ e(It, { className: "h-3 w-3" }) }),
1263
- /* @__PURE__ */ e("div", { className: "flex-1" }),
1264
- m.length > 0 && /* @__PURE__ */ a("div", { className: "flex items-center flex-shrink-0", children: [
1265
- m.slice(0, 3).map((g, y) => /* @__PURE__ */ a(
1266
- Rt,
1238
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-ds-02", children: [
1239
+ /* @__PURE__ */ e("span", { className: "text-ds-xs font-mono leading-none text-surface-fg-subtle", children: t.taskId }),
1240
+ /* @__PURE__ */ e(D, { className: N("h-3 w-3 flex-shrink-0", l), title: `Priority: ${t.priority}` }),
1241
+ /* @__PURE__ */ e("div", { className: "flex-1" }),
1242
+ /* @__PURE__ */ e(
1243
+ "button",
1244
+ {
1245
+ className: N(
1246
+ "flex-shrink-0 cursor-grab rounded p-ds-01 opacity-0 transition-opacity",
1247
+ "group-hover/card:opacity-action-disabled hover:!opacity-100",
1248
+ "active:cursor-grabbing",
1249
+ n && "opacity-action-disabled"
1250
+ ),
1251
+ ...(r == null ? void 0 : r.attributes) ?? {},
1252
+ ...(r == null ? void 0 : r.listeners) ?? {},
1253
+ "aria-label": `Drag handle for task: ${t.title}`,
1254
+ "aria-roledescription": "sortable",
1255
+ onClick: (h) => h.stopPropagation(),
1256
+ children: /* @__PURE__ */ e(Vt, { className: "h-ico-sm w-ico-sm text-surface-fg-subtle" })
1257
+ }
1258
+ )
1259
+ ] }),
1260
+ /* @__PURE__ */ e("p", { className: "mt-ds-02 text-ds-sm font-medium text-surface-fg line-clamp-2", children: t.title }),
1261
+ /* @__PURE__ */ a("div", { className: "mt-ds-03 flex items-center gap-ds-02", children: [
1262
+ C && /* @__PURE__ */ a(
1263
+ "div",
1267
1264
  {
1268
- size: "xs",
1269
1265
  className: N(
1270
- "text-ds-xs border-2 border-layer-01",
1271
- y > 0 && "-ml-ds-02b",
1272
- g.isOwner && "shadow-[0_0_0_1.5px_rgba(var(--accent-rgb,99,102,241),0.35),0_0_6px_rgba(var(--accent-rgb,99,102,241),0.2)]"
1266
+ "flex items-center gap-ds-01 text-ds-xs leading-tight",
1267
+ C.className
1273
1268
  ),
1274
- style: { zIndex: m.length - y },
1275
- title: g.name,
1269
+ title: `Due: ${C.label}`,
1276
1270
  children: [
1277
- g.image && /* @__PURE__ */ e(St, { src: g.image, alt: g.name }),
1278
- /* @__PURE__ */ e(At, { className: "font-body font-semibold", children: Fe(g.name) })
1271
+ /* @__PURE__ */ e(Le, { className: "h-3 w-3" }),
1272
+ /* @__PURE__ */ e("span", { children: C.label })
1279
1273
  ]
1280
- },
1281
- y
1282
- )),
1283
- m.length > 3 && /* @__PURE__ */ a("span", { className: "ml-ds-01 text-ds-xs text-text-tertiary", children: [
1284
- "+",
1285
- m.length - 3
1274
+ }
1275
+ ),
1276
+ t.subtaskCount > 0 && /* @__PURE__ */ a(
1277
+ "div",
1278
+ {
1279
+ className: "flex items-center gap-ds-01 text-ds-xs text-surface-fg-subtle",
1280
+ title: `Subtasks: ${t.subtasksDone} of ${t.subtaskCount} done`,
1281
+ children: [
1282
+ /* @__PURE__ */ e(Gt, { className: "h-3 w-3" }),
1283
+ /* @__PURE__ */ a("span", { children: [
1284
+ t.subtasksDone,
1285
+ "/",
1286
+ t.subtaskCount
1287
+ ] })
1288
+ ]
1289
+ }
1290
+ ),
1291
+ t.visibility === "EVERYONE" && /* @__PURE__ */ e("span", { className: "flex items-center text-surface-fg-subtle", "aria-label": "Client visible", title: "Visible to client", children: /* @__PURE__ */ e(de, { className: "h-3 w-3" }) }),
1292
+ t.isBlocked && /* @__PURE__ */ e("span", { className: "flex items-center text-error-11", "aria-label": "Blocked", title: "Blocked", children: /* @__PURE__ */ e(Kt, { className: "h-3 w-3" }) }),
1293
+ /* @__PURE__ */ e("div", { className: "flex-1" }),
1294
+ m.length > 0 && /* @__PURE__ */ a("div", { className: "flex items-center flex-shrink-0", children: [
1295
+ m.slice(0, 3).map((h, f) => /* @__PURE__ */ a(
1296
+ Qt,
1297
+ {
1298
+ size: "xs",
1299
+ className: N(
1300
+ "text-ds-xs border-2 border-surface-1",
1301
+ f > 0 && "-ml-ds-02b",
1302
+ h.isOwner && "shadow-[0_0_0_1.5px_rgba(var(--accent-rgb,99,102,241),0.35),0_0_6px_rgba(var(--accent-rgb,99,102,241),0.2)]"
1303
+ ),
1304
+ style: { zIndex: m.length - f },
1305
+ title: h.name,
1306
+ children: [
1307
+ h.image && /* @__PURE__ */ e(qt, { src: h.image, alt: h.name }),
1308
+ /* @__PURE__ */ e(Xt, { className: "font-body font-semibold", children: tt(h.name) })
1309
+ ]
1310
+ },
1311
+ f
1312
+ )),
1313
+ m.length > 3 && /* @__PURE__ */ a("span", { className: "ml-ds-01 text-ds-xs text-surface-fg-subtle", children: [
1314
+ "+",
1315
+ m.length - 3
1316
+ ] })
1286
1317
  ] })
1287
1318
  ] })
1288
- ] })
1289
- ]
1290
- }
1319
+ ]
1320
+ }
1321
+ )
1291
1322
  );
1292
1323
  }
1293
- const Ue = Q.forwardRef(
1294
- function({ task: s }, n) {
1324
+ const at = P.forwardRef(
1325
+ function({ task: s, className: n, ...r }, c) {
1295
1326
  const {
1296
- attributes: r,
1297
- listeners: i,
1298
- setNodeRef: u,
1327
+ attributes: o,
1328
+ listeners: u,
1329
+ setNodeRef: I,
1299
1330
  transform: w,
1300
- transition: k,
1301
- isDragging: h
1302
- } = Ie({
1331
+ transition: p,
1332
+ isDragging: x
1333
+ } = Pe({
1303
1334
  id: s.id,
1304
1335
  data: {
1305
1336
  type: "task",
1306
1337
  task: s
1307
1338
  }
1308
- }), l = Le(u, n), f = {
1309
- transform: De.Transform.toString(w),
1310
- transition: k
1339
+ }), g = He(I, c), d = {
1340
+ transform: _e.Transform.toString(w),
1341
+ transition: p
1311
1342
  };
1312
- return /* @__PURE__ */ e("div", { ref: l, style: f, children: /* @__PURE__ */ e(
1313
- Ve,
1343
+ return /* @__PURE__ */ e("div", { ref: g, style: d, className: n, ...r, children: /* @__PURE__ */ e(
1344
+ st,
1314
1345
  {
1315
1346
  task: s,
1316
- isDragging: h,
1317
- dragHandleProps: { attributes: r, listeners: i }
1347
+ isDragging: x,
1348
+ dragHandleProps: { attributes: o, listeners: u }
1318
1349
  }
1319
1350
  ) });
1320
1351
  }
1321
1352
  );
1322
- Ue.displayName = "TaskCard";
1323
- const qt = Te(
1324
- "group/card flex items-center gap-ds-02 py-2 pl-3 pr-ds-03 border border-transparent rounded-ds-lg bg-layer-01 transition-all duration-fast-02 ease-productive-standard cursor-pointer hover:bg-layer-active hover:shadow-02 hover:-translate-y-px",
1353
+ at.displayName = "TaskCard";
1354
+ const bs = ze(
1355
+ "group/card flex items-center gap-ds-02 py-2 pl-3 pr-ds-03 border border-transparent rounded-ds-lg bg-surface-3 transition-all duration-100 ease-out cursor-pointer hover:bg-surface-4 hover:shadow-02 hover:-translate-y-px",
1325
1356
  {
1326
1357
  variants: {
1327
1358
  selected: {
1328
- true: "ring-1 ring-accent/50 shadow-[0_0_6px_rgba(var(--accent-rgb,99,102,241),0.15)] animate-glow-pulse",
1359
+ true: "ring-1 ring-accent-6 shadow-[0_0_6px_rgba(var(--accent-rgb,99,102,241),0.15)] ",
1329
1360
  false: ""
1330
1361
  },
1331
1362
  dimmed: {
@@ -1339,7 +1370,7 @@ const qt = Te(
1339
1370
  }
1340
1371
  }
1341
1372
  );
1342
- function Ge({
1373
+ function nt({
1343
1374
  task: t,
1344
1375
  isDragging: s,
1345
1376
  isDragOverlay: n
@@ -1347,210 +1378,215 @@ function Ge({
1347
1378
  var v;
1348
1379
  const {
1349
1380
  selectedTaskIds: r,
1350
- toggleTaskSelection: i,
1351
- focusedTaskId: u,
1352
- currentUserId: w,
1353
- highlightMyTasks: k,
1354
- onClickTask: h
1355
- } = G(), l = r.has(t.id), f = r.size > 0, S = u === t.id, I = ze[t.priority], c = me[t.priority], D = k && w != null && ((v = t.owner) == null ? void 0 : v.id) !== w && !t.assignees.some((m) => m.id === w), d = t.owner ?? t.assignees[0] ?? null;
1356
- return /* @__PURE__ */ a(
1357
- "div",
1358
- {
1359
- role: "group",
1360
- tabIndex: 0,
1361
- "data-task-id": t.id,
1362
- "aria-label": `Task ${t.taskId}: ${t.title}`,
1363
- className: N(
1364
- "relative",
1365
- qt({
1366
- selected: l,
1367
- dimmed: D
1368
- }),
1369
- s && "opacity-40",
1370
- n && "scale-[1.03] rotate-[1.5deg] shadow-03",
1371
- S && "ring-1 ring-focus"
1372
- ),
1373
- onClick: () => h(t.id),
1374
- onKeyDown: (m) => {
1375
- (m.key === "Enter" || m.key === " ") && (m.preventDefault(), h(t.id));
1376
- },
1377
- children: [
1378
- /* @__PURE__ */ e(
1379
- "div",
1380
- {
1381
- className: N(
1382
- "absolute -top-1.5 -left-1.5 z-10 transition-opacity",
1383
- f || l ? "opacity-100 animate-scale-bounce" : "opacity-0 group-hover/card:opacity-100"
1384
- ),
1385
- children: /* @__PURE__ */ e(
1386
- Ee,
1387
- {
1388
- checked: l,
1389
- onCheckedChange: () => i(t.id),
1390
- onClick: (m) => m.stopPropagation(),
1391
- "aria-label": `Select task ${t.taskId}`,
1392
- className: "rounded-full bg-layer-01 shadow-01"
1393
- }
1394
- )
1395
- }
1381
+ toggleTaskSelection: c,
1382
+ focusedTaskId: o,
1383
+ currentUserId: u,
1384
+ highlightMyTasks: I,
1385
+ onClickTask: w
1386
+ } = K(), p = r.has(t.id), x = r.size > 0, g = o === t.id, d = et[t.priority], C = Ie[t.priority], D = I && u != null && ((v = t.owner) == null ? void 0 : v.id) !== u && !t.assignees.some((m) => m.id === u), l = t.owner ?? t.assignees[0] ?? null;
1387
+ return (
1388
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions -- role="group" groups task content for screen readers; click/key handlers are intentional
1389
+ /* @__PURE__ */ a(
1390
+ "div",
1391
+ {
1392
+ role: "group",
1393
+ tabIndex: 0,
1394
+ "data-task-id": t.id,
1395
+ "aria-label": `Task ${t.taskId}: ${t.title}`,
1396
+ className: N(
1397
+ "relative",
1398
+ bs({
1399
+ selected: p,
1400
+ dimmed: D
1401
+ }),
1402
+ s && "opacity-40",
1403
+ n && "scale-[1.03] rotate-[1.5deg] shadow-03",
1404
+ g && "ring-1 ring-accent-9"
1396
1405
  ),
1397
- /* @__PURE__ */ e(I, { className: N("h-3.5 w-3.5 flex-shrink-0", c), title: `Priority: ${t.priority}` }),
1398
- /* @__PURE__ */ e("span", { className: "text-ds-xs font-mono text-text-tertiary flex-shrink-0", children: t.taskId }),
1399
- /* @__PURE__ */ e("span", { className: "text-ds-sm text-text-primary line-clamp-1 flex-1 min-w-0", children: t.title }),
1400
- t.subtaskCount > 0 && /* @__PURE__ */ a("span", { className: "text-ds-xs text-text-tertiary flex-shrink-0", children: [
1401
- t.subtasksDone,
1402
- "/",
1403
- t.subtaskCount
1404
- ] }),
1405
- d && /* @__PURE__ */ e(
1406
- "div",
1407
- {
1408
- className: N(
1409
- "flex h-[14px] w-[14px] shrink-0 items-center justify-center rounded-full border border-layer-01 bg-interactive-subtle text-[6px] font-semibold leading-none text-interactive overflow-hidden",
1410
- t.owner && "shadow-[0_0_0_1px_rgba(var(--accent-rgb,99,102,241),0.35),0_0_4px_rgba(var(--accent-rgb,99,102,241),0.2)]"
1411
- ),
1412
- title: d.name,
1413
- children: d.image ? /* @__PURE__ */ e("img", { src: d.image, alt: d.name, className: "h-full w-full object-cover" }) : Fe(d.name)
1414
- }
1415
- )
1416
- ]
1417
- }
1406
+ onClick: () => w(t.id),
1407
+ onKeyDown: (m) => {
1408
+ (m.key === "Enter" || m.key === " ") && (m.preventDefault(), w(t.id));
1409
+ },
1410
+ children: [
1411
+ /* @__PURE__ */ e(
1412
+ se.div,
1413
+ {
1414
+ className: N(
1415
+ "absolute -top-1.5 -left-1.5 z-10 transition-opacity",
1416
+ x || p ? "opacity-100" : "opacity-0 group-hover/card:opacity-100"
1417
+ ),
1418
+ initial: x || p ? { scale: 0.85 } : !1,
1419
+ animate: { scale: 1 },
1420
+ transition: ae.bouncy,
1421
+ children: /* @__PURE__ */ e(
1422
+ je,
1423
+ {
1424
+ checked: p,
1425
+ onCheckedChange: () => c(t.id),
1426
+ onClick: (m) => m.stopPropagation(),
1427
+ "aria-label": `Select task ${t.taskId}`,
1428
+ className: "rounded-full bg-surface-1 shadow-01"
1429
+ }
1430
+ )
1431
+ }
1432
+ ),
1433
+ /* @__PURE__ */ e(d, { className: N("h-3.5 w-3.5 flex-shrink-0", C), title: `Priority: ${t.priority}` }),
1434
+ /* @__PURE__ */ e("span", { className: "text-ds-xs font-mono text-surface-fg-subtle flex-shrink-0", children: t.taskId }),
1435
+ /* @__PURE__ */ e("span", { className: "text-ds-sm text-surface-fg line-clamp-1 flex-1 min-w-0", children: t.title }),
1436
+ t.subtaskCount > 0 && /* @__PURE__ */ a("span", { className: "text-ds-xs text-surface-fg-subtle flex-shrink-0", children: [
1437
+ t.subtasksDone,
1438
+ "/",
1439
+ t.subtaskCount
1440
+ ] }),
1441
+ l && /* @__PURE__ */ e(
1442
+ "div",
1443
+ {
1444
+ className: N(
1445
+ "flex h-[14px] w-[14px] shrink-0 items-center justify-center rounded-full border border-surface-1 bg-accent-2 text-[6px] font-semibold leading-none text-accent-11 overflow-hidden",
1446
+ t.owner && "shadow-[0_0_0_1px_rgba(var(--accent-rgb,99,102,241),0.35),0_0_4px_rgba(var(--accent-rgb,99,102,241),0.2)]"
1447
+ ),
1448
+ title: l.name,
1449
+ children: l.image ? /* @__PURE__ */ e("img", { src: l.image, alt: l.name, className: "h-full w-full object-cover" }) : tt(l.name)
1450
+ }
1451
+ )
1452
+ ]
1453
+ }
1454
+ )
1418
1455
  );
1419
1456
  }
1420
- const Ke = Q.forwardRef(
1421
- function({ task: s }, n) {
1457
+ const rt = P.forwardRef(
1458
+ function({ task: s, className: n, ...r }, c) {
1422
1459
  const {
1423
- attributes: r,
1424
- listeners: i,
1425
- setNodeRef: u,
1460
+ attributes: o,
1461
+ listeners: u,
1462
+ setNodeRef: I,
1426
1463
  transform: w,
1427
- transition: k,
1428
- isDragging: h
1429
- } = Ie({
1464
+ transition: p,
1465
+ isDragging: x
1466
+ } = Pe({
1430
1467
  id: s.id,
1431
1468
  data: {
1432
1469
  type: "task",
1433
1470
  task: s
1434
1471
  }
1435
- }), l = Le(u, n), f = {
1436
- transform: De.Transform.toString(w),
1437
- transition: k
1472
+ }), g = He(I, c), d = {
1473
+ transform: _e.Transform.toString(w),
1474
+ transition: p
1438
1475
  };
1439
- return /* @__PURE__ */ e("div", { ref: l, style: f, children: /* @__PURE__ */ e(
1440
- Ge,
1476
+ return /* @__PURE__ */ e("div", { ref: g, style: d, className: n, ...r, children: /* @__PURE__ */ e(
1477
+ nt,
1441
1478
  {
1442
1479
  task: s,
1443
- isDragging: h,
1444
- dragHandleProps: { attributes: r, listeners: i }
1480
+ isDragging: x,
1481
+ dragHandleProps: { attributes: o, listeners: u }
1445
1482
  }
1446
1483
  ) });
1447
1484
  }
1448
1485
  );
1449
- Ke.displayName = "TaskCardCompact";
1450
- const He = Q.forwardRef(function({ task: s }, n) {
1451
- return /* @__PURE__ */ e("div", { ref: n, children: /* @__PURE__ */ e(Ge, { task: s, isDragOverlay: !0 }) });
1486
+ rt.displayName = "TaskCardCompact";
1487
+ const it = P.forwardRef(function({ task: s, className: n, ...r }, c) {
1488
+ return /* @__PURE__ */ e("div", { ref: c, className: n, ...r, children: /* @__PURE__ */ e(nt, { task: s, isDragOverlay: !0 }) });
1452
1489
  });
1453
- He.displayName = "TaskCardCompactOverlay";
1454
- const Qe = Q.forwardRef(
1455
- function({ task: s }, n) {
1456
- return /* @__PURE__ */ e("div", { ref: n, children: /* @__PURE__ */ e(Ve, { task: s, isDragOverlay: !0 }) });
1490
+ it.displayName = "TaskCardCompactOverlay";
1491
+ const ot = P.forwardRef(
1492
+ function({ task: s, className: n, ...r }, c) {
1493
+ return /* @__PURE__ */ e("div", { ref: c, className: n, ...r, children: /* @__PURE__ */ e(st, { task: s, isDragOverlay: !0 }) });
1457
1494
  }
1458
1495
  );
1459
- Qe.displayName = "TaskCardOverlay";
1460
- const Xt = [
1461
- { value: "LOW", label: "Low", icon: Me },
1462
- { value: "MEDIUM", label: "Medium", icon: pe },
1463
- { value: "HIGH", label: "High", icon: Ae },
1464
- { value: "URGENT", label: "Urgent", icon: de }
1465
- ];
1466
- function je({ taskId: t, children: s }) {
1496
+ ot.displayName = "TaskCardOverlay";
1497
+ const xs = [
1498
+ { value: "LOW", label: "Low", icon: Ke },
1499
+ { value: "MEDIUM", label: "Medium", icon: Se },
1500
+ { value: "HIGH", label: "High", icon: Ge },
1501
+ { value: "URGENT", label: "Urgent", icon: Ne }
1502
+ ], lt = P.forwardRef(({ taskId: t, children: s, className: n }, r) => {
1467
1503
  const {
1468
- rawColumns: n,
1469
- members: r,
1470
- onQuickPriorityChange: i,
1471
- onQuickAssign: u,
1504
+ rawColumns: c,
1505
+ members: o,
1506
+ onQuickPriorityChange: u,
1507
+ onQuickAssign: I,
1472
1508
  onQuickLabelAdd: w,
1473
- onQuickDueDateChange: k,
1474
- onQuickVisibilityChange: h,
1475
- onQuickDelete: l
1476
- } = G(), f = r, S = Oe(n), I = Q.useRef(null);
1477
- return /* @__PURE__ */ a(Mt, { children: [
1478
- /* @__PURE__ */ e(Lt, { children: s }),
1479
- /* @__PURE__ */ a(Et, { className: "w-52 animate-scale-in", children: [
1480
- /* @__PURE__ */ a(se, { children: [
1481
- /* @__PURE__ */ a(ne, { children: [
1482
- /* @__PURE__ */ e(de, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
1509
+ onQuickDueDateChange: p,
1510
+ onQuickVisibilityChange: x,
1511
+ onQuickDelete: g
1512
+ } = K(), d = o, C = Ye(c), D = P.useRef(null);
1513
+ return /* @__PURE__ */ a(Jt, { children: [
1514
+ /* @__PURE__ */ e(Zt, { ref: r, children: s }),
1515
+ /* @__PURE__ */ a(es, { className: N("w-52", n), children: [
1516
+ /* @__PURE__ */ a(be, { children: [
1517
+ /* @__PURE__ */ a(xe, { children: [
1518
+ /* @__PURE__ */ e(Ne, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
1483
1519
  "Set Priority"
1484
1520
  ] }),
1485
- /* @__PURE__ */ e(ae, { className: "w-40", children: Xt.map((c) => {
1486
- const D = c.icon;
1521
+ /* @__PURE__ */ e(we, { className: "w-40", children: xs.map((l) => {
1522
+ const v = l.icon;
1487
1523
  return /* @__PURE__ */ a(
1488
- Y,
1524
+ ee,
1489
1525
  {
1490
- onSelect: () => i(t, c.value),
1526
+ onSelect: () => u(t, l.value),
1491
1527
  children: [
1492
1528
  /* @__PURE__ */ e(
1493
- D,
1529
+ v,
1494
1530
  {
1495
1531
  className: N(
1496
1532
  "mr-ds-03 h-ico-sm w-ico-sm",
1497
- me[c.value]
1533
+ Ie[l.value]
1498
1534
  )
1499
1535
  }
1500
1536
  ),
1501
- c.label
1537
+ l.label
1502
1538
  ]
1503
1539
  },
1504
- c.value
1540
+ l.value
1505
1541
  );
1506
1542
  }) })
1507
1543
  ] }),
1508
- f.length > 0 && /* @__PURE__ */ a(se, { children: [
1509
- /* @__PURE__ */ a(ne, { children: [
1510
- /* @__PURE__ */ e(Z, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
1544
+ d.length > 0 && /* @__PURE__ */ a(be, { children: [
1545
+ /* @__PURE__ */ a(xe, { children: [
1546
+ /* @__PURE__ */ e(ce, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
1511
1547
  "Assign"
1512
1548
  ] }),
1513
- /* @__PURE__ */ e(ae, { className: "w-44 max-h-48 overflow-y-auto", children: f.map((c) => /* @__PURE__ */ e(
1514
- Y,
1549
+ /* @__PURE__ */ e(we, { className: "w-44 max-h-48 overflow-y-auto", children: d.map((l) => /* @__PURE__ */ e(
1550
+ ee,
1515
1551
  {
1516
- onSelect: () => u(t, c.id),
1517
- children: c.name
1552
+ onSelect: () => I(t, l.id),
1553
+ children: l.name
1518
1554
  },
1519
- c.id
1555
+ l.id
1520
1556
  )) })
1521
1557
  ] }),
1522
- /* @__PURE__ */ a(se, { children: [
1523
- /* @__PURE__ */ a(ne, { children: [
1524
- /* @__PURE__ */ e(Dt, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
1558
+ /* @__PURE__ */ a(be, { children: [
1559
+ /* @__PURE__ */ a(xe, { children: [
1560
+ /* @__PURE__ */ e(Ht, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
1525
1561
  "Add Label"
1526
1562
  ] }),
1527
- /* @__PURE__ */ e(ae, { className: "w-40 max-h-48 overflow-y-auto", children: S.length > 0 ? S.map((c) => /* @__PURE__ */ e(
1528
- Y,
1563
+ /* @__PURE__ */ e(we, { className: "w-40 max-h-48 overflow-y-auto", children: C.length > 0 ? C.map((l) => /* @__PURE__ */ e(
1564
+ ee,
1529
1565
  {
1530
- onSelect: () => w(t, c),
1531
- children: c
1566
+ onSelect: () => w(t, l),
1567
+ children: l
1532
1568
  },
1533
- c
1534
- )) : /* @__PURE__ */ e("div", { className: "px-ds-03 py-ds-02 text-ds-xs text-text-tertiary", children: "No labels found" }) })
1569
+ l
1570
+ )) : /* @__PURE__ */ e("div", { className: "px-ds-03 py-ds-02 text-ds-xs text-surface-fg-subtle", children: "No labels found" }) })
1535
1571
  ] }),
1536
1572
  /* @__PURE__ */ a(
1537
- Y,
1573
+ ee,
1538
1574
  {
1539
- onSelect: (c) => {
1540
- var D;
1541
- c.preventDefault(), (D = I.current) == null || D.showPicker();
1575
+ onSelect: (l) => {
1576
+ var v;
1577
+ l.preventDefault(), (v = D.current) == null || v.showPicker();
1542
1578
  },
1543
1579
  children: [
1544
- /* @__PURE__ */ e(ve, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
1580
+ /* @__PURE__ */ e(Le, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
1545
1581
  "Set Due Date",
1546
1582
  /* @__PURE__ */ e(
1547
1583
  "input",
1548
1584
  {
1549
- ref: I,
1585
+ ref: D,
1550
1586
  type: "date",
1551
1587
  className: "absolute opacity-0 pointer-events-none w-0 h-0",
1552
- onChange: (c) => {
1553
- k(t, c.target.value || null);
1588
+ onChange: (l) => {
1589
+ p(t, l.target.value || null);
1554
1590
  },
1555
1591
  tabIndex: -1
1556
1592
  }
@@ -1558,115 +1594,115 @@ function je({ taskId: t, children: s }) {
1558
1594
  ]
1559
1595
  }
1560
1596
  ),
1561
- /* @__PURE__ */ a(se, { children: [
1562
- /* @__PURE__ */ a(ne, { children: [
1563
- /* @__PURE__ */ e(ee, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
1597
+ /* @__PURE__ */ a(be, { children: [
1598
+ /* @__PURE__ */ a(xe, { children: [
1599
+ /* @__PURE__ */ e(de, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
1564
1600
  "Visibility"
1565
1601
  ] }),
1566
- /* @__PURE__ */ a(ae, { className: "w-44", children: [
1602
+ /* @__PURE__ */ a(we, { className: "w-44", children: [
1567
1603
  /* @__PURE__ */ a(
1568
- Y,
1604
+ ee,
1569
1605
  {
1570
- onSelect: () => h(t, "INTERNAL"),
1606
+ onSelect: () => x(t, "INTERNAL"),
1571
1607
  children: [
1572
- /* @__PURE__ */ e(Se, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
1608
+ /* @__PURE__ */ e(Ve, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
1573
1609
  "Internal only"
1574
1610
  ]
1575
1611
  }
1576
1612
  ),
1577
1613
  /* @__PURE__ */ a(
1578
- Y,
1614
+ ee,
1579
1615
  {
1580
- onSelect: () => h(t, "EVERYONE"),
1616
+ onSelect: () => x(t, "EVERYONE"),
1581
1617
  children: [
1582
- /* @__PURE__ */ e(ee, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
1618
+ /* @__PURE__ */ e(de, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
1583
1619
  "Visible to all"
1584
1620
  ]
1585
1621
  }
1586
1622
  )
1587
1623
  ] })
1588
1624
  ] }),
1589
- /* @__PURE__ */ e(Ot, {}),
1625
+ /* @__PURE__ */ e(ts, {}),
1590
1626
  /* @__PURE__ */ a(
1591
- Y,
1627
+ ee,
1592
1628
  {
1593
- className: "text-error focus:text-error",
1594
- onSelect: () => l(t),
1629
+ className: "text-error-11 focus:text-error-11",
1630
+ onSelect: () => g(t),
1595
1631
  children: [
1596
- /* @__PURE__ */ e(xe, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
1632
+ /* @__PURE__ */ e(Ae, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
1597
1633
  "Delete"
1598
1634
  ]
1599
1635
  }
1600
1636
  )
1601
1637
  ] })
1602
1638
  ] });
1603
- }
1604
- je.displayName = "TaskContextMenu";
1605
- function fe() {
1639
+ });
1640
+ lt.displayName = "TaskContextMenu";
1641
+ function Re() {
1606
1642
  return /* @__PURE__ */ a(
1607
- "div",
1643
+ se.div,
1608
1644
  {
1609
- className: "rounded-ds-lg border-2 border-dashed border-interactive/40 bg-interactive/[0.06] px-ds-04 py-ds-05",
1645
+ initial: { opacity: 0, scale: 0.95 },
1646
+ animate: { opacity: 1, scale: 1 },
1647
+ exit: { opacity: 0, scale: 0.95 },
1648
+ transition: ae.snappy,
1649
+ className: "rounded-ds-lg border-2 border-dashed border-accent-6 bg-accent-1 px-ds-04 py-ds-05",
1610
1650
  "aria-hidden": !0,
1611
1651
  children: [
1612
- /* @__PURE__ */ e("div", { className: "h-ds-xs-plus w-3/4 rounded-ds-md bg-interactive/10" }),
1613
- /* @__PURE__ */ e("div", { className: "mt-ds-02 h-[12px] w-1/2 rounded-ds-md bg-interactive/[0.06]" })
1652
+ /* @__PURE__ */ e("div", { className: "h-ds-xs-plus w-3/4 rounded-ds-md bg-accent-2" }),
1653
+ /* @__PURE__ */ e("div", { className: "mt-ds-02 h-[12px] w-1/2 rounded-ds-md bg-accent-1" })
1614
1654
  ]
1615
1655
  }
1616
1656
  );
1617
1657
  }
1618
- const Ye = Q.forwardRef(
1619
- function({ column: s, index: n, isOverlay: r, dragPreview: i, draggedTask: u }, w) {
1620
- const { viewMode: k } = G(), { setNodeRef: h, isOver: l } = et({
1658
+ const ct = P.forwardRef(
1659
+ function({ column: s, index: n, isOverlay: r, dragPreview: c, draggedTask: o, className: u, ...I }, w) {
1660
+ const { viewMode: p } = K(), { setNodeRef: x, isOver: g } = vt({
1621
1661
  id: `column-${s.id}`,
1622
1662
  data: {
1623
1663
  type: "column",
1624
1664
  column: s
1625
1665
  }
1626
- }), f = s.tasks.map((I) => I.id), S = s.wipLimit != null && s.tasks.length > s.wipLimit;
1666
+ }), d = s.tasks.map((D) => D.id), C = s.wipLimit != null && s.tasks.length > s.wipLimit;
1627
1667
  return /* @__PURE__ */ a(
1628
1668
  "div",
1629
1669
  {
1630
1670
  ref: w,
1631
1671
  className: N(
1632
- "flex h-full flex-shrink-0 flex-col rounded-ds-xl bg-layer-01/40 backdrop-blur-[2px] border border-border-subtle/20 hover:border-border-subtle/40 transition-colors p-1",
1672
+ "flex h-full flex-shrink-0 flex-col rounded-ds-xl bg-surface-2 border border-surface-3 hover:border-surface-border transition-colors p-1",
1633
1673
  r && "shadow-04",
1634
- S && "bg-error-surface/50"
1674
+ C && "bg-error-3",
1675
+ u
1635
1676
  ),
1636
- style: { width: Bt },
1677
+ ...I,
1678
+ style: { ...I.style, width: ss },
1637
1679
  children: [
1638
- /* @__PURE__ */ e(Pe, { column: s, index: n }),
1680
+ /* @__PURE__ */ e(Je, { column: s, index: n }),
1639
1681
  /* @__PURE__ */ a(
1640
- "div",
1682
+ se.div,
1641
1683
  {
1642
- ref: h,
1643
- className: N(
1644
- "no-scrollbar flex flex-1 flex-col gap-ds-02 overflow-y-auto px-ds-03 pt-2.5 pb-ds-03 transition-colors duration-fast-02 ease-productive-standard",
1645
- l && "bg-interactive-subtle/30"
1646
- ),
1684
+ ref: x,
1685
+ animate: {
1686
+ backgroundColor: g ? "var(--color-accent-1, rgba(59,130,246,0.06))" : "transparent"
1687
+ },
1688
+ transition: ae.snappy,
1689
+ className: "no-scrollbar flex flex-1 flex-col gap-ds-02 overflow-y-auto px-ds-03 pt-2.5 pb-ds-03",
1647
1690
  children: [
1648
- /* @__PURE__ */ a(Re, { items: f, strategy: tt, children: [
1649
- s.tasks.map((I, c) => /* @__PURE__ */ a(Q.Fragment, { children: [
1650
- i && i.index === c && /* @__PURE__ */ e(fe, {}),
1651
- /* @__PURE__ */ e(
1652
- "div",
1653
- {
1654
- className: "animate-slide-up delay-stagger",
1655
- style: { "--stagger-index": c },
1656
- children: /* @__PURE__ */ e(je, { taskId: I.id, children: k === "compact" ? /* @__PURE__ */ e(Ke, { task: I }) : /* @__PURE__ */ e(Ue, { task: I }) })
1657
- }
1658
- )
1659
- ] }, I.id)),
1660
- i && i.index >= s.tasks.length && /* @__PURE__ */ e(fe, {})
1691
+ /* @__PURE__ */ a(Ue, { items: d, strategy: yt, children: [
1692
+ /* @__PURE__ */ e(le, { className: "contents", children: s.tasks.map((D, l) => /* @__PURE__ */ a(P.Fragment, { children: [
1693
+ /* @__PURE__ */ e(ie, { children: c && c.index === l && /* @__PURE__ */ e(Re, {}) }),
1694
+ /* @__PURE__ */ e(Q, { children: /* @__PURE__ */ e(lt, { taskId: D.id, children: p === "compact" ? /* @__PURE__ */ e(rt, { task: D }) : /* @__PURE__ */ e(at, { task: D }) }) })
1695
+ ] }, D.id)) }),
1696
+ /* @__PURE__ */ e(ie, { children: c && c.index >= s.tasks.length && /* @__PURE__ */ e(Re, {}) })
1661
1697
  ] }),
1662
- s.tasks.length === 0 && !i && /* @__PURE__ */ e(
1663
- _e,
1698
+ s.tasks.length === 0 && !c && /* @__PURE__ */ e(
1699
+ Ze,
1664
1700
  {
1665
1701
  index: n,
1666
- isDropTarget: l
1702
+ isDropTarget: g
1667
1703
  }
1668
1704
  ),
1669
- s.tasks.length === 0 && i && /* @__PURE__ */ e(fe, {})
1705
+ /* @__PURE__ */ e(ie, { children: s.tasks.length === 0 && c && /* @__PURE__ */ e(Re, {}) })
1670
1706
  ]
1671
1707
  }
1672
1708
  )
@@ -1675,91 +1711,91 @@ const Ye = Q.forwardRef(
1675
1711
  );
1676
1712
  }
1677
1713
  );
1678
- Ye.displayName = "BoardColumn";
1679
- function Jt(t) {
1714
+ ct.displayName = "BoardColumn";
1715
+ function ws(t) {
1680
1716
  const {
1681
1717
  columns: s,
1682
1718
  focusedTaskId: n,
1683
1719
  setFocusedTaskId: r,
1684
- selectedTaskIds: i,
1685
- toggleTaskSelection: u,
1686
- selectRange: w,
1687
- clearSelection: k,
1688
- clearFilters: h,
1689
- hasActiveFilters: l,
1690
- onClickTask: f
1691
- } = G(), S = W(
1692
- (d) => {
1720
+ selectedTaskIds: c,
1721
+ toggleTaskSelection: o,
1722
+ selectRange: u,
1723
+ clearSelection: I,
1724
+ clearFilters: w,
1725
+ hasActiveFilters: p,
1726
+ onClickTask: x
1727
+ } = K(), g = O(
1728
+ (l) => {
1693
1729
  for (let v = 0; v < s.length; v++)
1694
1730
  for (let m = 0; m < s[v].tasks.length; m++)
1695
- if (s[v].tasks[m].id === d)
1696
- return { columnIndex: v, taskIndex: m, taskId: d };
1731
+ if (s[v].tasks[m].id === l)
1732
+ return { columnIndex: v, taskIndex: m, taskId: l };
1697
1733
  return null;
1698
1734
  },
1699
1735
  [s]
1700
- ), I = W(
1701
- (d, v) => {
1702
- const m = s[d];
1736
+ ), d = O(
1737
+ (l, v) => {
1738
+ const m = s[l];
1703
1739
  if (!m) return null;
1704
- const T = m.tasks[v];
1705
- return (T == null ? void 0 : T.id) ?? null;
1740
+ const R = m.tasks[v];
1741
+ return (R == null ? void 0 : R.id) ?? null;
1706
1742
  },
1707
1743
  [s]
1708
- ), c = W((d) => {
1709
- const v = document.querySelector(`[data-task-id="${d}"]`);
1744
+ ), C = O((l) => {
1745
+ const v = document.querySelector(`[data-task-id="${l}"]`);
1710
1746
  v && v.scrollIntoView({ block: "nearest", behavior: "smooth" });
1711
- }, []), D = W(
1712
- (d) => {
1713
- const v = d.target;
1747
+ }, []), D = O(
1748
+ (l) => {
1749
+ const v = l.target;
1714
1750
  if (!(v.tagName === "INPUT" || v.tagName === "TEXTAREA" || v.isContentEditable))
1715
- switch (d.key) {
1751
+ switch (l.key) {
1716
1752
  case "ArrowDown":
1717
1753
  case "ArrowUp": {
1718
- d.preventDefault();
1719
- const m = d.key === "ArrowDown" ? 1 : -1;
1754
+ l.preventDefault();
1755
+ const m = l.key === "ArrowDown" ? 1 : -1;
1720
1756
  if (!n) {
1721
- for (const x of s)
1722
- if (x.tasks.length > 0) {
1723
- const o = x.tasks[0].id;
1724
- r(o), c(o);
1757
+ for (const T of s)
1758
+ if (T.tasks.length > 0) {
1759
+ const L = T.tasks[0].id;
1760
+ r(L), C(L);
1725
1761
  break;
1726
1762
  }
1727
1763
  return;
1728
1764
  }
1729
- const T = S(n);
1730
- if (!T) return;
1731
- const g = T.taskIndex + m, y = I(T.columnIndex, g);
1732
- y && (r(y), c(y), d.shiftKey && n && w(n, y));
1765
+ const R = g(n);
1766
+ if (!R) return;
1767
+ const h = R.taskIndex + m, f = d(R.columnIndex, h);
1768
+ f && (r(f), C(f), l.shiftKey && n && u(n, f));
1733
1769
  return;
1734
1770
  }
1735
1771
  case "ArrowLeft":
1736
1772
  case "ArrowRight": {
1737
- d.preventDefault();
1738
- const m = d.key === "ArrowRight" ? 1 : -1;
1773
+ l.preventDefault();
1774
+ const m = l.key === "ArrowRight" ? 1 : -1;
1739
1775
  if (!n) return;
1740
- const T = S(n);
1741
- if (!T) return;
1742
- let g = T.columnIndex + m;
1743
- for (; g >= 0 && g < s.length; ) {
1744
- if (s[g].tasks.length > 0) {
1745
- const y = Math.min(T.taskIndex, s[g].tasks.length - 1), x = s[g].tasks[y].id;
1746
- r(x), c(x);
1776
+ const R = g(n);
1777
+ if (!R) return;
1778
+ let h = R.columnIndex + m;
1779
+ for (; h >= 0 && h < s.length; ) {
1780
+ if (s[h].tasks.length > 0) {
1781
+ const f = Math.min(R.taskIndex, s[h].tasks.length - 1), T = s[h].tasks[f].id;
1782
+ r(T), C(T);
1747
1783
  return;
1748
1784
  }
1749
- g += m;
1785
+ h += m;
1750
1786
  }
1751
1787
  return;
1752
1788
  }
1753
1789
  case "Enter": {
1754
- n && (d.preventDefault(), f(n));
1790
+ n && (l.preventDefault(), x(n));
1755
1791
  return;
1756
1792
  }
1757
1793
  case " ": {
1758
- n && (d.preventDefault(), u(n));
1794
+ n && (l.preventDefault(), o(n));
1759
1795
  return;
1760
1796
  }
1761
1797
  case "Escape": {
1762
- d.preventDefault(), i.size > 0 ? k() : l && h();
1798
+ l.preventDefault(), c.size > 0 ? I() : p && w();
1763
1799
  return;
1764
1800
  }
1765
1801
  }
@@ -1767,26 +1803,26 @@ function Jt(t) {
1767
1803
  [
1768
1804
  n,
1769
1805
  s,
1770
- i,
1771
- l,
1772
- S,
1773
- I,
1774
- r,
1775
1806
  c,
1807
+ p,
1808
+ g,
1809
+ d,
1810
+ r,
1811
+ C,
1812
+ o,
1776
1813
  u,
1814
+ I,
1777
1815
  w,
1778
- k,
1779
- h,
1780
- f
1816
+ x
1781
1817
  ]
1782
1818
  );
1783
- ce(() => {
1784
- const d = t.current;
1785
- if (d)
1786
- return d.addEventListener("keydown", D), () => d.removeEventListener("keydown", D);
1819
+ oe(() => {
1820
+ const l = t.current;
1821
+ if (l)
1822
+ return l.addEventListener("keydown", D), () => l.removeEventListener("keydown", D);
1787
1823
  }, [t, D]);
1788
1824
  }
1789
- function Zt() {
1825
+ function vs() {
1790
1826
  return {
1791
1827
  onDragStart({ active: t }) {
1792
1828
  const s = t.data.current;
@@ -1808,152 +1844,151 @@ function Zt() {
1808
1844
  }
1809
1845
  };
1810
1846
  }
1811
- function es({ className: t }) {
1847
+ function ys({ className: t }) {
1812
1848
  const {
1813
1849
  columns: s,
1814
1850
  viewMode: n,
1815
1851
  activeTask: r,
1816
- setActiveTask: i,
1817
- onTaskMove: u,
1818
- onAddColumn: w
1819
- } = G(), [k, h] = E(!1), [l, f] = E(null);
1820
- ie(null);
1821
- const S = ie(null);
1822
- Jt(S), ce(() => {
1823
- h(!0);
1852
+ setActiveTask: c,
1853
+ onTaskMove: o,
1854
+ onAddColumn: u
1855
+ } = K(), [I, w] = E(!1), [p, x] = E(null);
1856
+ ye(null);
1857
+ const g = ye(null);
1858
+ ws(g), oe(() => {
1859
+ w(!0);
1824
1860
  }, []);
1825
- const I = st(
1826
- he(dt, {
1861
+ const d = kt(
1862
+ De(At, {
1827
1863
  activationConstraint: { distance: 5 }
1828
1864
  }),
1829
- he(ct, {
1865
+ De(St, {
1830
1866
  activationConstraint: { delay: 200, tolerance: 5 }
1831
1867
  }),
1832
- he(lt, {
1833
- coordinateGetter: ot
1868
+ De(Rt, {
1869
+ coordinateGetter: Tt
1834
1870
  })
1835
- ), c = J(() => Zt(), []), D = s.map((y) => `column-${y.id}`), d = W(
1836
- (y) => {
1837
- for (const x of s)
1838
- if (x.tasks.some((o) => o.id === y))
1839
- return x.id;
1871
+ ), C = re(() => vs(), []), D = s.map((f) => `column-${f.id}`), l = O(
1872
+ (f) => {
1873
+ for (const T of s)
1874
+ if (T.tasks.some((L) => L.id === f))
1875
+ return T.id;
1840
1876
  return null;
1841
1877
  },
1842
1878
  [s]
1843
- ), v = W(
1844
- (y) => {
1845
- const x = y.active.data.current;
1846
- (x == null ? void 0 : x.type) === "task" && i(x.task);
1879
+ ), v = O(
1880
+ (f) => {
1881
+ const T = f.active.data.current;
1882
+ (T == null ? void 0 : T.type) === "task" && c(T.task);
1847
1883
  },
1848
- [i]
1849
- ), m = W(
1850
- (y) => {
1851
- const { active: x, over: o } = y;
1852
- if (!o) {
1853
- f(null);
1884
+ [c]
1885
+ ), m = O(
1886
+ (f) => {
1887
+ const { active: T, over: L } = f;
1888
+ if (!L) {
1889
+ x(null);
1854
1890
  return;
1855
1891
  }
1856
- const p = x.id, R = o.id, L = d(p);
1857
- if (!L) return;
1858
- let A = null, P = 0;
1859
- if (R.startsWith("column-")) {
1860
- A = R.replace("column-", "");
1861
- const O = s.find((C) => C.id === A);
1862
- P = (O == null ? void 0 : O.tasks.length) ?? 0;
1863
- } else if (A = d(R), A) {
1864
- const O = s.find((C) => C.id === A);
1865
- P = (O == null ? void 0 : O.tasks.findIndex((C) => C.id === R)) ?? 0;
1892
+ const $ = T.id, y = L.id, i = l($);
1893
+ if (!i) return;
1894
+ let b = null, A = 0;
1895
+ if (y.startsWith("column-")) {
1896
+ b = y.replace("column-", "");
1897
+ const M = s.find((S) => S.id === b);
1898
+ A = (M == null ? void 0 : M.tasks.length) ?? 0;
1899
+ } else if (b = l(y), b) {
1900
+ const M = s.find((S) => S.id === b);
1901
+ A = (M == null ? void 0 : M.tasks.findIndex((S) => S.id === y)) ?? 0;
1866
1902
  }
1867
- if (!A) {
1868
- f(null);
1903
+ if (!b) {
1904
+ x(null);
1869
1905
  return;
1870
1906
  }
1871
- if (L === A) {
1872
- f(null);
1907
+ if (i === b) {
1908
+ x(null);
1873
1909
  return;
1874
1910
  }
1875
- f({ taskId: p, columnId: A, index: P });
1911
+ x({ taskId: $, columnId: b, index: A });
1876
1912
  },
1877
- [s, d]
1878
- ), T = W(
1879
- (y) => {
1880
- const { active: x, over: o } = y, p = l;
1881
- if (i(null), f(null), !o) return;
1882
- const R = x.id, L = o.id, A = d(R);
1883
- if (!A) return;
1884
- if (p && p.taskId === R) {
1885
- u(R, p.columnId, p.index);
1913
+ [s, l]
1914
+ ), R = O(
1915
+ (f) => {
1916
+ const { active: T, over: L } = f, $ = p;
1917
+ if (c(null), x(null), !L) return;
1918
+ const y = T.id, i = L.id, b = l(y);
1919
+ if (!b) return;
1920
+ if ($ && $.taskId === y) {
1921
+ o(y, $.columnId, $.index);
1886
1922
  return;
1887
1923
  }
1888
- let P, O;
1889
- if (L.startsWith("column-")) {
1890
- P = L.replace("column-", "");
1891
- const C = s.find((M) => M.id === P);
1892
- if (O = (C == null ? void 0 : C.tasks.length) ?? 0, A === P) {
1893
- const M = C == null ? void 0 : C.tasks.findIndex((B) => B.id === R);
1894
- M !== void 0 && M >= 0 && (O = M);
1924
+ let A, M;
1925
+ if (i.startsWith("column-")) {
1926
+ A = i.replace("column-", "");
1927
+ const S = s.find((W) => W.id === A);
1928
+ if (M = (S == null ? void 0 : S.tasks.length) ?? 0, b === A) {
1929
+ const W = S == null ? void 0 : S.tasks.findIndex((q) => q.id === y);
1930
+ W !== void 0 && W >= 0 && (M = W);
1895
1931
  }
1896
1932
  } else {
1897
- P = d(L) ?? A;
1898
- const C = s.find((M) => M.id === P);
1899
- O = (C == null ? void 0 : C.tasks.findIndex((M) => M.id === L)) ?? 0;
1933
+ A = l(i) ?? b;
1934
+ const S = s.find((W) => W.id === A);
1935
+ M = (S == null ? void 0 : S.tasks.findIndex((W) => W.id === i)) ?? 0;
1900
1936
  }
1901
- u(R, P, O);
1937
+ o(y, A, M);
1902
1938
  },
1903
- [s, l, d, i, u]
1904
- ), g = W(() => {
1905
- i(null), f(null);
1906
- }, [i]);
1939
+ [s, p, l, c, o]
1940
+ ), h = O(() => {
1941
+ c(null), x(null);
1942
+ }, [c]);
1907
1943
  return /* @__PURE__ */ a(
1908
- nt,
1944
+ Ct,
1909
1945
  {
1910
- sensors: I,
1911
- collisionDetection: at,
1946
+ sensors: d,
1947
+ collisionDetection: Nt,
1912
1948
  onDragStart: v,
1913
1949
  onDragOver: m,
1914
- onDragEnd: T,
1915
- onDragCancel: g,
1916
- accessibility: { announcements: c },
1950
+ onDragEnd: R,
1951
+ onDragCancel: h,
1952
+ accessibility: { announcements: C },
1917
1953
  children: [
1918
1954
  /* @__PURE__ */ a(
1919
1955
  "div",
1920
1956
  {
1921
- ref: S,
1957
+ ref: g,
1922
1958
  tabIndex: 0,
1923
1959
  className: "no-scrollbar flex h-full gap-ds-05 overflow-x-auto pb-ds-05 outline-none",
1924
1960
  children: [
1925
1961
  /* @__PURE__ */ e(
1926
- Re,
1962
+ Ue,
1927
1963
  {
1928
1964
  items: D,
1929
- strategy: rt,
1930
- children: s.map((y, x) => /* @__PURE__ */ e(
1931
- "div",
1965
+ strategy: It,
1966
+ children: /* @__PURE__ */ e(le, { delay: 0.05, className: "contents", children: s.map((f, T) => /* @__PURE__ */ e(
1967
+ Q,
1932
1968
  {
1933
- className: "flex-shrink-0 animate-slide-right delay-stagger-50",
1934
- style: { "--stagger-index": x },
1969
+ className: "flex-shrink-0",
1935
1970
  children: /* @__PURE__ */ e(
1936
- Ye,
1971
+ ct,
1937
1972
  {
1938
- column: y,
1939
- index: x,
1940
- dragPreview: (l == null ? void 0 : l.columnId) === y.id ? l : void 0,
1973
+ column: f,
1974
+ index: T,
1975
+ dragPreview: (p == null ? void 0 : p.columnId) === f.id ? p : void 0,
1941
1976
  draggedTask: r
1942
1977
  }
1943
1978
  )
1944
1979
  },
1945
- y.id
1946
- ))
1980
+ f.id
1981
+ )) })
1947
1982
  }
1948
1983
  ),
1949
1984
  /* @__PURE__ */ e("div", { className: "flex-shrink-0", children: /* @__PURE__ */ a(
1950
- _,
1985
+ F,
1951
1986
  {
1952
1987
  variant: "ghost",
1953
- onClick: w,
1954
- className: "h-ds-md w-[320px] justify-start gap-ds-03 rounded-ds-xl border border-dashed border-border/60 bg-layer-02 text-text-tertiary hover:border-border-interactive hover:bg-interactive-subtle/50 hover:text-interactive",
1988
+ onClick: u,
1989
+ className: "h-ds-md w-[320px] justify-start gap-ds-03 rounded-ds-xl border border-dashed border-surface-border bg-surface-2 text-surface-fg-subtle hover:border-accent-7 hover:bg-accent-2 hover:text-accent-11",
1955
1990
  children: [
1956
- /* @__PURE__ */ e(ye, { className: "h-ico-sm w-ico-sm" }),
1991
+ /* @__PURE__ */ e(Me, { className: "h-ico-sm w-ico-sm" }),
1957
1992
  "Add column"
1958
1993
  ]
1959
1994
  }
@@ -1961,42 +1996,42 @@ function es({ className: t }) {
1961
1996
  ]
1962
1997
  }
1963
1998
  ),
1964
- k && Ze(
1965
- /* @__PURE__ */ e(it, { dropAnimation: { duration: 240, easing: "cubic-bezier(0.34, 1.56, 0.64, 1)" }, children: r ? n === "compact" ? /* @__PURE__ */ e(He, { task: r }) : /* @__PURE__ */ e(Qe, { task: r }) : null }),
1999
+ I && wt(
2000
+ /* @__PURE__ */ e(Dt, { dropAnimation: { duration: 240, easing: "cubic-bezier(0.34, 1.56, 0.64, 1)" }, children: r ? n === "compact" ? /* @__PURE__ */ e(it, { task: r }) : /* @__PURE__ */ e(ot, { task: r }) : null }),
1966
2001
  document.body
1967
2002
  )
1968
2003
  ]
1969
2004
  }
1970
2005
  );
1971
2006
  }
1972
- const ts = Q.forwardRef(
2007
+ const ks = P.forwardRef(
1973
2008
  function({ className: s, ...n }, r) {
1974
- return /* @__PURE__ */ e("div", { ref: r, className: s, children: /* @__PURE__ */ e(_t, { ...n, children: /* @__PURE__ */ a("div", { className: "flex flex-col gap-ds-03", children: [
1975
- /* @__PURE__ */ e(We, {}),
1976
- /* @__PURE__ */ e($e, {}),
1977
- /* @__PURE__ */ e(es, {})
2009
+ return /* @__PURE__ */ e("div", { ref: r, className: s, children: /* @__PURE__ */ e(is, { ...n, children: /* @__PURE__ */ a("div", { className: "flex flex-col gap-ds-03", children: [
2010
+ /* @__PURE__ */ e(qe, {}),
2011
+ /* @__PURE__ */ e(Xe, {}),
2012
+ /* @__PURE__ */ e(ys, {})
1978
2013
  ] }) }) });
1979
2014
  }
1980
2015
  );
1981
- ts.displayName = "KanbanBoard";
2016
+ ks.displayName = "KanbanBoard";
1982
2017
  export {
1983
- Ye as B,
1984
- we as C,
1985
- ke as D,
1986
- ts as K,
1987
- me as P,
1988
- Ue as T,
1989
- _t as a,
1990
- We as b,
1991
- $e as c,
1992
- Bt as d,
1993
- _e as e,
1994
- Pe as f,
1995
- ys as g,
1996
- Ke as h,
1997
- He as i,
1998
- Qe as j,
1999
- je as k,
2000
- Jt as l,
2001
- G as u
2018
+ ct as B,
2019
+ Be as C,
2020
+ We as D,
2021
+ ks as K,
2022
+ Ie as P,
2023
+ at as T,
2024
+ is as a,
2025
+ qe as b,
2026
+ Xe as c,
2027
+ ss as d,
2028
+ Ze as e,
2029
+ Je as f,
2030
+ zs as g,
2031
+ rt as h,
2032
+ it as i,
2033
+ ot as j,
2034
+ lt as k,
2035
+ ws as l,
2036
+ K as u
2002
2037
  };