@burdenoff/microfe-crewfoundry 2026.704.3 → 2026.704.5

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