@burdenoff/microfe-crewfoundry 2026.608.1 → 2026.625.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.
Files changed (131) hide show
  1. package/dist/crewfoundry/pages/AdminAdminPagePage.js +94 -78
  2. package/dist/crewfoundry/pages/AdminAdminPagePage.js.map +1 -1
  3. package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js +112 -96
  4. package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
  5. package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js +101 -85
  6. package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js.map +1 -1
  7. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js +131 -115
  8. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js.map +1 -1
  9. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +116 -100
  10. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -1
  11. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js +15 -15
  12. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -1
  13. package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js +63 -51
  14. package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js.map +1 -1
  15. package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js +16 -16
  16. package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js.map +1 -1
  17. package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js +26 -26
  18. package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js.map +1 -1
  19. package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js +28 -28
  20. package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js.map +1 -1
  21. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js +10 -10
  22. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js.map +1 -1
  23. package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js +71 -59
  24. package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js.map +1 -1
  25. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +59 -47
  26. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -1
  27. package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js +77 -61
  28. package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js.map +1 -1
  29. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js +40 -40
  30. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js.map +1 -1
  31. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +13 -13
  32. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -1
  33. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js +102 -86
  34. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js.map +1 -1
  35. package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +173 -139
  36. package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -1
  37. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +59 -59
  38. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -1
  39. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +113 -97
  40. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -1
  41. package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js +45 -45
  42. package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js.map +1 -1
  43. package/dist/crewfoundry/pages/HiringApplicationsPagePage.js +85 -69
  44. package/dist/crewfoundry/pages/HiringApplicationsPagePage.js.map +1 -1
  45. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +23 -23
  46. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
  47. package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +40 -40
  48. package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -1
  49. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +59 -47
  50. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -1
  51. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +52 -48
  52. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -1
  53. package/dist/crewfoundry/pages/HiringJobsPagePage.js +31 -26
  54. package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -1
  55. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +61 -49
  56. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -1
  57. package/dist/crewfoundry/pages/HrEmployeesPagePage.js +83 -67
  58. package/dist/crewfoundry/pages/HrEmployeesPagePage.js.map +1 -1
  59. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +90 -74
  60. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -1
  61. package/dist/crewfoundry/pages/HrPayrollPagePage.js +90 -74
  62. package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -1
  63. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +83 -67
  64. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -1
  65. package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js +54 -42
  66. package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js.map +1 -1
  67. package/dist/crewfoundry/pages/LearningCertificatesPagePage.js +16 -16
  68. package/dist/crewfoundry/pages/LearningCertificatesPagePage.js.map +1 -1
  69. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +39 -35
  70. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -1
  71. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js +24 -24
  72. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js.map +1 -1
  73. package/dist/crewfoundry/pages/LearningCoursesPagePage.js +14 -14
  74. package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -1
  75. package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js +81 -65
  76. package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js.map +1 -1
  77. package/dist/crewfoundry/pages/LearningLearningPagePage.js +73 -57
  78. package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -1
  79. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +28 -28
  80. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -1
  81. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +12 -12
  82. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -1
  83. package/dist/crewfoundry/pages/LearningMyLearningPagePage.js +75 -59
  84. package/dist/crewfoundry/pages/LearningMyLearningPagePage.js.map +1 -1
  85. package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js +57 -45
  86. package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js.map +1 -1
  87. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js +71 -59
  88. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js.map +1 -1
  89. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js +48 -48
  90. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js.map +1 -1
  91. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js +44 -43
  92. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js.map +1 -1
  93. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js +58 -46
  94. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -1
  95. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js +16 -16
  96. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js.map +1 -1
  97. package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js +23 -23
  98. package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js.map +1 -1
  99. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +9 -9
  100. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -1
  101. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js +43 -39
  102. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js.map +1 -1
  103. package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js +31 -27
  104. package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js.map +1 -1
  105. package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js +59 -47
  106. package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js.map +1 -1
  107. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +13 -13
  108. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -1
  109. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js +66 -50
  110. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -1
  111. package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js +18 -18
  112. package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js.map +1 -1
  113. package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js +74 -62
  114. package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js.map +1 -1
  115. package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js +21 -21
  116. package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js.map +1 -1
  117. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js +47 -43
  118. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -1
  119. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +20 -20
  120. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -1
  121. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js +58 -46
  122. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -1
  123. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js +38 -34
  124. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js.map +1 -1
  125. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js +14 -14
  126. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js.map +1 -1
  127. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +67 -67
  128. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -1
  129. package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +16 -16
  130. package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -1
  131. package/package.json +2 -2
@@ -1,66 +1,78 @@
1
1
  import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
2
  import { Star as t, TrendingUp as n, Users as r } from "lucide-react";
3
3
  import { jsx as i, jsxs as a } from "react/jsx-runtime";
4
- import { Badge as o, Card as s, CardContent as c, CardHeader as l, CardTitle as u } from "@burdenoff/fe-libs/ui";
4
+ import { Badge as o, Card as s, CardContent as c, CardHeader as l, CardTitle as u, GlassCard as d, GradientText as f } from "@burdenoff/fe-libs/ui";
5
5
  //#region src/crewfoundry/pages/TeamsTeamAnalyticsPagePage.tsx
6
- function d() {
7
- let { teams: d, employees: f, projects: p } = e(), m = d.map((e) => {
8
- let t = f.filter((t) => e.members.includes(t.id)), n = t.length > 0 ? (t.reduce((e, t) => e + t.performanceScore, 0) / t.length).toFixed(1) : "0", r = p.filter((t) => t.teamId === e.id), i = r.filter((e) => e.status === "active").length;
6
+ function p() {
7
+ let { teams: p, employees: m, projects: h } = e(), g = p.map((e) => {
8
+ let t = m.filter((t) => e.members.includes(t.id)), n = t.length > 0 ? (t.reduce((e, t) => e + t.performanceScore, 0) / t.length).toFixed(1) : "0", r = h.filter((t) => t.teamId === e.id), i = r.filter((e) => e.status === "active").length;
9
9
  return {
10
10
  ...e,
11
11
  avgPerf: n,
12
12
  activeProjects: i,
13
13
  totalProjects: r.length
14
14
  };
15
- }), h = Math.max(...d.map((e) => e.memberCount));
15
+ }), _ = Math.max(...p.map((e) => e.memberCount));
16
16
  return /* @__PURE__ */ a("div", {
17
17
  className: "space-y-6 p-6",
18
18
  children: [
19
19
  /* @__PURE__ */ a("div", { children: [/* @__PURE__ */ i("h1", {
20
20
  className: "text-2xl font-semibold",
21
- children: "Team Analytics"
21
+ children: /* @__PURE__ */ i(f, { children: "Team Analytics" })
22
22
  }), /* @__PURE__ */ i("p", {
23
- className: "text-sm text-muted-foreground",
23
+ className: "text-sm text-text-secondary",
24
24
  children: "Performance and productivity metrics across teams"
25
25
  })] }),
26
26
  /* @__PURE__ */ a("div", {
27
27
  className: "grid gap-4 md:grid-cols-3",
28
28
  children: [
29
- /* @__PURE__ */ a(s, { children: [/* @__PURE__ */ a(l, {
30
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
31
- children: [/* @__PURE__ */ i(u, {
32
- className: "text-sm font-medium",
33
- children: "Total Teams"
34
- }), /* @__PURE__ */ i(r, { className: "h-4 w-4 text-muted-foreground" })]
35
- }), /* @__PURE__ */ i(c, { children: /* @__PURE__ */ i("div", {
36
- className: "text-2xl font-bold",
37
- children: d.length
38
- }) })] }),
39
- /* @__PURE__ */ a(s, { children: [/* @__PURE__ */ a(l, {
40
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
41
- children: [/* @__PURE__ */ i(u, {
42
- className: "text-sm font-medium",
43
- children: "Total Members"
44
- }), /* @__PURE__ */ i(r, { className: "h-4 w-4 text-muted-foreground" })]
45
- }), /* @__PURE__ */ i(c, { children: /* @__PURE__ */ i("div", {
46
- className: "text-2xl font-bold",
47
- children: d.reduce((e, t) => e + t.memberCount, 0)
48
- }) })] }),
49
- /* @__PURE__ */ a(s, { children: [/* @__PURE__ */ a(l, {
50
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
51
- children: [/* @__PURE__ */ i(u, {
52
- className: "text-sm font-medium",
53
- children: "Active Projects"
54
- }), /* @__PURE__ */ i(n, { className: "h-4 w-4 text-muted-foreground" })]
55
- }), /* @__PURE__ */ i(c, { children: /* @__PURE__ */ i("div", {
56
- className: "text-2xl font-bold",
57
- children: m.reduce((e, t) => e + t.activeProjects, 0)
58
- }) })] })
29
+ /* @__PURE__ */ a(d, {
30
+ treatment: "metric",
31
+ className: "border-border-seam",
32
+ children: [/* @__PURE__ */ a(l, {
33
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
34
+ children: [/* @__PURE__ */ i(u, {
35
+ className: "text-sm font-medium",
36
+ children: "Total Teams"
37
+ }), /* @__PURE__ */ i(r, { className: "h-4 w-4 text-text-secondary" })]
38
+ }), /* @__PURE__ */ i(c, { children: /* @__PURE__ */ i("div", {
39
+ className: "text-2xl font-bold tabular-nums",
40
+ children: p.length
41
+ }) })]
42
+ }),
43
+ /* @__PURE__ */ a(d, {
44
+ treatment: "metric",
45
+ className: "border-border-seam",
46
+ children: [/* @__PURE__ */ a(l, {
47
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
48
+ children: [/* @__PURE__ */ i(u, {
49
+ className: "text-sm font-medium",
50
+ children: "Total Members"
51
+ }), /* @__PURE__ */ i(r, { className: "h-4 w-4 text-text-secondary" })]
52
+ }), /* @__PURE__ */ i(c, { children: /* @__PURE__ */ i("div", {
53
+ className: "text-2xl font-bold tabular-nums",
54
+ children: p.reduce((e, t) => e + t.memberCount, 0)
55
+ }) })]
56
+ }),
57
+ /* @__PURE__ */ a(d, {
58
+ treatment: "metric",
59
+ className: "border-border-seam",
60
+ children: [/* @__PURE__ */ a(l, {
61
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
62
+ children: [/* @__PURE__ */ i(u, {
63
+ className: "text-sm font-medium",
64
+ children: "Active Projects"
65
+ }), /* @__PURE__ */ i(n, { className: "h-4 w-4 text-text-secondary" })]
66
+ }), /* @__PURE__ */ i(c, { children: /* @__PURE__ */ i("div", {
67
+ className: "text-2xl font-bold tabular-nums",
68
+ children: g.reduce((e, t) => e + t.activeProjects, 0)
69
+ }) })]
70
+ })
59
71
  ]
60
72
  }),
61
73
  /* @__PURE__ */ a(s, { children: [/* @__PURE__ */ i(l, { children: /* @__PURE__ */ i(u, { children: "Team Size Comparison" }) }), /* @__PURE__ */ i(c, {
62
74
  className: "space-y-3",
63
- children: d.sort((e, t) => t.memberCount - e.memberCount).map((e) => /* @__PURE__ */ a("div", {
75
+ children: p.sort((e, t) => t.memberCount - e.memberCount).map((e) => /* @__PURE__ */ a("div", {
64
76
  className: "flex items-center gap-3",
65
77
  children: [
66
78
  /* @__PURE__ */ i("span", {
@@ -68,10 +80,10 @@ function d() {
68
80
  children: e.name
69
81
  }),
70
82
  /* @__PURE__ */ i("div", {
71
- className: "flex-1 h-4 bg-muted rounded overflow-hidden",
83
+ className: "flex-1 h-4 bg-bg-sunken rounded overflow-hidden",
72
84
  children: /* @__PURE__ */ i("div", {
73
- className: "h-4 bg-primary rounded",
74
- style: { width: `${Math.round(e.memberCount / h * 100)}%` }
85
+ className: "h-4 bg-action-primary-bg rounded",
86
+ style: { width: `${Math.round(e.memberCount / _ * 100)}%` }
75
87
  })
76
88
  }),
77
89
  /* @__PURE__ */ i("span", {
@@ -82,7 +94,7 @@ function d() {
82
94
  }, e.id))
83
95
  })] }),
84
96
  /* @__PURE__ */ a(s, { children: [/* @__PURE__ */ i(l, { children: /* @__PURE__ */ i(u, { children: "Team Performance Overview" }) }), /* @__PURE__ */ a(c, { children: [/* @__PURE__ */ a("div", {
85
- className: "grid grid-cols-5 gap-2 text-xs font-medium text-muted-foreground border-b pb-2 mb-2",
97
+ className: "grid grid-cols-5 gap-2 text-xs font-medium text-text-secondary border-b pb-2 mb-2",
86
98
  children: [
87
99
  /* @__PURE__ */ i("span", { children: "Team" }),
88
100
  /* @__PURE__ */ i("span", { children: "Department" }),
@@ -99,7 +111,7 @@ function d() {
99
111
  children: "Status"
100
112
  })
101
113
  ]
102
- }), m.map((e) => /* @__PURE__ */ a("div", {
114
+ }), g.map((e) => /* @__PURE__ */ a("div", {
103
115
  className: "grid grid-cols-5 gap-2 py-2 border-b last:border-0 text-sm",
104
116
  children: [
105
117
  /* @__PURE__ */ i("span", {
@@ -107,12 +119,12 @@ function d() {
107
119
  children: e.name
108
120
  }),
109
121
  /* @__PURE__ */ i("span", {
110
- className: "text-muted-foreground",
122
+ className: "text-text-secondary",
111
123
  children: e.department
112
124
  }),
113
125
  /* @__PURE__ */ a("div", {
114
126
  className: "flex items-center justify-center gap-1",
115
- children: [/* @__PURE__ */ i(t, { className: "h-3 w-3 text-yellow-500" }), e.avgPerf]
127
+ children: [/* @__PURE__ */ i(t, { className: "h-3 w-3 text-status-warning-text" }), e.avgPerf]
116
128
  }),
117
129
  /* @__PURE__ */ a("span", {
118
130
  className: "text-right",
@@ -136,6 +148,6 @@ function d() {
136
148
  });
137
149
  }
138
150
  //#endregion
139
- export { d as TeamsTeamAnalyticsPagePage };
151
+ export { p as TeamsTeamAnalyticsPagePage };
140
152
 
141
153
  //# sourceMappingURL=TeamsTeamAnalyticsPagePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TeamsTeamAnalyticsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/TeamsTeamAnalyticsPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@burdenoff/fe-libs/ui';\nimport { BarChart3, Star, TrendingUp, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function TeamsTeamAnalyticsPagePage() {\n const { teams, employees, projects } = useCrewFoundryStore();\n\n const teamMetrics = teams.map((t) => {\n const members = employees.filter((e) => t.members.includes(e.id));\n const avgPerf =\n members.length > 0\n ? (members.reduce((s, m) => s + m.performanceScore, 0) / members.length).toFixed(1)\n : '0';\n const teamProjects = projects.filter((p) => p.teamId === t.id);\n const activeProj = teamProjects.filter((p) => p.status === 'active').length;\n return { ...t, avgPerf, activeProjects: activeProj, totalProjects: teamProjects.length };\n });\n\n const maxMembers = Math.max(...teams.map((t) => t.memberCount));\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Team Analytics</h1>\n <p className=\"text-sm text-muted-foreground\">\n Performance and productivity metrics across teams\n </p>\n </div>\n <div className=\"grid gap-4 md:grid-cols-3\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Total Teams</CardTitle>\n <Users className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{teams.length}</div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Total Members</CardTitle>\n <Users className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{teams.reduce((s, t) => s + t.memberCount, 0)}</div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Active Projects</CardTitle>\n <TrendingUp className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">\n {teamMetrics.reduce((s, t) => s + t.activeProjects, 0)}\n </div>\n </CardContent>\n </Card>\n </div>\n <Card>\n <CardHeader>\n <CardTitle>Team Size Comparison</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {teams\n .sort((a, b) => b.memberCount - a.memberCount)\n .map((t) => (\n <div key={t.id} className=\"flex items-center gap-3\">\n <span className=\"w-40 text-sm font-medium truncate\">{t.name}</span>\n <div className=\"flex-1 h-4 bg-muted rounded overflow-hidden\">\n <div\n className=\"h-4 bg-primary rounded\"\n style={{ width: `${Math.round((t.memberCount / maxMembers) * 100)}%` }}\n />\n </div>\n <span className=\"text-sm font-medium w-8 text-right\">{t.memberCount}</span>\n </div>\n ))}\n </CardContent>\n </Card>\n <Card>\n <CardHeader>\n <CardTitle>Team Performance Overview</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-5 gap-2 text-xs font-medium text-muted-foreground border-b pb-2 mb-2\">\n <span>Team</span>\n <span>Department</span>\n <span className=\"text-center\">Avg Performance</span>\n <span className=\"text-right\">Active Projects</span>\n <span className=\"text-center\">Status</span>\n </div>\n {teamMetrics.map((t) => (\n <div key={t.id} className=\"grid grid-cols-5 gap-2 py-2 border-b last:border-0 text-sm\">\n <span className=\"font-medium\">{t.name}</span>\n <span className=\"text-muted-foreground\">{t.department}</span>\n <div className=\"flex items-center justify-center gap-1\">\n <Star className=\"h-3 w-3 text-yellow-500\" />\n {t.avgPerf}\n </div>\n <span className=\"text-right\">\n {t.activeProjects}/{t.totalProjects}\n </span>\n <div className=\"text-center\">\n <Badge\n variant={t.status === 'active' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {t.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TeamsTeamAnalyticsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/TeamsTeamAnalyticsPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n GlassCard,\n GradientText,\n} from '@burdenoff/fe-libs/ui';\nimport { BarChart3, Star, TrendingUp, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function TeamsTeamAnalyticsPagePage() {\n const { teams, employees, projects } = useCrewFoundryStore();\n\n const teamMetrics = teams.map((t) => {\n const members = employees.filter((e) => t.members.includes(e.id));\n const avgPerf =\n members.length > 0\n ? (members.reduce((s, m) => s + m.performanceScore, 0) / members.length).toFixed(1)\n : '0';\n const teamProjects = projects.filter((p) => p.teamId === t.id);\n const activeProj = teamProjects.filter((p) => p.status === 'active').length;\n return { ...t, avgPerf, activeProjects: activeProj, totalProjects: teamProjects.length };\n });\n\n const maxMembers = Math.max(...teams.map((t) => t.memberCount));\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>Team Analytics</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">\n Performance and productivity metrics across teams\n </p>\n </div>\n <div className=\"grid gap-4 md:grid-cols-3\">\n <GlassCard treatment=\"metric\" className=\"border-border-seam\">\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Total Teams</CardTitle>\n <Users className=\"h-4 w-4 text-text-secondary\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold tabular-nums\">{teams.length}</div>\n </CardContent>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"border-border-seam\">\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Total Members</CardTitle>\n <Users className=\"h-4 w-4 text-text-secondary\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold tabular-nums\">\n {teams.reduce((s, t) => s + t.memberCount, 0)}\n </div>\n </CardContent>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"border-border-seam\">\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Active Projects</CardTitle>\n <TrendingUp className=\"h-4 w-4 text-text-secondary\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold tabular-nums\">\n {teamMetrics.reduce((s, t) => s + t.activeProjects, 0)}\n </div>\n </CardContent>\n </GlassCard>\n </div>\n <Card>\n <CardHeader>\n <CardTitle>Team Size Comparison</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {teams\n .sort((a, b) => b.memberCount - a.memberCount)\n .map((t) => (\n <div key={t.id} className=\"flex items-center gap-3\">\n <span className=\"w-40 text-sm font-medium truncate\">{t.name}</span>\n <div className=\"flex-1 h-4 bg-bg-sunken rounded overflow-hidden\">\n <div\n className=\"h-4 bg-action-primary-bg rounded\"\n style={{ width: `${Math.round((t.memberCount / maxMembers) * 100)}%` }}\n />\n </div>\n <span className=\"text-sm font-medium w-8 text-right\">{t.memberCount}</span>\n </div>\n ))}\n </CardContent>\n </Card>\n <Card>\n <CardHeader>\n <CardTitle>Team Performance Overview</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-5 gap-2 text-xs font-medium text-text-secondary border-b pb-2 mb-2\">\n <span>Team</span>\n <span>Department</span>\n <span className=\"text-center\">Avg Performance</span>\n <span className=\"text-right\">Active Projects</span>\n <span className=\"text-center\">Status</span>\n </div>\n {teamMetrics.map((t) => (\n <div key={t.id} className=\"grid grid-cols-5 gap-2 py-2 border-b last:border-0 text-sm\">\n <span className=\"font-medium\">{t.name}</span>\n <span className=\"text-text-secondary\">{t.department}</span>\n <div className=\"flex items-center justify-center gap-1\">\n <Star className=\"h-3 w-3 text-status-warning-text\" />\n {t.avgPerf}\n </div>\n <span className=\"text-right\">\n {t.activeProjects}/{t.totalProjects}\n </span>\n <div className=\"text-center\">\n <Badge\n variant={t.status === 'active' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {t.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,15 +1,19 @@
1
1
  import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
2
  import { Calendar as t, FolderKanban as n, Star as r, Users as i } from "lucide-react";
3
3
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
4
- import { Badge as s, Card as c, CardContent as l, CardHeader as u, CardTitle as d } from "@burdenoff/fe-libs/ui";
4
+ import { Badge as s, Card as c, CardContent as l, CardHeader as u, CardTitle as d, GradientText as f, IllustratedEmptyState as p } from "@burdenoff/fe-libs/ui";
5
5
  //#region src/crewfoundry/pages/TeamsTeamDetailPagePage.tsx
6
- function f() {
7
- let { teams: f, employees: p, projects: m } = e(), h = f[0];
8
- if (!h) return /* @__PURE__ */ a("div", {
9
- className: "p-6 text-muted-foreground",
10
- children: "No team found."
6
+ function m() {
7
+ let { teams: m, employees: h, projects: g } = e(), _ = m[0];
8
+ if (!_) return /* @__PURE__ */ a("div", {
9
+ className: "p-6",
10
+ children: /* @__PURE__ */ a(p, {
11
+ illustration: "empty-search",
12
+ title: "Team not found",
13
+ description: "This team is no longer available."
14
+ })
11
15
  });
12
- let g = p.filter((e) => h.members.includes(e.id)), _ = m.filter((e) => e.teamId === h.id);
16
+ let v = h.filter((e) => _.members.includes(e.id)), y = g.filter((e) => e.teamId === _.id);
13
17
  return /* @__PURE__ */ o("div", {
14
18
  className: "space-y-6 p-6 max-w-4xl",
15
19
  children: [
@@ -17,13 +21,13 @@ function f() {
17
21
  className: "flex items-center justify-between",
18
22
  children: [/* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h1", {
19
23
  className: "text-2xl font-semibold",
20
- children: h.name
24
+ children: /* @__PURE__ */ a(f, { children: _.name })
21
25
  }), /* @__PURE__ */ a("p", {
22
- className: "text-sm text-muted-foreground",
23
- children: h.description
26
+ className: "text-sm text-text-secondary",
27
+ children: _.description
24
28
  })] }), /* @__PURE__ */ a(s, {
25
- variant: h.status === "active" ? "default" : "secondary",
26
- children: h.status
29
+ variant: _.status === "active" ? "default" : "secondary",
30
+ children: _.status
27
31
  })]
28
32
  }),
29
33
  /* @__PURE__ */ o("div", {
@@ -32,13 +36,13 @@ function f() {
32
36
  /* @__PURE__ */ a(c, { children: /* @__PURE__ */ o(l, {
33
37
  className: "p-4 text-center",
34
38
  children: [
35
- /* @__PURE__ */ a(i, { className: "h-5 w-5 mx-auto text-muted-foreground mb-1" }),
39
+ /* @__PURE__ */ a(i, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
36
40
  /* @__PURE__ */ a("p", {
37
41
  className: "text-lg font-bold",
38
- children: h.memberCount
42
+ children: _.memberCount
39
43
  }),
40
44
  /* @__PURE__ */ a("p", {
41
- className: "text-xs text-muted-foreground",
45
+ className: "text-xs text-text-secondary",
42
46
  children: "Members"
43
47
  })
44
48
  ]
@@ -46,13 +50,13 @@ function f() {
46
50
  /* @__PURE__ */ a(c, { children: /* @__PURE__ */ o(l, {
47
51
  className: "p-4 text-center",
48
52
  children: [
49
- /* @__PURE__ */ a(n, { className: "h-5 w-5 mx-auto text-muted-foreground mb-1" }),
53
+ /* @__PURE__ */ a(n, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
50
54
  /* @__PURE__ */ a("p", {
51
55
  className: "text-lg font-bold",
52
- children: h.projectCount
56
+ children: _.projectCount
53
57
  }),
54
58
  /* @__PURE__ */ a("p", {
55
- className: "text-xs text-muted-foreground",
59
+ className: "text-xs text-text-secondary",
56
60
  children: "Projects"
57
61
  })
58
62
  ]
@@ -60,13 +64,13 @@ function f() {
60
64
  /* @__PURE__ */ a(c, { children: /* @__PURE__ */ o(l, {
61
65
  className: "p-4 text-center",
62
66
  children: [
63
- /* @__PURE__ */ a(r, { className: "h-5 w-5 mx-auto text-yellow-500 mb-1" }),
67
+ /* @__PURE__ */ a(r, { className: "h-5 w-5 mx-auto text-status-warning-text mb-1" }),
64
68
  /* @__PURE__ */ a("p", {
65
69
  className: "text-lg font-bold",
66
- children: h.leadName
70
+ children: _.leadName
67
71
  }),
68
72
  /* @__PURE__ */ a("p", {
69
- className: "text-xs text-muted-foreground",
73
+ className: "text-xs text-text-secondary",
70
74
  children: "Lead"
71
75
  })
72
76
  ]
@@ -74,13 +78,13 @@ function f() {
74
78
  /* @__PURE__ */ a(c, { children: /* @__PURE__ */ o(l, {
75
79
  className: "p-4 text-center",
76
80
  children: [
77
- /* @__PURE__ */ a(t, { className: "h-5 w-5 mx-auto text-muted-foreground mb-1" }),
81
+ /* @__PURE__ */ a(t, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
78
82
  /* @__PURE__ */ a("p", {
79
83
  className: "text-lg font-bold",
80
- children: h.createdAt
84
+ children: _.createdAt
81
85
  }),
82
86
  /* @__PURE__ */ a("p", {
83
- className: "text-xs text-muted-foreground",
87
+ className: "text-xs text-text-secondary",
84
88
  children: "Created"
85
89
  })
86
90
  ]
@@ -88,7 +92,7 @@ function f() {
88
92
  ]
89
93
  }),
90
94
  /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a(u, { children: /* @__PURE__ */ a(d, { children: "Team Members" }) }), /* @__PURE__ */ o(l, { children: [/* @__PURE__ */ o("div", {
91
- className: "grid grid-cols-4 gap-2 text-xs font-medium text-muted-foreground border-b pb-2 mb-2",
95
+ className: "grid grid-cols-4 gap-2 text-xs font-medium text-text-secondary border-b pb-2 mb-2",
92
96
  children: [
93
97
  /* @__PURE__ */ a("span", { children: "Name" }),
94
98
  /* @__PURE__ */ a("span", { children: "Position" }),
@@ -101,7 +105,7 @@ function f() {
101
105
  children: "Status"
102
106
  })
103
107
  ]
104
- }), g.map((e) => /* @__PURE__ */ o("div", {
108
+ }), v.map((e) => /* @__PURE__ */ o("div", {
105
109
  className: "grid grid-cols-4 gap-2 py-2 border-b last:border-0 text-sm",
106
110
  children: [
107
111
  /* @__PURE__ */ o("span", {
@@ -113,12 +117,12 @@ function f() {
113
117
  ]
114
118
  }),
115
119
  /* @__PURE__ */ a("span", {
116
- className: "text-muted-foreground",
120
+ className: "text-text-secondary",
117
121
  children: e.position
118
122
  }),
119
123
  /* @__PURE__ */ o("div", {
120
124
  className: "text-center flex items-center justify-center gap-1",
121
- children: [/* @__PURE__ */ a(r, { className: "h-3 w-3 text-yellow-500" }), e.performanceScore]
125
+ children: [/* @__PURE__ */ a(r, { className: "h-3 w-3 text-status-warning-text" }), e.performanceScore]
122
126
  }),
123
127
  /* @__PURE__ */ a("div", {
124
128
  className: "text-center",
@@ -130,15 +134,15 @@ function f() {
130
134
  })
131
135
  ]
132
136
  }, e.id))] })] }),
133
- _.length > 0 && /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a(u, { children: /* @__PURE__ */ a(d, { children: "Team Projects" }) }), /* @__PURE__ */ a(l, {
137
+ y.length > 0 && /* @__PURE__ */ o(c, { children: [/* @__PURE__ */ a(u, { children: /* @__PURE__ */ a(d, { children: "Team Projects" }) }), /* @__PURE__ */ a(l, {
134
138
  className: "space-y-3",
135
- children: _.map((e) => /* @__PURE__ */ o("div", {
139
+ children: y.map((e) => /* @__PURE__ */ o("div", {
136
140
  className: "flex items-center justify-between rounded border p-3",
137
141
  children: [/* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("p", {
138
142
  className: "text-sm font-medium",
139
143
  children: e.name
140
144
  }), /* @__PURE__ */ o("p", {
141
- className: "text-xs text-muted-foreground",
145
+ className: "text-xs text-text-secondary",
142
146
  children: [
143
147
  e.startDate,
144
148
  " — ",
@@ -148,9 +152,9 @@ function f() {
148
152
  className: "flex items-center gap-2",
149
153
  children: [
150
154
  /* @__PURE__ */ a("div", {
151
- className: "w-24 h-2 bg-muted rounded overflow-hidden",
155
+ className: "w-24 h-2 bg-bg-sunken rounded overflow-hidden",
152
156
  children: /* @__PURE__ */ a("div", {
153
- className: "h-2 bg-primary rounded",
157
+ className: "h-2 bg-action-primary-bg rounded",
154
158
  style: { width: `${e.progress}%` }
155
159
  })
156
160
  }),
@@ -171,6 +175,6 @@ function f() {
171
175
  });
172
176
  }
173
177
  //#endregion
174
- export { f as TeamsTeamDetailPagePage };
178
+ export { m as TeamsTeamDetailPagePage };
175
179
 
176
180
  //# sourceMappingURL=TeamsTeamDetailPagePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TeamsTeamDetailPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/TeamsTeamDetailPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@burdenoff/fe-libs/ui';\nimport { Calendar, FolderKanban, Star, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function TeamsTeamDetailPagePage() {\n const { teams, employees, projects } = useCrewFoundryStore();\n const team = teams[0];\n if (!team) return <div className=\"p-6 text-muted-foreground\">No team found.</div>;\n const teamMembers = employees.filter((e) => team.members.includes(e.id));\n const teamProjects = projects.filter((p) => p.teamId === team.id);\n\n return (\n <div className=\"space-y-6 p-6 max-w-4xl\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">{team.name}</h1>\n <p className=\"text-sm text-muted-foreground\">{team.description}</p>\n </div>\n <Badge variant={team.status === 'active' ? 'default' : 'secondary'}>{team.status}</Badge>\n </div>\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Users className=\"h-5 w-5 mx-auto text-muted-foreground mb-1\" />\n <p className=\"text-lg font-bold\">{team.memberCount}</p>\n <p className=\"text-xs text-muted-foreground\">Members</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <FolderKanban className=\"h-5 w-5 mx-auto text-muted-foreground mb-1\" />\n <p className=\"text-lg font-bold\">{team.projectCount}</p>\n <p className=\"text-xs text-muted-foreground\">Projects</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Star className=\"h-5 w-5 mx-auto text-yellow-500 mb-1\" />\n <p className=\"text-lg font-bold\">{team.leadName}</p>\n <p className=\"text-xs text-muted-foreground\">Lead</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Calendar className=\"h-5 w-5 mx-auto text-muted-foreground mb-1\" />\n <p className=\"text-lg font-bold\">{team.createdAt}</p>\n <p className=\"text-xs text-muted-foreground\">Created</p>\n </CardContent>\n </Card>\n </div>\n <Card>\n <CardHeader>\n <CardTitle>Team Members</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-4 gap-2 text-xs font-medium text-muted-foreground border-b pb-2 mb-2\">\n <span>Name</span>\n <span>Position</span>\n <span className=\"text-center\">Performance</span>\n <span className=\"text-center\">Status</span>\n </div>\n {teamMembers.map((emp) => (\n <div\n key={emp.id}\n className=\"grid grid-cols-4 gap-2 py-2 border-b last:border-0 text-sm\"\n >\n <span className=\"font-medium\">\n {emp.firstName} {emp.lastName}\n </span>\n <span className=\"text-muted-foreground\">{emp.position}</span>\n <div className=\"text-center flex items-center justify-center gap-1\">\n <Star className=\"h-3 w-3 text-yellow-500\" />\n {emp.performanceScore}\n </div>\n <div className=\"text-center\">\n <Badge\n variant={emp.status === 'active' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {emp.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n {teamProjects.length > 0 && (\n <Card>\n <CardHeader>\n <CardTitle>Team Projects</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {teamProjects.map((p) => (\n <div key={p.id} className=\"flex items-center justify-between rounded border p-3\">\n <div>\n <p className=\"text-sm font-medium\">{p.name}</p>\n <p className=\"text-xs text-muted-foreground\">\n {p.startDate} — {p.endDate}\n </p>\n </div>\n <div className=\"flex items-center gap-2\">\n <div className=\"w-24 h-2 bg-muted rounded overflow-hidden\">\n <div className=\"h-2 bg-primary rounded\" style={{ width: `${p.progress}%` }} />\n </div>\n <span className=\"text-xs\">{p.progress}%</span>\n <Badge\n variant={p.status === 'active' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {p.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TeamsTeamDetailPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/TeamsTeamDetailPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n GradientText,\n IllustratedEmptyState,\n} from '@burdenoff/fe-libs/ui';\nimport { Calendar, FolderKanban, Star, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function TeamsTeamDetailPagePage() {\n const { teams, employees, projects } = useCrewFoundryStore();\n const team = teams[0];\n if (!team)\n return (\n <div className=\"p-6\">\n <IllustratedEmptyState\n illustration=\"empty-search\"\n title=\"Team not found\"\n description=\"This team is no longer available.\"\n />\n </div>\n );\n const teamMembers = employees.filter((e) => team.members.includes(e.id));\n const teamProjects = projects.filter((p) => p.teamId === team.id);\n\n return (\n <div className=\"space-y-6 p-6 max-w-4xl\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>{team.name}</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">{team.description}</p>\n </div>\n <Badge variant={team.status === 'active' ? 'default' : 'secondary'}>{team.status}</Badge>\n </div>\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Users className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{team.memberCount}</p>\n <p className=\"text-xs text-text-secondary\">Members</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <FolderKanban className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{team.projectCount}</p>\n <p className=\"text-xs text-text-secondary\">Projects</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Star className=\"h-5 w-5 mx-auto text-status-warning-text mb-1\" />\n <p className=\"text-lg font-bold\">{team.leadName}</p>\n <p className=\"text-xs text-text-secondary\">Lead</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <Calendar className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{team.createdAt}</p>\n <p className=\"text-xs text-text-secondary\">Created</p>\n </CardContent>\n </Card>\n </div>\n <Card>\n <CardHeader>\n <CardTitle>Team Members</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"grid grid-cols-4 gap-2 text-xs font-medium text-text-secondary border-b pb-2 mb-2\">\n <span>Name</span>\n <span>Position</span>\n <span className=\"text-center\">Performance</span>\n <span className=\"text-center\">Status</span>\n </div>\n {teamMembers.map((emp) => (\n <div\n key={emp.id}\n className=\"grid grid-cols-4 gap-2 py-2 border-b last:border-0 text-sm\"\n >\n <span className=\"font-medium\">\n {emp.firstName} {emp.lastName}\n </span>\n <span className=\"text-text-secondary\">{emp.position}</span>\n <div className=\"text-center flex items-center justify-center gap-1\">\n <Star className=\"h-3 w-3 text-status-warning-text\" />\n {emp.performanceScore}\n </div>\n <div className=\"text-center\">\n <Badge\n variant={emp.status === 'active' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {emp.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n {teamProjects.length > 0 && (\n <Card>\n <CardHeader>\n <CardTitle>Team Projects</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {teamProjects.map((p) => (\n <div key={p.id} className=\"flex items-center justify-between rounded border p-3\">\n <div>\n <p className=\"text-sm font-medium\">{p.name}</p>\n <p className=\"text-xs text-text-secondary\">\n {p.startDate} — {p.endDate}\n </p>\n </div>\n <div className=\"flex items-center gap-2\">\n <div className=\"w-24 h-2 bg-bg-sunken rounded overflow-hidden\">\n <div\n className=\"h-2 bg-action-primary-bg rounded\"\n style={{ width: `${p.progress}%` }}\n />\n </div>\n <span className=\"text-xs\">{p.progress}%</span>\n <Badge\n variant={p.status === 'active' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {p.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;AAaA,SAAgB,IAA0B;CACxC,IAAM,EAAE,UAAO,cAAW,gBAAa,GAAqB,EACtD,IAAO,EAAM;AACnB,KAAI,CAAC,EACH,QACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,GAAD;GACE,cAAa;GACb,OAAM;GACN,aAAY;GACZ,CAAA;EACE,CAAA;CAEV,IAAM,IAAc,EAAU,QAAQ,MAAM,EAAK,QAAQ,SAAS,EAAE,GAAG,CAAC,EAClE,IAAe,EAAS,QAAQ,MAAM,EAAE,WAAW,EAAK,GAAG;AAEjE,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;KAAI,WAAU;eACZ,kBAAC,GAAD,EAAA,UAAe,EAAK,MAAoB,CAAA;KACrC,CAAA,EACL,kBAAC,KAAD;KAAG,WAAU;eAA+B,EAAK;KAAgB,CAAA,CAC7D,EAAA,CAAA,EACN,kBAAC,GAAD;KAAO,SAAS,EAAK,WAAW,WAAW,YAAY;eAAc,EAAK;KAAe,CAAA,CACrF;;GACN,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB;OACE,kBAAC,GAAD,EAAO,WAAU,4CAA6C,CAAA;OAC9D,kBAAC,KAAD;QAAG,WAAU;kBAAqB,EAAK;QAAgB,CAAA;OACvD,kBAAC,KAAD;QAAG,WAAU;kBAA8B;QAAW,CAAA;OAC1C;SACT,CAAA;KACP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB;OACE,kBAAC,GAAD,EAAc,WAAU,4CAA6C,CAAA;OACrE,kBAAC,KAAD;QAAG,WAAU;kBAAqB,EAAK;QAAiB,CAAA;OACxD,kBAAC,KAAD;QAAG,WAAU;kBAA8B;QAAY,CAAA;OAC3C;SACT,CAAA;KACP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB;OACE,kBAAC,GAAD,EAAM,WAAU,iDAAkD,CAAA;OAClE,kBAAC,KAAD;QAAG,WAAU;kBAAqB,EAAK;QAAa,CAAA;OACpD,kBAAC,KAAD;QAAG,WAAU;kBAA8B;QAAQ,CAAA;OACvC;SACT,CAAA;KACP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB;OACE,kBAAC,GAAD,EAAU,WAAU,4CAA6C,CAAA;OACjE,kBAAC,KAAD;QAAG,WAAU;kBAAqB,EAAK;QAAc,CAAA;OACrD,kBAAC,KAAD;QAAG,WAAU;kBAA8B;QAAW,CAAA;OAC1C;SACT,CAAA;KACH;;GACN,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAW,gBAAwB,CAAA,EACxB,CAAA,EACb,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,QAAD,EAAA,UAAM,QAAW,CAAA;KACjB,kBAAC,QAAD,EAAA,UAAM,YAAe,CAAA;KACrB,kBAAC,QAAD;MAAM,WAAU;gBAAc;MAAkB,CAAA;KAChD,kBAAC,QAAD;MAAM,WAAU;gBAAc;MAAa,CAAA;KACvC;OACL,EAAY,KAAK,MAChB,kBAAC,OAAD;IAEE,WAAU;cAFZ;KAIE,kBAAC,QAAD;MAAM,WAAU;gBAAhB;OACG,EAAI;OAAU;OAAE,EAAI;OAChB;;KACP,kBAAC,QAAD;MAAM,WAAU;gBAAuB,EAAI;MAAgB,CAAA;KAC3D,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,GAAD,EAAM,WAAU,oCAAqC,CAAA,EACpD,EAAI,iBACD;;KACN,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,GAAD;OACE,SAAS,EAAI,WAAW,WAAW,YAAY;OAC/C,WAAU;iBAET,EAAI;OACC,CAAA;MACJ,CAAA;KACF;MAnBC,EAAI,GAmBL,CACN,CACU,EAAA,CAAA,CACT,EAAA,CAAA;GACN,EAAa,SAAS,KACrB,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAW,iBAAyB,CAAA,EACzB,CAAA,EACb,kBAAC,GAAD;IAAa,WAAU;cACpB,EAAa,KAAK,MACjB,kBAAC,OAAD;KAAgB,WAAU;eAA1B,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;MAAG,WAAU;gBAAuB,EAAE;MAAS,CAAA,EAC/C,kBAAC,KAAD;MAAG,WAAU;gBAAb;OACG,EAAE;OAAU;OAAI,EAAE;OACjB;QACA,EAAA,CAAA,EACN,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,OAAD;QAAK,WAAU;kBACb,kBAAC,OAAD;SACE,WAAU;SACV,OAAO,EAAE,OAAO,GAAG,EAAE,SAAS,IAAI;SAClC,CAAA;QACE,CAAA;OACN,kBAAC,QAAD;QAAM,WAAU;kBAAhB,CAA2B,EAAE,UAAS,IAAQ;;OAC9C,kBAAC,GAAD;QACE,SAAS,EAAE,WAAW,WAAW,YAAY;QAC7C,WAAU;kBAET,EAAE;QACG,CAAA;OACJ;QACF;OAtBI,EAAE,GAsBN,CACN;IACU,CAAA,CACT,EAAA,CAAA;GAEL"}
@@ -2,33 +2,33 @@ import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
2
  import { useState as t } from "react";
3
3
  import { Search as n, Users as r } from "lucide-react";
4
4
  import { jsx as i, jsxs as a } from "react/jsx-runtime";
5
- import { Badge as o, Card as s, CardContent as c, Input as l } from "@burdenoff/fe-libs/ui";
5
+ import { Badge as o, Card as s, CardContent as c, GradientText as l, Input as u } from "@burdenoff/fe-libs/ui";
6
6
  //#region src/crewfoundry/pages/TeamsTeamDirectoryPagePage.tsx
7
- function u() {
8
- let { teams: u } = e(), [d, f] = t(""), p = u.filter((e) => `${e.name} ${e.department} ${e.leadName}`.toLowerCase().includes(d.toLowerCase()));
7
+ function d() {
8
+ let { teams: d } = e(), [f, p] = t(""), m = d.filter((e) => `${e.name} ${e.department} ${e.leadName}`.toLowerCase().includes(f.toLowerCase()));
9
9
  return /* @__PURE__ */ a("div", {
10
10
  className: "space-y-6 p-6",
11
11
  children: [
12
12
  /* @__PURE__ */ a("div", { children: [/* @__PURE__ */ i("h1", {
13
13
  className: "text-2xl font-semibold",
14
- children: "Team Directory"
14
+ children: /* @__PURE__ */ i(l, { children: "Team Directory" })
15
15
  }), /* @__PURE__ */ i("p", {
16
- className: "text-sm text-muted-foreground",
16
+ className: "text-sm text-text-secondary",
17
17
  children: "Browse all teams in the organization"
18
18
  })] }),
19
19
  /* @__PURE__ */ a("div", {
20
20
  className: "relative max-w-sm",
21
- children: [/* @__PURE__ */ i(n, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ i(l, {
21
+ children: [/* @__PURE__ */ i(n, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-text-secondary" }), /* @__PURE__ */ i(u, {
22
22
  placeholder: "Search teams...",
23
23
  className: "pl-9",
24
- value: d,
25
- onChange: (e) => f(e.target.value)
24
+ value: f,
25
+ onChange: (e) => p(e.target.value)
26
26
  })]
27
27
  }),
28
28
  /* @__PURE__ */ i(s, { children: /* @__PURE__ */ a(c, {
29
29
  className: "p-0",
30
30
  children: [/* @__PURE__ */ a("div", {
31
- className: "grid grid-cols-6 gap-2 text-xs font-medium text-muted-foreground p-4 border-b",
31
+ className: "grid grid-cols-6 gap-2 text-xs font-medium text-text-secondary p-4 border-b",
32
32
  children: [
33
33
  /* @__PURE__ */ i("span", { children: "Team" }),
34
34
  /* @__PURE__ */ i("span", { children: "Description" }),
@@ -43,20 +43,20 @@ function u() {
43
43
  children: "Status"
44
44
  })
45
45
  ]
46
- }), p.map((e) => /* @__PURE__ */ a("div", {
47
- className: "grid grid-cols-6 gap-2 py-3 px-4 border-b last:border-0 text-sm hover:bg-muted/50",
46
+ }), m.map((e) => /* @__PURE__ */ a("div", {
47
+ className: "grid grid-cols-6 gap-2 py-3 px-4 border-b last:border-0 text-sm hover:bg-bg-sunken/50",
48
48
  children: [
49
49
  /* @__PURE__ */ i("span", {
50
50
  className: "font-medium",
51
51
  children: e.name
52
52
  }),
53
53
  /* @__PURE__ */ i("span", {
54
- className: "text-muted-foreground truncate",
54
+ className: "text-text-secondary truncate",
55
55
  children: e.description
56
56
  }),
57
57
  /* @__PURE__ */ i("span", { children: e.department }),
58
58
  /* @__PURE__ */ i("span", {
59
- className: "text-muted-foreground",
59
+ className: "text-text-secondary",
60
60
  children: e.leadName
61
61
  }),
62
62
  /* @__PURE__ */ a("span", {
@@ -78,6 +78,6 @@ function u() {
78
78
  });
79
79
  }
80
80
  //#endregion
81
- export { u as TeamsTeamDirectoryPagePage };
81
+ export { d as TeamsTeamDirectoryPagePage };
82
82
 
83
83
  //# sourceMappingURL=TeamsTeamDirectoryPagePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TeamsTeamDirectoryPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/TeamsTeamDirectoryPagePage.tsx"],"sourcesContent":["import { Badge, Card, CardContent, Input } from '@burdenoff/fe-libs/ui';\nimport { Search, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\nimport { useState } from 'react';\n\nexport function TeamsTeamDirectoryPagePage() {\n const { teams } = useCrewFoundryStore();\n const [search, setSearch] = useState('');\n const filtered = teams.filter((t) =>\n `${t.name} ${t.department} ${t.leadName}`.toLowerCase().includes(search.toLowerCase())\n );\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Team Directory</h1>\n <p className=\"text-sm text-muted-foreground\">Browse all teams in the organization</p>\n </div>\n <div className=\"relative max-w-sm\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\n <Input\n placeholder=\"Search teams...\"\n className=\"pl-9\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n />\n </div>\n <Card>\n <CardContent className=\"p-0\">\n <div className=\"grid grid-cols-6 gap-2 text-xs font-medium text-muted-foreground p-4 border-b\">\n <span>Team</span>\n <span>Description</span>\n <span>Department</span>\n <span>Lead</span>\n <span className=\"text-right\">Members</span>\n <span className=\"text-center\">Status</span>\n </div>\n {filtered.map((team) => (\n <div\n key={team.id}\n className=\"grid grid-cols-6 gap-2 py-3 px-4 border-b last:border-0 text-sm hover:bg-muted/50\"\n >\n <span className=\"font-medium\">{team.name}</span>\n <span className=\"text-muted-foreground truncate\">{team.description}</span>\n <span>{team.department}</span>\n <span className=\"text-muted-foreground\">{team.leadName}</span>\n <span className=\"text-right flex items-center justify-end gap-1\">\n <Users className=\"h-3 w-3\" />\n {team.memberCount}\n </span>\n <div className=\"text-center\">\n <Badge\n variant={team.status === 'active' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {team.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":";;;;;;AAKA,SAAgB,IAA6B;CAC3C,IAAM,EAAE,aAAU,GAAqB,EACjC,CAAC,GAAQ,KAAa,EAAS,GAAG,EAClC,IAAW,EAAM,QAAQ,MAC7B,GAAG,EAAE,KAAK,GAAG,EAAE,WAAW,GAAG,EAAE,WAAW,aAAa,CAAC,SAAS,EAAO,aAAa,CAAC,CACvF;AAED,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,WAAU;cAAyB;IAAmB,CAAA,EAC1D,kBAAC,KAAD;IAAG,WAAU;cAAgC;IAAwC,CAAA,CACjF,EAAA,CAAA;GACN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD,EAAQ,WAAU,0EAA2E,CAAA,EAC7F,kBAAC,GAAD;KACE,aAAY;KACZ,WAAU;KACV,OAAO;KACP,WAAW,MAAM,EAAU,EAAE,OAAO,MAAM;KAC1C,CAAA,CACE;;GACN,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;IAAa,WAAU;cAAvB,CACE,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,QAAD,EAAA,UAAM,QAAW,CAAA;MACjB,kBAAC,QAAD,EAAA,UAAM,eAAkB,CAAA;MACxB,kBAAC,QAAD,EAAA,UAAM,cAAiB,CAAA;MACvB,kBAAC,QAAD,EAAA,UAAM,QAAW,CAAA;MACjB,kBAAC,QAAD;OAAM,WAAU;iBAAa;OAAc,CAAA;MAC3C,kBAAC,QAAD;OAAM,WAAU;iBAAc;OAAa,CAAA;MACvC;QACL,EAAS,KAAK,MACb,kBAAC,OAAD;KAEE,WAAU;eAFZ;MAIE,kBAAC,QAAD;OAAM,WAAU;iBAAe,EAAK;OAAY,CAAA;MAChD,kBAAC,QAAD;OAAM,WAAU;iBAAkC,EAAK;OAAmB,CAAA;MAC1E,kBAAC,QAAD,EAAA,UAAO,EAAK,YAAkB,CAAA;MAC9B,kBAAC,QAAD;OAAM,WAAU;iBAAyB,EAAK;OAAgB,CAAA;MAC9D,kBAAC,QAAD;OAAM,WAAU;iBAAhB,CACE,kBAAC,GAAD,EAAO,WAAU,WAAY,CAAA,EAC5B,EAAK,YACD;;MACP,kBAAC,OAAD;OAAK,WAAU;iBACb,kBAAC,GAAD;QACE,SAAS,EAAK,WAAW,WAAW,YAAY;QAChD,WAAU;kBAET,EAAK;QACA,CAAA;OACJ,CAAA;MACF;OAnBC,EAAK,GAmBN,CACN,CACU;OACT,CAAA;GACH"}
1
+ {"version":3,"file":"TeamsTeamDirectoryPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/TeamsTeamDirectoryPagePage.tsx"],"sourcesContent":["import { Badge, Card, CardContent, GradientText, Input } from '@burdenoff/fe-libs/ui';\nimport { Search, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\nimport { useState } from 'react';\n\nexport function TeamsTeamDirectoryPagePage() {\n const { teams } = useCrewFoundryStore();\n const [search, setSearch] = useState('');\n const filtered = teams.filter((t) =>\n `${t.name} ${t.department} ${t.leadName}`.toLowerCase().includes(search.toLowerCase())\n );\n\n return (\n <div className=\"space-y-6 p-6\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>Team Directory</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">Browse all teams in the organization</p>\n </div>\n <div className=\"relative max-w-sm\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-text-secondary\" />\n <Input\n placeholder=\"Search teams...\"\n className=\"pl-9\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n />\n </div>\n <Card>\n <CardContent className=\"p-0\">\n <div className=\"grid grid-cols-6 gap-2 text-xs font-medium text-text-secondary p-4 border-b\">\n <span>Team</span>\n <span>Description</span>\n <span>Department</span>\n <span>Lead</span>\n <span className=\"text-right\">Members</span>\n <span className=\"text-center\">Status</span>\n </div>\n {filtered.map((team) => (\n <div\n key={team.id}\n className=\"grid grid-cols-6 gap-2 py-3 px-4 border-b last:border-0 text-sm hover:bg-bg-sunken/50\"\n >\n <span className=\"font-medium\">{team.name}</span>\n <span className=\"text-text-secondary truncate\">{team.description}</span>\n <span>{team.department}</span>\n <span className=\"text-text-secondary\">{team.leadName}</span>\n <span className=\"text-right flex items-center justify-end gap-1\">\n <Users className=\"h-3 w-3\" />\n {team.memberCount}\n </span>\n <div className=\"text-center\">\n <Badge\n variant={team.status === 'active' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {team.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":";;;;;;AAKA,SAAgB,IAA6B;CAC3C,IAAM,EAAE,aAAU,GAAqB,EACjC,CAAC,GAAQ,KAAa,EAAS,GAAG,EAClC,IAAW,EAAM,QAAQ,MAC7B,GAAG,EAAE,KAAK,GAAG,EAAE,WAAW,GAAG,EAAE,WAAW,aAAa,CAAC,SAAS,EAAO,aAAa,CAAC,CACvF;AAED,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;IAAI,WAAU;cACZ,kBAAC,GAAD,EAAA,UAAc,kBAA6B,CAAA;IACxC,CAAA,EACL,kBAAC,KAAD;IAAG,WAAU;cAA8B;IAAwC,CAAA,CAC/E,EAAA,CAAA;GACN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD,EAAQ,WAAU,wEAAyE,CAAA,EAC3F,kBAAC,GAAD;KACE,aAAY;KACZ,WAAU;KACV,OAAO;KACP,WAAW,MAAM,EAAU,EAAE,OAAO,MAAM;KAC1C,CAAA,CACE;;GACN,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;IAAa,WAAU;cAAvB,CACE,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,QAAD,EAAA,UAAM,QAAW,CAAA;MACjB,kBAAC,QAAD,EAAA,UAAM,eAAkB,CAAA;MACxB,kBAAC,QAAD,EAAA,UAAM,cAAiB,CAAA;MACvB,kBAAC,QAAD,EAAA,UAAM,QAAW,CAAA;MACjB,kBAAC,QAAD;OAAM,WAAU;iBAAa;OAAc,CAAA;MAC3C,kBAAC,QAAD;OAAM,WAAU;iBAAc;OAAa,CAAA;MACvC;QACL,EAAS,KAAK,MACb,kBAAC,OAAD;KAEE,WAAU;eAFZ;MAIE,kBAAC,QAAD;OAAM,WAAU;iBAAe,EAAK;OAAY,CAAA;MAChD,kBAAC,QAAD;OAAM,WAAU;iBAAgC,EAAK;OAAmB,CAAA;MACxE,kBAAC,QAAD,EAAA,UAAO,EAAK,YAAkB,CAAA;MAC9B,kBAAC,QAAD;OAAM,WAAU;iBAAuB,EAAK;OAAgB,CAAA;MAC5D,kBAAC,QAAD;OAAM,WAAU;iBAAhB,CACE,kBAAC,GAAD,EAAO,WAAU,WAAY,CAAA,EAC5B,EAAK,YACD;;MACP,kBAAC,OAAD;OAAK,WAAU;iBACb,kBAAC,GAAD;QACE,SAAS,EAAK,WAAW,WAAW,YAAY;QAChD,WAAU;kBAET,EAAK;QACA,CAAA;OACJ,CAAA;MACF;OAnBC,EAAK,GAmBN,CACN,CACU;OACT,CAAA;GACH"}