@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.
- package/dist/_chunks/chat-panel.js +292 -230
- package/dist/_chunks/kanban-board.js +1113 -1078
- package/dist/_chunks/project-card.js +51 -51
- package/dist/_chunks/render-adjustment-type.js +2044 -2037
- package/dist/_chunks/sidebar-scratchpad.js +508 -0
- package/dist/_chunks/task-detail-panel.js +774 -752
- package/dist/_chunks/vendor.js +10425 -5216
- package/dist/admin/adjustments/approved-adjustments.d.ts +2 -1
- package/dist/admin/adjustments/approved-adjustments.d.ts.map +1 -1
- package/dist/admin/adjustments/index.d.ts +1 -0
- package/dist/admin/break/break-admin-skeleton.d.ts +2 -1
- package/dist/admin/break/break-admin-skeleton.d.ts.map +1 -1
- package/dist/admin/break/break-admin.d.ts +2 -1
- package/dist/admin/break/break-admin.d.ts.map +1 -1
- package/dist/admin/break/break-balance.d.ts +2 -1
- package/dist/admin/break/break-balance.d.ts.map +1 -1
- package/dist/admin/break/breaks.d.ts +2 -1
- package/dist/admin/break/breaks.d.ts.map +1 -1
- package/dist/admin/break/delete-break.d.ts +2 -1
- package/dist/admin/break/delete-break.d.ts.map +1 -1
- package/dist/admin/break/edit-break-balance.d.ts +2 -1
- package/dist/admin/break/edit-break-balance.d.ts.map +1 -1
- package/dist/admin/break/edit-break.d.ts +2 -1
- package/dist/admin/break/edit-break.d.ts.map +1 -1
- package/dist/admin/break/header.d.ts +2 -1
- package/dist/admin/break/header.d.ts.map +1 -1
- package/dist/admin/break/index.d.ts +1 -0
- package/dist/admin/break/leave-request.d.ts +2 -1
- package/dist/admin/break/leave-request.d.ts.map +1 -1
- package/dist/admin/break/use-break-date-picker.d.ts +1 -0
- package/dist/admin/dashboard/admin-dashboard.d.ts +7 -6
- package/dist/admin/dashboard/admin-dashboard.d.ts.map +1 -1
- package/dist/admin/dashboard/associate-detail.d.ts +2 -1
- package/dist/admin/dashboard/associate-detail.d.ts.map +1 -1
- package/dist/admin/dashboard/attendance-overview.d.ts +2 -1
- package/dist/admin/dashboard/attendance-overview.d.ts.map +1 -1
- package/dist/admin/dashboard/break-request.d.ts +2 -1
- package/dist/admin/dashboard/break-request.d.ts.map +1 -1
- package/dist/admin/dashboard/calendar.d.ts +2 -1
- package/dist/admin/dashboard/calendar.d.ts.map +1 -1
- package/dist/admin/dashboard/correction-list.d.ts +2 -1
- package/dist/admin/dashboard/correction-list.d.ts.map +1 -1
- package/dist/admin/dashboard/dashboard-header.d.ts +2 -1
- package/dist/admin/dashboard/dashboard-header.d.ts.map +1 -1
- package/dist/admin/dashboard/dashboard-skeleton.d.ts +2 -1
- package/dist/admin/dashboard/dashboard-skeleton.d.ts.map +1 -1
- package/dist/admin/dashboard/index.d.ts +1 -0
- package/dist/admin/dashboard/leave-requests.d.ts +2 -1
- package/dist/admin/dashboard/leave-requests.d.ts.map +1 -1
- package/dist/admin/dashboard/render-date.d.ts +2 -1
- package/dist/admin/dashboard/render-date.d.ts.map +1 -1
- package/dist/admin/dashboard/use-calendar-navigation.d.ts +1 -0
- package/dist/admin/dashboard/use-calendar-navigation.d.ts.map +1 -1
- package/dist/admin/dashboard/use-leave-request-interaction.d.ts +1 -0
- package/dist/admin/icons.d.ts +1 -0
- package/dist/admin/index.d.ts +1 -0
- package/dist/admin/types.d.ts +1 -0
- package/dist/admin/utils/date-range-utils.d.ts +1 -0
- package/dist/admin/utils/date-utils.d.ts +1 -0
- package/dist/admin/utils/emoji-utils.d.ts +1 -0
- package/dist/admin/utils/render-adjustment-type.d.ts +1 -0
- package/dist/admin/utils/render-status.d.ts +1 -0
- package/dist/board/board-column.d.ts +2 -1
- package/dist/board/board-column.d.ts.map +1 -1
- package/dist/board/board-constants.d.ts +6 -5
- package/dist/board/board-constants.d.ts.map +1 -1
- package/dist/board/board-context.d.ts +2 -1
- package/dist/board/board-context.d.ts.map +1 -1
- package/dist/board/board-toolbar.d.ts +4 -3
- package/dist/board/board-toolbar.d.ts.map +1 -1
- package/dist/board/board-types.d.ts +1 -0
- package/dist/board/board-utils.d.ts +1 -0
- package/dist/board/bulk-action-bar.d.ts +4 -3
- package/dist/board/bulk-action-bar.d.ts.map +1 -1
- package/dist/board/column-empty.d.ts +4 -6
- package/dist/board/column-empty.d.ts.map +1 -1
- package/dist/board/column-header.d.ts +4 -5
- package/dist/board/column-header.d.ts.map +1 -1
- package/dist/board/index.d.ts +1 -0
- package/dist/board/kanban-board.d.ts +1 -0
- package/dist/board/kanban-board.d.ts.map +1 -1
- package/dist/board/task-card.d.ts +5 -4
- package/dist/board/task-card.d.ts.map +1 -1
- package/dist/board/task-context-menu.d.ts +3 -4
- package/dist/board/task-context-menu.d.ts.map +1 -1
- package/dist/board/use-board-filters.d.ts +1 -0
- package/dist/board/use-board-keyboard.d.ts +1 -0
- package/dist/chat/chat-input.d.ts +2 -1
- package/dist/chat/chat-input.d.ts.map +1 -1
- package/dist/chat/chat-panel.d.ts +2 -1
- package/dist/chat/chat-panel.d.ts.map +1 -1
- package/dist/chat/conversation-list.d.ts +2 -1
- package/dist/chat/conversation-list.d.ts.map +1 -1
- package/dist/chat/index.d.ts +1 -0
- package/dist/chat/markdown-components.d.ts +1 -0
- package/dist/chat/message-list.d.ts +2 -1
- package/dist/chat/message-list.d.ts.map +1 -1
- package/dist/chat/streaming-text.d.ts +4 -1
- package/dist/chat/streaming-text.d.ts.map +1 -1
- package/dist/client/accent-provider.d.ts +1 -0
- package/dist/client/client-portal-header.d.ts +1 -0
- package/dist/client/index.d.ts +1 -0
- package/dist/client/project-card.d.ts +1 -0
- package/dist/dashboard/attendance-cta.d.ts +2 -1
- package/dist/dashboard/attendance-cta.d.ts.map +1 -1
- package/dist/dashboard/daily-brief.d.ts +2 -2
- package/dist/dashboard/daily-brief.d.ts.map +1 -1
- package/dist/dashboard/index.d.ts +1 -0
- package/dist/dashboard/index.js +5 -267
- package/dist/dashboard/scratchpad-widget.d.ts +2 -2
- package/dist/dashboard/scratchpad-widget.d.ts.map +1 -1
- package/dist/dashboard/sidebar-scratchpad.d.ts +2 -2
- package/dist/dashboard/sidebar-scratchpad.d.ts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +211 -103
- package/dist/page-skeletons.d.ts +3 -2
- package/dist/page-skeletons.d.ts.map +1 -1
- package/dist/shell/karm-command-registry.d.ts +4 -0
- package/dist/shell/karm-command-registry.d.ts.map +1 -0
- package/dist/tasks/activity-tab.d.ts +2 -2
- package/dist/tasks/activity-tab.d.ts.map +1 -1
- package/dist/tasks/conversation-tab.d.ts +2 -2
- package/dist/tasks/conversation-tab.d.ts.map +1 -1
- package/dist/tasks/files-tab.d.ts +2 -2
- package/dist/tasks/files-tab.d.ts.map +1 -1
- package/dist/tasks/index.d.ts +1 -0
- package/dist/tasks/review-tab.d.ts +2 -2
- package/dist/tasks/review-tab.d.ts.map +1 -1
- package/dist/tasks/subtasks-tab.d.ts +2 -2
- package/dist/tasks/subtasks-tab.d.ts.map +1 -1
- package/dist/tasks/task-constants.d.ts +1 -0
- package/dist/tasks/task-detail-panel.d.ts +2 -1
- package/dist/tasks/task-detail-panel.d.ts.map +1 -1
- package/dist/tasks/task-properties.d.ts +2 -2
- package/dist/tasks/task-properties.d.ts.map +1 -1
- package/dist/tasks/task-utils.d.ts +9 -0
- package/dist/tasks/task-utils.d.ts.map +1 -0
- package/dist/utils/use-composed-ref.d.ts +1 -0
- package/llms.txt +3 -1
- package/package.json +80 -78
- package/dist/_chunks/daily-brief.js +0 -226
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import * as React from 'react';
|
|
2
3
|
export interface Member {
|
|
3
4
|
id: string;
|
|
@@ -28,14 +29,13 @@ interface TaskData {
|
|
|
28
29
|
labels: string[];
|
|
29
30
|
visibility: 'INTERNAL' | 'EVERYONE';
|
|
30
31
|
}
|
|
31
|
-
interface TaskPropertiesProps {
|
|
32
|
+
interface TaskPropertiesProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
32
33
|
task: TaskData;
|
|
33
34
|
columns: Column[];
|
|
34
35
|
members: Member[];
|
|
35
36
|
onUpdate: (field: string, value: unknown) => void;
|
|
36
37
|
onAssign: (userId: string) => void;
|
|
37
38
|
onUnassign: (userId: string) => void;
|
|
38
|
-
className?: string;
|
|
39
39
|
/** When true, most fields are display-only except those in editableFields */
|
|
40
40
|
readOnly?: boolean;
|
|
41
41
|
/** Field names the client can still edit (e.g. ['priority', 'dueDate']) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-properties.d.ts","sourceRoot":"","sources":["../../src/tasks/task-properties.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAiC9B,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,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,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC7B,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;CACpC;AAED,UAAU,
|
|
1
|
+
{"version":3,"file":"task-properties.d.ts","sourceRoot":"","sources":["../../src/tasks/task-properties.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAiC9B,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,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,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC7B,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;CACpC;AAED,UAAU,mBAAoB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACxE,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACjD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,uEAAuE;IACvE,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAA;IAC1E,uEAAuE;IACvE,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;IACrB,gGAAgG;IAChG,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAA;CACvC;AA0DD,QAAA,MAAM,cAAc,4FAoXnB,CAAA;AAID,OAAO,EAAE,cAAc,EAAE,CAAA;AACzB,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-utils.d.ts","sourceRoot":"","sources":["../../src/tasks/task-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,UAc9C"}
|
package/llms.txt
CHANGED
|
@@ -29,6 +29,7 @@ import { KanbanBoard, TaskDetailPanel, ChatPanel } from '@devalok/shilp-sutra-ka
|
|
|
29
29
|
|
|
30
30
|
BoardTask shape: { id, title, priority, labels[], dueDate, isBlocked, assignees[] }
|
|
31
31
|
BoardData shape: { columns: [{ id, name, isClientVisible, tasks[] }] }
|
|
32
|
+
Constants: COLUMN_WIDTH(320), COLUMN_ACCENT_COLORS(8 category bg colors), PRIORITY_ICONS({ LOW: 'IconArrowDown', MEDIUM: 'IconArrowRight', HIGH: 'IconArrowUp', URGENT: 'IconAlertTriangle' }), PRIORITY_COLORS({ LOW: 'text-text-tertiary', MEDIUM: 'text-warning', HIGH: 'text-error', URGENT: 'text-error' }), DEFAULT_FILTERS({ search: '', assignees: [], priorities: [], labels: [], dueDateRange: null })
|
|
32
33
|
|
|
33
34
|
Uses dnd-kit for drag-and-drop. KanbanBoard manages all DnD state internally.
|
|
34
35
|
Pass `members` prop for explicit member list in assignment dropdowns — required for new/empty projects with no task assignees yet. Falls back to deriving members from task data when omitted.
|
|
@@ -57,7 +58,8 @@ and state updates. Example wiring a custom column header action:
|
|
|
57
58
|
- ReviewTab: reviews[], members[], onRequestReview, onUpdateStatus
|
|
58
59
|
- SubtasksTab: subtasks[], onCreateSubtask, onToggleSubtask, onClickSubtask?, readOnly?
|
|
59
60
|
|
|
60
|
-
|
|
61
|
+
Type: ExtraTab = { id: string, label: string, icon?: ReactNode, content: ReactNode, position?: 'before' | 'after' }
|
|
62
|
+
TaskDetailPanel opens as a Sheet with tabs: Properties, Subtasks, Review, Conversation, Files, Activity. Supports extraTabs?: ExtraTab[] for custom tabs.
|
|
61
63
|
Supports clientMode for read-only client portal views.
|
|
62
64
|
Priority values: 'LOW' | 'MEDIUM' | 'HIGH' | 'URGENT'
|
|
63
65
|
Visibility: 'INTERNAL' | 'EVERYONE'
|
package/package.json
CHANGED
|
@@ -1,78 +1,80 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@devalok/shilp-sutra-karm",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Domain components for Karm — board, tasks, chat, dashboard, client, and admin",
|
|
5
|
-
"license": "MIT",
|
|
6
|
-
"type": "module",
|
|
7
|
-
"main": "./dist/index.js",
|
|
8
|
-
"module": "./dist/index.js",
|
|
9
|
-
"types": "./dist/index.d.ts",
|
|
10
|
-
"sideEffects": [
|
|
11
|
-
"**/*.css"
|
|
12
|
-
],
|
|
13
|
-
"exports": {
|
|
14
|
-
".": {
|
|
15
|
-
"import": "./dist/index.js",
|
|
16
|
-
"default": "./dist/index.js",
|
|
17
|
-
"types": "./dist/index.d.ts"
|
|
18
|
-
},
|
|
19
|
-
"./board": {
|
|
20
|
-
"import": "./dist/board/index.js",
|
|
21
|
-
"default": "./dist/board/index.js",
|
|
22
|
-
"types": "./dist/board/index.d.ts"
|
|
23
|
-
},
|
|
24
|
-
"./tasks": {
|
|
25
|
-
"import": "./dist/tasks/index.js",
|
|
26
|
-
"default": "./dist/tasks/index.js",
|
|
27
|
-
"types": "./dist/tasks/index.d.ts"
|
|
28
|
-
},
|
|
29
|
-
"./chat": {
|
|
30
|
-
"import": "./dist/chat/index.js",
|
|
31
|
-
"default": "./dist/chat/index.js",
|
|
32
|
-
"types": "./dist/chat/index.d.ts"
|
|
33
|
-
},
|
|
34
|
-
"./dashboard": {
|
|
35
|
-
"import": "./dist/dashboard/index.js",
|
|
36
|
-
"default": "./dist/dashboard/index.js",
|
|
37
|
-
"types": "./dist/dashboard/index.d.ts"
|
|
38
|
-
},
|
|
39
|
-
"./client": {
|
|
40
|
-
"import": "./dist/client/index.js",
|
|
41
|
-
"default": "./dist/client/index.js",
|
|
42
|
-
"types": "./dist/client/index.d.ts"
|
|
43
|
-
},
|
|
44
|
-
"./admin": {
|
|
45
|
-
"import": "./dist/admin/index.js",
|
|
46
|
-
"default": "./dist/admin/index.js",
|
|
47
|
-
"types": "./dist/admin/index.d.ts"
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
"files": [
|
|
51
|
-
"dist",
|
|
52
|
-
"README.md",
|
|
53
|
-
"llms.txt"
|
|
54
|
-
],
|
|
55
|
-
"scripts": {
|
|
56
|
-
"build": "vite build && node scripts/inject-use-client.mjs",
|
|
57
|
-
"typecheck": "tsc --noEmit",
|
|
58
|
-
"lint": "eslint src/",
|
|
59
|
-
"prepublishOnly": "pnpm build"
|
|
60
|
-
},
|
|
61
|
-
"peerDependencies": {
|
|
62
|
-
"@devalok/shilp-sutra": ">=0.7.0",
|
|
63
|
-
"@tabler/icons-react": "^3.0.0",
|
|
64
|
-
"
|
|
65
|
-
"react
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
"@
|
|
70
|
-
"@dnd-kit/
|
|
71
|
-
"@dnd-kit/
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
|
|
78
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@devalok/shilp-sutra-karm",
|
|
3
|
+
"version": "0.17.0",
|
|
4
|
+
"description": "Domain components for Karm — board, tasks, chat, dashboard, client, and admin",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"module": "./dist/index.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"sideEffects": [
|
|
11
|
+
"**/*.css"
|
|
12
|
+
],
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"import": "./dist/index.js",
|
|
16
|
+
"default": "./dist/index.js",
|
|
17
|
+
"types": "./dist/index.d.ts"
|
|
18
|
+
},
|
|
19
|
+
"./board": {
|
|
20
|
+
"import": "./dist/board/index.js",
|
|
21
|
+
"default": "./dist/board/index.js",
|
|
22
|
+
"types": "./dist/board/index.d.ts"
|
|
23
|
+
},
|
|
24
|
+
"./tasks": {
|
|
25
|
+
"import": "./dist/tasks/index.js",
|
|
26
|
+
"default": "./dist/tasks/index.js",
|
|
27
|
+
"types": "./dist/tasks/index.d.ts"
|
|
28
|
+
},
|
|
29
|
+
"./chat": {
|
|
30
|
+
"import": "./dist/chat/index.js",
|
|
31
|
+
"default": "./dist/chat/index.js",
|
|
32
|
+
"types": "./dist/chat/index.d.ts"
|
|
33
|
+
},
|
|
34
|
+
"./dashboard": {
|
|
35
|
+
"import": "./dist/dashboard/index.js",
|
|
36
|
+
"default": "./dist/dashboard/index.js",
|
|
37
|
+
"types": "./dist/dashboard/index.d.ts"
|
|
38
|
+
},
|
|
39
|
+
"./client": {
|
|
40
|
+
"import": "./dist/client/index.js",
|
|
41
|
+
"default": "./dist/client/index.js",
|
|
42
|
+
"types": "./dist/client/index.d.ts"
|
|
43
|
+
},
|
|
44
|
+
"./admin": {
|
|
45
|
+
"import": "./dist/admin/index.js",
|
|
46
|
+
"default": "./dist/admin/index.js",
|
|
47
|
+
"types": "./dist/admin/index.d.ts"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"files": [
|
|
51
|
+
"dist",
|
|
52
|
+
"README.md",
|
|
53
|
+
"llms.txt"
|
|
54
|
+
],
|
|
55
|
+
"scripts": {
|
|
56
|
+
"build": "vite build && node scripts/inject-use-client.mjs",
|
|
57
|
+
"typecheck": "tsc --noEmit",
|
|
58
|
+
"lint": "eslint src/",
|
|
59
|
+
"prepublishOnly": "pnpm build"
|
|
60
|
+
},
|
|
61
|
+
"peerDependencies": {
|
|
62
|
+
"@devalok/shilp-sutra": ">=0.7.0",
|
|
63
|
+
"@tabler/icons-react": "^3.0.0",
|
|
64
|
+
"framer-motion": "^12.0.0",
|
|
65
|
+
"react": "^18 || ^19",
|
|
66
|
+
"react-dom": "^18 || ^19"
|
|
67
|
+
},
|
|
68
|
+
"devDependencies": {
|
|
69
|
+
"@devalok/shilp-sutra": "workspace:*",
|
|
70
|
+
"@dnd-kit/core": "^6.3.1",
|
|
71
|
+
"@dnd-kit/sortable": "^10.0.0",
|
|
72
|
+
"@dnd-kit/utilities": "^3.2.2",
|
|
73
|
+
"class-variance-authority": "^0.7.1",
|
|
74
|
+
"clsx": "^2.1.1",
|
|
75
|
+
"date-fns": "^4.1.0",
|
|
76
|
+
"framer-motion": "^12.36.0",
|
|
77
|
+
"react-markdown": "^10.1.0",
|
|
78
|
+
"tailwind-merge": "^3.0.1"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as e, jsxs as s } from "react/jsx-runtime";
|
|
3
|
-
import * as w from "react";
|
|
4
|
-
import { useState as k } from "react";
|
|
5
|
-
import { IconCheck as D, IconCoffee as A, IconClock as C, IconArrowRight as M, IconSparkles as v, IconChevronDown as I, IconRefresh as T } from "@tabler/icons-react";
|
|
6
|
-
import { cn as c } from "@devalok/shilp-sutra/ui/lib/utils";
|
|
7
|
-
import { M as R } from "./vendor.js";
|
|
8
|
-
function _() {
|
|
9
|
-
const i = (/* @__PURE__ */ new Date()).getHours();
|
|
10
|
-
return i < 12 ? "Good morning" : i < 17 ? "Good afternoon" : "Good evening";
|
|
11
|
-
}
|
|
12
|
-
function j() {
|
|
13
|
-
return (/* @__PURE__ */ new Date()).toLocaleDateString("en-IN", {
|
|
14
|
-
weekday: "long",
|
|
15
|
-
day: "numeric",
|
|
16
|
-
month: "long",
|
|
17
|
-
year: "numeric",
|
|
18
|
-
timeZone: "Asia/Kolkata"
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
function B(i) {
|
|
22
|
-
return new Date(i).toLocaleTimeString("en-IN", {
|
|
23
|
-
hour: "2-digit",
|
|
24
|
-
minute: "2-digit",
|
|
25
|
-
hour12: !0,
|
|
26
|
-
timeZone: "Asia/Kolkata"
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
const G = w.forwardRef(
|
|
30
|
-
function({
|
|
31
|
-
userName: r,
|
|
32
|
-
attendance: t,
|
|
33
|
-
canMarkAttendance: m,
|
|
34
|
-
onMarkAttendance: l,
|
|
35
|
-
isSubmitting: a = !1,
|
|
36
|
-
formatTime: u = B
|
|
37
|
-
}, x) {
|
|
38
|
-
var b, N;
|
|
39
|
-
const f = ((b = t == null ? void 0 : t.attendance) == null ? void 0 : b.status) ?? "Not_Marked", h = f === "PRESENT" || a, p = f === "BREAK", g = (N = t == null ? void 0 : t.attendance) == null ? void 0 : N.timeIn, n = _(), o = (r == null ? void 0 : r.split(" ")[0]) || "there", d = j();
|
|
40
|
-
return h && !p ? /* @__PURE__ */ e("div", { ref: x, className: "relative overflow-hidden rounded-ds-2xl border border-border bg-layer-01 shadow-01", children: /* @__PURE__ */ s("div", { className: "flex items-center justify-between px-ds-06 py-ds-05b sm:px-ds-07", children: [
|
|
41
|
-
/* @__PURE__ */ s("div", { className: "flex flex-col gap-ds-02", children: [
|
|
42
|
-
/* @__PURE__ */ s("h2", { className: "text-ds-2xl text-text-primary", children: [
|
|
43
|
-
n,
|
|
44
|
-
",",
|
|
45
|
-
" ",
|
|
46
|
-
/* @__PURE__ */ e("span", { className: "font-semibold italic text-interactive", children: o })
|
|
47
|
-
] }),
|
|
48
|
-
/* @__PURE__ */ e("p", { className: "text-ds-md text-text-tertiary", children: d })
|
|
49
|
-
] }),
|
|
50
|
-
/* @__PURE__ */ s("div", { className: "flex items-center gap-ds-03 rounded-ds-xl bg-success-surface px-ds-05 py-ds-03", children: [
|
|
51
|
-
/* @__PURE__ */ e("div", { className: "flex h-ico-md w-ico-md items-center justify-center rounded-ds-full bg-text-success", children: /* @__PURE__ */ e(D, { className: "h-ico-sm w-ico-sm text-text-on-color" }) }),
|
|
52
|
-
/* @__PURE__ */ s("span", { className: "text-ds-md font-semibold text-text-success", children: [
|
|
53
|
-
"Marked at",
|
|
54
|
-
" ",
|
|
55
|
-
g ? u(g) : "--:--"
|
|
56
|
-
] })
|
|
57
|
-
] })
|
|
58
|
-
] }) }) : p ? /* @__PURE__ */ e("div", { ref: x, className: "relative overflow-hidden rounded-ds-2xl border border-border bg-layer-01 shadow-01", children: /* @__PURE__ */ s("div", { className: "flex items-center justify-between px-ds-06 py-ds-05b sm:px-ds-07", children: [
|
|
59
|
-
/* @__PURE__ */ s("div", { className: "flex flex-col gap-ds-02", children: [
|
|
60
|
-
/* @__PURE__ */ s("h2", { className: "text-ds-2xl text-text-primary", children: [
|
|
61
|
-
n,
|
|
62
|
-
",",
|
|
63
|
-
" ",
|
|
64
|
-
/* @__PURE__ */ e("span", { className: "font-semibold italic text-interactive", children: o })
|
|
65
|
-
] }),
|
|
66
|
-
/* @__PURE__ */ e("p", { className: "text-ds-md text-text-tertiary", children: d })
|
|
67
|
-
] }),
|
|
68
|
-
/* @__PURE__ */ s("div", { className: "flex items-center gap-ds-03 rounded-ds-xl bg-warning-surface px-ds-05 py-ds-03", children: [
|
|
69
|
-
/* @__PURE__ */ e(A, { className: "h-ico-sm w-ico-sm text-text-warning" }),
|
|
70
|
-
/* @__PURE__ */ s("span", { className: "text-ds-md font-semibold text-text-warning", children: [
|
|
71
|
-
"On break",
|
|
72
|
-
t != null && t.breakReason ? ` — ${t.breakReason}` : ""
|
|
73
|
-
] })
|
|
74
|
-
] })
|
|
75
|
-
] }) }) : m ? /* @__PURE__ */ e("div", { ref: x, className: "relative overflow-hidden rounded-ds-2xl border border-border bg-gradient-to-br from-interactive-subtle via-background to-success-surface", children: /* @__PURE__ */ s("div", { className: "flex items-center justify-between px-ds-06 py-ds-07 sm:px-ds-07 sm:py-ds-08", children: [
|
|
76
|
-
/* @__PURE__ */ s("div", { className: "flex flex-col gap-ds-02b", children: [
|
|
77
|
-
/* @__PURE__ */ s("h2", { className: "text-ds-3xl text-text-primary", children: [
|
|
78
|
-
n,
|
|
79
|
-
",",
|
|
80
|
-
" ",
|
|
81
|
-
/* @__PURE__ */ e("span", { className: "font-semibold italic text-interactive", children: o })
|
|
82
|
-
] }),
|
|
83
|
-
/* @__PURE__ */ e("div", { className: "flex items-center gap-ds-03", children: /* @__PURE__ */ e("p", { className: "text-ds-base text-text-tertiary", children: d }) })
|
|
84
|
-
] }),
|
|
85
|
-
/* @__PURE__ */ s(
|
|
86
|
-
"button",
|
|
87
|
-
{
|
|
88
|
-
type: "button",
|
|
89
|
-
onClick: l,
|
|
90
|
-
disabled: a,
|
|
91
|
-
className: "flex items-center gap-ds-03 rounded-ds-xl bg-interactive px-ds-06 py-ds-04 font-semibold text-text-on-color shadow-02 transition-all duration-moderate-01 ease-expressive-standard hover:-translate-y-0.5 hover:shadow-03 active:translate-y-0 active:scale-[0.98] disabled:opacity-[0.38]",
|
|
92
|
-
children: [
|
|
93
|
-
a ? "Marking..." : "Mark Attendance",
|
|
94
|
-
!a && /* @__PURE__ */ e(M, { className: "h-ico-sm w-ico-sm" })
|
|
95
|
-
]
|
|
96
|
-
}
|
|
97
|
-
)
|
|
98
|
-
] }) }) : /* @__PURE__ */ e("div", { ref: x, className: "relative overflow-hidden rounded-ds-2xl border border-border bg-layer-01 shadow-01", children: /* @__PURE__ */ s("div", { className: "flex items-center justify-between px-ds-06 py-ds-06 sm:px-ds-07 sm:py-ds-07", children: [
|
|
99
|
-
/* @__PURE__ */ s("div", { className: "flex flex-col gap-ds-02b", children: [
|
|
100
|
-
/* @__PURE__ */ s("h2", { className: "text-ds-3xl text-text-primary", children: [
|
|
101
|
-
n,
|
|
102
|
-
",",
|
|
103
|
-
" ",
|
|
104
|
-
/* @__PURE__ */ e("span", { className: "font-semibold italic text-interactive", children: o })
|
|
105
|
-
] }),
|
|
106
|
-
/* @__PURE__ */ e("p", { className: "text-ds-base text-text-tertiary", children: d })
|
|
107
|
-
] }),
|
|
108
|
-
/* @__PURE__ */ s("div", { className: "flex items-center gap-ds-03 rounded-ds-xl bg-layer-02 px-ds-05 py-ds-03", children: [
|
|
109
|
-
/* @__PURE__ */ e(C, { className: "h-ico-sm w-ico-sm text-text-placeholder" }),
|
|
110
|
-
/* @__PURE__ */ e("span", { className: "text-ds-md text-text-placeholder", children: "Attendance window closed" })
|
|
111
|
-
] })
|
|
112
|
-
] }) });
|
|
113
|
-
}
|
|
114
|
-
);
|
|
115
|
-
G.displayName = "AttendanceCTA";
|
|
116
|
-
function O(i) {
|
|
117
|
-
const r = new Date(i), m = (/* @__PURE__ */ new Date()).getTime() - r.getTime(), l = Math.floor(m / 6e4);
|
|
118
|
-
if (l < 1) return "just now";
|
|
119
|
-
if (l < 60) return `${l}m ago`;
|
|
120
|
-
const a = Math.floor(l / 60);
|
|
121
|
-
return a < 24 ? `${a}h ago` : `${Math.floor(a / 24)}d ago`;
|
|
122
|
-
}
|
|
123
|
-
const y = [
|
|
124
|
-
"bg-category-amber",
|
|
125
|
-
"bg-category-teal",
|
|
126
|
-
"bg-category-cyan",
|
|
127
|
-
"bg-interactive",
|
|
128
|
-
"bg-accent"
|
|
129
|
-
], $ = w.forwardRef(
|
|
130
|
-
function({
|
|
131
|
-
data: r,
|
|
132
|
-
loading: t = !1,
|
|
133
|
-
onRefresh: m,
|
|
134
|
-
unavailable: l = !1,
|
|
135
|
-
collapsible: a = !0,
|
|
136
|
-
defaultCollapsed: u = !1,
|
|
137
|
-
title: x,
|
|
138
|
-
className: f
|
|
139
|
-
}, h) {
|
|
140
|
-
const [p, g] = k(u), n = x ?? "Morning Brief";
|
|
141
|
-
if (t && !r)
|
|
142
|
-
return /* @__PURE__ */ s("div", { ref: h, className: c("flex flex-col gap-ds-04 rounded-ds-2xl border border-border bg-layer-01 shadow-01 p-ds-05b", f), children: [
|
|
143
|
-
/* @__PURE__ */ s("div", { className: "flex items-center gap-ds-03", children: [
|
|
144
|
-
/* @__PURE__ */ e("div", { className: "h-ico-sm w-ico-sm animate-pulse rounded bg-layer-02" }),
|
|
145
|
-
/* @__PURE__ */ e("div", { className: "h-4 w-24 animate-pulse rounded bg-layer-02" })
|
|
146
|
-
] }),
|
|
147
|
-
[1, 2, 3].map((d) => /* @__PURE__ */ s("div", { className: "flex items-start gap-ds-04", children: [
|
|
148
|
-
/* @__PURE__ */ e("div", { className: "mt-ds-02b h-2 w-2 shrink-0 animate-pulse rounded-ds-full bg-layer-02" }),
|
|
149
|
-
/* @__PURE__ */ e(
|
|
150
|
-
"div",
|
|
151
|
-
{
|
|
152
|
-
className: "h-4 animate-pulse rounded bg-layer-02",
|
|
153
|
-
style: { width: `${60 + d * 10}%` }
|
|
154
|
-
}
|
|
155
|
-
)
|
|
156
|
-
] }, d))
|
|
157
|
-
] });
|
|
158
|
-
if (l)
|
|
159
|
-
return /* @__PURE__ */ s("div", { ref: h, className: c("flex items-center gap-ds-03 rounded-ds-2xl border border-border bg-layer-01 shadow-01 px-ds-05b py-ds-05", f), children: [
|
|
160
|
-
/* @__PURE__ */ e(v, { className: "h-ico-sm w-ico-sm text-text-placeholder" }),
|
|
161
|
-
/* @__PURE__ */ e("span", { className: "text-ds-sm text-text-placeholder", children: "AI brief unavailable" })
|
|
162
|
-
] });
|
|
163
|
-
if (!r || r.brief.length === 0) return null;
|
|
164
|
-
const o = !a || !p;
|
|
165
|
-
return /* @__PURE__ */ s("div", { ref: h, className: c("flex flex-col rounded-ds-2xl border border-border bg-layer-01 shadow-01", f), children: [
|
|
166
|
-
/* @__PURE__ */ s("div", { className: "flex items-center justify-between px-ds-05b py-ds-05", children: [
|
|
167
|
-
a ? /* @__PURE__ */ s(
|
|
168
|
-
"button",
|
|
169
|
-
{
|
|
170
|
-
type: "button",
|
|
171
|
-
"aria-label": "Toggle brief",
|
|
172
|
-
"aria-expanded": o,
|
|
173
|
-
onClick: () => g(!p),
|
|
174
|
-
className: "flex flex-1 items-center gap-ds-03 transition-colors hover:opacity-80",
|
|
175
|
-
children: [
|
|
176
|
-
/* @__PURE__ */ e(v, { className: "h-ico-sm w-ico-sm text-interactive" }),
|
|
177
|
-
/* @__PURE__ */ e("span", { className: "text-ds-base font-semibold text-text-primary", children: n }),
|
|
178
|
-
/* @__PURE__ */ e(
|
|
179
|
-
I,
|
|
180
|
-
{
|
|
181
|
-
className: c(
|
|
182
|
-
"h-ico-sm w-ico-sm text-text-placeholder transition-transform duration-200",
|
|
183
|
-
o && "rotate-180"
|
|
184
|
-
)
|
|
185
|
-
}
|
|
186
|
-
)
|
|
187
|
-
]
|
|
188
|
-
}
|
|
189
|
-
) : /* @__PURE__ */ s("div", { className: "flex items-center gap-ds-03", children: [
|
|
190
|
-
/* @__PURE__ */ e(v, { className: "h-ico-sm w-ico-sm text-interactive" }),
|
|
191
|
-
/* @__PURE__ */ e("span", { className: "text-ds-base font-semibold text-text-primary", children: n })
|
|
192
|
-
] }),
|
|
193
|
-
/* @__PURE__ */ e("div", { className: "flex items-center gap-ds-02", children: m && /* @__PURE__ */ e(
|
|
194
|
-
"button",
|
|
195
|
-
{
|
|
196
|
-
type: "button",
|
|
197
|
-
onClick: m,
|
|
198
|
-
"aria-label": "Refresh brief",
|
|
199
|
-
className: "p-1.5 rounded hover:bg-layer-02 transition-colors",
|
|
200
|
-
children: /* @__PURE__ */ e(T, { className: c("h-ico-sm w-ico-sm text-text-placeholder", t && "animate-spin") })
|
|
201
|
-
}
|
|
202
|
-
) })
|
|
203
|
-
] }),
|
|
204
|
-
/* @__PURE__ */ e("div", { className: c("grid transition-[grid-template-rows] duration-200", o ? "grid-rows-[1fr]" : "grid-rows-[0fr]"), children: /* @__PURE__ */ e("div", { className: "overflow-hidden", children: /* @__PURE__ */ s("div", { className: "flex flex-col gap-ds-03 border-t border-border px-ds-05b pb-ds-05b pt-ds-05", children: [
|
|
205
|
-
r.brief.map((d, b) => /* @__PURE__ */ s("div", { className: "flex items-start gap-ds-04", children: [
|
|
206
|
-
/* @__PURE__ */ e(
|
|
207
|
-
"div",
|
|
208
|
-
{
|
|
209
|
-
className: c("mt-ds-02b h-2 w-2 shrink-0 rounded-ds-full", y[b % y.length])
|
|
210
|
-
}
|
|
211
|
-
),
|
|
212
|
-
/* @__PURE__ */ e("div", { className: "text-ds-md text-text-secondary [&_p]:mb-0 [&_strong]:font-semibold [&_code]:rounded [&_code]:bg-field [&_code]:px-1 [&_code]:py-ds-01 [&_code]:text-ds-sm [&_a]:text-interactive [&_a]:underline", children: /* @__PURE__ */ e(R, { children: d }) })
|
|
213
|
-
] }, b)),
|
|
214
|
-
/* @__PURE__ */ s("div", { className: "mt-ds-02 text-ds-xs text-text-placeholder", children: [
|
|
215
|
-
"Generated ",
|
|
216
|
-
O(r.generatedAt)
|
|
217
|
-
] })
|
|
218
|
-
] }) }) })
|
|
219
|
-
] });
|
|
220
|
-
}
|
|
221
|
-
);
|
|
222
|
-
$.displayName = "DailyBrief";
|
|
223
|
-
export {
|
|
224
|
-
G as A,
|
|
225
|
-
$ as D
|
|
226
|
-
};
|