@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,153 @@
|
|
|
1
|
+
import { jsxs as d, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import * as C from "react";
|
|
3
|
+
import { DropdownMenu as x, DropdownMenuTrigger as h, DropdownMenuContent as p, DropdownMenuItem as o } from "@devalok/shilp-sutra/ui";
|
|
4
|
+
import { Button as D } from "@devalok/shilp-sutra/ui";
|
|
5
|
+
import { IconButton as f } from "@devalok/shilp-sutra/ui";
|
|
6
|
+
import { SegmentedControl as k } from "@devalok/shilp-sutra/ui";
|
|
7
|
+
import { cn as b } from "@devalok/shilp-sutra/ui";
|
|
8
|
+
import { IconChevronDown as N, IconX as I, IconUser as M, IconChevronLeft as z, IconChevronRight as H } from "@tabler/icons-react";
|
|
9
|
+
const R = C.forwardRef(
|
|
10
|
+
function({
|
|
11
|
+
selectedMonth: m,
|
|
12
|
+
yearsList: n,
|
|
13
|
+
isTodaySelected: w,
|
|
14
|
+
selectedAssociate: r,
|
|
15
|
+
users: a,
|
|
16
|
+
userImages: s,
|
|
17
|
+
activeTimeFrame: u,
|
|
18
|
+
onMonthSelection: v,
|
|
19
|
+
onTodayClick: y,
|
|
20
|
+
onSelectAssociate: c,
|
|
21
|
+
onTimeFrameChange: g,
|
|
22
|
+
onDateChange: i
|
|
23
|
+
}, j) {
|
|
24
|
+
return /* @__PURE__ */ d("div", { ref: j, className: "mb-ds-06 flex w-full flex-col items-start justify-between md:flex-row md:items-center", children: [
|
|
25
|
+
/* @__PURE__ */ d("div", { className: "flex w-full items-center justify-between gap-ds-05 md:w-auto md:justify-start", children: [
|
|
26
|
+
/* @__PURE__ */ d(x, { children: [
|
|
27
|
+
/* @__PURE__ */ d(h, { className: "text-ds-xl flex items-center gap-ds-03 text-text-secondary", children: [
|
|
28
|
+
m,
|
|
29
|
+
/* @__PURE__ */ e(N, {})
|
|
30
|
+
] }),
|
|
31
|
+
/* @__PURE__ */ e(p, { className: "custom-scrollbar absolute ml-ds-08 max-h-[300px] overflow-y-auto rounded-ds-md border border-0 border-border p-0 shadow-brand", children: n.map((t, l) => /* @__PURE__ */ e(
|
|
32
|
+
o,
|
|
33
|
+
{
|
|
34
|
+
onSelect: () => {
|
|
35
|
+
v(t);
|
|
36
|
+
},
|
|
37
|
+
className: b("p-0", l !== n.length - 1 ? "border-b border-b-border" : ""),
|
|
38
|
+
children: /* @__PURE__ */ e(
|
|
39
|
+
"span",
|
|
40
|
+
{
|
|
41
|
+
className: b("w-full py-ds-04 pl-ds-05 pr-ds-06", m === t ? "text-ds-md font-semibold bg-interactive text-text-on-color" : "text-ds-md text-text-secondary hover:bg-layer-02", l === 0 ? "rounded-t-[7px]" : l === n.length - 1 ? "rounded-b-[7px]" : ""),
|
|
42
|
+
children: t.split(" ")[1]
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
},
|
|
46
|
+
t
|
|
47
|
+
)) })
|
|
48
|
+
] }),
|
|
49
|
+
!w && /* @__PURE__ */ e(
|
|
50
|
+
D,
|
|
51
|
+
{
|
|
52
|
+
variant: "secondary",
|
|
53
|
+
onClick: y,
|
|
54
|
+
children: "Today"
|
|
55
|
+
}
|
|
56
|
+
)
|
|
57
|
+
] }),
|
|
58
|
+
/* @__PURE__ */ d("div", { className: "flex w-full items-center justify-between gap-ds-05 md:mt-0 md:w-auto md:justify-start max-md:mt-[17px] max-lg:gap-[0.5rem]", children: [
|
|
59
|
+
/* @__PURE__ */ e("div", { className: "hidden md:flex", children: r ? /* @__PURE__ */ d("div", { className: "text-ds-md flex items-center justify-start rounded-ds-md bg-interactive px-ds-03 py-ds-02b text-text-on-color", children: [
|
|
60
|
+
/* @__PURE__ */ d("div", { className: "flex items-center justify-start gap-0", children: [
|
|
61
|
+
s[r.id] ? /* @__PURE__ */ e(
|
|
62
|
+
"img",
|
|
63
|
+
{
|
|
64
|
+
src: s[r.id],
|
|
65
|
+
alt: `${r.name}'s avatar`,
|
|
66
|
+
className: "h-ico-md w-ico-md rounded-ds-full"
|
|
67
|
+
}
|
|
68
|
+
) : /* @__PURE__ */ e("div", { className: "flex h-ico-md w-ico-md flex-shrink-0 items-center justify-center rounded-ds-full bg-layer-03", children: /* @__PURE__ */ e("span", { className: "text-interactive", children: r.name.charAt(0) }) }),
|
|
69
|
+
/* @__PURE__ */ e("span", { className: "text-ds-md ml-ds-01 mr-ds-02 text-text-on-color", children: r.name })
|
|
70
|
+
] }),
|
|
71
|
+
/* @__PURE__ */ e(
|
|
72
|
+
"button",
|
|
73
|
+
{
|
|
74
|
+
onClick: () => c(null),
|
|
75
|
+
className: "border-0 bg-transparent p-0",
|
|
76
|
+
children: /* @__PURE__ */ e(I, { className: "h-ico-sm w-ico-sm text-text-on-color" })
|
|
77
|
+
}
|
|
78
|
+
)
|
|
79
|
+
] }) : /* @__PURE__ */ d(x, { children: [
|
|
80
|
+
/* @__PURE__ */ d(h, { className: "text-ds-md hidden items-center justify-between rounded-ds-md border border-border-subtle bg-layer-01 px-ds-03 py-ds-02b md:flex", children: [
|
|
81
|
+
/* @__PURE__ */ d("div", { className: "flex items-center", children: [
|
|
82
|
+
/* @__PURE__ */ e(M, { className: "h-ico-md w-ico-md" }),
|
|
83
|
+
/* @__PURE__ */ e("span", { className: "text-ds-md ml-ds-01 mr-ds-02 text-text-secondary max-lg:mx-0 max-lg:text-ds-sm", children: "Associate" })
|
|
84
|
+
] }),
|
|
85
|
+
/* @__PURE__ */ e(N, { className: "h-ico-sm w-ico-sm" })
|
|
86
|
+
] }),
|
|
87
|
+
/* @__PURE__ */ e(p, { className: "custom-scrollbar max-h-[400px] w-64 overflow-y-auto p-ds-03", children: (a == null ? void 0 : a.length) === 0 ? /* @__PURE__ */ e(o, { disabled: !0, children: "No users available" }) : a == null ? void 0 : a.map((t) => /* @__PURE__ */ d(
|
|
88
|
+
o,
|
|
89
|
+
{
|
|
90
|
+
onSelect: () => {
|
|
91
|
+
const l = {
|
|
92
|
+
...t,
|
|
93
|
+
createdAt: new Date(t.createdAt)
|
|
94
|
+
};
|
|
95
|
+
c(l);
|
|
96
|
+
},
|
|
97
|
+
className: "flex items-center gap-ds-03 p-ds-03",
|
|
98
|
+
children: [
|
|
99
|
+
s[t.id] ? /* @__PURE__ */ e(
|
|
100
|
+
"img",
|
|
101
|
+
{
|
|
102
|
+
src: s[t.id],
|
|
103
|
+
alt: `${t.name}'s avatar`,
|
|
104
|
+
className: "h-ds-xs w-ds-xs rounded-ds-full"
|
|
105
|
+
}
|
|
106
|
+
) : /* @__PURE__ */ e("div", { className: "flex h-ds-xs w-ds-xs items-center justify-center rounded-ds-full bg-layer-03", children: /* @__PURE__ */ e("span", { className: "text-ds-md text-interactive", children: t.name.charAt(0) }) }),
|
|
107
|
+
/* @__PURE__ */ e("span", { className: "text-ds-md text-text-secondary", children: t.name })
|
|
108
|
+
]
|
|
109
|
+
},
|
|
110
|
+
t.id
|
|
111
|
+
)) })
|
|
112
|
+
] }) }),
|
|
113
|
+
/* @__PURE__ */ e(
|
|
114
|
+
k,
|
|
115
|
+
{
|
|
116
|
+
size: "md",
|
|
117
|
+
color: "tonal",
|
|
118
|
+
options: [
|
|
119
|
+
{ id: "weekly", text: "Weekly" },
|
|
120
|
+
{ id: "monthly", text: "Monthly" }
|
|
121
|
+
],
|
|
122
|
+
selectedId: u,
|
|
123
|
+
onSelect: g
|
|
124
|
+
}
|
|
125
|
+
),
|
|
126
|
+
/* @__PURE__ */ d("div", { className: "flex gap-0", children: [
|
|
127
|
+
/* @__PURE__ */ e(
|
|
128
|
+
f,
|
|
129
|
+
{
|
|
130
|
+
icon: /* @__PURE__ */ e(z, {}),
|
|
131
|
+
size: "sm",
|
|
132
|
+
"aria-label": "Previous",
|
|
133
|
+
onClick: () => i("prev")
|
|
134
|
+
}
|
|
135
|
+
),
|
|
136
|
+
/* @__PURE__ */ e(
|
|
137
|
+
f,
|
|
138
|
+
{
|
|
139
|
+
icon: /* @__PURE__ */ e(H, {}),
|
|
140
|
+
size: "sm",
|
|
141
|
+
"aria-label": "Next",
|
|
142
|
+
onClick: () => i("next")
|
|
143
|
+
}
|
|
144
|
+
)
|
|
145
|
+
] })
|
|
146
|
+
] })
|
|
147
|
+
] });
|
|
148
|
+
}
|
|
149
|
+
);
|
|
150
|
+
R.displayName = "DashboardHeader";
|
|
151
|
+
export {
|
|
152
|
+
R as DashboardHeader
|
|
153
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-skeleton.d.ts","sourceRoot":"","sources":["../../../src/admin/dashboard/dashboard-skeleton.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAW9B,eAAO,MAAM,iBAAiB,sEA0H7B,CAAA"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { jsx as e, jsxs as d } from "react/jsx-runtime";
|
|
2
|
+
import * as o from "react";
|
|
3
|
+
import { cn as m } from "@devalok/shilp-sutra/ui";
|
|
4
|
+
import { Skeleton as s } from "@devalok/shilp-sutra/ui";
|
|
5
|
+
import { DropdownMenu as n, DropdownMenuTrigger as c } from "@devalok/shilp-sutra/ui";
|
|
6
|
+
import { IconButton as t } from "@devalok/shilp-sutra/ui";
|
|
7
|
+
import { IconChevronDown as x, IconChevronLeft as f, IconChevronRight as p } from "@tabler/icons-react";
|
|
8
|
+
const u = o.forwardRef(
|
|
9
|
+
function(h, i) {
|
|
10
|
+
return /* @__PURE__ */ e("div", { ref: i, className: "flex w-full max-w-layout flex-col items-center justify-center max-md:h-[100%] max-md:justify-start", children: /* @__PURE__ */ d("div", { className: "z-raised flex w-full flex-col items-start justify-start rounded-ds-lg border border-border bg-layer-02 p-ds-05 shadow-05 max-md:flex-1 max-md:min-h-0 max-md:overflow-y-auto max-md:border-0 max-md:px-ds-05 max-md:pb-0 max-md:pt-ds-06", children: [
|
|
11
|
+
/* @__PURE__ */ d("div", { className: "mb-ds-06 flex w-full flex-col items-start justify-between md:flex-row md:items-center", children: [
|
|
12
|
+
/* @__PURE__ */ e(n, { children: /* @__PURE__ */ d(c, { className: "text-ds-xl flex items-center gap-ds-03 text-text-secondary", children: [
|
|
13
|
+
/* @__PURE__ */ d("div", { className: "flex items-center gap-ds-03", children: [
|
|
14
|
+
/* @__PURE__ */ e(s, { className: "h-[25px] w-[50px] rounded-ds-md bg-field" }),
|
|
15
|
+
/* @__PURE__ */ e(s, { className: "h-[25px] w-[50px] rounded-ds-md bg-field" })
|
|
16
|
+
] }),
|
|
17
|
+
/* @__PURE__ */ e(x, {})
|
|
18
|
+
] }) }),
|
|
19
|
+
/* @__PURE__ */ d("div", { className: "flex w-full items-center justify-between gap-ds-05 md:mt-0 md:w-auto md:justify-start max-md:mt-[17px] max-lg:gap-[0.5rem]", children: [
|
|
20
|
+
/* @__PURE__ */ e("div", { className: "hidden md:flex", children: /* @__PURE__ */ e(s, { className: "h-ds-sm w-[180px] rounded-ds-md" }) }),
|
|
21
|
+
/* @__PURE__ */ d("div", { className: "flex w-[200px] items-center justify-between overflow-clip rounded-ds-full border border-layer-03", children: [
|
|
22
|
+
/* @__PURE__ */ e("div", { className: "flex h-ds-sm w-[100px] items-center justify-center rounded-r-none bg-field", children: /* @__PURE__ */ e(s, { className: "h-[20px] w-[40px] rounded-r-none bg-layer-03" }) }),
|
|
23
|
+
/* @__PURE__ */ e("div", { className: "flex h-ds-sm w-[100px] items-center justify-center", children: /* @__PURE__ */ e(s, { className: "h-[20px] w-[40px] bg-layer-03" }) })
|
|
24
|
+
] }),
|
|
25
|
+
/* @__PURE__ */ d("div", { className: "flex gap-0", children: [
|
|
26
|
+
/* @__PURE__ */ e(t, { icon: /* @__PURE__ */ e(f, {}), size: "sm", "aria-label": "Previous" }),
|
|
27
|
+
/* @__PURE__ */ e(
|
|
28
|
+
t,
|
|
29
|
+
{
|
|
30
|
+
icon: /* @__PURE__ */ e(p, {}),
|
|
31
|
+
size: "sm",
|
|
32
|
+
"aria-label": "Next",
|
|
33
|
+
onClick: () => {
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
)
|
|
37
|
+
] })
|
|
38
|
+
] })
|
|
39
|
+
] }),
|
|
40
|
+
/* @__PURE__ */ e("div", { className: "flex w-full items-center", children: Array.from({ length: 7 }).map((r, l) => /* @__PURE__ */ d(
|
|
41
|
+
"div",
|
|
42
|
+
{
|
|
43
|
+
className: "flex w-full flex-col items-center rounded-t-ds-lg pb-ds-04 pt-ds-05 max-md:rounded-ds-lg",
|
|
44
|
+
children: [
|
|
45
|
+
/* @__PURE__ */ e(s, { className: "mb-ds-03 h-[10px] w-[10px] rounded-ds-lg bg-field" }),
|
|
46
|
+
/* @__PURE__ */ e("div", { className: "mx-ds-02 my-ds-02 flex items-center justify-center", children: /* @__PURE__ */ e(s, { className: "h-ds-md w-ds-md rounded-ds-full bg-field" }) })
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
l
|
|
50
|
+
)) }),
|
|
51
|
+
/* @__PURE__ */ d("div", { className: "flex w-full flex-col rounded-ds-lg bg-layer-02 md:p-0 md:p-ds-06 max-md:bg-transparent", children: [
|
|
52
|
+
/* @__PURE__ */ e("div", { className: "no-scrollbar w-full cursor-grab overflow-x-auto active:cursor-grabbing max-md:pb-ds-05", children: /* @__PURE__ */ e(
|
|
53
|
+
"div",
|
|
54
|
+
{
|
|
55
|
+
className: "items-flex-start flex flex-row justify-start gap-ds-04 px-0 pt-ds-03 md:gap-0 md:px-ds-06",
|
|
56
|
+
style: { minWidth: "max-content" },
|
|
57
|
+
children: Array.from({ length: 3 }).map((r, l) => /* @__PURE__ */ d(
|
|
58
|
+
"div",
|
|
59
|
+
{
|
|
60
|
+
className: m("flex w-full flex-col gap-ds-04 rounded-ds-md bg-layer-02 p-ds-06 md:rounded-ds-lg md:p-ds-05", l !== 2 ? "border-r border-border" : "", "max-md:border-0 max-md:p-ds-05"),
|
|
61
|
+
style: { minWidth: "200px" },
|
|
62
|
+
children: [
|
|
63
|
+
/* @__PURE__ */ e(s, { className: "h-[20px] w-[120px] rounded-ds-md bg-field" }),
|
|
64
|
+
/* @__PURE__ */ e("div", { className: "flex flex-wrap items-center gap-ds-03", children: Array.from({ length: 4 }).map((g, a) => /* @__PURE__ */ e(
|
|
65
|
+
s,
|
|
66
|
+
{
|
|
67
|
+
className: m("h-ds-md w-ds-md rounded-ds-full bg-field", a > 0 ? "ml-[-5px]" : "")
|
|
68
|
+
},
|
|
69
|
+
a
|
|
70
|
+
)) })
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
l
|
|
74
|
+
))
|
|
75
|
+
}
|
|
76
|
+
) }),
|
|
77
|
+
/* @__PURE__ */ e("div", { className: "w-full p-0 md:p-ds-06", children: /* @__PURE__ */ d("div", { className: "max-md:pt[16px] flex flex-col items-start overflow-hidden rounded-ds-lg border-0 border-border-subtle bg-layer-01 shadow-01 pt-ds-03 md:border max-md:pb-0", children: [
|
|
78
|
+
/* @__PURE__ */ d("div", { className: "flex w-full items-start border-b-[1px] border-b-border px-ds-06 md:border-b max-md:border-0 max-md:px-0", children: [
|
|
79
|
+
/* @__PURE__ */ e("div", { className: "text-ds-sm font-semibold uppercase tracking-wider cursor-pointer border-b-[1.5px] border-b-interactive-hover px-ds-03 py-ds-04 font-semibold text-text-primary", children: "REQUESTS(1)" }),
|
|
80
|
+
/* @__PURE__ */ e("div", { className: "text-ds-sm font-semibold uppercase tracking-wider cursor-pointer px-ds-03 py-ds-04 text-text-tertiary", children: "ATTENDANCE CORRECTION(1)" })
|
|
81
|
+
] }),
|
|
82
|
+
/* @__PURE__ */ e("div", { className: "flex max-h-[200px] w-full flex-col overflow-y-auto bg-layer-01 px-ds-06 max-md:flex-1 max-md:max-h-none max-md:min-h-[372px] max-md:p-0", children: Array.from({ length: 2 }).map((r, l) => /* @__PURE__ */ d(
|
|
83
|
+
"div",
|
|
84
|
+
{
|
|
85
|
+
className: "flex items-center justify-between px-ds-03 py-ds-04",
|
|
86
|
+
children: [
|
|
87
|
+
/* @__PURE__ */ d("div", { className: "flex items-center gap-ds-04", children: [
|
|
88
|
+
/* @__PURE__ */ e(s, { className: "h-ds-md w-ds-md rounded-ds-full bg-field" }),
|
|
89
|
+
/* @__PURE__ */ d("div", { className: "flex flex-col gap-ds-02", children: [
|
|
90
|
+
/* @__PURE__ */ e(s, { className: "h-[20px] w-[120px] rounded-ds-md bg-field" }),
|
|
91
|
+
/* @__PURE__ */ e(s, { className: "h-[20px] w-[200px] rounded-ds-md bg-field" })
|
|
92
|
+
] })
|
|
93
|
+
] }),
|
|
94
|
+
/* @__PURE__ */ d("div", { className: "flex items-center gap-ds-04", children: [
|
|
95
|
+
/* @__PURE__ */ e(s, { className: "h-ds-sm w-ds-sm rounded-ds-full bg-field" }),
|
|
96
|
+
/* @__PURE__ */ e(s, { className: "h-ds-sm w-ds-sm rounded-ds-full bg-field" })
|
|
97
|
+
] })
|
|
98
|
+
]
|
|
99
|
+
},
|
|
100
|
+
l
|
|
101
|
+
)) })
|
|
102
|
+
] }) })
|
|
103
|
+
] })
|
|
104
|
+
] }) });
|
|
105
|
+
}
|
|
106
|
+
);
|
|
107
|
+
u.displayName = "DashboardSkeleton";
|
|
108
|
+
export {
|
|
109
|
+
u as DashboardSkeleton
|
|
110
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { AdminDashboard, type AdminDashboardRootProps, type AdminDashboardCalendarProps, type AdminDashboardAttendanceOverviewProps, type AdminDashboardAssociateDetailProps, type AdminDashboardLeaveRequestsProps, type AdminDashboardContentProps, } from './admin-dashboard';
|
|
2
|
+
export { type TaskItem } from './associate-detail';
|
|
3
|
+
export { type AttendanceCorrection } from './correction-list';
|
|
4
|
+
export { Calendar, type CalendarProps } from './calendar';
|
|
5
|
+
export { BreakRequestCard, type BreakRequestProps } from './break-request';
|
|
6
|
+
export { LeaveRequests, type LeaveRequestsProps } from './leave-requests';
|
|
7
|
+
export { DashboardSkeleton } from './dashboard-skeleton';
|
|
8
|
+
export { RenderDate, type RenderDateProps, type DateAttendanceInfo, } from './render-date';
|
|
9
|
+
export { DashboardHeader, type DashboardHeaderProps, } from './dashboard-header';
|
|
10
|
+
export { AttendanceOverview, type AttendanceOverviewProps, } from './attendance-overview';
|
|
11
|
+
export { AssociateDetail, type AssociateDetailProps, } from './associate-detail';
|
|
12
|
+
export { CorrectionList, type CorrectionListProps, } from './correction-list';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/admin/dashboard/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,cAAc,EACd,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,qCAAqC,EAC1C,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,EACrC,KAAK,0BAA0B,GAChC,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAE7D,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAEzD,OAAO,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAE1E,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAEzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAMxD,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BreakRequest } from '../types';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export interface LeaveRequestsProps {
|
|
4
|
+
/** List of pending break requests */
|
|
5
|
+
requests: BreakRequest[];
|
|
6
|
+
/** Current user ID (used to prevent self-approval) */
|
|
7
|
+
currentUserId: string;
|
|
8
|
+
/** User images map: userId -> image URL */
|
|
9
|
+
userImages?: Record<string, string>;
|
|
10
|
+
/** Active time frame (weekly/monthly) — used for responsive styling */
|
|
11
|
+
activeTimeFrame?: string;
|
|
12
|
+
/** Callback when a break is approved */
|
|
13
|
+
onApproveBreak?: (params: {
|
|
14
|
+
requestId: string;
|
|
15
|
+
adminComment: string;
|
|
16
|
+
userId: string;
|
|
17
|
+
}) => void | Promise<void>;
|
|
18
|
+
/** Callback when a break is rejected */
|
|
19
|
+
onRejectBreak?: (params: {
|
|
20
|
+
requestId: string;
|
|
21
|
+
adminComment: string;
|
|
22
|
+
userId: string;
|
|
23
|
+
}) => void | Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
export declare const LeaveRequests: React.ForwardRefExoticComponent<LeaveRequestsProps & React.RefAttributes<HTMLDivElement>>;
|
|
26
|
+
//# sourceMappingURL=leave-requests.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leave-requests.d.ts","sourceRoot":"","sources":["../../../src/admin/dashboard/leave-requests.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAU9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAM5C,MAAM,WAAW,kBAAkB;IACjC,qCAAqC;IACrC,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAA;IACrB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,wCAAwC;IACxC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE;QACxB,SAAS,EAAE,MAAM,CAAA;QACjB,YAAY,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,MAAM,CAAA;KACf,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1B,wCAAwC;IACxC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE;QACvB,SAAS,EAAE,MAAM,CAAA;QACjB,YAAY,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,MAAM,CAAA;KACf,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAMD,eAAO,MAAM,aAAa,2FA8RzB,CAAA"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { jsx as s, jsxs as d } from "react/jsx-runtime";
|
|
2
|
+
import * as O from "react";
|
|
3
|
+
import { useEffect as S } from "react";
|
|
4
|
+
import { Tooltip as k, TooltipTrigger as E, TooltipContent as M } from "@devalok/shilp-sutra/ui";
|
|
5
|
+
import { cn as x } from "@devalok/shilp-sutra/ui";
|
|
6
|
+
import { useIsMobile as B } from "@devalok/shilp-sutra/ui";
|
|
7
|
+
import { formatDate as p } from "../utils/date-utils.js";
|
|
8
|
+
import { removeAllEmojis as T } from "../utils/emoji-utils.js";
|
|
9
|
+
import { isSameDay as I } from "date-fns";
|
|
10
|
+
import { useLeaveRequestInteraction as F } from "./use-leave-request-interaction.js";
|
|
11
|
+
import { IconX as Y, IconCheck as X, IconSend as _ } from "@tabler/icons-react";
|
|
12
|
+
const z = O.forwardRef(
|
|
13
|
+
function({
|
|
14
|
+
requests: r,
|
|
15
|
+
currentUserId: o,
|
|
16
|
+
userImages: L = {},
|
|
17
|
+
activeTimeFrame: J,
|
|
18
|
+
onApproveBreak: c,
|
|
19
|
+
onRejectBreak: m
|
|
20
|
+
}, P) {
|
|
21
|
+
const t = F(), H = B();
|
|
22
|
+
S(() => {
|
|
23
|
+
const e = (a) => {
|
|
24
|
+
(a.ctrlKey || a.metaKey) && (t.setIsCtrlPressed(!0), t.hoveredRequest ? (t.setActiveAction(t.hoverActionTemp), t.setOpenComment(!0), t.setActiveRequest(t.hoveredRequest)) : (t.setOpenComment(!1), t.setActiveAction(null), t.setActiveRequest(null)));
|
|
25
|
+
}, i = (a) => {
|
|
26
|
+
!a.ctrlKey && !a.metaKey && t.setIsCtrlPressed(!1);
|
|
27
|
+
};
|
|
28
|
+
return window.addEventListener("keydown", e), window.addEventListener("keyup", i), () => {
|
|
29
|
+
window.removeEventListener("keydown", e), window.removeEventListener("keyup", i);
|
|
30
|
+
};
|
|
31
|
+
}, [t.hoveredRequest, t.isCtrlPressed, t.openComment, t.hoverActionTemp]);
|
|
32
|
+
const v = (e, i) => {
|
|
33
|
+
t.setHoverActionTemp(i), t.setHoveredRequest(e);
|
|
34
|
+
}, f = async (e, i) => {
|
|
35
|
+
if (!(!e || !i)) {
|
|
36
|
+
t.setIsProcessing(!0), t.setOpenComment(!1);
|
|
37
|
+
try {
|
|
38
|
+
const a = {
|
|
39
|
+
requestId: e.id,
|
|
40
|
+
adminComment: t.message,
|
|
41
|
+
userId: o
|
|
42
|
+
};
|
|
43
|
+
i === "approveBreak" ? await (c == null ? void 0 : c(a)) : i === "rejectBreak" && await (m == null ? void 0 : m(a)), t.setActiveRequest(null), t.setActiveAction(null), t.setMessage("");
|
|
44
|
+
} catch (a) {
|
|
45
|
+
console.error("Error processing break request:", a);
|
|
46
|
+
} finally {
|
|
47
|
+
t.setIsProcessing(!1);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}, K = (e) => I(new Date(e.startDate), new Date(e.endDate));
|
|
51
|
+
return /* @__PURE__ */ s(
|
|
52
|
+
"div",
|
|
53
|
+
{
|
|
54
|
+
ref: P,
|
|
55
|
+
className: "no-scrollbar max-h-[230px] w-full overflow-y-auto px-0 md:px-ds-06 max-md:flex-1 max-md:max-h-none max-md:min-h-[407.2px]",
|
|
56
|
+
children: /* @__PURE__ */ s("div", { className: "flex h-full flex-col gap-ds-03 py-ds-03 max-md:h-[max-content] max-md:gap-ds-05 max-md:py-0 max-md:pb-ds-05", children: r == null ? void 0 : r.map((e) => {
|
|
57
|
+
var i, a, h, b, u, w, y, g, N, R, A, j, C, D;
|
|
58
|
+
return /* @__PURE__ */ d(
|
|
59
|
+
"div",
|
|
60
|
+
{
|
|
61
|
+
className: "flex flex-col justify-start rounded-ds-lg border-b border-border md:gap-ds-05 md:border-b-0 max-md:border-none",
|
|
62
|
+
children: [
|
|
63
|
+
/* @__PURE__ */ d("div", { className: "flex flex-col justify-between rounded-t-ds-lg border border-border md:flex-row md:border-0 md:px-ds-03 md:py-ds-04 max-md:border-b-0", children: [
|
|
64
|
+
/* @__PURE__ */ d("div", { className: "flex items-center gap-ds-04 border-b border-border p-ds-05 md:border-none md:p-0 max-md:items-start", children: [
|
|
65
|
+
/* @__PURE__ */ s(
|
|
66
|
+
"img",
|
|
67
|
+
{
|
|
68
|
+
src: L[((i = e.user) == null ? void 0 : i.id) || ""],
|
|
69
|
+
className: "h-ds-md w-ds-md overflow-hidden rounded-ds-full bg-interactive-subtle",
|
|
70
|
+
alt: ((h = (a = e.user) == null ? void 0 : a.name) == null ? void 0 : h[0]) || "U"
|
|
71
|
+
}
|
|
72
|
+
),
|
|
73
|
+
/* @__PURE__ */ d("div", { className: "flex max-w-[277px] flex-col items-start gap-ds-02 sm:max-w-none", children: [
|
|
74
|
+
/* @__PURE__ */ s("div", { className: "flex flex-row gap-ds-02b", children: /* @__PURE__ */ s("div", { className: "flex items-center gap-ds-03", children: /* @__PURE__ */ s("p", { className: "text-ds-sm text-text-secondary", children: (b = e.user) == null ? void 0 : b.name }) }) }),
|
|
75
|
+
K(e) ? /* @__PURE__ */ d("div", { className: "flex w-full flex-col items-center gap-ds-03 md:flex-row md:flex-wrap max-md:items-start", children: [
|
|
76
|
+
/* @__PURE__ */ s("p", { className: "text-ds-base font-semibold text-text-primary", children: T(e.reason) }),
|
|
77
|
+
/* @__PURE__ */ s("p", { className: "text-ds-base hidden font-semibold text-text-tertiary md:block", children: "•" }),
|
|
78
|
+
/* @__PURE__ */ s("p", { className: "text-ds-base text-text-tertiary", children: p(new Date(e.startDate)) })
|
|
79
|
+
] }) : /* @__PURE__ */ d("div", { className: "flex flex-col items-start justify-start gap-ds-03", children: [
|
|
80
|
+
/* @__PURE__ */ s("p", { className: "text-ds-base font-semibold text-text-primary", children: T(e.reason) }),
|
|
81
|
+
/* @__PURE__ */ d("p", { className: "text-ds-base text-text-tertiary", children: [
|
|
82
|
+
p(new Date(e.startDate)),
|
|
83
|
+
" to",
|
|
84
|
+
" ",
|
|
85
|
+
p(new Date(e.endDate)),
|
|
86
|
+
/* @__PURE__ */ d("span", { className: "text-interactive-hover", children: [
|
|
87
|
+
", ",
|
|
88
|
+
e.numberOfDays,
|
|
89
|
+
" days"
|
|
90
|
+
] })
|
|
91
|
+
] })
|
|
92
|
+
] })
|
|
93
|
+
] })
|
|
94
|
+
] }),
|
|
95
|
+
/* @__PURE__ */ d("div", { className: "flex h-full w-full items-center justify-between self-stretch sm:w-auto sm:justify-start", children: [
|
|
96
|
+
/* @__PURE__ */ s("div", { className: "flex w-1/2 justify-center border-r border-border p-ds-02 md:border-r-0", children: /* @__PURE__ */ d(k, { delayDuration: 0, children: [
|
|
97
|
+
/* @__PURE__ */ s(E, { asChild: !0, children: /* @__PURE__ */ s(
|
|
98
|
+
"button",
|
|
99
|
+
{
|
|
100
|
+
onMouseEnter: () => {
|
|
101
|
+
v(e, "rejectBreak");
|
|
102
|
+
},
|
|
103
|
+
onMouseLeave: () => {
|
|
104
|
+
t.setHoverActionTemp(null), t.setHoveredRequest(null);
|
|
105
|
+
},
|
|
106
|
+
onClick: () => {
|
|
107
|
+
var l, n;
|
|
108
|
+
((l = e == null ? void 0 : e.user) == null ? void 0 : l.id) !== o && (t.setActiveRequest(e), t.setActiveAction("rejectBreak"), ((n = t.activeRequest) == null ? void 0 : n.id) !== e.id && t.setMessage(""), f(e, "rejectBreak"));
|
|
109
|
+
},
|
|
110
|
+
disabled: t.isProcessing || ((u = e == null ? void 0 : e.user) == null ? void 0 : u.id) === o,
|
|
111
|
+
className: x(
|
|
112
|
+
"rounded-ds-full p-ds-03",
|
|
113
|
+
((w = t.activeRequest) == null ? void 0 : w.id) === e.id && t.activeAction === "rejectBreak" && "bg-error-surface",
|
|
114
|
+
((y = e == null ? void 0 : e.user) == null ? void 0 : y.id) === o && "cursor-not-allowed opacity-[0.38]",
|
|
115
|
+
"max-md:flex max-md:w-full max-md:justify-center"
|
|
116
|
+
),
|
|
117
|
+
children: /* @__PURE__ */ s(
|
|
118
|
+
Y,
|
|
119
|
+
{
|
|
120
|
+
className: x(
|
|
121
|
+
"h-ico-lg w-ico-lg",
|
|
122
|
+
((g = t.activeRequest) == null ? void 0 : g.id) === e.id && t.activeAction === "rejectBreak" && "text-text-error"
|
|
123
|
+
)
|
|
124
|
+
}
|
|
125
|
+
)
|
|
126
|
+
}
|
|
127
|
+
) }),
|
|
128
|
+
((N = e == null ? void 0 : e.user) == null ? void 0 : N.id) === o && /* @__PURE__ */ s(M, { children: /* @__PURE__ */ s("p", { children: "You cannot approve/reject your own break request" }) })
|
|
129
|
+
] }) }),
|
|
130
|
+
/* @__PURE__ */ s("div", { className: "flex w-1/2 justify-center bg-success-surface p-ds-02 md:bg-transparent", children: /* @__PURE__ */ d(k, { delayDuration: 0, children: [
|
|
131
|
+
/* @__PURE__ */ s(E, { asChild: !0, children: /* @__PURE__ */ s(
|
|
132
|
+
"button",
|
|
133
|
+
{
|
|
134
|
+
onMouseEnter: () => {
|
|
135
|
+
v(e, "approveBreak");
|
|
136
|
+
},
|
|
137
|
+
onMouseLeave: () => {
|
|
138
|
+
t.setHoverActionTemp(null), t.setHoveredRequest(null);
|
|
139
|
+
},
|
|
140
|
+
onClick: () => {
|
|
141
|
+
var l, n;
|
|
142
|
+
((l = e == null ? void 0 : e.user) == null ? void 0 : l.id) !== o && (t.setActiveRequest(e), t.setActiveAction("approveBreak"), ((n = t.activeRequest) == null ? void 0 : n.id) !== e.id && t.setMessage(""), f(e, "approveBreak"));
|
|
143
|
+
},
|
|
144
|
+
disabled: t.isProcessing || ((R = e == null ? void 0 : e.user) == null ? void 0 : R.id) === o,
|
|
145
|
+
className: x(
|
|
146
|
+
"rounded-ds-full p-ds-03",
|
|
147
|
+
((A = t.activeRequest) == null ? void 0 : A.id) === e.id && t.activeAction === "approveBreak" && "bg-success-surface",
|
|
148
|
+
((j = e == null ? void 0 : e.user) == null ? void 0 : j.id) === o && "cursor-not-allowed opacity-[0.38]",
|
|
149
|
+
"max-md:flex max-md:w-full max-md:justify-center"
|
|
150
|
+
),
|
|
151
|
+
children: /* @__PURE__ */ s(X, { className: "h-ico-lg w-ico-lg" })
|
|
152
|
+
}
|
|
153
|
+
) }),
|
|
154
|
+
((C = e == null ? void 0 : e.user) == null ? void 0 : C.id) === o && /* @__PURE__ */ s(M, { children: /* @__PURE__ */ s("p", { children: "You cannot approve/reject your own break request" }) })
|
|
155
|
+
] }) })
|
|
156
|
+
] })
|
|
157
|
+
] }),
|
|
158
|
+
(t.openComment && t.activeRequest && ((D = t.activeRequest) == null ? void 0 : D.id) === e.id || H) && /* @__PURE__ */ d("div", { className: "flex flex-row items-start justify-between rounded-ds-lg border-[1px] border-border py-ds-02 max-md:rounded-t-none", children: [
|
|
159
|
+
/* @__PURE__ */ d("div", { className: "flex w-full flex-col items-start justify-start gap-ds-02 px-ds-05 pb-ds-02 pt-[10px]", children: [
|
|
160
|
+
/* @__PURE__ */ s("div", { className: "text-ds-xs font-semibold uppercase tracking-wider text-text-placeholder", children: "comment" }),
|
|
161
|
+
/* @__PURE__ */ s(
|
|
162
|
+
"input",
|
|
163
|
+
{
|
|
164
|
+
type: "text",
|
|
165
|
+
value: t.message,
|
|
166
|
+
onChange: (l) => {
|
|
167
|
+
var n;
|
|
168
|
+
return t.setMessage((n = l == null ? void 0 : l.target) == null ? void 0 : n.value);
|
|
169
|
+
},
|
|
170
|
+
placeholder: "Enter a Comment",
|
|
171
|
+
className: "text-ds-md w-full text-text-primary outline-none"
|
|
172
|
+
}
|
|
173
|
+
)
|
|
174
|
+
] }),
|
|
175
|
+
/* @__PURE__ */ s(
|
|
176
|
+
"button",
|
|
177
|
+
{
|
|
178
|
+
disabled: t.isProcessing,
|
|
179
|
+
onClick: () => f(e, t.activeAction),
|
|
180
|
+
className: "my-auto flex hidden items-center justify-center rounded-ds-full p-ds-03",
|
|
181
|
+
children: /* @__PURE__ */ s(_, { className: "h-ico-lg w-ico-lg" })
|
|
182
|
+
}
|
|
183
|
+
)
|
|
184
|
+
] })
|
|
185
|
+
]
|
|
186
|
+
},
|
|
187
|
+
e.id
|
|
188
|
+
);
|
|
189
|
+
}) })
|
|
190
|
+
}
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
);
|
|
194
|
+
z.displayName = "LeaveRequests";
|
|
195
|
+
export {
|
|
196
|
+
z as LeaveRequests
|
|
197
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AttendanceStatus, DayInfo } from '../types';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export interface DateAttendanceInfo {
|
|
4
|
+
status: AttendanceStatus | null;
|
|
5
|
+
hasCorrectionOrApproval?: boolean;
|
|
6
|
+
isBreakApproved?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface RenderDateProps {
|
|
9
|
+
day: DayInfo;
|
|
10
|
+
isAdmin: boolean;
|
|
11
|
+
selectedDate: string | Date;
|
|
12
|
+
dateAttendanceMap: Map<string, DateAttendanceInfo> | null;
|
|
13
|
+
activeTimeFrame: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const RenderDate: React.ForwardRefExoticComponent<RenderDateProps & React.RefAttributes<HTMLDivElement>>;
|
|
16
|
+
//# sourceMappingURL=render-date.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-date.d.ts","sourceRoot":"","sources":["../../../src/admin/dashboard/render-date.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAOzD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC/B,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,OAAO,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAA;IACzD,eAAe,EAAE,MAAM,CAAA;CACxB;AAMD,eAAO,MAAM,UAAU,wFAsOtB,CAAA"}
|