@devalok/shilp-sutra-karm 0.1.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/admin/adjustments/approved-adjustments.d.ts +10 -0
- package/dist/admin/adjustments/approved-adjustments.d.ts.map +1 -0
- package/dist/admin/adjustments/approved-adjustments.js +42 -0
- package/dist/admin/adjustments/index.d.ts +2 -0
- package/dist/admin/adjustments/index.d.ts.map +1 -0
- package/dist/admin/break/break-admin-skeleton.d.ts +3 -0
- package/dist/admin/break/break-admin-skeleton.d.ts.map +1 -0
- package/dist/admin/break/break-admin-skeleton.js +58 -0
- package/dist/admin/break/break-admin.d.ts +79 -0
- package/dist/admin/break/break-admin.d.ts.map +1 -0
- package/dist/admin/break/break-admin.js +346 -0
- package/dist/admin/break/break-balance.d.ts +14 -0
- package/dist/admin/break/break-balance.d.ts.map +1 -0
- package/dist/admin/break/break-balance.js +41 -0
- package/dist/admin/break/breaks.d.ts +21 -0
- package/dist/admin/break/breaks.d.ts.map +1 -0
- package/dist/admin/break/breaks.js +90 -0
- package/dist/admin/break/delete-break.d.ts +10 -0
- package/dist/admin/break/delete-break.d.ts.map +1 -0
- package/dist/admin/break/delete-break.js +53 -0
- package/dist/admin/break/edit-break-balance.d.ts +15 -0
- package/dist/admin/break/edit-break-balance.d.ts.map +1 -0
- package/dist/admin/break/edit-break-balance.js +111 -0
- package/dist/admin/break/edit-break.d.ts +23 -0
- package/dist/admin/break/edit-break.d.ts.map +1 -0
- package/dist/admin/break/edit-break.js +485 -0
- package/dist/admin/break/header.d.ts +22 -0
- package/dist/admin/break/header.d.ts.map +1 -0
- package/dist/admin/break/header.js +228 -0
- package/dist/admin/break/index.d.ts +18 -0
- package/dist/admin/break/index.d.ts.map +1 -0
- package/dist/admin/break/leave-request.d.ts +17 -0
- package/dist/admin/break/leave-request.d.ts.map +1 -0
- package/dist/admin/break/leave-request.js +162 -0
- package/dist/admin/break/use-break-date-picker.d.ts +25 -0
- package/dist/admin/break/use-break-date-picker.d.ts.map +1 -0
- package/dist/admin/break/use-break-date-picker.js +42 -0
- package/dist/admin/dashboard/admin-dashboard.d.ts +109 -0
- package/dist/admin/dashboard/admin-dashboard.d.ts.map +1 -0
- package/dist/admin/dashboard/admin-dashboard.js +336 -0
- package/dist/admin/dashboard/associate-detail.d.ts +36 -0
- package/dist/admin/dashboard/associate-detail.d.ts.map +1 -0
- package/dist/admin/dashboard/associate-detail.js +269 -0
- package/dist/admin/dashboard/attendance-overview.d.ts +11 -0
- package/dist/admin/dashboard/attendance-overview.d.ts.map +1 -0
- package/dist/admin/dashboard/attendance-overview.js +137 -0
- package/dist/admin/dashboard/break-request.d.ts +25 -0
- package/dist/admin/dashboard/break-request.d.ts.map +1 -0
- package/dist/admin/dashboard/break-request.js +174 -0
- package/dist/admin/dashboard/calendar.d.ts +7 -0
- package/dist/admin/dashboard/calendar.d.ts.map +1 -0
- package/dist/admin/dashboard/calendar.js +140 -0
- package/dist/admin/dashboard/correction-list.d.ts +21 -0
- package/dist/admin/dashboard/correction-list.d.ts.map +1 -0
- package/dist/admin/dashboard/correction-list.js +99 -0
- package/dist/admin/dashboard/dashboard-header.d.ts +18 -0
- package/dist/admin/dashboard/dashboard-header.d.ts.map +1 -0
- package/dist/admin/dashboard/dashboard-header.js +153 -0
- package/dist/admin/dashboard/dashboard-skeleton.d.ts +3 -0
- package/dist/admin/dashboard/dashboard-skeleton.d.ts.map +1 -0
- package/dist/admin/dashboard/dashboard-skeleton.js +110 -0
- package/dist/admin/dashboard/index.d.ts +13 -0
- package/dist/admin/dashboard/index.d.ts.map +1 -0
- package/dist/admin/dashboard/leave-requests.d.ts +26 -0
- package/dist/admin/dashboard/leave-requests.d.ts.map +1 -0
- package/dist/admin/dashboard/leave-requests.js +197 -0
- package/dist/admin/dashboard/render-date.d.ts +16 -0
- package/dist/admin/dashboard/render-date.d.ts.map +1 -0
- package/dist/admin/dashboard/render-date.js +143 -0
- package/dist/admin/dashboard/use-calendar-navigation.d.ts +60 -0
- package/dist/admin/dashboard/use-calendar-navigation.d.ts.map +1 -0
- package/dist/admin/dashboard/use-calendar-navigation.js +168 -0
- package/dist/admin/dashboard/use-leave-request-interaction.d.ts +21 -0
- package/dist/admin/dashboard/use-leave-request-interaction.d.ts.map +1 -0
- package/dist/admin/dashboard/use-leave-request-interaction.js +33 -0
- package/dist/admin/icons.d.ts +2 -0
- package/dist/admin/icons.d.ts.map +1 -0
- package/dist/admin/index.d.ts +9 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +62 -0
- package/dist/admin/types.d.ts +113 -0
- package/dist/admin/types.d.ts.map +1 -0
- package/dist/admin/utils/date-range-utils.d.ts +35 -0
- package/dist/admin/utils/date-range-utils.d.ts.map +1 -0
- package/dist/admin/utils/date-range-utils.js +36 -0
- package/dist/admin/utils/date-utils.d.ts +29 -0
- package/dist/admin/utils/date-utils.d.ts.map +1 -0
- package/dist/admin/utils/date-utils.js +118 -0
- package/dist/admin/utils/emoji-utils.d.ts +3 -0
- package/dist/admin/utils/emoji-utils.d.ts.map +1 -0
- package/dist/admin/utils/emoji-utils.js +16 -0
- package/dist/admin/utils/render-adjustment-type.d.ts +17 -0
- package/dist/admin/utils/render-adjustment-type.d.ts.map +1 -0
- package/dist/admin/utils/render-adjustment-type.js +19 -0
- package/dist/admin/utils/render-status.d.ts +3 -0
- package/dist/admin/utils/render-status.d.ts.map +1 -0
- package/dist/admin/utils/render-status.js +21 -0
- package/dist/board/board-column.d.ts +20 -0
- package/dist/board/board-column.d.ts.map +1 -0
- package/dist/board/board-column.js +233 -0
- package/dist/board/index.d.ts +4 -0
- package/dist/board/index.d.ts.map +1 -0
- package/dist/board/index.js +9 -0
- package/dist/board/kanban-board.d.ts +17 -0
- package/dist/board/kanban-board.d.ts.map +1 -0
- package/dist/board/kanban-board.js +218 -0
- package/dist/board/task-card.d.ts +25 -0
- package/dist/board/task-card.d.ts.map +1 -0
- package/dist/board/task-card.js +169 -0
- package/dist/chat/chat-input.d.ts +10 -0
- package/dist/chat/chat-input.d.ts.map +1 -0
- package/dist/chat/chat-input.js +52 -0
- package/dist/chat/chat-panel.d.ts +31 -0
- package/dist/chat/chat-panel.d.ts.map +1 -0
- package/dist/chat/chat-panel.js +150 -0
- package/dist/chat/conversation-list.d.ts +17 -0
- package/dist/chat/conversation-list.d.ts.map +1 -0
- package/dist/chat/conversation-list.js +98 -0
- package/dist/chat/index.d.ts +6 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/index.js +12 -0
- package/dist/chat/message-list.d.ts +16 -0
- package/dist/chat/message-list.d.ts.map +1 -0
- package/dist/chat/message-list.js +69 -0
- package/dist/chat/streaming-text.d.ts +6 -0
- package/dist/chat/streaming-text.d.ts.map +1 -0
- package/dist/chat/streaming-text.js +29 -0
- package/dist/client/accent-provider.d.ts +14 -0
- package/dist/client/accent-provider.d.ts.map +1 -0
- package/dist/client/accent-provider.js +21 -0
- package/dist/client/client-portal-header.d.ts +10 -0
- package/dist/client/client-portal-header.d.ts.map +1 -0
- package/dist/client/client-portal-header.js +47 -0
- package/dist/client/index.d.ts +4 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +8 -0
- package/dist/client/project-card.d.ts +11 -0
- package/dist/client/project-card.d.ts.map +1 -0
- package/dist/client/project-card.js +59 -0
- package/dist/dashboard/attendance-cta.d.ts +22 -0
- package/dist/dashboard/attendance-cta.d.ts.map +1 -0
- package/dist/dashboard/attendance-cta.js +127 -0
- package/dist/dashboard/daily-brief.d.ts +13 -0
- package/dist/dashboard/daily-brief.d.ts.map +1 -0
- package/dist/dashboard/daily-brief.js +66 -0
- package/dist/dashboard/index.d.ts +3 -0
- package/dist/dashboard/index.d.ts.map +1 -0
- package/dist/dashboard/index.js +6 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +93 -0
- package/dist/page-skeletons.d.ts +5 -0
- package/dist/page-skeletons.d.ts.map +1 -0
- package/dist/page-skeletons.js +129 -0
- package/dist/tasks/activity-tab.d.ts +20 -0
- package/dist/tasks/activity-tab.d.ts.map +1 -0
- package/dist/tasks/activity-tab.js +184 -0
- package/dist/tasks/conversation-tab.d.ts +45 -0
- package/dist/tasks/conversation-tab.d.ts.map +1 -0
- package/dist/tasks/conversation-tab.js +126 -0
- package/dist/tasks/files-tab.d.ts +28 -0
- package/dist/tasks/files-tab.d.ts.map +1 -0
- package/dist/tasks/files-tab.js +184 -0
- package/dist/tasks/index.d.ts +8 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +16 -0
- package/dist/tasks/review-tab.d.ts +32 -0
- package/dist/tasks/review-tab.d.ts.map +1 -0
- package/dist/tasks/review-tab.js +169 -0
- package/dist/tasks/subtasks-tab.d.ts +36 -0
- package/dist/tasks/subtasks-tab.d.ts.map +1 -0
- package/dist/tasks/subtasks-tab.js +153 -0
- package/dist/tasks/task-constants.d.ts +9 -0
- package/dist/tasks/task-constants.d.ts.map +1 -0
- package/dist/tasks/task-constants.js +21 -0
- package/dist/tasks/task-detail-panel.d.ts +93 -0
- package/dist/tasks/task-detail-panel.d.ts.map +1 -0
- package/dist/tasks/task-detail-panel.js +208 -0
- package/dist/tasks/task-properties.d.ts +60 -0
- package/dist/tasks/task-properties.d.ts.map +1 -0
- package/dist/tasks/task-properties.js +316 -0
- package/package.json +67 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check whether `dateStr` falls within [startStr, endStr] (inclusive).
|
|
3
|
+
*/
|
|
4
|
+
export declare function isDateInRange(dateStr: string, startStr: string, endStr: string): boolean;
|
|
5
|
+
/**
|
|
6
|
+
* True when the first date is the same day as or before the second date.
|
|
7
|
+
*/
|
|
8
|
+
export declare function isDateSameOrBefore(dateStr1: string, dateStr2: string): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* True when the first date is the same day as or after the second date.
|
|
11
|
+
*/
|
|
12
|
+
export declare function isDateSameOrAfter(dateStr1: string, dateStr2: string): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* True when the first date is strictly after the second date.
|
|
15
|
+
*/
|
|
16
|
+
export declare function isDateAfter(dateStr1: string, dateStr2: string): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Check whether a new date range overlaps with any existing range,
|
|
19
|
+
* excluding the range identified by `excludeId`.
|
|
20
|
+
*/
|
|
21
|
+
export declare function checkDateOverlap(newStartDate: string, newEndDate: string, existingRanges: Array<{
|
|
22
|
+
id: string;
|
|
23
|
+
startDate: string;
|
|
24
|
+
endDate: string;
|
|
25
|
+
}>, excludeId: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Check whether a specific date falls inside any existing break range,
|
|
28
|
+
* excluding the range identified by `excludeId`.
|
|
29
|
+
*/
|
|
30
|
+
export declare function isBreakDay(dateStr: string, existingRanges: Array<{
|
|
31
|
+
id: string;
|
|
32
|
+
startDate: string;
|
|
33
|
+
endDate: string;
|
|
34
|
+
}>, excludeId: string): boolean;
|
|
35
|
+
//# sourceMappingURL=date-range-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-range-utils.d.ts","sourceRoot":"","sources":["../../../src/admin/utils/date-range-utils.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAKT;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAIT;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAIT;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EACzE,SAAS,EAAE,MAAM,GAChB,OAAO,CAeT;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EACzE,SAAS,EAAE,MAAM,GAChB,OAAO,CAMT"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { format as c, parseISO as s, isWithinInterval as l, isAfter as y, isEqual as u, isBefore as m } from "date-fns";
|
|
2
|
+
function d(e, n, r) {
|
|
3
|
+
const t = s(e), o = s(n), a = s(r);
|
|
4
|
+
return l(t, { start: o, end: a });
|
|
5
|
+
}
|
|
6
|
+
function p(e, n) {
|
|
7
|
+
const r = s(e), t = s(n);
|
|
8
|
+
return m(r, t) || u(r, t);
|
|
9
|
+
}
|
|
10
|
+
function O(e, n) {
|
|
11
|
+
const r = s(e), t = s(n);
|
|
12
|
+
return y(r, t) || u(r, t);
|
|
13
|
+
}
|
|
14
|
+
function b(e, n) {
|
|
15
|
+
return y(s(e), s(n));
|
|
16
|
+
}
|
|
17
|
+
function S(e, n, r, t) {
|
|
18
|
+
return r.some((o) => {
|
|
19
|
+
const a = c(new Date(o.startDate), "yyyy-MM-dd"), i = c(new Date(o.endDate), "yyyy-MM-dd"), f = d(e, a, i), D = d(n, a, i), M = p(e, a) && O(n, i);
|
|
20
|
+
return o.id !== t && (f || D || M);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function A(e, n, r) {
|
|
24
|
+
return n.some((t) => {
|
|
25
|
+
const o = c(new Date(t.startDate), "yyyy-MM-dd"), a = c(new Date(t.endDate), "yyyy-MM-dd");
|
|
26
|
+
return t.id !== r && d(e, o, a);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
S as checkDateOverlap,
|
|
31
|
+
A as isBreakDay,
|
|
32
|
+
b as isDateAfter,
|
|
33
|
+
d as isDateInRange,
|
|
34
|
+
O as isDateSameOrAfter,
|
|
35
|
+
p as isDateSameOrBefore
|
|
36
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export declare function formatDateIST(date: Date | string, options?: Intl.DateTimeFormatOptions): string;
|
|
2
|
+
export declare function formatTimeIST(date: Date | string, options?: Intl.DateTimeFormatOptions): string;
|
|
3
|
+
export declare function formatDate(date: Date | string): string;
|
|
4
|
+
export declare function formatOptionalDate(date: Date | string | '-'): string;
|
|
5
|
+
export declare function formatDateWithWeekday(date: Date): string;
|
|
6
|
+
export declare function getDaySuffix(day: number): string;
|
|
7
|
+
export declare function isSameDay(date1: Date, date2: Date): boolean;
|
|
8
|
+
export interface WeekDay {
|
|
9
|
+
day: string;
|
|
10
|
+
date: number;
|
|
11
|
+
fullDate: Date;
|
|
12
|
+
isToday: boolean;
|
|
13
|
+
isActive: boolean;
|
|
14
|
+
hasBreak?: boolean;
|
|
15
|
+
isAbsent?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function getWeekDays(currentDate: string | Date, selectedDate: string | Date): WeekDay[];
|
|
18
|
+
export interface MonthDay {
|
|
19
|
+
day: string;
|
|
20
|
+
date: number;
|
|
21
|
+
fullDate: Date;
|
|
22
|
+
isToday: boolean;
|
|
23
|
+
isActive: boolean;
|
|
24
|
+
isPadding: boolean;
|
|
25
|
+
}
|
|
26
|
+
export declare function getMonthDays(currentDate: Date | string, selectedDate: Date | string): MonthDay[];
|
|
27
|
+
export declare function getStartOfDay(date?: Date): Date;
|
|
28
|
+
export declare function getEndOfDay(date?: Date): Date;
|
|
29
|
+
//# sourceMappingURL=date-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-utils.d.ts","sourceRoot":"","sources":["../../../src/admin/utils/date-utils.ts"],"names":[],"mappings":"AAyBA,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,GAAG,MAAM,EACnB,OAAO,CAAC,EAAE,IAAI,CAAC,qBAAqB,GACnC,MAAM,CAKR;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,GAAG,MAAM,EACnB,OAAO,CAAC,EAAE,IAAI,CAAC,qBAAqB,GACnC,MAAM,CAKR;AAMD,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAWtD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,GAAG,GAAG,MAAM,CAGpE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAOxD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAYhD;AAMD,wBAAgB,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAG3D;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,IAAI,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,wBAAgB,WAAW,CACzB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,GAC1B,OAAO,EAAE,CAeX;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,IAAI,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,wBAAgB,YAAY,CAC1B,WAAW,EAAE,IAAI,GAAG,MAAM,EAC1B,YAAY,EAAE,IAAI,GAAG,MAAM,GAC1B,QAAQ,EAAE,CAwDZ;AAMD,wBAAgB,aAAa,CAAC,IAAI,GAAE,IAAiB,GAAG,IAAI,CAE3D;AAED,wBAAgB,WAAW,CAAC,IAAI,GAAE,IAAiB,GAAG,IAAI,CAEzD"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { endOfDay as S, startOfMonth as T, getDaysInMonth as p, subMonths as O, isSameDay as o, format as l, addMonths as $, startOfDay as A, startOfWeek as L, addDays as k } from "date-fns";
|
|
2
|
+
const d = "Asia/Kolkata", g = "en-IN";
|
|
3
|
+
function I(t, e) {
|
|
4
|
+
return new Date(t).toLocaleDateString(g, {
|
|
5
|
+
timeZone: d,
|
|
6
|
+
...e
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
function U(t, e) {
|
|
10
|
+
return new Date(t).toLocaleTimeString(g, {
|
|
11
|
+
timeZone: d,
|
|
12
|
+
...e
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
function w(t) {
|
|
16
|
+
return (t instanceof Date ? t : new Date(t)).toLocaleDateString(g, {
|
|
17
|
+
day: "2-digit",
|
|
18
|
+
month: "short",
|
|
19
|
+
year: "2-digit",
|
|
20
|
+
timeZone: d
|
|
21
|
+
}).replace(",", "").replace(/(\d{2})$/, "’$1");
|
|
22
|
+
}
|
|
23
|
+
function F(t) {
|
|
24
|
+
return t === "-" ? "-" : w(t);
|
|
25
|
+
}
|
|
26
|
+
function P(t) {
|
|
27
|
+
const e = t.toLocaleString(g, {
|
|
28
|
+
weekday: "long",
|
|
29
|
+
timeZone: d
|
|
30
|
+
});
|
|
31
|
+
return `${w(t)}, ${e}`;
|
|
32
|
+
}
|
|
33
|
+
function Z(t) {
|
|
34
|
+
if (t >= 11 && t <= 13) return `${t}th`;
|
|
35
|
+
switch (t % 10) {
|
|
36
|
+
case 1:
|
|
37
|
+
return `${t}st`;
|
|
38
|
+
case 2:
|
|
39
|
+
return `${t}nd`;
|
|
40
|
+
case 3:
|
|
41
|
+
return `${t}rd`;
|
|
42
|
+
default:
|
|
43
|
+
return `${t}th`;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function W(t, e) {
|
|
47
|
+
return !(t instanceof Date) || !(e instanceof Date) ? !1 : o(t, e);
|
|
48
|
+
}
|
|
49
|
+
function x(t, e) {
|
|
50
|
+
const r = L(new Date(t), { weekStartsOn: 0 }), i = /* @__PURE__ */ new Date(), c = new Date(e);
|
|
51
|
+
return Array.from({ length: 7 }, (u, y) => {
|
|
52
|
+
const s = k(r, y);
|
|
53
|
+
return {
|
|
54
|
+
day: l(s, "EEE").toUpperCase(),
|
|
55
|
+
date: s.getDate(),
|
|
56
|
+
fullDate: s,
|
|
57
|
+
isToday: o(s, i),
|
|
58
|
+
isActive: o(s, c)
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
function Y(t, e) {
|
|
63
|
+
const r = new Date(t), i = new Date(e), c = /* @__PURE__ */ new Date(), u = T(r), y = u.getDay(), s = p(r), f = [], h = O(u, 1), E = p(h);
|
|
64
|
+
for (let n = y - 1; n >= 0; n--) {
|
|
65
|
+
const a = E - n, D = new Date(h.getFullYear(), h.getMonth(), a);
|
|
66
|
+
f.push({
|
|
67
|
+
day: l(D, "EEE").toUpperCase(),
|
|
68
|
+
date: D.getDate(),
|
|
69
|
+
fullDate: D,
|
|
70
|
+
isToday: o(D, c),
|
|
71
|
+
isActive: o(D, i),
|
|
72
|
+
isPadding: !0
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
for (let n = 1; n <= s; n++) {
|
|
76
|
+
const a = new Date(r.getFullYear(), r.getMonth(), n);
|
|
77
|
+
f.push({
|
|
78
|
+
day: l(a, "EEE").toUpperCase(),
|
|
79
|
+
date: n,
|
|
80
|
+
fullDate: a,
|
|
81
|
+
isToday: o(a, c),
|
|
82
|
+
isActive: o(a, i),
|
|
83
|
+
isPadding: !1
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
const M = (7 - f.length % 7) % 7, m = $(u, 1);
|
|
87
|
+
for (let n = 1; n <= M; n++) {
|
|
88
|
+
const a = new Date(m.getFullYear(), m.getMonth(), n);
|
|
89
|
+
f.push({
|
|
90
|
+
day: l(a, "EEE").toUpperCase(),
|
|
91
|
+
date: n,
|
|
92
|
+
fullDate: a,
|
|
93
|
+
isToday: o(a, c),
|
|
94
|
+
isActive: o(a, i),
|
|
95
|
+
isPadding: !0
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return f;
|
|
99
|
+
}
|
|
100
|
+
function _(t = /* @__PURE__ */ new Date()) {
|
|
101
|
+
return A(t);
|
|
102
|
+
}
|
|
103
|
+
function N(t = /* @__PURE__ */ new Date()) {
|
|
104
|
+
return S(t);
|
|
105
|
+
}
|
|
106
|
+
export {
|
|
107
|
+
w as formatDate,
|
|
108
|
+
I as formatDateIST,
|
|
109
|
+
P as formatDateWithWeekday,
|
|
110
|
+
F as formatOptionalDate,
|
|
111
|
+
U as formatTimeIST,
|
|
112
|
+
Z as getDaySuffix,
|
|
113
|
+
N as getEndOfDay,
|
|
114
|
+
Y as getMonthDays,
|
|
115
|
+
_ as getStartOfDay,
|
|
116
|
+
x as getWeekDays,
|
|
117
|
+
W as isSameDay
|
|
118
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emoji-utils.d.ts","sourceRoot":"","sources":["../../../src/admin/utils/emoji-utils.ts"],"names":[],"mappings":"AAIA,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAOrD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
function r(e) {
|
|
2
|
+
return e.replace(
|
|
3
|
+
/^[\p{Emoji_Presentation}\p{Extended_Pictographic}\u200B-\u200D]+/gu,
|
|
4
|
+
""
|
|
5
|
+
);
|
|
6
|
+
}
|
|
7
|
+
function o(e) {
|
|
8
|
+
return (e == null ? void 0 : e.replace(
|
|
9
|
+
/[\p{Emoji_Presentation}\p{Extended_Pictographic}\u200B-\u200D]+/gu,
|
|
10
|
+
""
|
|
11
|
+
)) ?? "";
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
o as removeAllEmojis,
|
|
15
|
+
r as removeEmojiAtStart
|
|
16
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* renderAdjustmentType is a pure render utility function, not a React component.
|
|
3
|
+
* It maps an AdjustmentType key to a human-readable label wrapped in a <div>.
|
|
4
|
+
*
|
|
5
|
+
* This intentionally does not follow the component checklist (forwardRef,
|
|
6
|
+
* displayName, props interface) because it is invoked as a function
|
|
7
|
+
* — e.g. renderAdjustmentType('CASHOUT') — not rendered as JSX.
|
|
8
|
+
*/
|
|
9
|
+
export declare const AdjustmentType: {
|
|
10
|
+
readonly YEARLY_BALANCE: "YEARLY_BALANCE";
|
|
11
|
+
readonly CARRY_FORWARD: "CARRY_FORWARD";
|
|
12
|
+
readonly CASHOUT: "CASHOUT";
|
|
13
|
+
readonly OTHER: "OTHER";
|
|
14
|
+
};
|
|
15
|
+
declare function renderAdjustmentType(type: keyof typeof AdjustmentType): JSX.Element;
|
|
16
|
+
export default renderAdjustmentType;
|
|
17
|
+
//# sourceMappingURL=render-adjustment-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-adjustment-type.d.ts","sourceRoot":"","sources":["../../../src/admin/utils/render-adjustment-type.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,cAAc;;;;;CAKjB,CAAA;AASV,iBAAS,oBAAoB,CAAC,IAAI,EAAE,MAAM,OAAO,cAAc,GAAG,GAAG,CAAC,OAAO,CAE5E;AAED,eAAe,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as R } from "react/jsx-runtime";
|
|
2
|
+
const t = {
|
|
3
|
+
YEARLY_BALANCE: "YEARLY_BALANCE",
|
|
4
|
+
CARRY_FORWARD: "CARRY_FORWARD",
|
|
5
|
+
CASHOUT: "CASHOUT",
|
|
6
|
+
OTHER: "OTHER"
|
|
7
|
+
}, r = {
|
|
8
|
+
YEARLY_BALANCE: "Yearly Balance",
|
|
9
|
+
CARRY_FORWARD: "Carry Forward",
|
|
10
|
+
CASHOUT: "Cashout",
|
|
11
|
+
OTHER: "Other"
|
|
12
|
+
};
|
|
13
|
+
function E(A) {
|
|
14
|
+
return /* @__PURE__ */ R("div", { children: r[A] });
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
t as AdjustmentType,
|
|
18
|
+
E as default
|
|
19
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-status.d.ts","sourceRoot":"","sources":["../../../src/admin/utils/render-status.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AA4B9B,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,OAAO,GACnB,KAAK,CAAC,SAAS,CAYjB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import { Badge as d } from "@devalok/shilp-sutra/ui";
|
|
3
|
+
const r = {
|
|
4
|
+
APPROVED: { text: "Corrected", variant: "accent" },
|
|
5
|
+
PENDING: { text: "Pending", variant: "warning" },
|
|
6
|
+
REJECTED: { text: "Denied", variant: "error" },
|
|
7
|
+
MISSING: { text: "Missed", variant: "error" }
|
|
8
|
+
}, e = {
|
|
9
|
+
APPROVED: { text: "Approved", variant: "success" },
|
|
10
|
+
PENDING: { text: "Pending", variant: "warning" },
|
|
11
|
+
REJECTED: { text: "Denied", variant: "error" },
|
|
12
|
+
CANCELLED: { text: "Redacted", variant: "error" },
|
|
13
|
+
MISSING: { text: "Missed", variant: "error" }
|
|
14
|
+
};
|
|
15
|
+
function v(n, t) {
|
|
16
|
+
const a = t ? r : e, i = t ? r.REJECTED : e.REJECTED, { text: E, variant: o } = a[n] || i;
|
|
17
|
+
return /* @__PURE__ */ s(d, { variant: o, size: "sm", children: E });
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
v as renderStatus
|
|
21
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BoardTask } from './task-card';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export interface BoardColumnData {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
isClientVisible?: boolean;
|
|
7
|
+
tasks: BoardTask[];
|
|
8
|
+
}
|
|
9
|
+
export interface BoardColumnProps {
|
|
10
|
+
column: BoardColumnData;
|
|
11
|
+
index: number;
|
|
12
|
+
isOverlay?: boolean;
|
|
13
|
+
onAddTask: (columnId: string, title: string) => void;
|
|
14
|
+
onClickTask?: (taskId: string) => void;
|
|
15
|
+
onRenameColumn?: (columnId: string, name: string) => void;
|
|
16
|
+
onDeleteColumn?: (columnId: string) => void;
|
|
17
|
+
onToggleVisibility?: (columnId: string, visible: boolean) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare const BoardColumn: React.ForwardRefExoticComponent<BoardColumnProps & React.RefAttributes<HTMLDivElement>>;
|
|
20
|
+
//# sourceMappingURL=board-column.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board-column.d.ts","sourceRoot":"","sources":["../../src/board/board-column.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAe9B,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,aAAa,CAAA;AAMtD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB;AAqBD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACpD,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzD,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CAClE;AAED,eAAO,MAAM,WAAW,yFA2PvB,CAAA"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { jsxs as r, jsx as e, Fragment as N } from "react/jsx-runtime";
|
|
2
|
+
import * as P from "react";
|
|
3
|
+
import { useState as n, useRef as v } from "react";
|
|
4
|
+
import { useDroppable as H } from "@dnd-kit/core";
|
|
5
|
+
import { SortableContext as U, verticalListSortingStrategy as _ } from "@dnd-kit/sortable";
|
|
6
|
+
import { cn as w } from "@devalok/shilp-sutra/ui";
|
|
7
|
+
import { Button as m } from "@devalok/shilp-sutra/ui";
|
|
8
|
+
import { Input as k } from "@devalok/shilp-sutra/ui";
|
|
9
|
+
import { DropdownMenu as $, DropdownMenuTrigger as q, DropdownMenuContent as G, DropdownMenuItem as u, DropdownMenuSeparator as J } from "@devalok/shilp-sutra/ui";
|
|
10
|
+
import { IconEye as C, IconPlus as I, IconDots as Q, IconPencil as V, IconEyeOff as W, IconTrash as X } from "@tabler/icons-react";
|
|
11
|
+
import { TaskCard as Y } from "./task-card.js";
|
|
12
|
+
const E = [
|
|
13
|
+
"border-l-category-cyan",
|
|
14
|
+
"border-l-category-amber",
|
|
15
|
+
"border-l-category-teal",
|
|
16
|
+
"border-l-category-indigo",
|
|
17
|
+
"border-l-category-orange",
|
|
18
|
+
"border-l-category-emerald",
|
|
19
|
+
"border-l-category-slate",
|
|
20
|
+
"border-l-accent"
|
|
21
|
+
], Z = P.forwardRef(
|
|
22
|
+
function({
|
|
23
|
+
column: s,
|
|
24
|
+
index: D,
|
|
25
|
+
isOverlay: S,
|
|
26
|
+
onAddTask: A,
|
|
27
|
+
onClickTask: B,
|
|
28
|
+
onRenameColumn: h,
|
|
29
|
+
onDeleteColumn: f,
|
|
30
|
+
onToggleVisibility: p
|
|
31
|
+
}, M) {
|
|
32
|
+
const [b, a] = n(!1), [i, o] = n(""), [T, d] = n(!1), [c, l] = n(s.name), x = v(null), R = v(null), { setNodeRef: j, isOver: z } = H({
|
|
33
|
+
id: `column-${s.id}`,
|
|
34
|
+
data: {
|
|
35
|
+
type: "column",
|
|
36
|
+
column: s
|
|
37
|
+
}
|
|
38
|
+
}), K = s.tasks.map((t) => t.id), F = E[D % E.length], g = () => {
|
|
39
|
+
i.trim() && (A(s.id, i.trim()), o(""), a(!1));
|
|
40
|
+
}, O = (t) => {
|
|
41
|
+
t.key === "Enter" && g(), t.key === "Escape" && (o(""), a(!1));
|
|
42
|
+
}, y = () => {
|
|
43
|
+
c.trim() && c.trim() !== s.name && (h == null || h(s.id, c.trim())), d(!1);
|
|
44
|
+
}, L = (t) => {
|
|
45
|
+
t.key === "Enter" && y(), t.key === "Escape" && (l(s.name), d(!1));
|
|
46
|
+
};
|
|
47
|
+
return /* @__PURE__ */ r(
|
|
48
|
+
"div",
|
|
49
|
+
{
|
|
50
|
+
ref: M,
|
|
51
|
+
className: w(
|
|
52
|
+
/* intentional: board column fixed width — matches add-column button */
|
|
53
|
+
"flex h-full w-[300px] flex-shrink-0 flex-col rounded-ds-xl border-l-[3px] bg-layer-01 shadow-01",
|
|
54
|
+
F,
|
|
55
|
+
S && "shadow-04"
|
|
56
|
+
),
|
|
57
|
+
children: [
|
|
58
|
+
/* @__PURE__ */ r("div", { className: "flex items-center gap-ds-03 px-ds-04 py-ds-04", children: [
|
|
59
|
+
T ? /* @__PURE__ */ e(
|
|
60
|
+
k,
|
|
61
|
+
{
|
|
62
|
+
ref: R,
|
|
63
|
+
value: c,
|
|
64
|
+
onChange: (t) => l(t.target.value),
|
|
65
|
+
onBlur: y,
|
|
66
|
+
onKeyDown: L,
|
|
67
|
+
className: "h-ds-xs-plus text-ds-md font-semibold",
|
|
68
|
+
autoFocus: !0
|
|
69
|
+
}
|
|
70
|
+
) : /* @__PURE__ */ e(
|
|
71
|
+
"h3",
|
|
72
|
+
{
|
|
73
|
+
className: "text-ds-md font-semibold text-text-primary truncate",
|
|
74
|
+
onDoubleClick: () => {
|
|
75
|
+
l(s.name), d(!0);
|
|
76
|
+
},
|
|
77
|
+
children: s.name
|
|
78
|
+
}
|
|
79
|
+
),
|
|
80
|
+
/* @__PURE__ */ e("span", { className: "flex h-5 min-w-[20px] items-center justify-center rounded-ds-full bg-field px-ds-02b text-ds-sm font-medium text-text-tertiary", children: s.tasks.length }),
|
|
81
|
+
s.isClientVisible && /* @__PURE__ */ e(
|
|
82
|
+
C,
|
|
83
|
+
{
|
|
84
|
+
className: "h-3 w-3 text-text-tertiary",
|
|
85
|
+
"aria-label": "Visible to client"
|
|
86
|
+
}
|
|
87
|
+
),
|
|
88
|
+
/* @__PURE__ */ e("div", { className: "flex-1" }),
|
|
89
|
+
/* @__PURE__ */ e(
|
|
90
|
+
m,
|
|
91
|
+
{
|
|
92
|
+
variant: "ghost",
|
|
93
|
+
size: "icon-md",
|
|
94
|
+
className: "h-ds-xs w-ds-xs opacity-0 group-hover:opacity-100 hover:bg-interactive-subtle hover:text-interactive transition-opacity",
|
|
95
|
+
onClick: () => {
|
|
96
|
+
a(!0), setTimeout(() => {
|
|
97
|
+
var t;
|
|
98
|
+
return (t = x.current) == null ? void 0 : t.focus();
|
|
99
|
+
}, 50);
|
|
100
|
+
},
|
|
101
|
+
children: /* @__PURE__ */ e(I, { className: "h-ico-sm w-ico-sm" })
|
|
102
|
+
}
|
|
103
|
+
),
|
|
104
|
+
/* @__PURE__ */ r($, { children: [
|
|
105
|
+
/* @__PURE__ */ e(q, { asChild: !0, children: /* @__PURE__ */ e(
|
|
106
|
+
m,
|
|
107
|
+
{
|
|
108
|
+
variant: "ghost",
|
|
109
|
+
size: "icon-md",
|
|
110
|
+
className: "h-ds-xs w-ds-xs opacity-0 group-hover:opacity-100 transition-opacity",
|
|
111
|
+
children: /* @__PURE__ */ e(Q, { className: "h-ico-sm w-ico-sm" })
|
|
112
|
+
}
|
|
113
|
+
) }),
|
|
114
|
+
/* @__PURE__ */ r(G, { align: "end", className: "w-44", children: [
|
|
115
|
+
/* @__PURE__ */ r(
|
|
116
|
+
u,
|
|
117
|
+
{
|
|
118
|
+
onClick: () => {
|
|
119
|
+
l(s.name), d(!0);
|
|
120
|
+
},
|
|
121
|
+
children: [
|
|
122
|
+
/* @__PURE__ */ e(V, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
|
|
123
|
+
"Rename"
|
|
124
|
+
]
|
|
125
|
+
}
|
|
126
|
+
),
|
|
127
|
+
/* @__PURE__ */ e(
|
|
128
|
+
u,
|
|
129
|
+
{
|
|
130
|
+
onClick: () => p == null ? void 0 : p(s.id, !s.isClientVisible),
|
|
131
|
+
children: s.isClientVisible ? /* @__PURE__ */ r(N, { children: [
|
|
132
|
+
/* @__PURE__ */ e(W, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
|
|
133
|
+
"Hide from client"
|
|
134
|
+
] }) : /* @__PURE__ */ r(N, { children: [
|
|
135
|
+
/* @__PURE__ */ e(C, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
|
|
136
|
+
"Show to client"
|
|
137
|
+
] })
|
|
138
|
+
}
|
|
139
|
+
),
|
|
140
|
+
/* @__PURE__ */ e(J, {}),
|
|
141
|
+
/* @__PURE__ */ r(
|
|
142
|
+
u,
|
|
143
|
+
{
|
|
144
|
+
className: "text-error focus:text-error",
|
|
145
|
+
onClick: () => f == null ? void 0 : f(s.id),
|
|
146
|
+
children: [
|
|
147
|
+
/* @__PURE__ */ e(X, { className: "mr-ds-03 h-ico-sm w-ico-sm" }),
|
|
148
|
+
"Delete column"
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
)
|
|
152
|
+
] })
|
|
153
|
+
] })
|
|
154
|
+
] }),
|
|
155
|
+
/* @__PURE__ */ r(
|
|
156
|
+
"div",
|
|
157
|
+
{
|
|
158
|
+
ref: j,
|
|
159
|
+
className: w(
|
|
160
|
+
"no-scrollbar flex flex-1 flex-col gap-ds-03 overflow-y-auto px-ds-03 pb-ds-03 transition-colors duration-fast-02 ease-productive-standard",
|
|
161
|
+
z && "bg-interactive-subtle/50"
|
|
162
|
+
),
|
|
163
|
+
children: [
|
|
164
|
+
/* @__PURE__ */ e(U, { items: K, strategy: _, children: s.tasks.map((t) => /* @__PURE__ */ e(Y, { task: t, onClickTask: B }, t.id)) }),
|
|
165
|
+
s.tasks.length === 0 && !b && /* @__PURE__ */ e("div", { className: "flex flex-1 items-center justify-center py-ds-07", children: /* @__PURE__ */ e("p", { className: "text-ds-sm text-text-placeholder", children: "No tasks" }) })
|
|
166
|
+
]
|
|
167
|
+
}
|
|
168
|
+
),
|
|
169
|
+
b ? /* @__PURE__ */ r("div", { className: "border-t border-border-subtle p-ds-03", children: [
|
|
170
|
+
/* @__PURE__ */ e(
|
|
171
|
+
k,
|
|
172
|
+
{
|
|
173
|
+
ref: x,
|
|
174
|
+
value: i,
|
|
175
|
+
onChange: (t) => o(t.target.value),
|
|
176
|
+
onKeyDown: O,
|
|
177
|
+
onBlur: () => {
|
|
178
|
+
i.trim() || a(!1);
|
|
179
|
+
},
|
|
180
|
+
placeholder: "Task title...",
|
|
181
|
+
className: "h-ds-sm text-ds-md",
|
|
182
|
+
autoFocus: !0
|
|
183
|
+
}
|
|
184
|
+
),
|
|
185
|
+
/* @__PURE__ */ r("div", { className: "mt-ds-02b flex items-center gap-ds-02", children: [
|
|
186
|
+
/* @__PURE__ */ e(
|
|
187
|
+
m,
|
|
188
|
+
{
|
|
189
|
+
size: "sm",
|
|
190
|
+
className: "h-ds-xs-plus bg-interactive hover:bg-interactive-hover text-text-on-color text-ds-sm",
|
|
191
|
+
onClick: g,
|
|
192
|
+
disabled: !i.trim(),
|
|
193
|
+
children: "Add"
|
|
194
|
+
}
|
|
195
|
+
),
|
|
196
|
+
/* @__PURE__ */ e(
|
|
197
|
+
m,
|
|
198
|
+
{
|
|
199
|
+
variant: "ghost",
|
|
200
|
+
size: "sm",
|
|
201
|
+
className: "h-ds-xs-plus text-ds-sm",
|
|
202
|
+
onClick: () => {
|
|
203
|
+
o(""), a(!1);
|
|
204
|
+
},
|
|
205
|
+
children: "Cancel"
|
|
206
|
+
}
|
|
207
|
+
)
|
|
208
|
+
] })
|
|
209
|
+
] }) : /* @__PURE__ */ r(
|
|
210
|
+
"button",
|
|
211
|
+
{
|
|
212
|
+
onClick: () => {
|
|
213
|
+
a(!0), setTimeout(() => {
|
|
214
|
+
var t;
|
|
215
|
+
return (t = x.current) == null ? void 0 : t.focus();
|
|
216
|
+
}, 50);
|
|
217
|
+
},
|
|
218
|
+
className: "flex items-center gap-ds-02b border-t border-border-subtle px-ds-04 py-ds-03 text-ds-sm text-text-placeholder transition-colors hover:bg-field hover:text-text-tertiary",
|
|
219
|
+
children: [
|
|
220
|
+
/* @__PURE__ */ e(I, { className: "h-3 w-3" }),
|
|
221
|
+
"Add task"
|
|
222
|
+
]
|
|
223
|
+
}
|
|
224
|
+
)
|
|
225
|
+
]
|
|
226
|
+
}
|
|
227
|
+
);
|
|
228
|
+
}
|
|
229
|
+
);
|
|
230
|
+
Z.displayName = "BoardColumn";
|
|
231
|
+
export {
|
|
232
|
+
Z as BoardColumn
|
|
233
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { KanbanBoard, type BoardData, type KanbanBoardProps } from './kanban-board';
|
|
2
|
+
export { BoardColumn, type BoardColumnData, type BoardColumnProps } from './board-column';
|
|
3
|
+
export { TaskCard, TaskCardOverlay, type BoardTask, type TaskCardProps, type TaskCardOverlayProps } from './task-card';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/board/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACnF,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACzF,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { KanbanBoard as o } from "./kanban-board.js";
|
|
2
|
+
import { BoardColumn as e } from "./board-column.js";
|
|
3
|
+
import { TaskCard as f, TaskCardOverlay as n } from "./task-card.js";
|
|
4
|
+
export {
|
|
5
|
+
e as BoardColumn,
|
|
6
|
+
o as KanbanBoard,
|
|
7
|
+
f as TaskCard,
|
|
8
|
+
n as TaskCardOverlay
|
|
9
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BoardColumnData } from './board-column';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export interface BoardData {
|
|
4
|
+
columns: BoardColumnData[];
|
|
5
|
+
}
|
|
6
|
+
export interface KanbanBoardProps {
|
|
7
|
+
initialData: BoardData;
|
|
8
|
+
onTaskMove?: (taskId: string, toColumnId: string, newOrder: number) => void;
|
|
9
|
+
onTaskAdd?: (columnId: string, title: string) => void;
|
|
10
|
+
onColumnRename?: (columnId: string, name: string) => void;
|
|
11
|
+
onColumnDelete?: (columnId: string) => void;
|
|
12
|
+
onColumnToggleVisibility?: (columnId: string, visible: boolean) => void;
|
|
13
|
+
onClickTask?: (taskId: string) => void;
|
|
14
|
+
onAddColumn?: () => void;
|
|
15
|
+
}
|
|
16
|
+
export declare const KanbanBoard: React.ForwardRefExoticComponent<KanbanBoardProps & React.RefAttributes<HTMLDivElement>>;
|
|
17
|
+
//# sourceMappingURL=kanban-board.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kanban-board.d.ts","sourceRoot":"","sources":["../../src/board/kanban-board.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAsB9B,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAA;AA4ClE,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,eAAe,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,SAAS,CAAA;IACtB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3E,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzD,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,wBAAwB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACvE,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;CACzB;AAMD,eAAO,MAAM,WAAW,yFAuRvB,CAAA"}
|