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