@devalok/shilp-sutra-karm 0.1.0 → 0.2.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 (64) hide show
  1. package/dist/admin/break/break-admin.d.ts.map +1 -1
  2. package/dist/admin/break/break-admin.js +205 -179
  3. package/dist/admin/break/delete-break.d.ts +2 -4
  4. package/dist/admin/break/delete-break.d.ts.map +1 -1
  5. package/dist/admin/break/delete-break.js +20 -19
  6. package/dist/admin/break/edit-break-balance.d.ts +2 -4
  7. package/dist/admin/break/edit-break-balance.d.ts.map +1 -1
  8. package/dist/admin/break/edit-break-balance.js +20 -19
  9. package/dist/admin/break/edit-break.d.ts +2 -4
  10. package/dist/admin/break/edit-break.d.ts.map +1 -1
  11. package/dist/admin/break/edit-break.js +114 -147
  12. package/dist/admin/break/header.d.ts.map +1 -1
  13. package/dist/admin/break/header.js +52 -50
  14. package/dist/admin/break/leave-request.d.ts +4 -6
  15. package/dist/admin/break/leave-request.d.ts.map +1 -1
  16. package/dist/admin/break/leave-request.js +57 -58
  17. package/dist/admin/dashboard/admin-dashboard.js +2 -2
  18. package/dist/admin/dashboard/associate-detail.d.ts.map +1 -1
  19. package/dist/admin/dashboard/associate-detail.js +46 -57
  20. package/dist/admin/dashboard/attendance-overview.d.ts.map +1 -1
  21. package/dist/admin/dashboard/attendance-overview.js +2 -4
  22. package/dist/admin/dashboard/break-request.d.ts.map +1 -1
  23. package/dist/admin/dashboard/break-request.js +31 -30
  24. package/dist/admin/dashboard/calendar.js +1 -1
  25. package/dist/admin/dashboard/correction-list.d.ts.map +1 -1
  26. package/dist/admin/dashboard/correction-list.js +49 -47
  27. package/dist/admin/dashboard/dashboard-header.d.ts.map +1 -1
  28. package/dist/admin/dashboard/dashboard-header.js +7 -6
  29. package/dist/admin/dashboard/dashboard-skeleton.d.ts.map +1 -1
  30. package/dist/admin/dashboard/dashboard-skeleton.js +11 -13
  31. package/dist/admin/dashboard/leave-requests.d.ts.map +1 -1
  32. package/dist/admin/dashboard/leave-requests.js +78 -75
  33. package/dist/admin/index.d.ts +1 -1
  34. package/dist/admin/index.d.ts.map +1 -1
  35. package/dist/admin/index.js +8 -8
  36. package/dist/admin/utils/render-adjustment-type.d.ts +1 -1
  37. package/dist/admin/utils/render-adjustment-type.d.ts.map +1 -1
  38. package/dist/admin/utils/render-adjustment-type.js +1 -1
  39. package/dist/board/task-card.js +1 -1
  40. package/dist/chat/markdown-components.d.ts +30 -0
  41. package/dist/chat/markdown-components.d.ts.map +1 -0
  42. package/dist/chat/markdown-components.js +16 -0
  43. package/dist/chat/message-list.d.ts.map +1 -1
  44. package/dist/chat/message-list.js +37 -47
  45. package/dist/chat/streaming-text.d.ts.map +1 -1
  46. package/dist/chat/streaming-text.js +10 -23
  47. package/dist/client/client-portal-header.js +5 -5
  48. package/dist/client/project-card.d.ts.map +1 -1
  49. package/dist/dashboard/attendance-cta.d.ts +1 -1
  50. package/dist/dashboard/attendance-cta.d.ts.map +1 -1
  51. package/dist/dashboard/attendance-cta.js +25 -38
  52. package/dist/dashboard/daily-brief.d.ts +1 -1
  53. package/dist/dashboard/daily-brief.d.ts.map +1 -1
  54. package/dist/dashboard/daily-brief.js +2 -1
  55. package/dist/dashboard/index.d.ts +2 -2
  56. package/dist/dashboard/index.d.ts.map +1 -1
  57. package/dist/dashboard/index.js +4 -4
  58. package/dist/index.js +11 -11
  59. package/dist/page-skeletons.d.ts.map +1 -1
  60. package/dist/tasks/review-tab.js +3 -3
  61. package/dist/tasks/task-detail-panel.d.ts +1 -4
  62. package/dist/tasks/task-detail-panel.d.ts.map +1 -1
  63. package/dist/tasks/task-detail-panel.js +96 -96
  64. package/package.json +3 -2
@@ -1,109 +1,109 @@
1
- import { jsx as r, jsxs as c, Fragment as U } from "react/jsx-runtime";
2
- import * as d from "react";
3
- import { cn as _ } from "@devalok/shilp-sutra/ui";
4
- import { Sheet as ee, SheetContent as ie, SheetTitle as re } from "@devalok/shilp-sutra/ui";
5
- import { VisuallyHidden as se } from "@devalok/shilp-sutra/ui";
1
+ import { jsx as r, jsxs as a, Fragment as ee } from "react/jsx-runtime";
2
+ import * as c from "react";
3
+ import { cn as L } from "@devalok/shilp-sutra/ui";
4
+ import { Sheet as ie, SheetContent as re, SheetTitle as se } from "@devalok/shilp-sutra/ui";
5
+ import { VisuallyHidden as le } from "@devalok/shilp-sutra/ui";
6
6
  import { Skeleton as t } from "@devalok/shilp-sutra/ui";
7
- import { Tabs as le, TabsList as ce, TabsTrigger as de } from "@devalok/shilp-sutra/ui";
8
- import { TaskProperties as te } from "./task-properties.js";
9
- import { SubtasksTab as ae } from "./subtasks-tab.js";
7
+ import { Tabs as ae, TabsList as ce, TabsTrigger as te } from "@devalok/shilp-sutra/ui";
8
+ import { TaskProperties as de } from "./task-properties.js";
9
+ import { SubtasksTab as fe } from "./subtasks-tab.js";
10
10
  import { ReviewTab as me } from "./review-tab.js";
11
- import { ConversationTab as fe } from "./conversation-tab.js";
12
- import { FilesTab as ne } from "./files-tab.js";
13
- import { ActivityTab as oe } from "./activity-tab.js";
14
- import { IconListCheck as be, IconGitPullRequest as he, IconMessageCircle as ue, IconPaperclip as pe, IconActivity as ve } from "@tabler/icons-react";
11
+ import { ConversationTab as ne } from "./conversation-tab.js";
12
+ import { FilesTab as oe } from "./files-tab.js";
13
+ import { ActivityTab as be } from "./activity-tab.js";
14
+ import { IconListCheck as pe, IconGitPullRequest as he, IconMessageCircle as ue, IconPaperclip as ve, IconActivity as xe } from "@tabler/icons-react";
15
15
  const z = [
16
- { id: "subtasks", label: "Subtasks", icon: be },
16
+ { id: "subtasks", label: "Subtasks", icon: pe },
17
17
  { id: "review", label: "Review", icon: he },
18
18
  { id: "conversation", label: "Conversation", icon: ue },
19
- { id: "files", label: "Files", icon: pe },
20
- { id: "activity", label: "Activity", icon: ve }
19
+ { id: "files", label: "Files", icon: ve },
20
+ { id: "activity", label: "Activity", icon: xe }
21
21
  ];
22
- function xe() {
23
- return /* @__PURE__ */ c("div", { className: "space-y-ds-06 p-ds-06", children: [
22
+ function ye() {
23
+ return /* @__PURE__ */ a("div", { className: "space-y-ds-06 p-ds-06", children: [
24
24
  /* @__PURE__ */ r(t, { className: "h-ds-xs-plus w-3/4 bg-field" }),
25
- /* @__PURE__ */ r("div", { className: "space-y-ds-04", children: Array.from({ length: 6 }).map((i, m) => /* @__PURE__ */ c("div", { className: "flex items-center gap-ds-04", children: [
26
- /* @__PURE__ */ r(t, { className: "h-4 w-[120px] bg-field" }),
27
- /* @__PURE__ */ r(t, { className: "h-4 flex-1 bg-field" })
28
- ] }, m)) }),
29
- /* @__PURE__ */ r("div", { className: "flex gap-ds-05 border-b border-border pb-ds-03", children: Array.from({ length: 5 }).map((i, m) => /* @__PURE__ */ r(t, { className: "h-3 w-16 bg-field" }, m)) }),
30
- /* @__PURE__ */ c("div", { className: "space-y-ds-04", children: [
25
+ /* @__PURE__ */ r("div", { className: "space-y-ds-04", children: Array.from({ length: 6 }).map((V, i) => /* @__PURE__ */ a("div", { className: "flex items-center gap-ds-04", children: [
26
+ /* @__PURE__ */ r(t, { className: "h-[16px] w-[120px] bg-field" }),
27
+ /* @__PURE__ */ r(t, { className: "h-[16px] flex-1 bg-field" })
28
+ ] }, i)) }),
29
+ /* @__PURE__ */ r("div", { className: "flex gap-ds-05 border-b border-border pb-ds-03", children: Array.from({ length: 5 }).map((V, i) => /* @__PURE__ */ r(t, { className: "h-[12px] w-[64px] bg-field" }, i)) }),
30
+ /* @__PURE__ */ a("div", { className: "space-y-ds-04", children: [
31
31
  /* @__PURE__ */ r(t, { className: "h-ds-md w-full bg-field" }),
32
32
  /* @__PURE__ */ r(t, { className: "h-ds-md w-full bg-field" }),
33
33
  /* @__PURE__ */ r(t, { className: "h-ds-md w-4/5 bg-field" })
34
34
  ] })
35
35
  ] });
36
36
  }
37
- function ye({
37
+ const Ne = c.forwardRef(function({
38
38
  task: i,
39
- loading: m = !1,
40
- open: h,
41
- onOpenChange: G,
39
+ loading: G = !1,
40
+ open: b,
41
+ onOpenChange: H,
42
42
  columns: f,
43
43
  members: j,
44
- activities: H = [],
45
- enrichedComments: J,
44
+ activities: J = [],
45
+ enrichedComments: P,
46
46
  clientMode: s = !1,
47
47
  clientEditableFields: A = ["priority", "dueDate"],
48
- onTitleUpdate: u,
49
- onPropertyUpdate: p,
50
- onAssign: v,
51
- onUnassign: x,
52
- onCreateSubtask: y,
53
- onToggleSubtask: N,
54
- onRequestReview: T,
55
- onUpdateReviewStatus: w,
56
- onPostComment: g,
57
- onUploadFile: I,
58
- onDeleteFile: D,
59
- onTabChange: E,
48
+ onTitleUpdate: p,
49
+ onPropertyUpdate: h,
50
+ onAssign: u,
51
+ onUnassign: v,
52
+ onCreateSubtask: x,
53
+ onToggleSubtask: y,
54
+ onRequestReview: N,
55
+ onUpdateReviewStatus: T,
56
+ onPostComment: w,
57
+ onUploadFile: g,
58
+ onDeleteFile: I,
59
+ onTabChange: D,
60
60
  renderEditor: Q,
61
61
  renderViewer: W,
62
62
  renderPriorityIndicator: X,
63
63
  renderDatePicker: Y,
64
64
  isUploading: Z = !1
65
- }) {
66
- var C, K, L;
67
- const [a, B] = d.useState(s ? "conversation" : "subtasks"), [V, n] = d.useState(!1), [O, o] = d.useState(""), b = d.useRef(null);
68
- d.useEffect(() => {
69
- i && (o(i.title), n(!1));
70
- }, [i == null ? void 0 : i.id]), d.useEffect(() => {
71
- h && B(s ? "conversation" : "subtasks");
72
- }, [h, s]);
65
+ }, Te) {
66
+ var _, C, K;
67
+ const [d, B] = c.useState(s ? "conversation" : "subtasks"), [E, m] = c.useState(!1), [O, n] = c.useState(""), o = c.useRef(null);
68
+ c.useEffect(() => {
69
+ i && (n(i.title), m(!1));
70
+ }, [i == null ? void 0 : i.id]), c.useEffect(() => {
71
+ b && B(s ? "conversation" : "subtasks");
72
+ }, [b, s]);
73
73
  const $ = (e) => {
74
- B(e), E == null || E(e);
74
+ B(e), D == null || D(e);
75
75
  }, S = () => {
76
- n(!1);
76
+ m(!1);
77
77
  const e = O.trim();
78
- e && e !== (i == null ? void 0 : i.title) ? u == null || u(e) : i && o(i.title);
78
+ e && e !== (i == null ? void 0 : i.title) ? p == null || p(e) : i && n(i.title);
79
79
  }, q = (e) => {
80
- e.key === "Enter" && (e.preventDefault(), S()), e.key === "Escape" && (n(!1), i && o(i.title));
80
+ e.key === "Enter" && (e.preventDefault(), S()), e.key === "Escape" && (m(!1), i && n(i.title));
81
81
  };
82
- d.useEffect(() => {
83
- V && b.current && (b.current.focus(), b.current.select());
84
- }, [V]);
85
- const P = (C = f.find((e) => e.isTerminal)) == null ? void 0 : C.id, R = ((K = f.find((e) => e.isDefault)) == null ? void 0 : K.id) || ((L = f[0]) == null ? void 0 : L.id) || "", F = s ? z.filter((e) => e.id === "conversation") : z, k = J || (i == null ? void 0 : i.comments) || [];
86
- return /* @__PURE__ */ r(ee, { open: h, onOpenChange: G, children: /* @__PURE__ */ c(
87
- ie,
82
+ c.useEffect(() => {
83
+ E && o.current && (o.current.focus(), o.current.select());
84
+ }, [E]);
85
+ const R = (_ = f.find((e) => e.isTerminal)) == null ? void 0 : _.id, F = ((C = f.find((e) => e.isDefault)) == null ? void 0 : C.id) || ((K = f[0]) == null ? void 0 : K.id) || "", k = s ? z.filter((e) => e.id === "conversation") : z, M = P || (i == null ? void 0 : i.comments) || [];
86
+ return /* @__PURE__ */ r(ie, { open: b, onOpenChange: H, children: /* @__PURE__ */ a(
87
+ re,
88
88
  {
89
89
  side: "right",
90
- className: _(
90
+ className: L(
91
91
  /* intentional: task detail side panel takes 40% of screen, min 380px for form usability */
92
92
  "w-full sm:max-w-none sm:w-[40%] min-w-[380px] p-0",
93
93
  "flex flex-col overflow-hidden",
94
94
  "border-l border-border bg-layer-01"
95
95
  ),
96
96
  children: [
97
- /* @__PURE__ */ r(se, { children: /* @__PURE__ */ r(re, { children: (i == null ? void 0 : i.title) || "Task Details" }) }),
98
- m || !i ? /* @__PURE__ */ r(xe, {}) : /* @__PURE__ */ c(U, { children: [
99
- /* @__PURE__ */ c("div", { className: "shrink-0 border-b border-border px-ds-06 pb-ds-05 pt-ds-06", children: [
100
- !s && V ? /* @__PURE__ */ r(
97
+ /* @__PURE__ */ r(le, { children: /* @__PURE__ */ r(se, { children: (i == null ? void 0 : i.title) || "Task Details" }) }),
98
+ G || !i ? /* @__PURE__ */ r(ye, {}) : /* @__PURE__ */ a(ee, { children: [
99
+ /* @__PURE__ */ a("div", { className: "shrink-0 border-b border-border px-ds-06 pb-ds-05 pt-ds-06", children: [
100
+ !s && E ? /* @__PURE__ */ r(
101
101
  "input",
102
102
  {
103
- ref: b,
103
+ ref: o,
104
104
  type: "text",
105
105
  value: O,
106
- onChange: (e) => o(e.target.value),
106
+ onChange: (e) => n(e.target.value),
107
107
  onBlur: S,
108
108
  onKeyDown: q,
109
109
  className: "w-full bg-transparent text-ds-lg font-semibold text-text-primary outline-none"
@@ -113,8 +113,8 @@ function ye({
113
113
  /* @__PURE__ */ r(
114
114
  "h2",
115
115
  {
116
- onClick: s ? void 0 : () => n(!0),
117
- className: _(
116
+ onClick: s ? void 0 : () => m(!0),
117
+ className: L(
118
118
  "text-ds-lg font-semibold text-text-primary",
119
119
  !s && "cursor-text hover:text-interactive transition-colors"
120
120
  ),
@@ -124,85 +124,85 @@ function ye({
124
124
  ),
125
125
  i.parentTaskId && /* @__PURE__ */ r("p", { className: "mt-ds-02 text-ds-sm text-text-placeholder", children: "Subtask" })
126
126
  ] }),
127
- /* @__PURE__ */ c("div", { className: "flex-1 overflow-y-auto", children: [
127
+ /* @__PURE__ */ a("div", { className: "flex-1 overflow-y-auto", children: [
128
128
  /* @__PURE__ */ r("div", { className: "border-b border-border px-ds-06 py-ds-05", children: /* @__PURE__ */ r(
129
- te,
129
+ de,
130
130
  {
131
131
  task: i,
132
132
  columns: f,
133
133
  members: j,
134
134
  onUpdate: (e, l) => {
135
- s && !A.includes(e) || p == null || p(e, l);
135
+ s && !A.includes(e) || h == null || h(e, l);
136
136
  },
137
- onAssign: (e) => v == null ? void 0 : v(e),
138
- onUnassign: (e) => x == null ? void 0 : x(e),
137
+ onAssign: (e) => u == null ? void 0 : u(e),
138
+ onUnassign: (e) => v == null ? void 0 : v(e),
139
139
  readOnly: s,
140
140
  editableFields: s ? A : void 0,
141
141
  renderPriorityIndicator: X,
142
142
  renderDatePicker: Y
143
143
  }
144
144
  ) }),
145
- /* @__PURE__ */ r("div", { className: "sticky top-0 z-raised bg-layer-01 px-ds-06", children: /* @__PURE__ */ r(le, { value: a, onValueChange: $, children: /* @__PURE__ */ r(ce, { variant: "line", children: F.map((e) => /* @__PURE__ */ c(de, { value: e.id, children: [
145
+ /* @__PURE__ */ r("div", { className: "sticky top-0 z-raised bg-layer-01 px-ds-06", children: /* @__PURE__ */ r(ae, { value: d, onValueChange: $, children: /* @__PURE__ */ r(ce, { variant: "line", children: k.map((e) => /* @__PURE__ */ a(te, { value: e.id, children: [
146
146
  /* @__PURE__ */ r(e.icon, { className: "h-ico-sm w-ico-sm", stroke: 1.5 }),
147
147
  e.label
148
148
  ] }, e.id)) }) }) }),
149
- /* @__PURE__ */ c("div", { className: "px-ds-06 py-ds-05", children: [
150
- a === "subtasks" && /* @__PURE__ */ r(
151
- ae,
149
+ /* @__PURE__ */ a("div", { className: "px-ds-06 py-ds-05", children: [
150
+ d === "subtasks" && /* @__PURE__ */ r(
151
+ fe,
152
152
  {
153
153
  subtasks: i.subtasks ?? [],
154
- terminalColumnId: P,
154
+ terminalColumnId: R,
155
155
  projectId: i.projectId,
156
156
  parentTaskId: i.id,
157
- defaultColumnId: R,
157
+ defaultColumnId: F,
158
158
  onCreateSubtask: s ? () => {
159
- } : (e) => y == null ? void 0 : y(e),
159
+ } : (e) => x == null ? void 0 : x(e),
160
160
  onToggleSubtask: s ? () => {
161
- } : (e, l) => N == null ? void 0 : N(e, l),
161
+ } : (e, l) => y == null ? void 0 : y(e, l),
162
162
  readOnly: s
163
163
  }
164
164
  ),
165
- a === "review" && !s && /* @__PURE__ */ r(
165
+ d === "review" && !s && /* @__PURE__ */ r(
166
166
  me,
167
167
  {
168
168
  reviews: i.reviewRequests,
169
169
  members: j,
170
- onRequestReview: (e) => T == null ? void 0 : T(e),
171
- onUpdateStatus: (e, l, M) => w == null ? void 0 : w(e, l, M)
170
+ onRequestReview: (e) => N == null ? void 0 : N(e),
171
+ onUpdateStatus: (e, l, U) => T == null ? void 0 : T(e, l, U)
172
172
  }
173
173
  ),
174
- a === "conversation" && /* @__PURE__ */ r(
175
- fe,
174
+ d === "conversation" && /* @__PURE__ */ r(
175
+ ne,
176
176
  {
177
- comments: k,
177
+ comments: M,
178
178
  taskVisibility: i.visibility,
179
- onPostComment: (e, l) => g == null ? void 0 : g(e, l),
179
+ onPostComment: (e, l) => w == null ? void 0 : w(e, l),
180
180
  clientMode: s,
181
181
  renderEditor: Q,
182
182
  renderViewer: W
183
183
  }
184
184
  ),
185
- a === "files" && /* @__PURE__ */ r(
186
- ne,
185
+ d === "files" && /* @__PURE__ */ r(
186
+ oe,
187
187
  {
188
188
  files: i.files ?? [],
189
189
  onUpload: s ? () => {
190
- } : (e, l) => I == null ? void 0 : I(e, l),
190
+ } : (e, l) => g == null ? void 0 : g(e, l),
191
191
  onDelete: s ? () => {
192
- } : (e) => D == null ? void 0 : D(e),
192
+ } : (e) => I == null ? void 0 : I(e),
193
193
  isUploading: Z,
194
194
  readOnly: s
195
195
  }
196
196
  ),
197
- a === "activity" && /* @__PURE__ */ r(oe, { activities: H })
197
+ d === "activity" && /* @__PURE__ */ r(be, { activities: J })
198
198
  ] })
199
199
  ] })
200
200
  ] })
201
201
  ]
202
202
  }
203
203
  ) });
204
- }
205
- ye.displayName = "TaskDetailPanel";
204
+ });
205
+ Ne.displayName = "TaskDetailPanel";
206
206
  export {
207
- ye as TaskDetailPanel
207
+ Ne as TaskDetailPanel
208
208
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devalok/shilp-sutra-karm",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Domain components for Karm — board, tasks, chat, dashboard, client, and admin",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -43,7 +43,8 @@
43
43
  ],
44
44
  "scripts": {
45
45
  "build": "vite build",
46
- "typecheck": "tsc --noEmit"
46
+ "typecheck": "tsc --noEmit",
47
+ "lint": "eslint src/"
47
48
  },
48
49
  "peerDependencies": {
49
50
  "@devalok/shilp-sutra": ">=0.1.0",