@devalok/shilp-sutra-karm 0.6.1 → 0.7.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.
@@ -30,7 +30,7 @@ export interface FullTask {
30
30
  }[];
31
31
  subtasks: Subtask[];
32
32
  reviewRequests: ReviewRequest[];
33
- comments: Comment[];
33
+ comments?: Comment[];
34
34
  files: TaskFile[];
35
35
  createdAt: string;
36
36
  updatedAt: string;
@@ -1 +1 @@
1
- {"version":3,"file":"task-detail-panel.d.ts","sourceRoot":"","sources":["../../src/tasks/task-detail-panel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAU9B,OAAO,EAAkB,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAahE,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACpC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAA;IAC9C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,UAAU,EAAE,UAAU,GAAG,UAAU,CAAA;IACnC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC7B,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,cAAc,EAAE,aAAa,EAAE,CAAA;IAC/B,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,UAAU,oBAAoB;IAC5B,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAA;IAC5B,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IACnC,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,kEAAkE;IAClE,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;IAG/B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAC1D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,KAAK,IAAI,CAAA;IAC/D,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9C,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACpF,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,QAAQ,KAAK,IAAI,CAAA;IAC5E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACnD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAEnC,oEAAoE;IACpE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;QACrB,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;QACnC,WAAW,EAAE,MAAM,CAAA;KACpB,KAAK,KAAK,CAAC,SAAS,CAAA;IACrB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAA;IAClF,4CAA4C;IAC5C,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAA;IAC1E,qCAAqC;IACrC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE;QACzB,KAAK,EAAE,IAAI,GAAG,IAAI,CAAA;QAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAA;QACrC,WAAW,EAAE,MAAM,CAAA;QACnB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,KAAK,KAAK,CAAC,SAAS,CAAA;IAErB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAkDD,QAAA,MAAM,eAAe,6FA6OnB,CAAA;AAIF,OAAO,EAAE,eAAe,EAAE,CAAA;AAC1B,YAAY,EAAE,oBAAoB,EAAE,CAAA"}
1
+ {"version":3,"file":"task-detail-panel.d.ts","sourceRoot":"","sources":["../../src/tasks/task-detail-panel.tsx"],"names":[],"mappings":"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"}
package/llms.txt ADDED
@@ -0,0 +1,136 @@
1
+ # @devalok/shilp-sutra-karm
2
+
3
+ > Domain-specific UI components for the Karm team-management platform.
4
+ > Built on top of @devalok/shilp-sutra (core design system).
5
+ > Peer dependency: @devalok/shilp-sutra >=0.3.0
6
+
7
+ ## Install & Import
8
+
9
+ pnpm add @devalok/shilp-sutra-karm
10
+
11
+ // Per-module imports (recommended):
12
+ import { KanbanBoard } from '@devalok/shilp-sutra-karm/board'
13
+ import { TaskDetailPanel } from '@devalok/shilp-sutra-karm/tasks'
14
+ import { ChatPanel } from '@devalok/shilp-sutra-karm/chat'
15
+ import { AttendanceCTA, DailyBrief } from '@devalok/shilp-sutra-karm/dashboard'
16
+ import { AccentProvider, ClientPortalHeader, ProjectCard } from '@devalok/shilp-sutra-karm/client'
17
+ import { AdminDashboard, BreakAdmin } from '@devalok/shilp-sutra-karm/admin'
18
+
19
+ // Or from root barrel:
20
+ import { KanbanBoard, TaskDetailPanel, ChatPanel } from '@devalok/shilp-sutra-karm'
21
+
22
+ ## Module Reference
23
+
24
+ ### Board (`/board`)
25
+ - KanbanBoard: initialData(BoardData), onTaskMove, onTaskAdd, onColumnRename, onColumnDelete, onColumnToggleVisibility, onClickTask, onAddColumn
26
+ - BoardColumn: column(BoardColumnData), index, onAddTask, onClickTask, onRenameColumn, onDeleteColumn
27
+ - TaskCard: task(BoardTask), onClickTask
28
+ - TaskCardOverlay: task(BoardTask) — drag overlay variant
29
+
30
+ BoardTask shape: { id, title, priority, labels[], dueDate, isBlocked, assignees[] }
31
+ BoardData shape: { columns: [{ id, name, isClientVisible, tasks[] }] }
32
+
33
+ Uses dnd-kit for drag-and-drop. KanbanBoard manages all DnD state internally.
34
+
35
+ Column management callbacks: `onColumnRename`, `onColumnDelete`, `onColumnToggleVisibility`, and `onAddColumn`
36
+ are fire-and-forget — the board renders an "Add column" button and column header menus only when the
37
+ corresponding callbacks are provided. The consumer must build their own confirmation UI (e.g., ConfirmDialog)
38
+ and state updates. Example wiring a custom column header action:
39
+
40
+ <KanbanBoard
41
+ initialData={boardData}
42
+ onColumnRename={(columnId, name) => updateColumn(columnId, { name })}
43
+ onColumnDelete={(columnId) => {
44
+ setColumnToDelete(columnId) // open your own ConfirmDialog
45
+ }}
46
+ onColumnToggleVisibility={(columnId, visible) => updateColumn(columnId, { isClientVisible: visible })}
47
+ onAddColumn={() => setShowNewColumnDialog(true)}
48
+ />
49
+
50
+ ### Tasks (`/tasks`)
51
+ - TaskDetailPanel: task(FullTask|null), open, onOpenChange, columns[], members[], activities[], clientMode?, onTitleUpdate, onPropertyUpdate, onAssign, onUnassign, onCreateSubtask, onToggleSubtask, onRequestReview, onUpdateReviewStatus + more callbacks
52
+ - TaskProperties: task, columns[], members[], onUpdate, onAssign, onUnassign, readOnly?, editableFields?, renderPriorityIndicator?, renderDatePicker?
53
+ - ActivityTab: activities(AuditLogEntry[])
54
+ - ConversationTab: comments[], taskVisibility, onPostComment, clientMode?, renderEditor?, renderViewer?
55
+ - FilesTab: files[], onUpload, onDelete, isUploading?, readOnly?
56
+ - ReviewTab: reviews[], members[], onRequestReview, onUpdateStatus
57
+ - SubtasksTab: subtasks[], onCreateSubtask, onToggleSubtask, onClickSubtask?, readOnly?
58
+
59
+ TaskDetailPanel opens as a Sheet with tabs: Properties, Subtasks, Review, Conversation, Files, Activity.
60
+ Supports clientMode for read-only client portal views.
61
+ Priority values: 'LOW' | 'MEDIUM' | 'HIGH' | 'URGENT'
62
+ Visibility: 'INTERNAL' | 'EVERYONE'
63
+
64
+ ### Chat (`/chat`)
65
+ - ChatPanel: isOpen, onOpenChange, messages[], conversations[], agents?[], selectedAgentId?, isStreaming?, streamingText?, onSendMessage, onCancelStream?, onSelectAgent?, onStartNewChat?, onSelectConversation?, onArchiveConversation?, onDeleteConversation?
66
+ - ChatInput: onSubmit, onCancel?, isStreaming?, placeholder?, disclaimer?
67
+ - MessageList: messages[], isStreaming?, streamingText?, isLoadingMessages?
68
+ - ConversationList: conversations[], activeConversationId?, onSelect, onNewChat, onArchive?, onDelete?
69
+ - StreamingText: text(string) — markdown renderer with animated cursor
70
+
71
+ ChatMessage shape: { id, role: 'USER'|'ASSISTANT'|'SYSTEM', content }
72
+ Agent shape: { id, name, desc }
73
+ Conversation shape: { id, title, updatedAt }
74
+
75
+ ### Dashboard (`/dashboard`)
76
+ - AttendanceCTA: userName, attendance, canMarkAttendance, onMarkAttendance?, isSubmitting?, formatTime?
77
+ - DailyBrief: data({ brief: string[], generatedAt }|null), loading?
78
+
79
+ ### Client Portal (`/client`)
80
+ - AccentProvider: accentCss?(string) — injects CSS custom properties on document root
81
+ - ClientPortalHeader: orgName, orgLogo?, userName, userAvatar?
82
+ - ProjectCard: name, description?, status('active'|'completed'|'paused'), taskCount?, completedTasks?
83
+
84
+ ### Admin (`/admin`)
85
+ AdminDashboard and BreakAdmin are COMPOUND components with sub-components accessed via dot notation.
86
+
87
+ AdminDashboard compound:
88
+ <AdminDashboard.Root currentUserId={...} currentUserRole={...} assetsBaseUrl={...} userImages={...}>
89
+ <AdminDashboard.Calendar dateAttendanceMap={...} />
90
+ <AdminDashboard.AttendanceOverview groupedAttendance={...} users={...} />
91
+ <AdminDashboard.LeaveRequests requests={...} corrections={...} />
92
+ <AdminDashboard.AssociateDetail attendance={...} tasks={...} corrections={...} />
93
+ </AdminDashboard.Root>
94
+
95
+ BreakAdmin compound:
96
+ <BreakAdmin.Root currentUser={...} breaks={...} users={...} breakBalanceData={...} userImages={...} onApproveRequest={...} onRejectRequest={...} ...>
97
+ <BreakAdmin.Header />
98
+ <BreakAdmin.Breaks />
99
+ <BreakAdmin.LeaveRequest />
100
+ <BreakAdmin.BreakBalance />
101
+ <BreakAdmin.EditBreak />
102
+ <BreakAdmin.EditBreakBalance />
103
+ <BreakAdmin.DeleteBreak />
104
+ <BreakAdmin.ApprovedAdjustments />
105
+ </BreakAdmin.Root>
106
+
107
+ UserRole: 'Apprentice' | 'Associate' | 'Admin' | 'SuperAdmin'
108
+ AttendanceStatus: 'PRESENT' | 'ABSENT' | 'BREAK' | 'Not_Marked' | 'HOLIDAY' | 'WEEKEND'
109
+ BreakRequestStatus: 'PENDING' | 'APPROVED' | 'REJECTED' | 'CANCELLED'
110
+
111
+ ### Utility Exports
112
+ - Date formatting: formatDate, formatDateIST, formatTimeIST, formatDateWithWeekday, formatOptionalDate
113
+ - Date helpers: getDaySuffix, isSameDay, getWeekDays, getMonthDays, getStartOfDay, getEndOfDay
114
+ - String helpers: removeAllEmojis, removeEmojiAtStart
115
+ - Rendering: renderAdjustmentType, renderStatus
116
+
117
+ ### Loading Skeletons
118
+ - DevsabhaSkeleton, BandwidthSkeleton — domain-specific page skeletons
119
+
120
+ ## Key Patterns
121
+
122
+ - All components are callback-driven (emit updates via on* props, no internal state management)
123
+ - Admin components use compound pattern with React Context (AdminDashboard.Root provides context to children)
124
+ - Client mode: TaskDetailPanel, TaskProperties, FilesTab support readOnly + editableFields for client portal
125
+ - Chat supports streaming: pass isStreaming + streamingText for live AI responses
126
+ - Board uses dnd-kit: KanbanBoard handles all drag state, emits onTaskMove with final position
127
+ - All dates default to IST (Asia/Kolkata) timezone in admin utilities
128
+
129
+ ## Common Mistakes -- DO NOT
130
+
131
+ - DO NOT manage DnD state outside KanbanBoard — it handles sensors, collision detection, and sorting internally
132
+ - DO NOT forget to pass both open AND onOpenChange to TaskDetailPanel (it's a controlled Sheet)
133
+ - DO NOT use AdminDashboard sub-components outside AdminDashboard.Root — they depend on context
134
+ - DO NOT use BreakAdmin sub-components outside BreakAdmin.Root — same compound pattern
135
+ - DO NOT pass raw Date objects for task dates — use ISO strings (the components parse them internally)
136
+ - DO NOT forget the peer dependency: @devalok/shilp-sutra must be installed for UI primitives
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devalok/shilp-sutra-karm",
3
- "version": "0.6.1",
3
+ "version": "0.7.0",
4
4
  "description": "Domain components for Karm — board, tasks, chat, dashboard, client, and admin",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -39,7 +39,8 @@
39
39
  },
40
40
  "files": [
41
41
  "dist",
42
- "README.md"
42
+ "README.md",
43
+ "llms.txt"
43
44
  ],
44
45
  "scripts": {
45
46
  "build": "vite build && node scripts/inject-use-client.mjs",