@burdenoff/microfe-crewfoundry 2026.624.1 → 2026.625.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/crewfoundry/pages/AdminAdminPagePage.js +100 -76
  2. package/dist/crewfoundry/pages/AdminAdminPagePage.js.map +1 -1
  3. package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js +118 -94
  4. package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
  5. package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js +105 -81
  6. package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js.map +1 -1
  7. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js +134 -110
  8. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js.map +1 -1
  9. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +121 -97
  10. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -1
  11. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js +28 -15
  12. package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -1
  13. package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js +74 -54
  14. package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js.map +1 -1
  15. package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js +87 -69
  16. package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js.map +1 -1
  17. package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js +99 -80
  18. package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js.map +1 -1
  19. package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js +87 -68
  20. package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js.map +1 -1
  21. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js +31 -15
  22. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js.map +1 -1
  23. package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js +81 -61
  24. package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js.map +1 -1
  25. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +71 -51
  26. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -1
  27. package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js +82 -58
  28. package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js.map +1 -1
  29. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js +46 -39
  30. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js.map +1 -1
  31. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +80 -62
  32. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -1
  33. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js +104 -80
  34. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js.map +1 -1
  35. package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +219 -151
  36. package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -1
  37. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +183 -142
  38. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -1
  39. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +121 -97
  40. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -1
  41. package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js +57 -46
  42. package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js.map +1 -1
  43. package/dist/crewfoundry/pages/HiringApplicationsPagePage.js +91 -67
  44. package/dist/crewfoundry/pages/HiringApplicationsPagePage.js.map +1 -1
  45. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +112 -93
  46. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
  47. package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +55 -48
  48. package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -1
  49. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +70 -50
  50. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -1
  51. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +140 -97
  52. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -1
  53. package/dist/crewfoundry/pages/HiringJobsPagePage.js +101 -85
  54. package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -1
  55. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +68 -48
  56. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -1
  57. package/dist/crewfoundry/pages/HrEmployeesPagePage.js +99 -71
  58. package/dist/crewfoundry/pages/HrEmployeesPagePage.js.map +1 -1
  59. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +97 -73
  60. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -1
  61. package/dist/crewfoundry/pages/HrPayrollPagePage.js +100 -76
  62. package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -1
  63. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +93 -69
  64. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -1
  65. package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js +65 -45
  66. package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js.map +1 -1
  67. package/dist/crewfoundry/pages/LearningCertificatesPagePage.js +93 -75
  68. package/dist/crewfoundry/pages/LearningCertificatesPagePage.js.map +1 -1
  69. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +117 -72
  70. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -1
  71. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js +66 -54
  72. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js.map +1 -1
  73. package/dist/crewfoundry/pages/LearningCoursesPagePage.js +36 -20
  74. package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -1
  75. package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js +90 -66
  76. package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js.map +1 -1
  77. package/dist/crewfoundry/pages/LearningLearningPagePage.js +81 -57
  78. package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -1
  79. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +90 -65
  80. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -1
  81. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +33 -17
  82. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -1
  83. package/dist/crewfoundry/pages/LearningMyLearningPagePage.js +83 -59
  84. package/dist/crewfoundry/pages/LearningMyLearningPagePage.js.map +1 -1
  85. package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js +68 -48
  86. package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js.map +1 -1
  87. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js +80 -60
  88. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js.map +1 -1
  89. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js +153 -118
  90. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js.map +1 -1
  91. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js +42 -37
  92. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js.map +1 -1
  93. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js +67 -47
  94. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -1
  95. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js +104 -85
  96. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js.map +1 -1
  97. package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js +76 -57
  98. package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js.map +1 -1
  99. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +78 -60
  100. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -1
  101. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js +138 -93
  102. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js.map +1 -1
  103. package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js +98 -53
  104. package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js.map +1 -1
  105. package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js +69 -49
  106. package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js.map +1 -1
  107. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +84 -65
  108. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -1
  109. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js +76 -52
  110. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -1
  111. package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js +58 -40
  112. package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js.map +1 -1
  113. package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js +85 -65
  114. package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js.map +1 -1
  115. package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js +36 -29
  116. package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js.map +1 -1
  117. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js +108 -73
  118. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -1
  119. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +43 -27
  120. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -1
  121. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js +67 -47
  122. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -1
  123. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js +108 -63
  124. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js.map +1 -1
  125. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js +83 -64
  126. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js.map +1 -1
  127. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +185 -144
  128. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -1
  129. package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +40 -24
  130. package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -1
  131. package/package.json +2 -2
@@ -1,27 +1,34 @@
1
1
  import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
2
  import { Calendar as t, Clock as n, Plus as r, Star as i, Video as a } from "lucide-react";
3
3
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
4
- import { Badge as c, Button as l, Card as u, CardContent as d, CardDescription as f, CardHeader as p, CardTitle as m } from "@burdenoff/fe-libs/ui";
4
+ import { Badge as c, Button as l, Card as u, CardContent as d, CardDescription as f, CardHeader as p, CardTitle as m, GlassCard as h, GradientText as g, PagePurpose as _ } from "@burdenoff/fe-libs/ui";
5
5
  //#region src/crewfoundry/pages/HiringInterviewsPagePage.tsx
6
- function h() {
7
- let { interviews: h } = e(), g = h.filter((e) => e.status === "scheduled"), _ = h.filter((e) => e.status === "completed");
6
+ function v() {
7
+ let { interviews: v } = e(), y = v.filter((e) => e.status === "scheduled"), b = v.filter((e) => e.status === "completed");
8
8
  return /* @__PURE__ */ s("div", {
9
9
  className: "space-y-6 p-6",
10
10
  children: [
11
11
  /* @__PURE__ */ s("div", {
12
12
  className: "flex items-center justify-between",
13
- children: [/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h1", {
14
- className: "text-2xl font-semibold",
15
- children: "Interviews"
16
- }), /* @__PURE__ */ s("p", {
17
- className: "text-sm text-text-secondary",
18
- children: [
19
- g.length,
20
- " upcoming · ",
21
- _.length,
22
- " completed"
23
- ]
24
- })] }), /* @__PURE__ */ s(l, {
13
+ children: [/* @__PURE__ */ s("div", { children: [
14
+ /* @__PURE__ */ o("h1", {
15
+ className: "text-2xl font-semibold",
16
+ children: /* @__PURE__ */ o(g, { children: "Interviews" })
17
+ }),
18
+ /* @__PURE__ */ s("p", {
19
+ className: "text-sm text-text-secondary",
20
+ children: [
21
+ y.length,
22
+ " upcoming · ",
23
+ b.length,
24
+ " completed"
25
+ ]
26
+ }),
27
+ /* @__PURE__ */ o(_, {
28
+ className: "mt-1",
29
+ children: "Schedule and track interviews across your hiring pipeline — keep everyone aligned on who's meeting which candidate and when."
30
+ })
31
+ ] }), /* @__PURE__ */ s(l, {
25
32
  size: "sm",
26
33
  children: [/* @__PURE__ */ o(r, { className: "h-4 w-4 mr-1" }), "Schedule Interview"]
27
34
  })]
@@ -29,41 +36,54 @@ function h() {
29
36
  /* @__PURE__ */ s("div", {
30
37
  className: "grid gap-4 md:grid-cols-3",
31
38
  children: [
32
- /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(p, {
33
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
34
- children: [/* @__PURE__ */ o(m, {
35
- className: "text-sm font-medium",
36
- children: "Scheduled"
37
- }), /* @__PURE__ */ o(t, { className: "h-4 w-4 text-blue-500" })]
38
- }), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o("div", {
39
- className: "text-2xl font-bold",
40
- children: g.length
41
- }) })] }),
42
- /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(p, {
43
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
44
- children: [/* @__PURE__ */ o(m, {
45
- className: "text-sm font-medium",
46
- children: "Completed"
47
- }), /* @__PURE__ */ o(n, { className: "h-4 w-4 text-green-500" })]
48
- }), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o("div", {
49
- className: "text-2xl font-bold",
50
- children: _.length
51
- }) })] }),
52
- /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(p, {
53
- className: "flex flex-row items-center justify-between space-y-0 pb-2",
54
- children: [/* @__PURE__ */ o(m, {
55
- className: "text-sm font-medium",
56
- children: "This Week"
57
- }), /* @__PURE__ */ o(a, { className: "h-4 w-4 text-text-secondary" })]
58
- }), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o("div", {
59
- className: "text-2xl font-bold",
60
- children: g.length
61
- }) })] })
39
+ /* @__PURE__ */ s(h, {
40
+ treatment: "glass",
41
+ glow: !0,
42
+ className: "border-border-seam",
43
+ children: [/* @__PURE__ */ s(p, {
44
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
45
+ children: [/* @__PURE__ */ o(m, {
46
+ className: "text-sm font-medium",
47
+ children: "Scheduled"
48
+ }), /* @__PURE__ */ o(t, { className: "h-4 w-4 text-status-info-text" })]
49
+ }), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o("div", {
50
+ className: "text-2xl font-bold tabular-nums",
51
+ children: y.length
52
+ }) })]
53
+ }),
54
+ /* @__PURE__ */ s(h, {
55
+ treatment: "metric",
56
+ className: "border-border-seam",
57
+ children: [/* @__PURE__ */ s(p, {
58
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
59
+ children: [/* @__PURE__ */ o(m, {
60
+ className: "text-sm font-medium",
61
+ children: "Completed"
62
+ }), /* @__PURE__ */ o(n, { className: "h-4 w-4 text-status-success-text" })]
63
+ }), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o("div", {
64
+ className: "text-2xl font-bold tabular-nums",
65
+ children: b.length
66
+ }) })]
67
+ }),
68
+ /* @__PURE__ */ s(h, {
69
+ treatment: "metric",
70
+ className: "border-border-seam",
71
+ children: [/* @__PURE__ */ s(p, {
72
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
73
+ children: [/* @__PURE__ */ o(m, {
74
+ className: "text-sm font-medium",
75
+ children: "This Week"
76
+ }), /* @__PURE__ */ o(a, { className: "h-4 w-4 text-text-secondary" })]
77
+ }), /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o("div", {
78
+ className: "text-2xl font-bold tabular-nums",
79
+ children: y.length
80
+ }) })]
81
+ })
62
82
  ]
63
83
  }),
64
84
  /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(p, { children: [/* @__PURE__ */ o(m, { children: "Upcoming Interviews" }), /* @__PURE__ */ o(f, { children: "Scheduled interviews for the coming days" })] }), /* @__PURE__ */ o(d, {
65
85
  className: "space-y-3",
66
- children: g.map((e) => /* @__PURE__ */ s("div", {
86
+ children: y.map((e) => /* @__PURE__ */ s("div", {
67
87
  className: "flex items-center justify-between rounded border p-4",
68
88
  children: [/* @__PURE__ */ s("div", { children: [
69
89
  /* @__PURE__ */ o("p", {
@@ -103,9 +123,9 @@ function h() {
103
123
  })]
104
124
  }, e.id))
105
125
  })] }),
106
- _.length > 0 && /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(p, { children: [/* @__PURE__ */ o(m, { children: "Completed Interviews" }), /* @__PURE__ */ o(f, { children: "Recent interview feedback" })] }), /* @__PURE__ */ o(d, {
126
+ b.length > 0 && /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(p, { children: [/* @__PURE__ */ o(m, { children: "Completed Interviews" }), /* @__PURE__ */ o(f, { children: "Recent interview feedback" })] }), /* @__PURE__ */ o(d, {
107
127
  className: "space-y-3",
108
- children: _.map((e) => /* @__PURE__ */ s("div", {
128
+ children: b.map((e) => /* @__PURE__ */ s("div", {
109
129
  className: "flex items-center justify-between rounded border p-4",
110
130
  children: [/* @__PURE__ */ s("div", { children: [
111
131
  /* @__PURE__ */ o("p", {
@@ -128,7 +148,7 @@ function h() {
128
148
  className: "flex items-center gap-3",
129
149
  children: [e.rating && /* @__PURE__ */ s("div", {
130
150
  className: "flex items-center gap-1",
131
- children: [/* @__PURE__ */ o(i, { className: "h-4 w-4 text-yellow-500" }), /* @__PURE__ */ s("span", {
151
+ children: [/* @__PURE__ */ o(i, { className: "h-4 w-4 text-status-warning-text" }), /* @__PURE__ */ s("span", {
132
152
  className: "text-sm font-medium",
133
153
  children: [e.rating, "/5"]
134
154
  })]
@@ -143,6 +163,6 @@ function h() {
143
163
  });
144
164
  }
145
165
  //#endregion
146
- export { h as HiringInterviewsPagePage };
166
+ export { v as HiringInterviewsPagePage };
147
167
 
148
168
  //# sourceMappingURL=HiringInterviewsPagePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HiringInterviewsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HiringInterviewsPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@burdenoff/fe-libs/ui';\nimport { Calendar, Clock, Plus, Star, Video } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function HiringInterviewsPagePage() {\n const { interviews } = useCrewFoundryStore();\n\n const scheduled = interviews.filter((i) => i.status === 'scheduled');\n const completed = interviews.filter((i) => i.status === 'completed');\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Interviews</h1>\n <p className=\"text-sm text-text-secondary\">\n {scheduled.length} upcoming · {completed.length} completed\n </p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"h-4 w-4 mr-1\" />\n Schedule Interview\n </Button>\n </div>\n\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\">Scheduled</CardTitle>\n <Calendar className=\"h-4 w-4 text-blue-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{scheduled.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\">Completed</CardTitle>\n <Clock className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{completed.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\">This Week</CardTitle>\n <Video className=\"h-4 w-4 text-text-secondary\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{scheduled.length}</div>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Upcoming Interviews</CardTitle>\n <CardDescription>Scheduled interviews for the coming days</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {scheduled.map((interview) => (\n <div\n key={interview.id}\n className=\"flex items-center justify-between rounded border p-4\"\n >\n <div>\n <p className=\"text-sm font-medium\">{interview.candidateName}</p>\n <p className=\"text-xs text-text-secondary\">{interview.position}</p>\n <p className=\"text-xs text-text-secondary mt-1\">\n Interviewer: {interview.interviewerName}\n </p>\n </div>\n <div className=\"flex items-center gap-3\">\n <div className=\"text-right\">\n <p className=\"text-sm font-medium\">{interview.date}</p>\n <p className=\"text-xs text-text-secondary\">{interview.time}</p>\n </div>\n <Badge variant=\"outline\">{interview.type}</Badge>\n <Badge variant=\"secondary\">{interview.status}</Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n\n {completed.length > 0 && (\n <Card>\n <CardHeader>\n <CardTitle>Completed Interviews</CardTitle>\n <CardDescription>Recent interview feedback</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {completed.map((interview) => (\n <div\n key={interview.id}\n className=\"flex items-center justify-between rounded border p-4\"\n >\n <div>\n <p className=\"text-sm font-medium\">{interview.candidateName}</p>\n <p className=\"text-xs text-text-secondary\">{interview.position}</p>\n {interview.feedback && (\n <p className=\"text-xs text-text-secondary mt-1 italic\">\n &quot;{interview.feedback}&quot;\n </p>\n )}\n </div>\n <div className=\"flex items-center gap-3\">\n {interview.rating && (\n <div className=\"flex items-center gap-1\">\n <Star className=\"h-4 w-4 text-yellow-500\" />\n <span className=\"text-sm font-medium\">{interview.rating}/5</span>\n </div>\n )}\n <Badge variant=\"default\">completed</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":"HiringInterviewsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HiringInterviewsPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n GlassCard,\n GradientText,\n PagePurpose,\n} from '@burdenoff/fe-libs/ui';\nimport { Calendar, Clock, Plus, Star, Video } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function HiringInterviewsPagePage() {\n const { interviews } = useCrewFoundryStore();\n\n const scheduled = interviews.filter((i) => i.status === 'scheduled');\n const completed = interviews.filter((i) => i.status === 'completed');\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>Interviews</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">\n {scheduled.length} upcoming · {completed.length} completed\n </p>\n <PagePurpose className=\"mt-1\">Schedule and track interviews across your hiring pipeline — keep everyone aligned on who&apos;s meeting which candidate and when.</PagePurpose>\n </div>\n <Button size=\"sm\">\n <Plus className=\"h-4 w-4 mr-1\" />\n Schedule Interview\n </Button>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-3\">\n <GlassCard treatment=\"glass\" glow 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\">Scheduled</CardTitle>\n <Calendar className=\"h-4 w-4 text-status-info-text\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold tabular-nums\">{scheduled.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\">Completed</CardTitle>\n <Clock className=\"h-4 w-4 text-status-success-text\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold tabular-nums\">{completed.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\">This Week</CardTitle>\n <Video className=\"h-4 w-4 text-text-secondary\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold tabular-nums\">{scheduled.length}</div>\n </CardContent>\n </GlassCard>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Upcoming Interviews</CardTitle>\n <CardDescription>Scheduled interviews for the coming days</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {scheduled.map((interview) => (\n <div\n key={interview.id}\n className=\"flex items-center justify-between rounded border p-4\"\n >\n <div>\n <p className=\"text-sm font-medium\">{interview.candidateName}</p>\n <p className=\"text-xs text-text-secondary\">{interview.position}</p>\n <p className=\"text-xs text-text-secondary mt-1\">\n Interviewer: {interview.interviewerName}\n </p>\n </div>\n <div className=\"flex items-center gap-3\">\n <div className=\"text-right\">\n <p className=\"text-sm font-medium\">{interview.date}</p>\n <p className=\"text-xs text-text-secondary\">{interview.time}</p>\n </div>\n <Badge variant=\"outline\">{interview.type}</Badge>\n <Badge variant=\"secondary\">{interview.status}</Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n\n {completed.length > 0 && (\n <Card>\n <CardHeader>\n <CardTitle>Completed Interviews</CardTitle>\n <CardDescription>Recent interview feedback</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {completed.map((interview) => (\n <div\n key={interview.id}\n className=\"flex items-center justify-between rounded border p-4\"\n >\n <div>\n <p className=\"text-sm font-medium\">{interview.candidateName}</p>\n <p className=\"text-xs text-text-secondary\">{interview.position}</p>\n {interview.feedback && (\n <p className=\"text-xs text-text-secondary mt-1 italic\">\n &quot;{interview.feedback}&quot;\n </p>\n )}\n </div>\n <div className=\"flex items-center gap-3\">\n {interview.rating && (\n <div className=\"flex items-center gap-1\">\n <Star className=\"h-4 w-4 text-status-warning-text\" />\n <span className=\"text-sm font-medium\">{interview.rating}/5</span>\n </div>\n )}\n <Badge variant=\"default\">completed</Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,121 +1,164 @@
1
1
  import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
2
  import { Briefcase as t, Calendar as n, CheckCircle as r, DollarSign as i, MapPin as a, Share2 as o, Users as s } from "lucide-react";
3
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
4
- import { Badge as u, Button as d, Card as f, CardContent as p, CardDescription as m, CardHeader as h, CardTitle as g } from "@burdenoff/fe-libs/ui";
3
+ import { useNavigate as c } from "react-router-dom";
4
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
5
+ import { Badge as d, Button as f, Card as p, CardContent as m, CardDescription as h, CardHeader as g, CardTitle as _, GlassCard as v, GradientText as y, IllustratedEmptyState as b, NextSteps as x, PagePurpose as S } from "@burdenoff/fe-libs/ui";
5
6
  //#region src/crewfoundry/pages/HiringJobDetailsPagePage.tsx
6
- function _() {
7
- let { jobPostings: _, candidates: v } = e(), y = _[0];
8
- if (!y) return /* @__PURE__ */ c("div", {
9
- className: "p-6 text-center text-text-secondary",
10
- children: "No job posting found."
7
+ function C() {
8
+ let C = c(), { jobPostings: w, candidates: T } = e(), E = w[0];
9
+ if (!E) return /* @__PURE__ */ l("div", {
10
+ className: "p-6",
11
+ children: /* @__PURE__ */ l(b, {
12
+ illustration: "empty-search",
13
+ title: "No job posting found",
14
+ description: "This job posting is no longer available."
15
+ })
11
16
  });
12
- let b = v.filter((e) => e.position === y.title);
13
- return /* @__PURE__ */ l("div", {
17
+ let D = T.filter((e) => e.position === E.title);
18
+ return /* @__PURE__ */ u("div", {
14
19
  className: "space-y-6 p-6 max-w-4xl",
15
20
  children: [
16
- /* @__PURE__ */ l("div", {
21
+ /* @__PURE__ */ u("div", {
17
22
  className: "flex items-center justify-between",
18
- children: [/* @__PURE__ */ l("div", { children: [/* @__PURE__ */ l("div", {
19
- className: "flex items-center gap-2 mb-1",
20
- children: [/* @__PURE__ */ c("h1", {
21
- className: "text-2xl font-semibold",
22
- children: y.title
23
- }), /* @__PURE__ */ c(u, {
24
- variant: y.status === "active" ? "default" : "secondary",
25
- children: y.status
26
- })]
27
- }), /* @__PURE__ */ l("div", {
28
- className: "flex items-center gap-4 text-sm text-text-secondary",
29
- children: [
30
- /* @__PURE__ */ l("span", {
31
- className: "flex items-center gap-1",
32
- children: [/* @__PURE__ */ c(t, { className: "h-3 w-3" }), y.department]
33
- }),
34
- /* @__PURE__ */ l("span", {
35
- className: "flex items-center gap-1",
36
- children: [/* @__PURE__ */ c(a, { className: "h-3 w-3" }), y.location]
37
- }),
38
- /* @__PURE__ */ l("span", {
39
- className: "flex items-center gap-1",
40
- children: [
41
- /* @__PURE__ */ c(n, { className: "h-3 w-3" }),
42
- "Posted ",
43
- y.postedDate
44
- ]
45
- })
46
- ]
47
- })] }), /* @__PURE__ */ l("div", {
23
+ children: [/* @__PURE__ */ u("div", { children: [
24
+ /* @__PURE__ */ u("div", {
25
+ className: "flex items-center gap-2 mb-1",
26
+ children: [/* @__PURE__ */ l("h1", {
27
+ className: "text-2xl font-semibold",
28
+ children: /* @__PURE__ */ l(y, { children: E.title })
29
+ }), /* @__PURE__ */ l(d, {
30
+ variant: E.status === "active" ? "default" : "secondary",
31
+ children: E.status
32
+ })]
33
+ }),
34
+ /* @__PURE__ */ u("div", {
35
+ className: "flex items-center gap-4 text-sm text-text-secondary",
36
+ children: [
37
+ /* @__PURE__ */ u("span", {
38
+ className: "flex items-center gap-1",
39
+ children: [/* @__PURE__ */ l(t, { className: "h-3 w-3" }), E.department]
40
+ }),
41
+ /* @__PURE__ */ u("span", {
42
+ className: "flex items-center gap-1",
43
+ children: [/* @__PURE__ */ l(a, { className: "h-3 w-3" }), E.location]
44
+ }),
45
+ /* @__PURE__ */ u("span", {
46
+ className: "flex items-center gap-1",
47
+ children: [
48
+ /* @__PURE__ */ l(n, { className: "h-3 w-3" }),
49
+ "Posted ",
50
+ E.postedDate
51
+ ]
52
+ })
53
+ ]
54
+ }),
55
+ /* @__PURE__ */ l(S, {
56
+ className: "mt-2",
57
+ children: "Everything about this role in one place — review applicants, requirements, and compensation here to decide who to interview and keep the posting current."
58
+ })
59
+ ] }), /* @__PURE__ */ u("div", {
48
60
  className: "flex gap-2",
49
- children: [/* @__PURE__ */ l(d, {
61
+ children: [/* @__PURE__ */ u(f, {
50
62
  variant: "outline",
51
63
  size: "sm",
52
- children: [/* @__PURE__ */ c(o, { className: "h-4 w-4 mr-1" }), "Share"]
53
- }), /* @__PURE__ */ c(d, {
64
+ children: [/* @__PURE__ */ l(o, { className: "h-4 w-4 mr-1" }), "Share"]
65
+ }), /* @__PURE__ */ l(f, {
54
66
  size: "sm",
55
67
  children: "Edit Posting"
56
68
  })]
57
69
  })]
58
70
  }),
59
- /* @__PURE__ */ l("div", {
71
+ /* @__PURE__ */ l(x, {
72
+ storageKey: "crewfoundry-job-details",
73
+ steps: [
74
+ {
75
+ id: "applicants",
76
+ label: "Review applicants",
77
+ description: "Screen the candidates who applied for this role.",
78
+ icon: /* @__PURE__ */ l(s, { className: "h-4 w-4" }),
79
+ onClick: () => C("../../hiring/applications-page")
80
+ },
81
+ {
82
+ id: "interviews",
83
+ label: "Schedule interviews",
84
+ description: "Set up conversations with promising candidates.",
85
+ icon: /* @__PURE__ */ l(n, { className: "h-4 w-4" }),
86
+ onClick: () => C("../../hiring/interviews-page")
87
+ },
88
+ {
89
+ id: "candidates",
90
+ label: "Browse your talent pool",
91
+ description: "Source more candidates that fit this position.",
92
+ icon: /* @__PURE__ */ l(t, { className: "h-4 w-4" }),
93
+ onClick: () => C("../../hiring/candidates-page")
94
+ }
95
+ ]
96
+ }),
97
+ /* @__PURE__ */ u("div", {
60
98
  className: "grid gap-4 md:grid-cols-4",
61
99
  children: [
62
- /* @__PURE__ */ c(f, { children: /* @__PURE__ */ l(p, {
63
- className: "p-4 text-center",
64
- children: [
65
- /* @__PURE__ */ c(s, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
66
- /* @__PURE__ */ c("p", {
67
- className: "text-2xl font-bold",
68
- children: y.applicants
69
- }),
70
- /* @__PURE__ */ c("p", {
71
- className: "text-xs text-text-secondary",
72
- children: "Applicants"
73
- })
74
- ]
75
- }) }),
76
- /* @__PURE__ */ c(f, { children: /* @__PURE__ */ l(p, {
100
+ /* @__PURE__ */ l(v, {
101
+ treatment: "glass",
102
+ glow: !0,
103
+ className: "border-border-seam",
104
+ children: /* @__PURE__ */ u(m, {
105
+ className: "p-4 text-center",
106
+ children: [
107
+ /* @__PURE__ */ l(s, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
108
+ /* @__PURE__ */ l("p", {
109
+ className: "text-2xl font-bold tabular-nums",
110
+ children: E.applicants
111
+ }),
112
+ /* @__PURE__ */ l("p", {
113
+ className: "text-xs text-text-secondary",
114
+ children: "Applicants"
115
+ })
116
+ ]
117
+ })
118
+ }),
119
+ /* @__PURE__ */ l(p, { children: /* @__PURE__ */ u(m, {
77
120
  className: "p-4 text-center",
78
121
  children: [
79
- /* @__PURE__ */ c(i, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
80
- /* @__PURE__ */ l("p", {
122
+ /* @__PURE__ */ l(i, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
123
+ /* @__PURE__ */ u("p", {
81
124
  className: "text-lg font-bold",
82
125
  children: [
83
126
  "$",
84
- (y.salaryMin / 1e3).toFixed(0),
127
+ (E.salaryMin / 1e3).toFixed(0),
85
128
  "K-$",
86
- (y.salaryMax / 1e3).toFixed(0),
129
+ (E.salaryMax / 1e3).toFixed(0),
87
130
  "K"
88
131
  ]
89
132
  }),
90
- /* @__PURE__ */ c("p", {
133
+ /* @__PURE__ */ l("p", {
91
134
  className: "text-xs text-text-secondary",
92
135
  children: "Salary Range"
93
136
  })
94
137
  ]
95
138
  }) }),
96
- /* @__PURE__ */ c(f, { children: /* @__PURE__ */ l(p, {
139
+ /* @__PURE__ */ l(p, { children: /* @__PURE__ */ u(m, {
97
140
  className: "p-4 text-center",
98
141
  children: [
99
- /* @__PURE__ */ c(n, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
100
- /* @__PURE__ */ c("p", {
142
+ /* @__PURE__ */ l(n, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
143
+ /* @__PURE__ */ l("p", {
101
144
  className: "text-lg font-bold",
102
- children: y.deadline
145
+ children: E.deadline
103
146
  }),
104
- /* @__PURE__ */ c("p", {
147
+ /* @__PURE__ */ l("p", {
105
148
  className: "text-xs text-text-secondary",
106
149
  children: "Deadline"
107
150
  })
108
151
  ]
109
152
  }) }),
110
- /* @__PURE__ */ c(f, { children: /* @__PURE__ */ l(p, {
153
+ /* @__PURE__ */ l(p, { children: /* @__PURE__ */ u(m, {
111
154
  className: "p-4 text-center",
112
155
  children: [
113
- /* @__PURE__ */ c(r, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
114
- /* @__PURE__ */ c("p", {
156
+ /* @__PURE__ */ l(r, { className: "h-5 w-5 mx-auto text-text-secondary mb-1" }),
157
+ /* @__PURE__ */ l("p", {
115
158
  className: "text-lg font-bold",
116
- children: y.experienceLevel
159
+ children: E.experienceLevel
117
160
  }),
118
- /* @__PURE__ */ c("p", {
161
+ /* @__PURE__ */ l("p", {
119
162
  className: "text-xs text-text-secondary",
120
163
  children: "Level"
121
164
  })
@@ -123,48 +166,48 @@ function _() {
123
166
  }) })
124
167
  ]
125
168
  }),
126
- /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ c(h, { children: /* @__PURE__ */ c(g, { children: "Description" }) }), /* @__PURE__ */ c(p, { children: /* @__PURE__ */ c("p", {
169
+ /* @__PURE__ */ u(p, { children: [/* @__PURE__ */ l(g, { children: /* @__PURE__ */ l(_, { children: "Description" }) }), /* @__PURE__ */ l(m, { children: /* @__PURE__ */ l("p", {
127
170
  className: "text-sm text-text-secondary",
128
- children: y.description
171
+ children: E.description
129
172
  }) })] }),
130
- /* @__PURE__ */ l("div", {
173
+ /* @__PURE__ */ u("div", {
131
174
  className: "grid gap-4 md:grid-cols-2",
132
- children: [/* @__PURE__ */ l(f, { children: [/* @__PURE__ */ c(h, { children: /* @__PURE__ */ c(g, { children: "Requirements" }) }), /* @__PURE__ */ c(p, { children: /* @__PURE__ */ c("ul", {
175
+ children: [/* @__PURE__ */ u(p, { children: [/* @__PURE__ */ l(g, { children: /* @__PURE__ */ l(_, { children: "Requirements" }) }), /* @__PURE__ */ l(m, { children: /* @__PURE__ */ l("ul", {
133
176
  className: "space-y-2",
134
- children: y.requirements.map((e, t) => /* @__PURE__ */ l("li", {
177
+ children: E.requirements.map((e, t) => /* @__PURE__ */ u("li", {
135
178
  className: "flex items-start gap-2 text-sm",
136
- children: [/* @__PURE__ */ c(r, { className: "h-4 w-4 text-green-500 mt-0.5 flex-shrink-0" }), e]
179
+ children: [/* @__PURE__ */ l(r, { className: "h-4 w-4 text-status-success-text mt-0.5 flex-shrink-0" }), e]
137
180
  }, t))
138
- }) })] }), /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ c(h, { children: /* @__PURE__ */ c(g, { children: "Benefits" }) }), /* @__PURE__ */ c(p, { children: /* @__PURE__ */ c("ul", {
181
+ }) })] }), /* @__PURE__ */ u(p, { children: [/* @__PURE__ */ l(g, { children: /* @__PURE__ */ l(_, { children: "Benefits" }) }), /* @__PURE__ */ l(m, { children: /* @__PURE__ */ l("ul", {
139
182
  className: "space-y-2",
140
- children: y.benefits.map((e, t) => /* @__PURE__ */ l("li", {
183
+ children: E.benefits.map((e, t) => /* @__PURE__ */ u("li", {
141
184
  className: "flex items-start gap-2 text-sm",
142
- children: [/* @__PURE__ */ c(r, { className: "h-4 w-4 text-blue-500 mt-0.5 flex-shrink-0" }), e]
185
+ children: [/* @__PURE__ */ l(r, { className: "h-4 w-4 text-status-info-text mt-0.5 flex-shrink-0" }), e]
143
186
  }, t))
144
187
  }) })] })]
145
188
  }),
146
- b.length > 0 && /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ l(h, { children: [/* @__PURE__ */ c(g, { children: "Applicants for this Role" }), /* @__PURE__ */ l(m, { children: [b.length, " candidates"] })] }), /* @__PURE__ */ l(p, { children: [/* @__PURE__ */ l("div", {
189
+ D.length > 0 && /* @__PURE__ */ u(p, { children: [/* @__PURE__ */ u(g, { children: [/* @__PURE__ */ l(_, { children: "Applicants for this Role" }), /* @__PURE__ */ u(h, { children: [D.length, " candidates"] })] }), /* @__PURE__ */ u(m, { children: [/* @__PURE__ */ u("div", {
147
190
  className: "grid grid-cols-5 gap-2 text-xs font-medium text-text-secondary border-b pb-2 mb-2",
148
191
  children: [
149
- /* @__PURE__ */ c("span", { children: "Name" }),
150
- /* @__PURE__ */ c("span", { children: "Source" }),
151
- /* @__PURE__ */ c("span", {
192
+ /* @__PURE__ */ l("span", { children: "Name" }),
193
+ /* @__PURE__ */ l("span", { children: "Source" }),
194
+ /* @__PURE__ */ l("span", {
152
195
  className: "text-right",
153
196
  children: "Experience"
154
197
  }),
155
- /* @__PURE__ */ c("span", {
198
+ /* @__PURE__ */ l("span", {
156
199
  className: "text-center",
157
200
  children: "Rating"
158
201
  }),
159
- /* @__PURE__ */ c("span", {
202
+ /* @__PURE__ */ l("span", {
160
203
  className: "text-center",
161
204
  children: "Status"
162
205
  })
163
206
  ]
164
- }), b.map((e) => /* @__PURE__ */ l("div", {
207
+ }), D.map((e) => /* @__PURE__ */ u("div", {
165
208
  className: "grid grid-cols-5 gap-2 py-2 border-b last:border-0 text-sm",
166
209
  children: [
167
- /* @__PURE__ */ l("span", {
210
+ /* @__PURE__ */ u("span", {
168
211
  className: "font-medium",
169
212
  children: [
170
213
  e.firstName,
@@ -172,21 +215,21 @@ function _() {
172
215
  e.lastName
173
216
  ]
174
217
  }),
175
- /* @__PURE__ */ c("span", {
218
+ /* @__PURE__ */ l("span", {
176
219
  className: "text-text-secondary",
177
220
  children: e.source
178
221
  }),
179
- /* @__PURE__ */ l("span", {
222
+ /* @__PURE__ */ u("span", {
180
223
  className: "text-right",
181
224
  children: [e.experience, " yrs"]
182
225
  }),
183
- /* @__PURE__ */ l("div", {
226
+ /* @__PURE__ */ u("div", {
184
227
  className: "text-center",
185
228
  children: [e.rating, "/5"]
186
229
  }),
187
- /* @__PURE__ */ c("div", {
230
+ /* @__PURE__ */ l("div", {
188
231
  className: "text-center",
189
- children: /* @__PURE__ */ c(u, {
232
+ children: /* @__PURE__ */ l(d, {
190
233
  variant: e.status === "hired" ? "default" : "secondary",
191
234
  className: "text-[10px]",
192
235
  children: e.status
@@ -198,6 +241,6 @@ function _() {
198
241
  });
199
242
  }
200
243
  //#endregion
201
- export { _ as HiringJobDetailsPagePage };
244
+ export { C as HiringJobDetailsPagePage };
202
245
 
203
246
  //# sourceMappingURL=HiringJobDetailsPagePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HiringJobDetailsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HiringJobDetailsPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Separator,\n} from '@burdenoff/fe-libs/ui';\nimport { Briefcase, Calendar, CheckCircle, DollarSign, MapPin, Share2, Users } from 'lucide-react';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function HiringJobDetailsPagePage() {\n const { jobPostings, candidates } = useCrewFoundryStore();\n const job = jobPostings[0]; // Show first job as detail view\n\n if (!job) {\n return <div className=\"p-6 text-center text-text-secondary\">No job posting found.</div>;\n }\n\n const jobCandidates = candidates.filter((c) => c.position === job.title);\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 <div className=\"flex items-center gap-2 mb-1\">\n <h1 className=\"text-2xl font-semibold\">{job.title}</h1>\n <Badge variant={job.status === 'active' ? 'default' : 'secondary'}>{job.status}</Badge>\n </div>\n <div className=\"flex items-center gap-4 text-sm text-text-secondary\">\n <span className=\"flex items-center gap-1\">\n <Briefcase className=\"h-3 w-3\" />\n {job.department}\n </span>\n <span className=\"flex items-center gap-1\">\n <MapPin className=\"h-3 w-3\" />\n {job.location}\n </span>\n <span className=\"flex items-center gap-1\">\n <Calendar className=\"h-3 w-3\" />\n Posted {job.postedDate}\n </span>\n </div>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n <Share2 className=\"h-4 w-4 mr-1\" />\n Share\n </Button>\n <Button size=\"sm\">Edit Posting</Button>\n </div>\n </div>\n\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-2xl font-bold\">{job.applicants}</p>\n <p className=\"text-xs text-text-secondary\">Applicants</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <DollarSign className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">\n ${(job.salaryMin / 1000).toFixed(0)}K-${(job.salaryMax / 1000).toFixed(0)}K\n </p>\n <p className=\"text-xs text-text-secondary\">Salary Range</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\">{job.deadline}</p>\n <p className=\"text-xs text-text-secondary\">Deadline</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <CheckCircle className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{job.experienceLevel}</p>\n <p className=\"text-xs text-text-secondary\">Level</p>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Description</CardTitle>\n </CardHeader>\n <CardContent>\n <p className=\"text-sm text-text-secondary\">{job.description}</p>\n </CardContent>\n </Card>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle>Requirements</CardTitle>\n </CardHeader>\n <CardContent>\n <ul className=\"space-y-2\">\n {job.requirements.map((req, idx) => (\n <li key={idx} className=\"flex items-start gap-2 text-sm\">\n <CheckCircle className=\"h-4 w-4 text-green-500 mt-0.5 flex-shrink-0\" />\n {req}\n </li>\n ))}\n </ul>\n </CardContent>\n </Card>\n <Card>\n <CardHeader>\n <CardTitle>Benefits</CardTitle>\n </CardHeader>\n <CardContent>\n <ul className=\"space-y-2\">\n {job.benefits.map((ben, idx) => (\n <li key={idx} className=\"flex items-start gap-2 text-sm\">\n <CheckCircle className=\"h-4 w-4 text-blue-500 mt-0.5 flex-shrink-0\" />\n {ben}\n </li>\n ))}\n </ul>\n </CardContent>\n </Card>\n </div>\n\n {jobCandidates.length > 0 && (\n <Card>\n <CardHeader>\n <CardTitle>Applicants for this Role</CardTitle>\n <CardDescription>{jobCandidates.length} candidates</CardDescription>\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>Name</span>\n <span>Source</span>\n <span className=\"text-right\">Experience</span>\n <span className=\"text-center\">Rating</span>\n <span className=\"text-center\">Status</span>\n </div>\n {jobCandidates.map((c) => (\n <div\n key={c.id}\n className=\"grid grid-cols-5 gap-2 py-2 border-b last:border-0 text-sm\"\n >\n <span className=\"font-medium\">\n {c.firstName} {c.lastName}\n </span>\n <span className=\"text-text-secondary\">{c.source}</span>\n <span className=\"text-right\">{c.experience} yrs</span>\n <div className=\"text-center\">{c.rating}/5</div>\n <div className=\"text-center\">\n <Badge\n variant={c.status === 'hired' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {c.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":"HiringJobDetailsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HiringJobDetailsPagePage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n GlassCard,\n GradientText,\n IllustratedEmptyState,\n NextSteps,\n PagePurpose,\n} from '@burdenoff/fe-libs/ui';\nimport { Briefcase, Calendar, CheckCircle, DollarSign, MapPin, Share2, Users } from 'lucide-react';\nimport { useNavigate } from 'react-router-dom';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\nexport function HiringJobDetailsPagePage() {\n const navigate = useNavigate();\n const { jobPostings, candidates } = useCrewFoundryStore();\n const job = jobPostings[0]; // Show first job as detail view\n\n if (!job) {\n return (\n <div className=\"p-6\">\n <IllustratedEmptyState\n illustration=\"empty-search\"\n title=\"No job posting found\"\n description=\"This job posting is no longer available.\"\n />\n </div>\n );\n }\n\n const jobCandidates = candidates.filter((c) => c.position === job.title);\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 <div className=\"flex items-center gap-2 mb-1\">\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>{job.title}</GradientText>\n </h1>\n <Badge variant={job.status === 'active' ? 'default' : 'secondary'}>{job.status}</Badge>\n </div>\n <div className=\"flex items-center gap-4 text-sm text-text-secondary\">\n <span className=\"flex items-center gap-1\">\n <Briefcase className=\"h-3 w-3\" />\n {job.department}\n </span>\n <span className=\"flex items-center gap-1\">\n <MapPin className=\"h-3 w-3\" />\n {job.location}\n </span>\n <span className=\"flex items-center gap-1\">\n <Calendar className=\"h-3 w-3\" />\n Posted {job.postedDate}\n </span>\n </div>\n <PagePurpose className=\"mt-2\">\n Everything about this role in one place — review applicants, requirements, and\n compensation here to decide who to interview and keep the posting current.\n </PagePurpose>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n <Share2 className=\"h-4 w-4 mr-1\" />\n Share\n </Button>\n <Button size=\"sm\">Edit Posting</Button>\n </div>\n </div>\n\n <NextSteps\n storageKey=\"crewfoundry-job-details\"\n steps={[\n {\n id: 'applicants',\n label: 'Review applicants',\n description: 'Screen the candidates who applied for this role.',\n icon: <Users className=\"h-4 w-4\" />,\n onClick: () => navigate('../../hiring/applications-page'),\n },\n {\n id: 'interviews',\n label: 'Schedule interviews',\n description: 'Set up conversations with promising candidates.',\n icon: <Calendar className=\"h-4 w-4\" />,\n onClick: () => navigate('../../hiring/interviews-page'),\n },\n {\n id: 'candidates',\n label: 'Browse your talent pool',\n description: 'Source more candidates that fit this position.',\n icon: <Briefcase className=\"h-4 w-4\" />,\n onClick: () => navigate('../../hiring/candidates-page'),\n },\n ]}\n />\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <GlassCard treatment=\"glass\" glow className=\"border-border-seam\">\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-2xl font-bold tabular-nums\">{job.applicants}</p>\n <p className=\"text-xs text-text-secondary\">Applicants</p>\n </CardContent>\n </GlassCard>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <DollarSign className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">\n ${(job.salaryMin / 1000).toFixed(0)}K-${(job.salaryMax / 1000).toFixed(0)}K\n </p>\n <p className=\"text-xs text-text-secondary\">Salary Range</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\">{job.deadline}</p>\n <p className=\"text-xs text-text-secondary\">Deadline</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"p-4 text-center\">\n <CheckCircle className=\"h-5 w-5 mx-auto text-text-secondary mb-1\" />\n <p className=\"text-lg font-bold\">{job.experienceLevel}</p>\n <p className=\"text-xs text-text-secondary\">Level</p>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Description</CardTitle>\n </CardHeader>\n <CardContent>\n <p className=\"text-sm text-text-secondary\">{job.description}</p>\n </CardContent>\n </Card>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle>Requirements</CardTitle>\n </CardHeader>\n <CardContent>\n <ul className=\"space-y-2\">\n {job.requirements.map((req, idx) => (\n <li key={idx} className=\"flex items-start gap-2 text-sm\">\n <CheckCircle className=\"h-4 w-4 text-status-success-text mt-0.5 flex-shrink-0\" />\n {req}\n </li>\n ))}\n </ul>\n </CardContent>\n </Card>\n <Card>\n <CardHeader>\n <CardTitle>Benefits</CardTitle>\n </CardHeader>\n <CardContent>\n <ul className=\"space-y-2\">\n {job.benefits.map((ben, idx) => (\n <li key={idx} className=\"flex items-start gap-2 text-sm\">\n <CheckCircle className=\"h-4 w-4 text-status-info-text mt-0.5 flex-shrink-0\" />\n {ben}\n </li>\n ))}\n </ul>\n </CardContent>\n </Card>\n </div>\n\n {jobCandidates.length > 0 && (\n <Card>\n <CardHeader>\n <CardTitle>Applicants for this Role</CardTitle>\n <CardDescription>{jobCandidates.length} candidates</CardDescription>\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>Name</span>\n <span>Source</span>\n <span className=\"text-right\">Experience</span>\n <span className=\"text-center\">Rating</span>\n <span className=\"text-center\">Status</span>\n </div>\n {jobCandidates.map((c) => (\n <div\n key={c.id}\n className=\"grid grid-cols-5 gap-2 py-2 border-b last:border-0 text-sm\"\n >\n <span className=\"font-medium\">\n {c.firstName} {c.lastName}\n </span>\n <span className=\"text-text-secondary\">{c.source}</span>\n <span className=\"text-right\">{c.experience} yrs</span>\n <div className=\"text-center\">{c.rating}/5</div>\n <div className=\"text-center\">\n <Badge\n variant={c.status === 'hired' ? 'default' : 'secondary'}\n className=\"text-[10px]\"\n >\n {c.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;AAkBA,SAAgB,IAA2B;CACzC,IAAM,IAAW,GAAa,EACxB,EAAE,gBAAa,kBAAe,GAAqB,EACnD,IAAM,EAAY;AAExB,KAAI,CAAC,EACH,QACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,GAAD;GACE,cAAa;GACb,OAAM;GACN,aAAY;GACZ,CAAA;EACE,CAAA;CAIV,IAAM,IAAgB,EAAW,QAAQ,MAAM,EAAE,aAAa,EAAI,MAAM;AAExE,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD,EAAA,UAAA;KACE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,MAAD;OAAI,WAAU;iBACZ,kBAAC,GAAD,EAAA,UAAe,EAAI,OAAqB,CAAA;OACrC,CAAA,EACL,kBAAC,GAAD;OAAO,SAAS,EAAI,WAAW,WAAW,YAAY;iBAAc,EAAI;OAAe,CAAA,CACnF;;KACN,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,QAAD;QAAM,WAAU;kBAAhB,CACE,kBAAC,GAAD,EAAW,WAAU,WAAY,CAAA,EAChC,EAAI,WACA;;OACP,kBAAC,QAAD;QAAM,WAAU;kBAAhB,CACE,kBAAC,GAAD,EAAQ,WAAU,WAAY,CAAA,EAC7B,EAAI,SACA;;OACP,kBAAC,QAAD;QAAM,WAAU;kBAAhB;SACE,kBAAC,GAAD,EAAU,WAAU,WAAY,CAAA;;SACxB,EAAI;SACP;;OACH;;KACN,kBAAC,GAAD;MAAa,WAAU;gBAAO;MAGhB,CAAA;KACV,EAAA,CAAA,EACN,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD;MAAQ,SAAQ;MAAU,MAAK;gBAA/B,CACE,kBAAC,GAAD,EAAQ,WAAU,gBAAiB,CAAA,EAAA,QAE5B;SACT,kBAAC,GAAD;MAAQ,MAAK;gBAAK;MAAqB,CAAA,CACnC;OACF;;GAEN,kBAAC,GAAD;IACE,YAAW;IACX,OAAO;KACL;MACE,IAAI;MACJ,OAAO;MACP,aAAa;MACb,MAAM,kBAAC,GAAD,EAAO,WAAU,WAAY,CAAA;MACnC,eAAe,EAAS,iCAAiC;MAC1D;KACD;MACE,IAAI;MACJ,OAAO;MACP,aAAa;MACb,MAAM,kBAAC,GAAD,EAAU,WAAU,WAAY,CAAA;MACtC,eAAe,EAAS,+BAA+B;MACxD;KACD;MACE,IAAI;MACJ,OAAO;MACP,aAAa;MACb,MAAM,kBAAC,GAAD,EAAW,WAAU,WAAY,CAAA;MACvC,eAAe,EAAS,+BAA+B;MACxD;KACF;IACD,CAAA;GAEF,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD;MAAW,WAAU;MAAQ,MAAA;MAAK,WAAU;gBAC1C,kBAAC,GAAD;OAAa,WAAU;iBAAvB;QACE,kBAAC,GAAD,EAAO,WAAU,4CAA6C,CAAA;QAC9D,kBAAC,KAAD;SAAG,WAAU;mBAAmC,EAAI;SAAe,CAAA;QACnE,kBAAC,KAAD;SAAG,WAAU;mBAA8B;SAAc,CAAA;QAC7C;;MACJ,CAAA;KACZ,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB;OACE,kBAAC,GAAD,EAAY,WAAU,4CAA6C,CAAA;OACnE,kBAAC,KAAD;QAAG,WAAU;kBAAb;SAAiC;UAC5B,EAAI,YAAY,KAAM,QAAQ,EAAE;SAAC;UAAK,EAAI,YAAY,KAAM,QAAQ,EAAE;SAAC;SACxE;;OACJ,kBAAC,KAAD;QAAG,WAAU;kBAA8B;QAAgB,CAAA;OAC/C;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,EAAI;QAAa,CAAA;OACnD,kBAAC,KAAD;QAAG,WAAU;kBAA8B;QAAY,CAAA;OAC3C;SACT,CAAA;KACP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB;OACE,kBAAC,GAAD,EAAa,WAAU,4CAA6C,CAAA;OACpE,kBAAC,KAAD;QAAG,WAAU;kBAAqB,EAAI;QAAoB,CAAA;OAC1D,kBAAC,KAAD;QAAG,WAAU;kBAA8B;QAAS,CAAA;OACxC;SACT,CAAA;KACH;;GAEN,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAW,eAAuB,CAAA,EACvB,CAAA,EACb,kBAAC,GAAD,EAAA,UACE,kBAAC,KAAD;IAAG,WAAU;cAA+B,EAAI;IAAgB,CAAA,EACpD,CAAA,CACT,EAAA,CAAA;GAEP,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAW,gBAAwB,CAAA,EACxB,CAAA,EACb,kBAAC,GAAD,EAAA,UACE,kBAAC,MAAD;KAAI,WAAU;eACX,EAAI,aAAa,KAAK,GAAK,MAC1B,kBAAC,MAAD;MAAc,WAAU;gBAAxB,CACE,kBAAC,GAAD,EAAa,WAAU,yDAA0D,CAAA,EAChF,EACE;QAHI,EAGJ,CACL;KACC,CAAA,EACO,CAAA,CACT,EAAA,CAAA,EACP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAW,YAAoB,CAAA,EACpB,CAAA,EACb,kBAAC,GAAD,EAAA,UACE,kBAAC,MAAD;KAAI,WAAU;eACX,EAAI,SAAS,KAAK,GAAK,MACtB,kBAAC,MAAD;MAAc,WAAU;gBAAxB,CACE,kBAAC,GAAD,EAAa,WAAU,sDAAuD,CAAA,EAC7E,EACE;QAHI,EAGJ,CACL;KACC,CAAA,EACO,CAAA,CACT,EAAA,CAAA,CACH;;GAEL,EAAc,SAAS,KACtB,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UAAW,4BAAoC,CAAA,EAC/C,kBAAC,GAAD,EAAA,UAAA,CAAkB,EAAc,QAAO,cAA6B,EAAA,CAAA,CACzD,EAAA,CAAA,EACb,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,QAAD,EAAA,UAAM,QAAW,CAAA;KACjB,kBAAC,QAAD,EAAA,UAAM,UAAa,CAAA;KACnB,kBAAC,QAAD;MAAM,WAAU;gBAAa;MAAiB,CAAA;KAC9C,kBAAC,QAAD;MAAM,WAAU;gBAAc;MAAa,CAAA;KAC3C,kBAAC,QAAD;MAAM,WAAU;gBAAc;MAAa,CAAA;KACvC;OACL,EAAc,KAAK,MAClB,kBAAC,OAAD;IAEE,WAAU;cAFZ;KAIE,kBAAC,QAAD;MAAM,WAAU;gBAAhB;OACG,EAAE;OAAU;OAAE,EAAE;OACZ;;KACP,kBAAC,QAAD;MAAM,WAAU;gBAAuB,EAAE;MAAc,CAAA;KACvD,kBAAC,QAAD;MAAM,WAAU;gBAAhB,CAA8B,EAAE,YAAW,OAAW;;KACtD,kBAAC,OAAD;MAAK,WAAU;gBAAf,CAA8B,EAAE,QAAO,KAAQ;;KAC/C,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,GAAD;OACE,SAAS,EAAE,WAAW,UAAU,YAAY;OAC5C,WAAU;iBAET,EAAE;OACG,CAAA;MACJ,CAAA;KACF;MAjBC,EAAE,GAiBH,CACN,CACU,EAAA,CAAA,CACT,EAAA,CAAA;GAEL"}