@burdenoff/microfe-crewfoundry 2026.625.1 → 2026.625.2
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 +37 -29
- package/dist/crewfoundry/pages/AdminAdminPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js +50 -42
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js +39 -31
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js +52 -44
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +46 -38
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js +28 -15
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js +30 -22
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js +87 -69
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js +99 -80
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js +86 -67
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js +31 -15
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js +37 -29
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +29 -21
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js +25 -17
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js +42 -35
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +80 -62
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js +41 -33
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +142 -108
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +177 -136
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +44 -36
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -1
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js +49 -38
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.js +26 -18
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +112 -93
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +53 -46
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +31 -23
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +129 -90
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringJobsPagePage.js +96 -85
- package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +26 -18
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrEmployeesPagePage.js +47 -35
- package/dist/crewfoundry/pages/HrEmployeesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +33 -25
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrPayrollPagePage.js +36 -28
- package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +27 -19
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js +27 -19
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.js +93 -75
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +111 -70
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js +65 -53
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js +35 -19
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js +33 -25
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPagePage.js +26 -18
- package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +80 -55
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +33 -17
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.js +31 -23
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js +29 -21
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js +35 -27
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js +147 -112
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js +31 -27
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js +31 -23
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js +104 -85
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js +75 -56
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +78 -60
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js +133 -92
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js +93 -52
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js +28 -20
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +84 -65
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js +25 -17
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js +58 -40
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js +41 -33
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js +36 -29
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js +103 -72
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +43 -27
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js +28 -20
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js +103 -62
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js +83 -64
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +185 -144
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +40 -24
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,304 +1,345 @@
|
|
|
1
1
|
import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
|
|
2
2
|
import { useState as t } from "react";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { BarChart3 as n, Bell as r, Lock as i, Save as a, Settings as o, Shield as s, Trash2 as c, UserMinus as l, UserPlus as u, Users as d } from "lucide-react";
|
|
4
|
+
import { useNavigate as f } from "react-router-dom";
|
|
5
|
+
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
6
|
+
import { Badge as h, Button as g, Card as _, CardContent as v, CardDescription as y, CardHeader as b, CardTitle as x, EmphasisPanel as S, GradientText as C, Input as w, Label as T, NextSteps as E, PagePurpose as D, Separator as O, Switch as k, Textarea as A } from "@burdenoff/fe-libs/ui";
|
|
6
7
|
//#region src/crewfoundry/pages/TeamsTeamSettingsPagePage.tsx
|
|
7
|
-
function
|
|
8
|
-
let { teams:
|
|
9
|
-
return /* @__PURE__ */
|
|
8
|
+
function j() {
|
|
9
|
+
let j = f(), { teams: M, employees: N } = e(), P = M[0], [F, I] = t(P.name), [L, R] = t(P.description), [z, B] = t(!1), [V, H] = t(!0), [U, W] = t(!0), [G, K] = t(!1), q = N.filter((e) => P.members.includes(e.id));
|
|
10
|
+
return /* @__PURE__ */ m("div", {
|
|
10
11
|
className: "space-y-6 p-6",
|
|
11
12
|
children: [
|
|
12
|
-
/* @__PURE__ */
|
|
13
|
+
/* @__PURE__ */ m("div", {
|
|
13
14
|
className: "flex items-center justify-between",
|
|
14
|
-
children: [/* @__PURE__ */
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
children: [/* @__PURE__ */ m("div", { children: [
|
|
16
|
+
/* @__PURE__ */ p("h1", {
|
|
17
|
+
className: "text-2xl font-semibold",
|
|
18
|
+
children: /* @__PURE__ */ p(C, { children: "Team Settings" })
|
|
19
|
+
}),
|
|
20
|
+
/* @__PURE__ */ m("p", {
|
|
21
|
+
className: "text-sm text-text-secondary",
|
|
22
|
+
children: ["Configure settings for ", P.name]
|
|
23
|
+
}),
|
|
24
|
+
/* @__PURE__ */ p(D, {
|
|
25
|
+
className: "mt-1",
|
|
26
|
+
children: "Configure a team's settings — membership, permissions, and preferences that control how the team works in CrewFoundry."
|
|
27
|
+
})
|
|
28
|
+
] }), /* @__PURE__ */ m(g, { children: [/* @__PURE__ */ p(a, { className: "h-4 w-4 mr-1" }), "Save Changes"] })]
|
|
21
29
|
}),
|
|
22
|
-
/* @__PURE__ */
|
|
30
|
+
/* @__PURE__ */ p(E, {
|
|
31
|
+
storageKey: "crewfoundry-team-settings",
|
|
32
|
+
steps: [
|
|
33
|
+
{
|
|
34
|
+
id: "members",
|
|
35
|
+
label: "Manage members",
|
|
36
|
+
description: "Add or remove people and adjust their roles below.",
|
|
37
|
+
icon: /* @__PURE__ */ p(d, { className: "h-4 w-4" }),
|
|
38
|
+
onClick: () => j("../../teams/team-directory-page")
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
id: "analytics",
|
|
42
|
+
label: "Review team analytics",
|
|
43
|
+
description: "See how this team is performing before you change settings.",
|
|
44
|
+
icon: /* @__PURE__ */ p(n, { className: "h-4 w-4" }),
|
|
45
|
+
onClick: () => j("../../teams/team-analytics-page")
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
id: "detail",
|
|
49
|
+
label: "Open the team overview",
|
|
50
|
+
description: "See members and projects at a glance.",
|
|
51
|
+
icon: /* @__PURE__ */ p(o, { className: "h-4 w-4" }),
|
|
52
|
+
onClick: () => j("../../teams/team-detail-page")
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
}),
|
|
56
|
+
/* @__PURE__ */ m("div", {
|
|
23
57
|
className: "grid gap-4 md:grid-cols-3",
|
|
24
58
|
children: [
|
|
25
|
-
/* @__PURE__ */
|
|
59
|
+
/* @__PURE__ */ p(_, { children: /* @__PURE__ */ m(v, {
|
|
26
60
|
className: "flex items-center gap-3 pt-6",
|
|
27
|
-
children: [/* @__PURE__ */ d
|
|
61
|
+
children: [/* @__PURE__ */ p(d, { className: "h-5 w-5 text-status-info-text" }), /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
|
|
28
62
|
className: "text-xs text-text-secondary",
|
|
29
63
|
children: "Members"
|
|
30
|
-
}), /* @__PURE__ */
|
|
64
|
+
}), /* @__PURE__ */ p("p", {
|
|
31
65
|
className: "text-lg font-bold",
|
|
32
|
-
children:
|
|
66
|
+
children: P.memberCount
|
|
33
67
|
})] })]
|
|
34
68
|
}) }),
|
|
35
|
-
/* @__PURE__ */
|
|
69
|
+
/* @__PURE__ */ p(_, { children: /* @__PURE__ */ m(v, {
|
|
36
70
|
className: "flex items-center gap-3 pt-6",
|
|
37
|
-
children: [/* @__PURE__ */
|
|
71
|
+
children: [/* @__PURE__ */ p(o, { className: "h-5 w-5 text-action-primary-bg" }), /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
|
|
38
72
|
className: "text-xs text-text-secondary",
|
|
39
73
|
children: "Active Projects"
|
|
40
|
-
}), /* @__PURE__ */
|
|
74
|
+
}), /* @__PURE__ */ p("p", {
|
|
41
75
|
className: "text-lg font-bold",
|
|
42
|
-
children:
|
|
76
|
+
children: P.projectCount
|
|
43
77
|
})] })]
|
|
44
78
|
}) }),
|
|
45
|
-
/* @__PURE__ */
|
|
79
|
+
/* @__PURE__ */ p(_, { children: /* @__PURE__ */ m(v, {
|
|
46
80
|
className: "flex items-center gap-3 pt-6",
|
|
47
|
-
children: [/* @__PURE__ */
|
|
81
|
+
children: [/* @__PURE__ */ p(s, { className: "h-5 w-5 text-status-success-text" }), /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
|
|
48
82
|
className: "text-xs text-text-secondary",
|
|
49
83
|
children: "Visibility"
|
|
50
|
-
}), /* @__PURE__ */
|
|
84
|
+
}), /* @__PURE__ */ p("p", {
|
|
51
85
|
className: "text-lg font-bold",
|
|
52
|
-
children:
|
|
86
|
+
children: G ? "Private" : "Public"
|
|
53
87
|
})] })]
|
|
54
88
|
}) })
|
|
55
89
|
]
|
|
56
90
|
}),
|
|
57
|
-
/* @__PURE__ */
|
|
91
|
+
/* @__PURE__ */ m("div", {
|
|
58
92
|
className: "grid gap-6 lg:grid-cols-3",
|
|
59
|
-
children: [/* @__PURE__ */
|
|
93
|
+
children: [/* @__PURE__ */ m("div", {
|
|
60
94
|
className: "lg:col-span-2 space-y-6",
|
|
61
95
|
children: [
|
|
62
|
-
/* @__PURE__ */
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
value: k,
|
|
76
|
-
onChange: (e) => A(e.target.value)
|
|
77
|
-
})]
|
|
78
|
-
}),
|
|
79
|
-
/* @__PURE__ */ f("div", {
|
|
80
|
-
className: "space-y-2",
|
|
81
|
-
children: [/* @__PURE__ */ d(S, {
|
|
82
|
-
htmlFor: "tsDesc",
|
|
83
|
-
children: "Description"
|
|
84
|
-
}), /* @__PURE__ */ d(T, {
|
|
85
|
-
id: "tsDesc",
|
|
86
|
-
className: "min-h-[80px]",
|
|
87
|
-
value: j,
|
|
88
|
-
onChange: (e) => M(e.target.value)
|
|
89
|
-
})]
|
|
90
|
-
}),
|
|
91
|
-
/* @__PURE__ */ f("div", {
|
|
92
|
-
className: "grid gap-4 sm:grid-cols-2",
|
|
93
|
-
children: [/* @__PURE__ */ f("div", {
|
|
96
|
+
/* @__PURE__ */ m(S, { children: [
|
|
97
|
+
/* @__PURE__ */ p("div", {
|
|
98
|
+
className: "text-base font-semibold",
|
|
99
|
+
children: "General Settings"
|
|
100
|
+
}),
|
|
101
|
+
/* @__PURE__ */ p("p", {
|
|
102
|
+
className: "mb-4 text-sm text-text-secondary",
|
|
103
|
+
children: "Basic team information"
|
|
104
|
+
}),
|
|
105
|
+
/* @__PURE__ */ m("div", {
|
|
106
|
+
className: "space-y-4",
|
|
107
|
+
children: [
|
|
108
|
+
/* @__PURE__ */ m("div", {
|
|
94
109
|
className: "space-y-2",
|
|
95
|
-
children: [/* @__PURE__ */
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
110
|
+
children: [/* @__PURE__ */ p(T, {
|
|
111
|
+
htmlFor: "tsName",
|
|
112
|
+
children: "Team Name"
|
|
113
|
+
}), /* @__PURE__ */ p(w, {
|
|
114
|
+
id: "tsName",
|
|
115
|
+
value: F,
|
|
116
|
+
onChange: (e) => I(e.target.value)
|
|
99
117
|
})]
|
|
100
|
-
}),
|
|
118
|
+
}),
|
|
119
|
+
/* @__PURE__ */ m("div", {
|
|
101
120
|
className: "space-y-2",
|
|
102
|
-
children: [/* @__PURE__ */
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
121
|
+
children: [/* @__PURE__ */ p(T, {
|
|
122
|
+
htmlFor: "tsDesc",
|
|
123
|
+
children: "Description"
|
|
124
|
+
}), /* @__PURE__ */ p(A, {
|
|
125
|
+
id: "tsDesc",
|
|
126
|
+
className: "min-h-[80px]",
|
|
127
|
+
value: L,
|
|
128
|
+
onChange: (e) => R(e.target.value)
|
|
106
129
|
})]
|
|
107
|
-
})
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
130
|
+
}),
|
|
131
|
+
/* @__PURE__ */ m("div", {
|
|
132
|
+
className: "grid gap-4 sm:grid-cols-2",
|
|
133
|
+
children: [/* @__PURE__ */ m("div", {
|
|
134
|
+
className: "space-y-2",
|
|
135
|
+
children: [/* @__PURE__ */ p(T, { children: "Department" }), /* @__PURE__ */ p(w, {
|
|
136
|
+
value: P.department,
|
|
137
|
+
disabled: !0,
|
|
138
|
+
className: "bg-bg-sunken"
|
|
139
|
+
})]
|
|
140
|
+
}), /* @__PURE__ */ m("div", {
|
|
141
|
+
className: "space-y-2",
|
|
142
|
+
children: [/* @__PURE__ */ p(T, { children: "Team Lead" }), /* @__PURE__ */ p(w, {
|
|
143
|
+
value: P.leadName,
|
|
144
|
+
disabled: !0,
|
|
145
|
+
className: "bg-bg-sunken"
|
|
146
|
+
})]
|
|
147
|
+
})]
|
|
148
|
+
})
|
|
149
|
+
]
|
|
150
|
+
})
|
|
151
|
+
] }),
|
|
152
|
+
/* @__PURE__ */ m(_, { children: [/* @__PURE__ */ p(b, { children: /* @__PURE__ */ m("div", {
|
|
112
153
|
className: "flex items-center justify-between",
|
|
113
|
-
children: [/* @__PURE__ */
|
|
154
|
+
children: [/* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p(x, {
|
|
114
155
|
className: "text-base",
|
|
115
156
|
children: "Team Members"
|
|
116
|
-
}), /* @__PURE__ */
|
|
157
|
+
}), /* @__PURE__ */ m(y, { children: [q.length, " active members"] })] }), /* @__PURE__ */ m(g, {
|
|
117
158
|
size: "sm",
|
|
118
|
-
children: [/* @__PURE__ */
|
|
159
|
+
children: [/* @__PURE__ */ p(u, { className: "h-3 w-3 mr-1" }), "Add Member"]
|
|
119
160
|
})]
|
|
120
|
-
}) }), /* @__PURE__ */
|
|
161
|
+
}) }), /* @__PURE__ */ p(v, {
|
|
121
162
|
className: "p-0",
|
|
122
|
-
children:
|
|
123
|
-
className: `flex items-center justify-between px-6 py-3 ${t <
|
|
124
|
-
children: [/* @__PURE__ */
|
|
163
|
+
children: q.map((e, t) => /* @__PURE__ */ m("div", {
|
|
164
|
+
className: `flex items-center justify-between px-6 py-3 ${t < q.length - 1 ? "border-b" : ""}`,
|
|
165
|
+
children: [/* @__PURE__ */ m("div", {
|
|
125
166
|
className: "flex items-center gap-3",
|
|
126
|
-
children: [/* @__PURE__ */
|
|
167
|
+
children: [/* @__PURE__ */ m("div", {
|
|
127
168
|
className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-bg-sunken text-xs font-medium",
|
|
128
169
|
children: [e.firstName[0], e.lastName[0]]
|
|
129
|
-
}), /* @__PURE__ */
|
|
170
|
+
}), /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ m("div", {
|
|
130
171
|
className: "flex items-center gap-2",
|
|
131
|
-
children: [/* @__PURE__ */
|
|
172
|
+
children: [/* @__PURE__ */ m("p", {
|
|
132
173
|
className: "text-sm font-medium",
|
|
133
174
|
children: [
|
|
134
175
|
e.firstName,
|
|
135
176
|
" ",
|
|
136
177
|
e.lastName
|
|
137
178
|
]
|
|
138
|
-
}), e.id ===
|
|
179
|
+
}), e.id === P.leadId && /* @__PURE__ */ p(h, {
|
|
139
180
|
className: "text-[10px]",
|
|
140
181
|
children: "Lead"
|
|
141
182
|
})]
|
|
142
|
-
}), /* @__PURE__ */
|
|
183
|
+
}), /* @__PURE__ */ p("p", {
|
|
143
184
|
className: "text-xs text-text-secondary",
|
|
144
185
|
children: e.position
|
|
145
186
|
})] })]
|
|
146
|
-
}), /* @__PURE__ */
|
|
187
|
+
}), /* @__PURE__ */ m("div", {
|
|
147
188
|
className: "flex items-center gap-2",
|
|
148
|
-
children: [/* @__PURE__ */
|
|
189
|
+
children: [/* @__PURE__ */ p(h, {
|
|
149
190
|
variant: e.status === "active" ? "secondary" : "outline",
|
|
150
191
|
className: "text-[10px]",
|
|
151
192
|
children: e.status
|
|
152
|
-
}), e.id !==
|
|
193
|
+
}), e.id !== P.leadId && /* @__PURE__ */ p(g, {
|
|
153
194
|
variant: "ghost",
|
|
154
195
|
size: "sm",
|
|
155
196
|
className: "h-7 w-7 p-0 text-text-secondary hover:text-status-error-text",
|
|
156
|
-
children: /* @__PURE__ */
|
|
197
|
+
children: /* @__PURE__ */ p(l, { className: "h-3 w-3" })
|
|
157
198
|
})]
|
|
158
199
|
})]
|
|
159
200
|
}, e.id))
|
|
160
201
|
})] }),
|
|
161
|
-
/* @__PURE__ */
|
|
202
|
+
/* @__PURE__ */ m(_, { children: [/* @__PURE__ */ m(b, { children: [/* @__PURE__ */ p(x, {
|
|
162
203
|
className: "text-base",
|
|
163
204
|
children: "Permissions & Access"
|
|
164
|
-
}), /* @__PURE__ */
|
|
205
|
+
}), /* @__PURE__ */ p(y, { children: "Control team visibility and member permissions" })] }), /* @__PURE__ */ m(v, {
|
|
165
206
|
className: "space-y-4",
|
|
166
207
|
children: [
|
|
167
|
-
/* @__PURE__ */
|
|
208
|
+
/* @__PURE__ */ m("div", {
|
|
168
209
|
className: "flex items-center justify-between",
|
|
169
|
-
children: [/* @__PURE__ */
|
|
210
|
+
children: [/* @__PURE__ */ m("div", {
|
|
170
211
|
className: "space-y-0.5",
|
|
171
|
-
children: [/* @__PURE__ */
|
|
212
|
+
children: [/* @__PURE__ */ p("p", {
|
|
172
213
|
className: "text-sm font-medium",
|
|
173
214
|
children: "Private Team"
|
|
174
|
-
}), /* @__PURE__ */
|
|
215
|
+
}), /* @__PURE__ */ p("p", {
|
|
175
216
|
className: "text-xs text-text-secondary",
|
|
176
217
|
children: "Only invited members can see this team"
|
|
177
218
|
})]
|
|
178
|
-
}), /* @__PURE__ */
|
|
219
|
+
}), /* @__PURE__ */ m("div", {
|
|
179
220
|
className: "flex items-center gap-2",
|
|
180
|
-
children: [/* @__PURE__ */
|
|
181
|
-
checked:
|
|
182
|
-
onCheckedChange:
|
|
221
|
+
children: [/* @__PURE__ */ p(i, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ p(k, {
|
|
222
|
+
checked: G,
|
|
223
|
+
onCheckedChange: K
|
|
183
224
|
})]
|
|
184
225
|
})]
|
|
185
226
|
}),
|
|
186
|
-
/* @__PURE__ */
|
|
187
|
-
/* @__PURE__ */
|
|
227
|
+
/* @__PURE__ */ p(O, {}),
|
|
228
|
+
/* @__PURE__ */ m("div", {
|
|
188
229
|
className: "flex items-center justify-between",
|
|
189
|
-
children: [/* @__PURE__ */
|
|
230
|
+
children: [/* @__PURE__ */ m("div", {
|
|
190
231
|
className: "space-y-0.5",
|
|
191
|
-
children: [/* @__PURE__ */
|
|
232
|
+
children: [/* @__PURE__ */ p("p", {
|
|
192
233
|
className: "text-sm font-medium",
|
|
193
234
|
children: "Auto-Approve Join Requests"
|
|
194
|
-
}), /* @__PURE__ */
|
|
235
|
+
}), /* @__PURE__ */ p("p", {
|
|
195
236
|
className: "text-xs text-text-secondary",
|
|
196
237
|
children: "Automatically accept when employees request to join"
|
|
197
238
|
})]
|
|
198
|
-
}), /* @__PURE__ */
|
|
199
|
-
checked:
|
|
200
|
-
onCheckedChange:
|
|
239
|
+
}), /* @__PURE__ */ p(k, {
|
|
240
|
+
checked: z,
|
|
241
|
+
onCheckedChange: B
|
|
201
242
|
})]
|
|
202
243
|
})
|
|
203
244
|
]
|
|
204
245
|
})] })
|
|
205
246
|
]
|
|
206
|
-
}), /* @__PURE__ */
|
|
247
|
+
}), /* @__PURE__ */ m("div", {
|
|
207
248
|
className: "space-y-4",
|
|
208
249
|
children: [
|
|
209
|
-
/* @__PURE__ */
|
|
250
|
+
/* @__PURE__ */ m(_, { children: [/* @__PURE__ */ p(b, { children: /* @__PURE__ */ p(x, {
|
|
210
251
|
className: "text-sm",
|
|
211
252
|
children: "Notification Preferences"
|
|
212
|
-
}) }), /* @__PURE__ */
|
|
253
|
+
}) }), /* @__PURE__ */ m(v, {
|
|
213
254
|
className: "space-y-4",
|
|
214
255
|
children: [
|
|
215
|
-
/* @__PURE__ */
|
|
256
|
+
/* @__PURE__ */ m("div", {
|
|
216
257
|
className: "flex items-center justify-between",
|
|
217
|
-
children: [/* @__PURE__ */
|
|
258
|
+
children: [/* @__PURE__ */ m("div", {
|
|
218
259
|
className: "flex items-center gap-2",
|
|
219
|
-
children: [/* @__PURE__ */
|
|
260
|
+
children: [/* @__PURE__ */ p(r, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
|
|
220
261
|
className: "text-xs font-medium",
|
|
221
262
|
children: "New Member Alerts"
|
|
222
|
-
}), /* @__PURE__ */
|
|
263
|
+
}), /* @__PURE__ */ p("p", {
|
|
223
264
|
className: "text-[10px] text-text-secondary",
|
|
224
265
|
children: "Notify when members join or leave"
|
|
225
266
|
})] })]
|
|
226
|
-
}), /* @__PURE__ */
|
|
227
|
-
checked:
|
|
228
|
-
onCheckedChange:
|
|
267
|
+
}), /* @__PURE__ */ p(k, {
|
|
268
|
+
checked: V,
|
|
269
|
+
onCheckedChange: H
|
|
229
270
|
})]
|
|
230
271
|
}),
|
|
231
|
-
/* @__PURE__ */
|
|
232
|
-
/* @__PURE__ */
|
|
272
|
+
/* @__PURE__ */ p(O, {}),
|
|
273
|
+
/* @__PURE__ */ m("div", {
|
|
233
274
|
className: "flex items-center justify-between",
|
|
234
|
-
children: [/* @__PURE__ */
|
|
275
|
+
children: [/* @__PURE__ */ m("div", {
|
|
235
276
|
className: "flex items-center gap-2",
|
|
236
|
-
children: [/* @__PURE__ */
|
|
277
|
+
children: [/* @__PURE__ */ p(r, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
|
|
237
278
|
className: "text-xs font-medium",
|
|
238
279
|
children: "Weekly Digest"
|
|
239
|
-
}), /* @__PURE__ */
|
|
280
|
+
}), /* @__PURE__ */ p("p", {
|
|
240
281
|
className: "text-[10px] text-text-secondary",
|
|
241
282
|
children: "Summary of team activity"
|
|
242
283
|
})] })]
|
|
243
|
-
}), /* @__PURE__ */
|
|
244
|
-
checked:
|
|
245
|
-
onCheckedChange:
|
|
284
|
+
}), /* @__PURE__ */ p(k, {
|
|
285
|
+
checked: U,
|
|
286
|
+
onCheckedChange: W
|
|
246
287
|
})]
|
|
247
288
|
})
|
|
248
289
|
]
|
|
249
290
|
})] }),
|
|
250
|
-
/* @__PURE__ */
|
|
291
|
+
/* @__PURE__ */ m(_, { children: [/* @__PURE__ */ p(b, { children: /* @__PURE__ */ p(x, {
|
|
251
292
|
className: "text-sm",
|
|
252
293
|
children: "Team Info"
|
|
253
|
-
}) }), /* @__PURE__ */
|
|
294
|
+
}) }), /* @__PURE__ */ p(v, {
|
|
254
295
|
className: "space-y-2 text-sm",
|
|
255
296
|
children: [
|
|
256
297
|
{
|
|
257
298
|
label: "Created",
|
|
258
|
-
value:
|
|
299
|
+
value: P.createdAt
|
|
259
300
|
},
|
|
260
301
|
{
|
|
261
302
|
label: "Department",
|
|
262
|
-
value:
|
|
303
|
+
value: P.department
|
|
263
304
|
},
|
|
264
305
|
{
|
|
265
306
|
label: "Status",
|
|
266
|
-
value:
|
|
307
|
+
value: P.status
|
|
267
308
|
},
|
|
268
309
|
{
|
|
269
310
|
label: "Projects",
|
|
270
|
-
value:
|
|
311
|
+
value: P.projectCount.toString()
|
|
271
312
|
},
|
|
272
313
|
{
|
|
273
314
|
label: "Members",
|
|
274
|
-
value:
|
|
315
|
+
value: P.memberCount.toString()
|
|
275
316
|
}
|
|
276
|
-
].map((e) => /* @__PURE__ */
|
|
317
|
+
].map((e) => /* @__PURE__ */ m("div", {
|
|
277
318
|
className: "flex items-center justify-between",
|
|
278
|
-
children: [/* @__PURE__ */
|
|
319
|
+
children: [/* @__PURE__ */ p("span", {
|
|
279
320
|
className: "text-text-secondary text-xs",
|
|
280
321
|
children: e.label
|
|
281
|
-
}), /* @__PURE__ */
|
|
322
|
+
}), /* @__PURE__ */ p("span", {
|
|
282
323
|
className: "text-xs font-medium",
|
|
283
324
|
children: e.value
|
|
284
325
|
})]
|
|
285
326
|
}, e.label))
|
|
286
327
|
})] }),
|
|
287
|
-
/* @__PURE__ */
|
|
328
|
+
/* @__PURE__ */ m(_, {
|
|
288
329
|
className: "border-status-error-border/50",
|
|
289
|
-
children: [/* @__PURE__ */
|
|
330
|
+
children: [/* @__PURE__ */ p(b, { children: /* @__PURE__ */ p(x, {
|
|
290
331
|
className: "text-sm text-status-error-text",
|
|
291
332
|
children: "Danger Zone"
|
|
292
|
-
}) }), /* @__PURE__ */
|
|
333
|
+
}) }), /* @__PURE__ */ m(v, {
|
|
293
334
|
className: "space-y-3",
|
|
294
|
-
children: [/* @__PURE__ */
|
|
335
|
+
children: [/* @__PURE__ */ p("p", {
|
|
295
336
|
className: "text-xs text-text-secondary",
|
|
296
337
|
children: "Archiving a team will remove all members and deactivate associated projects. This action can be reversed by an admin."
|
|
297
|
-
}), /* @__PURE__ */
|
|
338
|
+
}), /* @__PURE__ */ m(g, {
|
|
298
339
|
variant: "destructive",
|
|
299
340
|
size: "sm",
|
|
300
341
|
className: "w-full",
|
|
301
|
-
children: [/* @__PURE__ */
|
|
342
|
+
children: [/* @__PURE__ */ p(c, { className: "h-3 w-3 mr-1" }), "Archive Team"]
|
|
302
343
|
})]
|
|
303
344
|
})]
|
|
304
345
|
})
|
|
@@ -309,6 +350,6 @@ function E() {
|
|
|
309
350
|
});
|
|
310
351
|
}
|
|
311
352
|
//#endregion
|
|
312
|
-
export {
|
|
353
|
+
export { j as TeamsTeamSettingsPagePage };
|
|
313
354
|
|
|
314
355
|
//# sourceMappingURL=TeamsTeamSettingsPagePage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TeamsTeamSettingsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/TeamsTeamSettingsPagePage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n GradientText,\n Input,\n Label,\n Separator,\n Switch,\n Textarea,\n} from '@burdenoff/fe-libs/ui';\nimport {\n Bell,\n Lock,\n Save,\n Settings,\n Shield,\n Trash2,\n UserMinus,\n UserPlus,\n Users,\n} from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function TeamsTeamSettingsPagePage() {\n const { teams, employees } = useCrewFoundryStore();\n const team = teams[0]; // Platform Engineering\n\n const [teamName, setTeamName] = useState(team.name);\n const [description, setDescription] = useState(team.description);\n const [autoApproveJoin, setAutoApproveJoin] = useState(false);\n const [notifyNewMembers, setNotifyNewMembers] = useState(true);\n const [weeklyDigest, setWeeklyDigest] = useState(true);\n const [isPrivate, setIsPrivate] = useState(false);\n\n const teamMembers = employees.filter((e) => team.members.includes(e.id));\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>Team Settings</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">Configure settings for {team.name}</p>\n </div>\n <Button>\n <Save className=\"h-4 w-4 mr-1\" />\n Save Changes\n </Button>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-3\">\n <Card>\n <CardContent className=\"flex items-center gap-3 pt-6\">\n <Users className=\"h-5 w-5 text-status-info-text\" />\n <div>\n <p className=\"text-xs text-text-secondary\">Members</p>\n <p className=\"text-lg font-bold\">{team.memberCount}</p>\n </div>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"flex items-center gap-3 pt-6\">\n <Settings className=\"h-5 w-5 text-action-primary-bg\" />\n <div>\n <p className=\"text-xs text-text-secondary\">Active Projects</p>\n <p className=\"text-lg font-bold\">{team.projectCount}</p>\n </div>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"flex items-center gap-3 pt-6\">\n <Shield className=\"h-5 w-5 text-status-success-text\" />\n <div>\n <p className=\"text-xs text-text-secondary\">Visibility</p>\n <p className=\"text-lg font-bold\">{isPrivate ? 'Private' : 'Public'}</p>\n </div>\n </CardContent>\n </Card>\n </div>\n\n <div className=\"grid gap-6 lg:grid-cols-3\">\n <div className=\"lg:col-span-2 space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">General Settings</CardTitle>\n <CardDescription>Basic team information</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"tsName\">Team Name</Label>\n <Input id=\"tsName\" value={teamName} onChange={(e) => setTeamName(e.target.value)} />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"tsDesc\">Description</Label>\n <Textarea\n id=\"tsDesc\"\n className=\"min-h-[80px]\"\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n />\n </div>\n <div className=\"grid gap-4 sm:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label>Department</Label>\n <Input value={team.department} disabled className=\"bg-bg-sunken\" />\n </div>\n <div className=\"space-y-2\">\n <Label>Team Lead</Label>\n <Input value={team.leadName} disabled className=\"bg-bg-sunken\" />\n </div>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <div className=\"flex items-center justify-between\">\n <div>\n <CardTitle className=\"text-base\">Team Members</CardTitle>\n <CardDescription>{teamMembers.length} active members</CardDescription>\n </div>\n <Button size=\"sm\">\n <UserPlus className=\"h-3 w-3 mr-1\" />\n Add Member\n </Button>\n </div>\n </CardHeader>\n <CardContent className=\"p-0\">\n {teamMembers.map((member, i) => (\n <div\n key={member.id}\n className={`flex items-center justify-between px-6 py-3 ${i < teamMembers.length - 1 ? 'border-b' : ''}`}\n >\n <div className=\"flex items-center gap-3\">\n <div className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-bg-sunken text-xs font-medium\">\n {member.firstName[0]}\n {member.lastName[0]}\n </div>\n <div>\n <div className=\"flex items-center gap-2\">\n <p className=\"text-sm font-medium\">\n {member.firstName} {member.lastName}\n </p>\n {member.id === team.leadId && <Badge className=\"text-[10px]\">Lead</Badge>}\n </div>\n <p className=\"text-xs text-text-secondary\">{member.position}</p>\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <Badge\n variant={member.status === 'active' ? 'secondary' : 'outline'}\n className=\"text-[10px]\"\n >\n {member.status}\n </Badge>\n {member.id !== team.leadId && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 w-7 p-0 text-text-secondary hover:text-status-error-text\"\n >\n <UserMinus className=\"h-3 w-3\" />\n </Button>\n )}\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Permissions & Access</CardTitle>\n <CardDescription>Control team visibility and member permissions</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"space-y-0.5\">\n <p className=\"text-sm font-medium\">Private Team</p>\n <p className=\"text-xs text-text-secondary\">\n Only invited members can see this team\n </p>\n </div>\n <div className=\"flex items-center gap-2\">\n <Lock className=\"h-4 w-4 text-text-secondary\" />\n <Switch checked={isPrivate} onCheckedChange={setIsPrivate} />\n </div>\n </div>\n <Separator />\n <div className=\"flex items-center justify-between\">\n <div className=\"space-y-0.5\">\n <p className=\"text-sm font-medium\">Auto-Approve Join Requests</p>\n <p className=\"text-xs text-text-secondary\">\n Automatically accept when employees request to join\n </p>\n </div>\n <Switch checked={autoApproveJoin} onCheckedChange={setAutoApproveJoin} />\n </div>\n </CardContent>\n </Card>\n </div>\n\n <div className=\"space-y-4\">\n <Card>\n <CardHeader>\n <CardTitle className=\"text-sm\">Notification Preferences</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n <Bell className=\"h-4 w-4 text-text-secondary\" />\n <div>\n <p className=\"text-xs font-medium\">New Member Alerts</p>\n <p className=\"text-[10px] text-text-secondary\">\n Notify when members join or leave\n </p>\n </div>\n </div>\n <Switch checked={notifyNewMembers} onCheckedChange={setNotifyNewMembers} />\n </div>\n <Separator />\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n <Bell className=\"h-4 w-4 text-text-secondary\" />\n <div>\n <p className=\"text-xs font-medium\">Weekly Digest</p>\n <p className=\"text-[10px] text-text-secondary\">Summary of team activity</p>\n </div>\n </div>\n <Switch checked={weeklyDigest} onCheckedChange={setWeeklyDigest} />\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-sm\">Team Info</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-2 text-sm\">\n {[\n { label: 'Created', value: team.createdAt },\n { label: 'Department', value: team.department },\n { label: 'Status', value: team.status },\n { label: 'Projects', value: team.projectCount.toString() },\n { label: 'Members', value: team.memberCount.toString() },\n ].map((item) => (\n <div key={item.label} className=\"flex items-center justify-between\">\n <span className=\"text-text-secondary text-xs\">{item.label}</span>\n <span className=\"text-xs font-medium\">{item.value}</span>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <Card className=\"border-status-error-border/50\">\n <CardHeader>\n <CardTitle className=\"text-sm text-status-error-text\">Danger Zone</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <p className=\"text-xs text-text-secondary\">\n Archiving a team will remove all members and deactivate associated projects. This\n action can be reversed by an admin.\n </p>\n <Button variant=\"destructive\" size=\"sm\" className=\"w-full\">\n <Trash2 className=\"h-3 w-3 mr-1\" />\n Archive Team\n </Button>\n </CardContent>\n </Card>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TeamsTeamSettingsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/TeamsTeamSettingsPagePage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n EmphasisPanel,\n GradientText,\n Input,\n Label,\n NextSteps,\n PagePurpose,\n Separator,\n Switch,\n Textarea,\n} from '@burdenoff/fe-libs/ui';\nimport {\n BarChart3,\n Bell,\n Lock,\n Save,\n Settings,\n Shield,\n Trash2,\n UserMinus,\n UserPlus,\n Users,\n} from 'lucide-react';\nimport { useNavigate } from 'react-router-dom';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function TeamsTeamSettingsPagePage() {\n const navigate = useNavigate();\n const { teams, employees } = useCrewFoundryStore();\n const team = teams[0]; // Platform Engineering\n\n const [teamName, setTeamName] = useState(team.name);\n const [description, setDescription] = useState(team.description);\n const [autoApproveJoin, setAutoApproveJoin] = useState(false);\n const [notifyNewMembers, setNotifyNewMembers] = useState(true);\n const [weeklyDigest, setWeeklyDigest] = useState(true);\n const [isPrivate, setIsPrivate] = useState(false);\n\n const teamMembers = employees.filter((e) => team.members.includes(e.id));\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>Team Settings</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">Configure settings for {team.name}</p>\n <PagePurpose className=\"mt-1\">Configure a team's settings — membership, permissions, and preferences that control how the team works in CrewFoundry.</PagePurpose>\n </div>\n <Button>\n <Save className=\"h-4 w-4 mr-1\" />\n Save Changes\n </Button>\n </div>\n\n <NextSteps\n storageKey=\"crewfoundry-team-settings\"\n steps={[\n {\n id: 'members',\n label: 'Manage members',\n description: 'Add or remove people and adjust their roles below.',\n icon: <Users className=\"h-4 w-4\" />,\n onClick: () => navigate('../../teams/team-directory-page'),\n },\n {\n id: 'analytics',\n label: 'Review team analytics',\n description: 'See how this team is performing before you change settings.',\n icon: <BarChart3 className=\"h-4 w-4\" />,\n onClick: () => navigate('../../teams/team-analytics-page'),\n },\n {\n id: 'detail',\n label: 'Open the team overview',\n description: 'See members and projects at a glance.',\n icon: <Settings className=\"h-4 w-4\" />,\n onClick: () => navigate('../../teams/team-detail-page'),\n },\n ]}\n />\n\n <div className=\"grid gap-4 md:grid-cols-3\">\n <Card>\n <CardContent className=\"flex items-center gap-3 pt-6\">\n <Users className=\"h-5 w-5 text-status-info-text\" />\n <div>\n <p className=\"text-xs text-text-secondary\">Members</p>\n <p className=\"text-lg font-bold\">{team.memberCount}</p>\n </div>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"flex items-center gap-3 pt-6\">\n <Settings className=\"h-5 w-5 text-action-primary-bg\" />\n <div>\n <p className=\"text-xs text-text-secondary\">Active Projects</p>\n <p className=\"text-lg font-bold\">{team.projectCount}</p>\n </div>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"flex items-center gap-3 pt-6\">\n <Shield className=\"h-5 w-5 text-status-success-text\" />\n <div>\n <p className=\"text-xs text-text-secondary\">Visibility</p>\n <p className=\"text-lg font-bold\">{isPrivate ? 'Private' : 'Public'}</p>\n </div>\n </CardContent>\n </Card>\n </div>\n\n <div className=\"grid gap-6 lg:grid-cols-3\">\n <div className=\"lg:col-span-2 space-y-6\">\n <EmphasisPanel>\n <div className=\"text-base font-semibold\">General Settings</div>\n <p className=\"mb-4 text-sm text-text-secondary\">Basic team information</p>\n <div className=\"space-y-4\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"tsName\">Team Name</Label>\n <Input id=\"tsName\" value={teamName} onChange={(e) => setTeamName(e.target.value)} />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"tsDesc\">Description</Label>\n <Textarea\n id=\"tsDesc\"\n className=\"min-h-[80px]\"\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n />\n </div>\n <div className=\"grid gap-4 sm:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label>Department</Label>\n <Input value={team.department} disabled className=\"bg-bg-sunken\" />\n </div>\n <div className=\"space-y-2\">\n <Label>Team Lead</Label>\n <Input value={team.leadName} disabled className=\"bg-bg-sunken\" />\n </div>\n </div>\n </div>\n </EmphasisPanel>\n\n <Card>\n <CardHeader>\n <div className=\"flex items-center justify-between\">\n <div>\n <CardTitle className=\"text-base\">Team Members</CardTitle>\n <CardDescription>{teamMembers.length} active members</CardDescription>\n </div>\n <Button size=\"sm\">\n <UserPlus className=\"h-3 w-3 mr-1\" />\n Add Member\n </Button>\n </div>\n </CardHeader>\n <CardContent className=\"p-0\">\n {teamMembers.map((member, i) => (\n <div\n key={member.id}\n className={`flex items-center justify-between px-6 py-3 ${i < teamMembers.length - 1 ? 'border-b' : ''}`}\n >\n <div className=\"flex items-center gap-3\">\n <div className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-bg-sunken text-xs font-medium\">\n {member.firstName[0]}\n {member.lastName[0]}\n </div>\n <div>\n <div className=\"flex items-center gap-2\">\n <p className=\"text-sm font-medium\">\n {member.firstName} {member.lastName}\n </p>\n {member.id === team.leadId && <Badge className=\"text-[10px]\">Lead</Badge>}\n </div>\n <p className=\"text-xs text-text-secondary\">{member.position}</p>\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <Badge\n variant={member.status === 'active' ? 'secondary' : 'outline'}\n className=\"text-[10px]\"\n >\n {member.status}\n </Badge>\n {member.id !== team.leadId && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-7 w-7 p-0 text-text-secondary hover:text-status-error-text\"\n >\n <UserMinus className=\"h-3 w-3\" />\n </Button>\n )}\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Permissions & Access</CardTitle>\n <CardDescription>Control team visibility and member permissions</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"space-y-0.5\">\n <p className=\"text-sm font-medium\">Private Team</p>\n <p className=\"text-xs text-text-secondary\">\n Only invited members can see this team\n </p>\n </div>\n <div className=\"flex items-center gap-2\">\n <Lock className=\"h-4 w-4 text-text-secondary\" />\n <Switch checked={isPrivate} onCheckedChange={setIsPrivate} />\n </div>\n </div>\n <Separator />\n <div className=\"flex items-center justify-between\">\n <div className=\"space-y-0.5\">\n <p className=\"text-sm font-medium\">Auto-Approve Join Requests</p>\n <p className=\"text-xs text-text-secondary\">\n Automatically accept when employees request to join\n </p>\n </div>\n <Switch checked={autoApproveJoin} onCheckedChange={setAutoApproveJoin} />\n </div>\n </CardContent>\n </Card>\n </div>\n\n <div className=\"space-y-4\">\n <Card>\n <CardHeader>\n <CardTitle className=\"text-sm\">Notification Preferences</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n <Bell className=\"h-4 w-4 text-text-secondary\" />\n <div>\n <p className=\"text-xs font-medium\">New Member Alerts</p>\n <p className=\"text-[10px] text-text-secondary\">\n Notify when members join or leave\n </p>\n </div>\n </div>\n <Switch checked={notifyNewMembers} onCheckedChange={setNotifyNewMembers} />\n </div>\n <Separator />\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n <Bell className=\"h-4 w-4 text-text-secondary\" />\n <div>\n <p className=\"text-xs font-medium\">Weekly Digest</p>\n <p className=\"text-[10px] text-text-secondary\">Summary of team activity</p>\n </div>\n </div>\n <Switch checked={weeklyDigest} onCheckedChange={setWeeklyDigest} />\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-sm\">Team Info</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-2 text-sm\">\n {[\n { label: 'Created', value: team.createdAt },\n { label: 'Department', value: team.department },\n { label: 'Status', value: team.status },\n { label: 'Projects', value: team.projectCount.toString() },\n { label: 'Members', value: team.memberCount.toString() },\n ].map((item) => (\n <div key={item.label} className=\"flex items-center justify-between\">\n <span className=\"text-text-secondary text-xs\">{item.label}</span>\n <span className=\"text-xs font-medium\">{item.value}</span>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <Card className=\"border-status-error-border/50\">\n <CardHeader>\n <CardTitle className=\"text-sm text-status-error-text\">Danger Zone</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <p className=\"text-xs text-text-secondary\">\n Archiving a team will remove all members and deactivate associated projects. This\n action can be reversed by an admin.\n </p>\n <Button variant=\"destructive\" size=\"sm\" className=\"w-full\">\n <Trash2 className=\"h-3 w-3 mr-1\" />\n Archive Team\n </Button>\n </CardContent>\n </Card>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|