@burdenoff/microfe-crewfoundry 2026.625.2 → 2026.703.1
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/crewfoundry/components/forms/ConfirmDialog.js +43 -0
- package/dist/crewfoundry/components/forms/ConfirmDialog.js.map +1 -0
- package/dist/crewfoundry/components/forms/FormModal.js +220 -0
- package/dist/crewfoundry/components/forms/FormModal.js.map +1 -0
- package/dist/crewfoundry/components/forms/formValues.js +20 -0
- package/dist/crewfoundry/components/forms/formValues.js.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js +255 -65
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js +28 -17
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js +57 -53
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js +32 -23
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js +44 -29
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +183 -57
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +214 -92
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +165 -131
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +163 -133
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +269 -54
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +225 -78
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +213 -59
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +287 -90
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringJobsPagePage.js +49 -47
- package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +166 -59
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrEmployeesPagePage.js +274 -83
- package/dist/crewfoundry/pages/HrEmployeesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +198 -88
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrPayrollPagePage.js +216 -88
- package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +216 -66
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js +6 -7
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +83 -68
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js +167 -46
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +75 -55
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +152 -79
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.js +75 -63
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js +3 -1
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +235 -87
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +199 -86
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js +21 -40
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js +117 -45
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js +249 -90
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +47 -45
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +262 -133
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +144 -77
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -1
- package/dist/crewfoundry/store/crewfoundryStore.js +306 -51
- package/dist/crewfoundry/store/crewfoundryStore.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,146 +1,201 @@
|
|
|
1
1
|
import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
2
|
+
import { FormModal as t, useFormModal as n } from "../components/forms/FormModal.js";
|
|
3
|
+
import { useState as r } from "react";
|
|
4
|
+
import { BarChart3 as i, Bell as a, Lock as o, Save as s, Settings as c, Shield as l, Trash2 as u, UserMinus as d, UserPlus as f, Users as p } from "lucide-react";
|
|
5
|
+
import { useNavigate as m } from "react-router-dom";
|
|
6
|
+
import { jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
7
|
+
import { Badge as _, Button as v, Card as y, CardContent as b, CardDescription as x, CardHeader as S, CardTitle as C, EmphasisPanel as w, GradientText as T, IllustratedEmptyState as E, Input as D, Label as O, NextSteps as ee, PagePurpose as te, ResponsiveDialog as ne, ResponsiveDialogContent as re, ResponsiveDialogDescription as ie, ResponsiveDialogFooter as ae, ResponsiveDialogHeader as k, ResponsiveDialogTitle as A, Separator as j, Switch as M, Textarea as N } from "@burdenoff/fe-libs/ui";
|
|
8
|
+
import { useGlobalUi as P } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
7
9
|
//#region src/crewfoundry/pages/TeamsTeamSettingsPagePage.tsx
|
|
8
|
-
function
|
|
9
|
-
let
|
|
10
|
-
return /* @__PURE__ */
|
|
10
|
+
function F() {
|
|
11
|
+
let F = m(), { showToast: I } = P(), L = e((e) => e.teams), R = e((e) => e.employees), z = e((e) => e.updateTeam), B = e((e) => e.removeTeam), V = L[0], [H, U] = r(V?.name ?? ""), [W, G] = r(V?.description ?? ""), [K, q] = r(!1), [oe, J] = r(!1), [Y, X] = r(!1), Z = n();
|
|
12
|
+
if (!V) return /* @__PURE__ */ h("div", {
|
|
13
|
+
className: "p-6",
|
|
14
|
+
children: /* @__PURE__ */ h(E, {
|
|
15
|
+
illustration: "empty-people",
|
|
16
|
+
title: "No team to configure",
|
|
17
|
+
description: "Create a team first, then return here to manage its settings."
|
|
18
|
+
})
|
|
19
|
+
});
|
|
20
|
+
let Q = R.filter((e) => V.members.includes(e.id)), $ = R.filter((e) => !V.members.includes(e.id)), se = async () => {
|
|
21
|
+
if (!K) {
|
|
22
|
+
if (H.trim() === "") {
|
|
23
|
+
I("Team Name is required", "warning");
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
q(!0);
|
|
27
|
+
try {
|
|
28
|
+
await z(V.id, {
|
|
29
|
+
name: H.trim(),
|
|
30
|
+
description: W.trim()
|
|
31
|
+
}), I("Team settings saved", "success");
|
|
32
|
+
} catch (e) {
|
|
33
|
+
I(e instanceof Error ? e.message : "Unable to save team settings", "error");
|
|
34
|
+
} finally {
|
|
35
|
+
q(!1);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}, ce = [{
|
|
39
|
+
name: "employeeId",
|
|
40
|
+
label: "Employee",
|
|
41
|
+
type: "select",
|
|
42
|
+
required: !0,
|
|
43
|
+
colSpan: 2,
|
|
44
|
+
placeholder: "Select an employee",
|
|
45
|
+
options: $.map((e) => ({
|
|
46
|
+
label: `${e.firstName} ${e.lastName} — ${e.position}`,
|
|
47
|
+
value: e.id
|
|
48
|
+
}))
|
|
49
|
+
}], le = async (e) => {
|
|
50
|
+
let t = String(e.employeeId ?? "");
|
|
51
|
+
t && (await z(V.id, { members: [...V.members, t] }), I("Member added to team", "success"));
|
|
52
|
+
}, ue = async (e) => {
|
|
53
|
+
try {
|
|
54
|
+
await z(V.id, { members: V.members.filter((t) => t !== e) }), I("Member removed from team", "success");
|
|
55
|
+
} catch (e) {
|
|
56
|
+
I(e instanceof Error ? e.message : "Unable to remove member", "error");
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
return /* @__PURE__ */ g("div", {
|
|
11
60
|
className: "space-y-6 p-6",
|
|
12
61
|
children: [
|
|
13
|
-
/* @__PURE__ */
|
|
62
|
+
/* @__PURE__ */ g("div", {
|
|
14
63
|
className: "flex items-center justify-between",
|
|
15
|
-
children: [/* @__PURE__ */
|
|
16
|
-
/* @__PURE__ */
|
|
64
|
+
children: [/* @__PURE__ */ g("div", { children: [
|
|
65
|
+
/* @__PURE__ */ h("h1", {
|
|
17
66
|
className: "text-2xl font-semibold",
|
|
18
|
-
children: /* @__PURE__ */
|
|
67
|
+
children: /* @__PURE__ */ h(T, { children: "Team Settings" })
|
|
19
68
|
}),
|
|
20
|
-
/* @__PURE__ */
|
|
69
|
+
/* @__PURE__ */ g("p", {
|
|
21
70
|
className: "text-sm text-text-secondary",
|
|
22
|
-
children: ["Configure settings for ",
|
|
71
|
+
children: ["Configure settings for ", V.name]
|
|
23
72
|
}),
|
|
24
|
-
/* @__PURE__ */
|
|
73
|
+
/* @__PURE__ */ h(te, {
|
|
25
74
|
className: "mt-1",
|
|
26
75
|
children: "Configure a team's settings — membership, permissions, and preferences that control how the team works in CrewFoundry."
|
|
27
76
|
})
|
|
28
|
-
] }), /* @__PURE__ */
|
|
77
|
+
] }), /* @__PURE__ */ g(v, {
|
|
78
|
+
onClick: se,
|
|
79
|
+
disabled: K,
|
|
80
|
+
children: [/* @__PURE__ */ h(s, { className: "h-4 w-4 mr-1" }), K ? "Saving…" : "Save Changes"]
|
|
81
|
+
})]
|
|
29
82
|
}),
|
|
30
|
-
/* @__PURE__ */
|
|
83
|
+
/* @__PURE__ */ h(ee, {
|
|
31
84
|
storageKey: "crewfoundry-team-settings",
|
|
32
85
|
steps: [
|
|
33
86
|
{
|
|
34
87
|
id: "members",
|
|
35
88
|
label: "Manage members",
|
|
36
89
|
description: "Add or remove people and adjust their roles below.",
|
|
37
|
-
icon: /* @__PURE__ */ p
|
|
38
|
-
onClick: () =>
|
|
90
|
+
icon: /* @__PURE__ */ h(p, { className: "h-4 w-4" }),
|
|
91
|
+
onClick: () => F("../../teams/team-directory-page")
|
|
39
92
|
},
|
|
40
93
|
{
|
|
41
94
|
id: "analytics",
|
|
42
95
|
label: "Review team analytics",
|
|
43
96
|
description: "See how this team is performing before you change settings.",
|
|
44
|
-
icon: /* @__PURE__ */
|
|
45
|
-
onClick: () =>
|
|
97
|
+
icon: /* @__PURE__ */ h(i, { className: "h-4 w-4" }),
|
|
98
|
+
onClick: () => F("../../teams/team-analytics-page")
|
|
46
99
|
},
|
|
47
100
|
{
|
|
48
101
|
id: "detail",
|
|
49
102
|
label: "Open the team overview",
|
|
50
103
|
description: "See members and projects at a glance.",
|
|
51
|
-
icon: /* @__PURE__ */
|
|
52
|
-
onClick: () =>
|
|
104
|
+
icon: /* @__PURE__ */ h(c, { className: "h-4 w-4" }),
|
|
105
|
+
onClick: () => F("../../teams/team-detail-page")
|
|
53
106
|
}
|
|
54
107
|
]
|
|
55
108
|
}),
|
|
56
|
-
/* @__PURE__ */
|
|
109
|
+
/* @__PURE__ */ g("div", {
|
|
57
110
|
className: "grid gap-4 md:grid-cols-3",
|
|
58
111
|
children: [
|
|
59
|
-
/* @__PURE__ */
|
|
112
|
+
/* @__PURE__ */ h(y, { children: /* @__PURE__ */ g(b, {
|
|
60
113
|
className: "flex items-center gap-3 pt-6",
|
|
61
|
-
children: [/* @__PURE__ */ p
|
|
114
|
+
children: [/* @__PURE__ */ h(p, { className: "h-5 w-5 text-status-info-text" }), /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("p", {
|
|
62
115
|
className: "text-xs text-text-secondary",
|
|
63
116
|
children: "Members"
|
|
64
|
-
}), /* @__PURE__ */
|
|
117
|
+
}), /* @__PURE__ */ h("p", {
|
|
65
118
|
className: "text-lg font-bold",
|
|
66
|
-
children:
|
|
119
|
+
children: V.memberCount
|
|
67
120
|
})] })]
|
|
68
121
|
}) }),
|
|
69
|
-
/* @__PURE__ */
|
|
122
|
+
/* @__PURE__ */ h(y, { children: /* @__PURE__ */ g(b, {
|
|
70
123
|
className: "flex items-center gap-3 pt-6",
|
|
71
|
-
children: [/* @__PURE__ */
|
|
124
|
+
children: [/* @__PURE__ */ h(c, { className: "h-5 w-5 text-action-primary-bg" }), /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("p", {
|
|
72
125
|
className: "text-xs text-text-secondary",
|
|
73
126
|
children: "Active Projects"
|
|
74
|
-
}), /* @__PURE__ */
|
|
127
|
+
}), /* @__PURE__ */ h("p", {
|
|
75
128
|
className: "text-lg font-bold",
|
|
76
|
-
children:
|
|
129
|
+
children: V.projectCount
|
|
77
130
|
})] })]
|
|
78
131
|
}) }),
|
|
79
|
-
/* @__PURE__ */
|
|
132
|
+
/* @__PURE__ */ h(y, { children: /* @__PURE__ */ g(b, {
|
|
80
133
|
className: "flex items-center gap-3 pt-6",
|
|
81
|
-
children: [/* @__PURE__ */
|
|
134
|
+
children: [/* @__PURE__ */ h(l, { className: "h-5 w-5 text-status-success-text" }), /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("p", {
|
|
82
135
|
className: "text-xs text-text-secondary",
|
|
83
|
-
children: "
|
|
84
|
-
}), /* @__PURE__ */
|
|
85
|
-
className: "text-lg font-bold",
|
|
86
|
-
children:
|
|
136
|
+
children: "Status"
|
|
137
|
+
}), /* @__PURE__ */ h("p", {
|
|
138
|
+
className: "text-lg font-bold capitalize",
|
|
139
|
+
children: V.status
|
|
87
140
|
})] })]
|
|
88
141
|
}) })
|
|
89
142
|
]
|
|
90
143
|
}),
|
|
91
|
-
/* @__PURE__ */
|
|
144
|
+
/* @__PURE__ */ g("div", {
|
|
92
145
|
className: "grid gap-6 lg:grid-cols-3",
|
|
93
|
-
children: [/* @__PURE__ */
|
|
146
|
+
children: [/* @__PURE__ */ g("div", {
|
|
94
147
|
className: "lg:col-span-2 space-y-6",
|
|
95
148
|
children: [
|
|
96
|
-
/* @__PURE__ */
|
|
97
|
-
/* @__PURE__ */
|
|
149
|
+
/* @__PURE__ */ g(w, { children: [
|
|
150
|
+
/* @__PURE__ */ h("div", {
|
|
98
151
|
className: "text-base font-semibold",
|
|
99
152
|
children: "General Settings"
|
|
100
153
|
}),
|
|
101
|
-
/* @__PURE__ */
|
|
154
|
+
/* @__PURE__ */ h("p", {
|
|
102
155
|
className: "mb-4 text-sm text-text-secondary",
|
|
103
156
|
children: "Basic team information"
|
|
104
157
|
}),
|
|
105
|
-
/* @__PURE__ */
|
|
158
|
+
/* @__PURE__ */ g("div", {
|
|
106
159
|
className: "space-y-4",
|
|
107
160
|
children: [
|
|
108
|
-
/* @__PURE__ */
|
|
161
|
+
/* @__PURE__ */ g("div", {
|
|
109
162
|
className: "space-y-2",
|
|
110
|
-
children: [/* @__PURE__ */
|
|
163
|
+
children: [/* @__PURE__ */ h(O, {
|
|
111
164
|
htmlFor: "tsName",
|
|
112
165
|
children: "Team Name"
|
|
113
|
-
}), /* @__PURE__ */
|
|
166
|
+
}), /* @__PURE__ */ h(D, {
|
|
114
167
|
id: "tsName",
|
|
115
|
-
value:
|
|
116
|
-
|
|
168
|
+
value: H,
|
|
169
|
+
disabled: K,
|
|
170
|
+
onChange: (e) => U(e.target.value)
|
|
117
171
|
})]
|
|
118
172
|
}),
|
|
119
|
-
/* @__PURE__ */
|
|
173
|
+
/* @__PURE__ */ g("div", {
|
|
120
174
|
className: "space-y-2",
|
|
121
|
-
children: [/* @__PURE__ */
|
|
175
|
+
children: [/* @__PURE__ */ h(O, {
|
|
122
176
|
htmlFor: "tsDesc",
|
|
123
177
|
children: "Description"
|
|
124
|
-
}), /* @__PURE__ */
|
|
178
|
+
}), /* @__PURE__ */ h(N, {
|
|
125
179
|
id: "tsDesc",
|
|
126
180
|
className: "min-h-[80px]",
|
|
127
|
-
value:
|
|
128
|
-
|
|
181
|
+
value: W,
|
|
182
|
+
disabled: K,
|
|
183
|
+
onChange: (e) => G(e.target.value)
|
|
129
184
|
})]
|
|
130
185
|
}),
|
|
131
|
-
/* @__PURE__ */
|
|
186
|
+
/* @__PURE__ */ g("div", {
|
|
132
187
|
className: "grid gap-4 sm:grid-cols-2",
|
|
133
|
-
children: [/* @__PURE__ */
|
|
188
|
+
children: [/* @__PURE__ */ g("div", {
|
|
134
189
|
className: "space-y-2",
|
|
135
|
-
children: [/* @__PURE__ */
|
|
136
|
-
value:
|
|
190
|
+
children: [/* @__PURE__ */ h(O, { children: "Department" }), /* @__PURE__ */ h(D, {
|
|
191
|
+
value: V.department,
|
|
137
192
|
disabled: !0,
|
|
138
193
|
className: "bg-bg-sunken"
|
|
139
194
|
})]
|
|
140
|
-
}), /* @__PURE__ */
|
|
195
|
+
}), /* @__PURE__ */ g("div", {
|
|
141
196
|
className: "space-y-2",
|
|
142
|
-
children: [/* @__PURE__ */
|
|
143
|
-
value:
|
|
197
|
+
children: [/* @__PURE__ */ h(O, { children: "Team Lead" }), /* @__PURE__ */ h(D, {
|
|
198
|
+
value: V.leadName,
|
|
144
199
|
disabled: !0,
|
|
145
200
|
className: "bg-bg-sunken"
|
|
146
201
|
})]
|
|
@@ -149,207 +204,281 @@ function j() {
|
|
|
149
204
|
]
|
|
150
205
|
})
|
|
151
206
|
] }),
|
|
152
|
-
/* @__PURE__ */
|
|
207
|
+
/* @__PURE__ */ g(y, { children: [/* @__PURE__ */ h(S, { children: /* @__PURE__ */ g("div", {
|
|
153
208
|
className: "flex items-center justify-between",
|
|
154
|
-
children: [/* @__PURE__ */
|
|
209
|
+
children: [/* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h(C, {
|
|
155
210
|
className: "text-base",
|
|
156
211
|
children: "Team Members"
|
|
157
|
-
}), /* @__PURE__ */
|
|
212
|
+
}), /* @__PURE__ */ g(x, { children: [Q.length, " active members"] })] }), /* @__PURE__ */ g(v, {
|
|
158
213
|
size: "sm",
|
|
159
|
-
|
|
214
|
+
onClick: () => Z.openModal(),
|
|
215
|
+
disabled: $.length === 0,
|
|
216
|
+
children: [/* @__PURE__ */ h(f, { className: "h-3 w-3 mr-1" }), "Add Member"]
|
|
160
217
|
})]
|
|
161
|
-
}) }), /* @__PURE__ */
|
|
218
|
+
}) }), /* @__PURE__ */ h(b, {
|
|
162
219
|
className: "p-0",
|
|
163
|
-
children:
|
|
164
|
-
className:
|
|
165
|
-
children:
|
|
220
|
+
children: Q.length === 0 ? /* @__PURE__ */ h("p", {
|
|
221
|
+
className: "px-6 py-4 text-sm text-text-secondary",
|
|
222
|
+
children: "No members yet. Use “Add Member” to build out this team."
|
|
223
|
+
}) : Q.map((e, t) => /* @__PURE__ */ g("div", {
|
|
224
|
+
className: `flex items-center justify-between px-6 py-3 ${t < Q.length - 1 ? "border-b" : ""}`,
|
|
225
|
+
children: [/* @__PURE__ */ g("div", {
|
|
166
226
|
className: "flex items-center gap-3",
|
|
167
|
-
children: [/* @__PURE__ */
|
|
227
|
+
children: [/* @__PURE__ */ g("div", {
|
|
168
228
|
className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-bg-sunken text-xs font-medium",
|
|
169
229
|
children: [e.firstName[0], e.lastName[0]]
|
|
170
|
-
}), /* @__PURE__ */
|
|
230
|
+
}), /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ g("div", {
|
|
171
231
|
className: "flex items-center gap-2",
|
|
172
|
-
children: [/* @__PURE__ */
|
|
232
|
+
children: [/* @__PURE__ */ g("p", {
|
|
173
233
|
className: "text-sm font-medium",
|
|
174
234
|
children: [
|
|
175
235
|
e.firstName,
|
|
176
236
|
" ",
|
|
177
237
|
e.lastName
|
|
178
238
|
]
|
|
179
|
-
}), e.id ===
|
|
239
|
+
}), e.id === V.leadId && /* @__PURE__ */ h(_, {
|
|
180
240
|
className: "text-[10px]",
|
|
181
241
|
children: "Lead"
|
|
182
242
|
})]
|
|
183
|
-
}), /* @__PURE__ */
|
|
243
|
+
}), /* @__PURE__ */ h("p", {
|
|
184
244
|
className: "text-xs text-text-secondary",
|
|
185
245
|
children: e.position
|
|
186
246
|
})] })]
|
|
187
|
-
}), /* @__PURE__ */
|
|
247
|
+
}), /* @__PURE__ */ g("div", {
|
|
188
248
|
className: "flex items-center gap-2",
|
|
189
|
-
children: [/* @__PURE__ */
|
|
249
|
+
children: [/* @__PURE__ */ h(_, {
|
|
190
250
|
variant: e.status === "active" ? "secondary" : "outline",
|
|
191
251
|
className: "text-[10px]",
|
|
192
252
|
children: e.status
|
|
193
|
-
}), e.id !==
|
|
253
|
+
}), e.id !== V.leadId && /* @__PURE__ */ h(v, {
|
|
194
254
|
variant: "ghost",
|
|
195
255
|
size: "sm",
|
|
256
|
+
"aria-label": `Remove ${e.firstName} ${e.lastName} from team`,
|
|
196
257
|
className: "h-7 w-7 p-0 text-text-secondary hover:text-status-error-text",
|
|
197
|
-
|
|
258
|
+
onClick: () => ue(e.id),
|
|
259
|
+
children: /* @__PURE__ */ h(d, { className: "h-3 w-3" })
|
|
198
260
|
})]
|
|
199
261
|
})]
|
|
200
262
|
}, e.id))
|
|
201
263
|
})] }),
|
|
202
|
-
/* @__PURE__ */
|
|
264
|
+
/* @__PURE__ */ g(y, { children: [/* @__PURE__ */ g(S, { children: [/* @__PURE__ */ h(C, {
|
|
203
265
|
className: "text-base",
|
|
204
266
|
children: "Permissions & Access"
|
|
205
|
-
}), /* @__PURE__ */
|
|
267
|
+
}), /* @__PURE__ */ h(x, { children: "Visibility and join controls — coming soon on the CrewFoundry roadmap." })] }), /* @__PURE__ */ g(b, {
|
|
206
268
|
className: "space-y-4",
|
|
207
269
|
children: [
|
|
208
|
-
/* @__PURE__ */
|
|
270
|
+
/* @__PURE__ */ g("div", {
|
|
209
271
|
className: "flex items-center justify-between",
|
|
210
|
-
children: [/* @__PURE__ */
|
|
272
|
+
children: [/* @__PURE__ */ g("div", {
|
|
211
273
|
className: "space-y-0.5",
|
|
212
|
-
children: [/* @__PURE__ */
|
|
274
|
+
children: [/* @__PURE__ */ h("p", {
|
|
213
275
|
className: "text-sm font-medium",
|
|
214
276
|
children: "Private Team"
|
|
215
|
-
}), /* @__PURE__ */
|
|
277
|
+
}), /* @__PURE__ */ h("p", {
|
|
216
278
|
className: "text-xs text-text-secondary",
|
|
217
279
|
children: "Only invited members can see this team"
|
|
218
280
|
})]
|
|
219
|
-
}), /* @__PURE__ */
|
|
281
|
+
}), /* @__PURE__ */ g("div", {
|
|
220
282
|
className: "flex items-center gap-2",
|
|
221
|
-
children: [
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
283
|
+
children: [
|
|
284
|
+
/* @__PURE__ */ h(o, { className: "h-4 w-4 text-text-secondary" }),
|
|
285
|
+
/* @__PURE__ */ h(_, {
|
|
286
|
+
variant: "outline",
|
|
287
|
+
className: "text-[10px]",
|
|
288
|
+
children: "Coming soon"
|
|
289
|
+
}),
|
|
290
|
+
/* @__PURE__ */ h(M, {
|
|
291
|
+
checked: !1,
|
|
292
|
+
disabled: !0,
|
|
293
|
+
"aria-label": "Private team (coming soon)"
|
|
294
|
+
})
|
|
295
|
+
]
|
|
225
296
|
})]
|
|
226
297
|
}),
|
|
227
|
-
/* @__PURE__ */
|
|
228
|
-
/* @__PURE__ */
|
|
298
|
+
/* @__PURE__ */ h(j, {}),
|
|
299
|
+
/* @__PURE__ */ g("div", {
|
|
229
300
|
className: "flex items-center justify-between",
|
|
230
|
-
children: [/* @__PURE__ */
|
|
301
|
+
children: [/* @__PURE__ */ g("div", {
|
|
231
302
|
className: "space-y-0.5",
|
|
232
|
-
children: [/* @__PURE__ */
|
|
303
|
+
children: [/* @__PURE__ */ h("p", {
|
|
233
304
|
className: "text-sm font-medium",
|
|
234
305
|
children: "Auto-Approve Join Requests"
|
|
235
|
-
}), /* @__PURE__ */
|
|
306
|
+
}), /* @__PURE__ */ h("p", {
|
|
236
307
|
className: "text-xs text-text-secondary",
|
|
237
308
|
children: "Automatically accept when employees request to join"
|
|
238
309
|
})]
|
|
239
|
-
}), /* @__PURE__ */
|
|
240
|
-
|
|
241
|
-
|
|
310
|
+
}), /* @__PURE__ */ g("div", {
|
|
311
|
+
className: "flex items-center gap-2",
|
|
312
|
+
children: [/* @__PURE__ */ h(_, {
|
|
313
|
+
variant: "outline",
|
|
314
|
+
className: "text-[10px]",
|
|
315
|
+
children: "Coming soon"
|
|
316
|
+
}), /* @__PURE__ */ h(M, {
|
|
317
|
+
checked: !1,
|
|
318
|
+
disabled: !0,
|
|
319
|
+
"aria-label": "Auto-approve join requests (coming soon)"
|
|
320
|
+
})]
|
|
242
321
|
})]
|
|
243
322
|
})
|
|
244
323
|
]
|
|
245
324
|
})] })
|
|
246
325
|
]
|
|
247
|
-
}), /* @__PURE__ */
|
|
326
|
+
}), /* @__PURE__ */ g("div", {
|
|
248
327
|
className: "space-y-4",
|
|
249
328
|
children: [
|
|
250
|
-
/* @__PURE__ */
|
|
329
|
+
/* @__PURE__ */ g(y, { children: [/* @__PURE__ */ g(S, { children: [/* @__PURE__ */ h(C, {
|
|
251
330
|
className: "text-sm",
|
|
252
331
|
children: "Notification Preferences"
|
|
253
|
-
})
|
|
332
|
+
}), /* @__PURE__ */ h(x, {
|
|
333
|
+
className: "text-xs",
|
|
334
|
+
children: "Coming soon on the roadmap."
|
|
335
|
+
})] }), /* @__PURE__ */ g(b, {
|
|
254
336
|
className: "space-y-4",
|
|
255
337
|
children: [
|
|
256
|
-
/* @__PURE__ */
|
|
338
|
+
/* @__PURE__ */ g("div", {
|
|
257
339
|
className: "flex items-center justify-between",
|
|
258
|
-
children: [/* @__PURE__ */
|
|
340
|
+
children: [/* @__PURE__ */ g("div", {
|
|
259
341
|
className: "flex items-center gap-2",
|
|
260
|
-
children: [/* @__PURE__ */
|
|
342
|
+
children: [/* @__PURE__ */ h(a, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("p", {
|
|
261
343
|
className: "text-xs font-medium",
|
|
262
344
|
children: "New Member Alerts"
|
|
263
|
-
}), /* @__PURE__ */
|
|
345
|
+
}), /* @__PURE__ */ h("p", {
|
|
264
346
|
className: "text-[10px] text-text-secondary",
|
|
265
347
|
children: "Notify when members join or leave"
|
|
266
348
|
})] })]
|
|
267
|
-
}), /* @__PURE__ */
|
|
268
|
-
checked:
|
|
269
|
-
|
|
349
|
+
}), /* @__PURE__ */ h(M, {
|
|
350
|
+
checked: !1,
|
|
351
|
+
disabled: !0,
|
|
352
|
+
"aria-label": "New member alerts (coming soon)"
|
|
270
353
|
})]
|
|
271
354
|
}),
|
|
272
|
-
/* @__PURE__ */
|
|
273
|
-
/* @__PURE__ */
|
|
355
|
+
/* @__PURE__ */ h(j, {}),
|
|
356
|
+
/* @__PURE__ */ g("div", {
|
|
274
357
|
className: "flex items-center justify-between",
|
|
275
|
-
children: [/* @__PURE__ */
|
|
358
|
+
children: [/* @__PURE__ */ g("div", {
|
|
276
359
|
className: "flex items-center gap-2",
|
|
277
|
-
children: [/* @__PURE__ */
|
|
360
|
+
children: [/* @__PURE__ */ h(a, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("p", {
|
|
278
361
|
className: "text-xs font-medium",
|
|
279
362
|
children: "Weekly Digest"
|
|
280
|
-
}), /* @__PURE__ */
|
|
363
|
+
}), /* @__PURE__ */ h("p", {
|
|
281
364
|
className: "text-[10px] text-text-secondary",
|
|
282
365
|
children: "Summary of team activity"
|
|
283
366
|
})] })]
|
|
284
|
-
}), /* @__PURE__ */
|
|
285
|
-
checked:
|
|
286
|
-
|
|
367
|
+
}), /* @__PURE__ */ h(M, {
|
|
368
|
+
checked: !1,
|
|
369
|
+
disabled: !0,
|
|
370
|
+
"aria-label": "Weekly digest (coming soon)"
|
|
287
371
|
})]
|
|
288
372
|
})
|
|
289
373
|
]
|
|
290
374
|
})] }),
|
|
291
|
-
/* @__PURE__ */
|
|
375
|
+
/* @__PURE__ */ g(y, { children: [/* @__PURE__ */ h(S, { children: /* @__PURE__ */ h(C, {
|
|
292
376
|
className: "text-sm",
|
|
293
377
|
children: "Team Info"
|
|
294
|
-
}) }), /* @__PURE__ */
|
|
378
|
+
}) }), /* @__PURE__ */ h(b, {
|
|
295
379
|
className: "space-y-2 text-sm",
|
|
296
380
|
children: [
|
|
297
381
|
{
|
|
298
382
|
label: "Created",
|
|
299
|
-
value:
|
|
383
|
+
value: V.createdAt
|
|
300
384
|
},
|
|
301
385
|
{
|
|
302
386
|
label: "Department",
|
|
303
|
-
value:
|
|
387
|
+
value: V.department
|
|
304
388
|
},
|
|
305
389
|
{
|
|
306
390
|
label: "Status",
|
|
307
|
-
value:
|
|
391
|
+
value: V.status
|
|
308
392
|
},
|
|
309
393
|
{
|
|
310
394
|
label: "Projects",
|
|
311
|
-
value:
|
|
395
|
+
value: V.projectCount.toString()
|
|
312
396
|
},
|
|
313
397
|
{
|
|
314
398
|
label: "Members",
|
|
315
|
-
value:
|
|
399
|
+
value: V.memberCount.toString()
|
|
316
400
|
}
|
|
317
|
-
].map((e) => /* @__PURE__ */
|
|
401
|
+
].map((e) => /* @__PURE__ */ g("div", {
|
|
318
402
|
className: "flex items-center justify-between",
|
|
319
|
-
children: [/* @__PURE__ */
|
|
403
|
+
children: [/* @__PURE__ */ h("span", {
|
|
320
404
|
className: "text-text-secondary text-xs",
|
|
321
405
|
children: e.label
|
|
322
|
-
}), /* @__PURE__ */
|
|
406
|
+
}), /* @__PURE__ */ h("span", {
|
|
323
407
|
className: "text-xs font-medium",
|
|
324
408
|
children: e.value
|
|
325
409
|
})]
|
|
326
410
|
}, e.label))
|
|
327
411
|
})] }),
|
|
328
|
-
/* @__PURE__ */
|
|
412
|
+
/* @__PURE__ */ g(y, {
|
|
329
413
|
className: "border-status-error-border/50",
|
|
330
|
-
children: [/* @__PURE__ */
|
|
414
|
+
children: [/* @__PURE__ */ h(S, { children: /* @__PURE__ */ h(C, {
|
|
331
415
|
className: "text-sm text-status-error-text",
|
|
332
416
|
children: "Danger Zone"
|
|
333
|
-
}) }), /* @__PURE__ */
|
|
417
|
+
}) }), /* @__PURE__ */ g(b, {
|
|
334
418
|
className: "space-y-3",
|
|
335
|
-
children: [/* @__PURE__ */
|
|
419
|
+
children: [/* @__PURE__ */ h("p", {
|
|
336
420
|
className: "text-xs text-text-secondary",
|
|
337
|
-
children: "Archiving a team
|
|
338
|
-
}), /* @__PURE__ */
|
|
421
|
+
children: "Archiving a team removes it from the active roster and deactivates associated projects. This action can be reversed by an admin."
|
|
422
|
+
}), /* @__PURE__ */ g(v, {
|
|
339
423
|
variant: "destructive",
|
|
340
424
|
size: "sm",
|
|
341
425
|
className: "w-full",
|
|
342
|
-
|
|
426
|
+
onClick: () => J(!0),
|
|
427
|
+
children: [/* @__PURE__ */ h(u, { className: "h-3 w-3 mr-1" }), "Archive Team"]
|
|
343
428
|
})]
|
|
344
429
|
})]
|
|
345
430
|
})
|
|
346
431
|
]
|
|
347
432
|
})]
|
|
433
|
+
}),
|
|
434
|
+
/* @__PURE__ */ h(t, {
|
|
435
|
+
open: Z.open,
|
|
436
|
+
onOpenChange: Z.onOpenChange,
|
|
437
|
+
title: "Add Team Member",
|
|
438
|
+
description: `Add an employee to ${V.name}.`,
|
|
439
|
+
fields: ce,
|
|
440
|
+
submitLabel: "Add Member",
|
|
441
|
+
onSubmit: le
|
|
442
|
+
}),
|
|
443
|
+
/* @__PURE__ */ h(ne, {
|
|
444
|
+
open: oe,
|
|
445
|
+
onOpenChange: J,
|
|
446
|
+
children: /* @__PURE__ */ g(re, {
|
|
447
|
+
className: "sm:max-w-[440px]",
|
|
448
|
+
children: [/* @__PURE__ */ g(k, { children: [/* @__PURE__ */ g(A, { children: [
|
|
449
|
+
"Archive ",
|
|
450
|
+
V.name,
|
|
451
|
+
"?"
|
|
452
|
+
] }), /* @__PURE__ */ h(ie, { children: "This removes the team from the active roster. An admin can restore it later." })] }), /* @__PURE__ */ g(ae, { children: [/* @__PURE__ */ h(v, {
|
|
453
|
+
type: "button",
|
|
454
|
+
variant: "outline",
|
|
455
|
+
onClick: () => J(!1),
|
|
456
|
+
disabled: Y,
|
|
457
|
+
children: "Cancel"
|
|
458
|
+
}), /* @__PURE__ */ h(v, {
|
|
459
|
+
type: "button",
|
|
460
|
+
variant: "destructive",
|
|
461
|
+
onClick: async () => {
|
|
462
|
+
if (!Y) {
|
|
463
|
+
X(!0);
|
|
464
|
+
try {
|
|
465
|
+
await B(V.id), I("Team archived", "success"), J(!1), F("../../teams/teams-page");
|
|
466
|
+
} catch (e) {
|
|
467
|
+
I(e instanceof Error ? e.message : "Unable to archive team", "error");
|
|
468
|
+
} finally {
|
|
469
|
+
X(!1);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
},
|
|
473
|
+
disabled: Y,
|
|
474
|
+
children: Y ? "Archiving…" : "Archive Team"
|
|
475
|
+
})] })]
|
|
476
|
+
})
|
|
348
477
|
})
|
|
349
478
|
]
|
|
350
479
|
});
|
|
351
480
|
}
|
|
352
481
|
//#endregion
|
|
353
|
-
export {
|
|
482
|
+
export { F as TeamsTeamSettingsPagePage };
|
|
354
483
|
|
|
355
484
|
//# sourceMappingURL=TeamsTeamSettingsPagePage.js.map
|