@burdenoff/microfe-crewfoundry 2026.703.1 → 2026.704.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/dist/crewfoundry/pages/AdminAdminPagePage.js +117 -164
  2. package/dist/crewfoundry/pages/AdminAdminPagePage.js.map +1 -1
  3. package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js +99 -82
  4. package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js.map +1 -1
  5. package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js +160 -192
  6. package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js.map +1 -1
  7. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js +238 -231
  8. package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js.map +1 -1
  9. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +196 -166
  10. package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -1
  11. package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js +45 -147
  12. package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js.map +1 -1
  13. package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js +20 -11
  14. package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js.map +1 -1
  15. package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js +45 -152
  16. package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js.map +1 -1
  17. package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js +50 -138
  18. package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js.map +1 -1
  19. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js +149 -67
  20. package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js.map +1 -1
  21. package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js +50 -201
  22. package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js.map +1 -1
  23. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +205 -136
  24. package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -1
  25. package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js +25 -31
  26. package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js.map +1 -1
  27. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js +118 -104
  28. package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js.map +1 -1
  29. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +117 -58
  30. package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -1
  31. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js +90 -94
  32. package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js.map +1 -1
  33. package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +210 -191
  34. package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -1
  35. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +213 -180
  36. package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -1
  37. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +133 -264
  38. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -1
  39. package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js +279 -212
  40. package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js.map +1 -1
  41. package/dist/crewfoundry/pages/HiringApplicationsPagePage.js +131 -105
  42. package/dist/crewfoundry/pages/HiringApplicationsPagePage.js.map +1 -1
  43. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +167 -148
  44. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
  45. package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +3 -3
  46. package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -1
  47. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +13 -5
  48. package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -1
  49. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +151 -152
  50. package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -1
  51. package/dist/crewfoundry/pages/HiringJobsPagePage.js +38 -21
  52. package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -1
  53. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +3 -3
  54. package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -1
  55. package/dist/crewfoundry/pages/HrEmployeesPagePage.js +134 -127
  56. package/dist/crewfoundry/pages/HrEmployeesPagePage.js.map +1 -1
  57. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +163 -132
  58. package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -1
  59. package/dist/crewfoundry/pages/HrPayrollPagePage.js +202 -160
  60. package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -1
  61. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +104 -91
  62. package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -1
  63. package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js +29 -147
  64. package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js.map +1 -1
  65. package/dist/crewfoundry/pages/LearningCertificatesPagePage.js +22 -106
  66. package/dist/crewfoundry/pages/LearningCertificatesPagePage.js.map +1 -1
  67. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +74 -74
  68. package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -1
  69. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js +101 -97
  70. package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js.map +1 -1
  71. package/dist/crewfoundry/pages/LearningCoursesPagePage.js +64 -47
  72. package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -1
  73. package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js +111 -121
  74. package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js.map +1 -1
  75. package/dist/crewfoundry/pages/LearningLearningPagePage.js +131 -110
  76. package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -1
  77. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +65 -64
  78. package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -1
  79. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +58 -43
  80. package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -1
  81. package/dist/crewfoundry/pages/LearningMyLearningPagePage.js +66 -82
  82. package/dist/crewfoundry/pages/LearningMyLearningPagePage.js.map +1 -1
  83. package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js +38 -88
  84. package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js.map +1 -1
  85. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js +59 -65
  86. package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js.map +1 -1
  87. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js +209 -323
  88. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js.map +1 -1
  89. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js +175 -220
  90. package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js.map +1 -1
  91. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js +74 -59
  92. package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -1
  93. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js +96 -80
  94. package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js.map +1 -1
  95. package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js +28 -100
  96. package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js.map +1 -1
  97. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +27 -20
  98. package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -1
  99. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js +73 -73
  100. package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js.map +1 -1
  101. package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js +62 -56
  102. package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js.map +1 -1
  103. package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js +40 -138
  104. package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js.map +1 -1
  105. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +126 -93
  106. package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -1
  107. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js +99 -77
  108. package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -1
  109. package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js +73 -74
  110. package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js.map +1 -1
  111. package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js +1 -1
  112. package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js.map +1 -1
  113. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js +122 -122
  114. package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -1
  115. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +130 -113
  116. package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -1
  117. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js +68 -59
  118. package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -1
  119. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js +73 -62
  120. package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js.map +1 -1
  121. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js +82 -58
  122. package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js.map +1 -1
  123. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +153 -153
  124. package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -1
  125. package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +63 -48
  126. package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -1
  127. package/dist/crewfoundry/store/crewfoundryStore.js +35 -3
  128. package/dist/crewfoundry/store/crewfoundryStore.js.map +1 -1
  129. package/package.json +1 -1
@@ -1,133 +1,195 @@
1
1
  import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
2
2
  import { useMemo as t, useState as n } from "react";
3
- import { BookOpen as r, ChevronRight as i, Code2 as a, Copy as o, ExternalLink as s, Lock as c, Search as l, Server as u, Zap as d } from "lucide-react";
3
+ import { Check as r, ChevronRight as i, Code2 as a, Copy as o, Database as s, ListTree as c, Lock as l, Network as u, Search as d } from "lucide-react";
4
4
  import { jsx as f, jsxs as p } from "react/jsx-runtime";
5
5
  import { Badge as m, Button as h, Card as g, CardContent as _, CardDescription as v, CardHeader as y, CardTitle as b, EmphasisPanel as x, GradientText as S, IllustratedEmptyState as C, Input as w, PagePurpose as T } from "@burdenoff/fe-libs/ui";
6
+ import { useGlobalUi as E } from "@burdenoff/fe-libs/shared/providers/shell";
6
7
  //#region src/crewfoundry/pages/HelpApiDocumentationPagePage.tsx
7
- var E = {
8
- GET: "bg-status-success-bg text-status-success-text",
9
- POST: "bg-status-info-bg text-status-info-text",
10
- PATCH: "bg-status-warning-bg text-status-warning-text",
11
- DELETE: "bg-status-error-bg text-status-error-text"
8
+ var D = "https://graphqlworkspaces.burdenoff.com/workspaces/graphql", O = [
9
+ {
10
+ name: "Announcement",
11
+ domain: "Communications"
12
+ },
13
+ {
14
+ name: "Candidate",
15
+ domain: "Hiring"
16
+ },
17
+ {
18
+ name: "Client",
19
+ domain: "Finance"
20
+ },
21
+ {
22
+ name: "Course",
23
+ domain: "Learning"
24
+ },
25
+ {
26
+ name: "Department",
27
+ domain: "HR"
28
+ },
29
+ {
30
+ name: "Employee",
31
+ domain: "HR"
32
+ },
33
+ {
34
+ name: "Interview",
35
+ domain: "Hiring"
36
+ },
37
+ {
38
+ name: "Invoice",
39
+ domain: "Finance"
40
+ },
41
+ {
42
+ name: "JobPosting",
43
+ domain: "Hiring"
44
+ },
45
+ {
46
+ name: "LearningPath",
47
+ domain: "Learning"
48
+ },
49
+ {
50
+ name: "LeaveRequest",
51
+ domain: "HR"
52
+ },
53
+ {
54
+ name: "MarketplaceService",
55
+ domain: "Marketplace"
56
+ },
57
+ {
58
+ name: "PayrollRecord",
59
+ domain: "Finance"
60
+ },
61
+ {
62
+ name: "Project",
63
+ domain: "Projects"
64
+ },
65
+ {
66
+ name: "Team",
67
+ domain: "Teams"
68
+ },
69
+ {
70
+ name: "TimeEntry",
71
+ domain: "HR"
72
+ },
73
+ {
74
+ name: "Vendor",
75
+ domain: "Finance"
76
+ }
77
+ ], k = {
78
+ Query: "bg-status-success-bg text-status-success-text",
79
+ Mutation: "bg-status-info-bg text-status-info-text"
80
+ }, A = (e) => e.replace(/([a-z])([A-Z])/g, "$1 $2").toLowerCase(), j = async (e) => {
81
+ try {
82
+ if (typeof navigator < "u" && navigator.clipboard?.writeText) return await navigator.clipboard.writeText(e), !0;
83
+ } catch {}
84
+ try {
85
+ if (typeof document > "u") return !1;
86
+ let t = document.createElement("textarea");
87
+ t.value = e, t.style.position = "fixed", t.style.opacity = "0", document.body.appendChild(t), t.focus(), t.select();
88
+ let n = document.execCommand("copy");
89
+ return document.body.removeChild(t), n;
90
+ } catch {
91
+ return !1;
92
+ }
12
93
  };
13
- function D() {
14
- let { employees: D, jobPostings: O, candidates: k, payrollRecords: A, leaveRequests: j } = e(), [M, N] = n(""), [P, F] = n(null), I = t(() => [
15
- {
16
- name: "Employees",
17
- version: "v2",
18
- endpoints: [
19
- {
20
- method: "GET",
21
- path: "/api/v2/employees",
22
- description: `List all employees (${D.length} records) with pagination and filters`
23
- },
24
- {
25
- method: "POST",
26
- path: "/api/v2/employees",
27
- description: "Create a new employee record"
28
- },
29
- {
30
- method: "GET",
31
- path: "/api/v2/employees/:id",
32
- description: "Get employee details by ID"
33
- },
34
- {
35
- method: "PATCH",
36
- path: "/api/v2/employees/:id",
37
- description: "Update employee information"
38
- },
39
- {
40
- method: "DELETE",
41
- path: "/api/v2/employees/:id",
42
- description: "Deactivate an employee record"
43
- }
44
- ]
45
- },
46
- {
47
- name: "Hiring",
48
- version: "v2",
49
- endpoints: [
50
- {
51
- method: "GET",
52
- path: "/api/v2/jobs",
53
- description: `List all job postings (${O.length} total)`
54
- },
55
- {
56
- method: "POST",
57
- path: "/api/v2/jobs",
58
- description: "Create a new job posting"
59
- },
60
- {
61
- method: "GET",
62
- path: "/api/v2/candidates",
63
- description: `List candidates (${k.length}) with pipeline filters`
64
- },
65
- {
66
- method: "POST",
67
- path: "/api/v2/candidates",
68
- description: "Add a new candidate to the pipeline"
69
- }
70
- ]
71
- },
72
- {
73
- name: "Payroll",
74
- version: "v1",
75
- endpoints: [
76
- {
77
- method: "GET",
78
- path: "/api/v1/payroll/records",
79
- description: `List payroll records by period (${A.length} loaded)`
80
- },
81
- {
82
- method: "POST",
83
- path: "/api/v1/payroll/run",
84
- description: "Trigger payroll processing"
85
- },
86
- {
87
- method: "GET",
88
- path: "/api/v1/payroll/reports",
89
- description: "Generate payroll reports"
90
- }
91
- ]
92
- },
93
- {
94
- name: "Leave",
95
- version: "v2",
96
- endpoints: [
97
- {
98
- method: "GET",
99
- path: "/api/v2/leave/requests",
100
- description: `List leave requests with status filters (${j.length} total)`
101
- },
102
- {
103
- method: "POST",
104
- path: "/api/v2/leave/requests",
105
- description: "Submit a new leave request"
106
- },
107
- {
108
- method: "PATCH",
109
- path: "/api/v2/leave/requests/:id/approve",
110
- description: "Approve a leave request"
111
- }
112
- ]
113
- }
114
- ], [
115
- k.length,
116
- D.length,
117
- O.length,
118
- j.length,
119
- A.length
120
- ]), L = (e) => {
121
- F(e), setTimeout(() => F(null), 1500);
122
- }, R = I.map((e) => ({
123
- ...e,
124
- endpoints: e.endpoints.filter((e) => e.path.toLowerCase().includes(M.toLowerCase()) || e.description.toLowerCase().includes(M.toLowerCase()))
125
- })).filter((e) => e.endpoints.length > 0);
94
+ function M() {
95
+ let { employees: M, jobPostings: N, candidates: P, payrollRecords: F, leaveRequests: I } = e(), { showToast: L } = E(), [R, z] = n(""), [B, V] = n(null), H = t(() => {
96
+ let e = O.map((e) => ({
97
+ kind: "Mutation",
98
+ name: `createCrew${e.name}`,
99
+ signature: `createCrew${e.name}(input: CreateCrew${e.name}Input!): Crew${e.name}!`,
100
+ description: `Create a ${A(e.name)} record (${e.domain}).`
101
+ })), t = O.map((e) => ({
102
+ kind: "Mutation",
103
+ name: `updateCrew${e.name}`,
104
+ signature: `updateCrew${e.name}(id: ID!, input: UpdateCrew${e.name}Input!): Crew${e.name}!`,
105
+ description: `Update an existing ${A(e.name)} record (${e.domain}).`
106
+ })), n = O.map((e) => ({
107
+ kind: "Mutation",
108
+ name: `removeCrew${e.name}`,
109
+ signature: `removeCrew${e.name}(id: ID!): Boolean!`,
110
+ description: `Delete a ${A(e.name)} record (${e.domain}).`
111
+ }));
112
+ return [
113
+ {
114
+ id: "queries",
115
+ name: "Queries",
116
+ description: "Read the workspace dataset",
117
+ operations: [{
118
+ kind: "Query",
119
+ name: "crewfoundryBootstrap",
120
+ signature: "crewfoundryBootstrap: CrewfoundryBootstrap!",
121
+ description: `Load the full workspace dataset in one call — ${M.length} employees, ${N.length} job postings, ${P.length} candidates, ${F.length} payroll records, ${I.length} leave requests, and every other CrewFoundry collection.`
122
+ }]
123
+ },
124
+ {
125
+ id: "create",
126
+ name: "Create mutations",
127
+ description: "Add new records",
128
+ operations: e
129
+ },
130
+ {
131
+ id: "update",
132
+ name: "Update mutations",
133
+ description: "Modify existing records",
134
+ operations: t
135
+ },
136
+ {
137
+ id: "delete",
138
+ name: "Delete mutations",
139
+ description: "Remove records",
140
+ operations: n
141
+ },
142
+ {
143
+ id: "workflow",
144
+ name: "Workflow mutations",
145
+ description: "Enrollment & notifications",
146
+ operations: [
147
+ {
148
+ kind: "Mutation",
149
+ name: "enrollCrewCourse",
150
+ signature: "enrollCrewCourse(id: ID!): CrewCourse!",
151
+ description: "Enroll the current member into a learning course."
152
+ },
153
+ {
154
+ kind: "Mutation",
155
+ name: "markCrewNotificationRead",
156
+ signature: "markCrewNotificationRead(id: ID!): Boolean!",
157
+ description: "Mark a single notification as read."
158
+ },
159
+ {
160
+ kind: "Mutation",
161
+ name: "markAllCrewNotificationsRead",
162
+ signature: "markAllCrewNotificationsRead: Boolean!",
163
+ description: "Mark every notification as read."
164
+ }
165
+ ]
166
+ }
167
+ ];
168
+ }, [
169
+ P.length,
170
+ M.length,
171
+ N.length,
172
+ I.length,
173
+ F.length
174
+ ]), U = t(() => H.reduce((e, t) => e + t.operations.length, 0), [H]), W = t(() => {
175
+ let e = R.trim().toLowerCase();
176
+ return e ? H.map((t) => ({
177
+ ...t,
178
+ operations: t.operations.filter((t) => t.name.toLowerCase().includes(e) || t.signature.toLowerCase().includes(e) || t.description.toLowerCase().includes(e))
179
+ })).filter((e) => e.operations.length > 0) : H;
180
+ }, [H, R]), G = async (e) => {
181
+ await j(e) ? (V(e), L("Copied to clipboard", "success"), window.setTimeout(() => V((t) => t === e ? null : t), 1500)) : L("Unable to copy to clipboard", "error");
182
+ }, K = (e) => {
183
+ (typeof document < "u" ? document.getElementById(`group-${e}`) : null)?.scrollIntoView({
184
+ behavior: "smooth",
185
+ block: "start"
186
+ });
187
+ };
126
188
  return /* @__PURE__ */ p("div", {
127
189
  className: "space-y-6 p-6",
128
190
  children: [
129
191
  /* @__PURE__ */ p("div", {
130
- className: "flex items-center justify-between",
192
+ className: "flex flex-col gap-3 md:flex-row md:items-start md:justify-between",
131
193
  children: [/* @__PURE__ */ p("div", { children: [
132
194
  /* @__PURE__ */ f("h1", {
133
195
  className: "text-2xl font-semibold",
@@ -135,21 +197,24 @@ function D() {
135
197
  }),
136
198
  /* @__PURE__ */ f("p", {
137
199
  className: "text-sm text-text-secondary",
138
- children: "CrewFoundry REST API reference for integrations"
200
+ children: "CrewFoundry GraphQL API reference for integrations"
139
201
  }),
140
202
  /* @__PURE__ */ f(T, {
141
203
  className: "mt-1",
142
- children: "Browse the CrewFoundry API reference — use it to find endpoints, understand request formats, and integrate CrewFoundry with your own tools."
204
+ children: "Browse the CrewFoundry API reference — use it to find operations, understand request formats, and integrate CrewFoundry with your own tools."
143
205
  })
144
206
  ] }), /* @__PURE__ */ p("div", {
145
- className: "flex gap-2",
207
+ className: "flex flex-wrap items-center gap-2",
146
208
  children: [/* @__PURE__ */ f(m, {
147
209
  variant: "secondary",
148
- children: "Base URL: api.crewfoundry.com"
210
+ className: "max-w-full truncate font-mono text-[10px]",
211
+ children: D
149
212
  }), /* @__PURE__ */ p(h, {
150
213
  size: "sm",
151
214
  variant: "outline",
152
- children: [/* @__PURE__ */ f(s, { className: "h-3 w-3 mr-1" }), "OpenAPI Spec"]
215
+ "aria-label": "Copy the GraphQL endpoint URL",
216
+ onClick: () => void G(D),
217
+ children: [B === D ? /* @__PURE__ */ f(r, { className: "mr-1 h-3 w-3 text-status-success-text" }) : /* @__PURE__ */ f(o, { className: "mr-1 h-3 w-3" }), "Copy endpoint"]
153
218
  })]
154
219
  })]
155
220
  }),
@@ -158,37 +223,40 @@ function D() {
158
223
  children: [
159
224
  {
160
225
  icon: u,
161
- label: "REST API",
162
- value: "v2.1.0",
226
+ label: "Protocol",
227
+ value: "GraphQL",
163
228
  color: "text-status-info-text"
164
229
  },
165
230
  {
166
231
  icon: a,
167
- label: "GraphQL",
168
- value: "Federation v2",
232
+ label: "Composition",
233
+ value: "Apollo Federation v2",
169
234
  color: "text-action-primary-bg"
170
235
  },
171
236
  {
172
- icon: c,
237
+ icon: l,
173
238
  label: "Auth",
174
- value: "OAuth 2.0 + JWT",
239
+ value: "Bearer token",
175
240
  color: "text-status-success-text"
176
241
  },
177
242
  {
178
- icon: d,
179
- label: "Rate Limit",
180
- value: "1,000 req/min",
243
+ icon: c,
244
+ label: "Operations",
245
+ value: String(U),
181
246
  color: "text-status-warning-text"
182
247
  }
183
248
  ].map((e) => /* @__PURE__ */ f(g, { children: /* @__PURE__ */ p(_, {
184
249
  className: "flex items-center gap-3 pt-6",
185
- children: [/* @__PURE__ */ f(e.icon, { className: `h-5 w-5 ${e.color}` }), /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("p", {
186
- className: "text-xs text-text-secondary",
187
- children: e.label
188
- }), /* @__PURE__ */ f("p", {
189
- className: "text-sm font-medium",
190
- children: e.value
191
- })] })]
250
+ children: [/* @__PURE__ */ f(e.icon, { className: `h-5 w-5 ${e.color}` }), /* @__PURE__ */ p("div", {
251
+ className: "min-w-0",
252
+ children: [/* @__PURE__ */ f("p", {
253
+ className: "text-xs text-text-secondary",
254
+ children: e.label
255
+ }), /* @__PURE__ */ f("p", {
256
+ className: "truncate text-sm font-medium",
257
+ children: e.value
258
+ })]
259
+ })]
192
260
  }) }, e.label))
193
261
  }),
194
262
  /* @__PURE__ */ p("div", {
@@ -197,34 +265,25 @@ function D() {
197
265
  className: "space-y-4",
198
266
  children: [/* @__PURE__ */ p(x, { children: [/* @__PURE__ */ f("div", {
199
267
  className: "mb-2 text-sm font-semibold",
200
- children: "Quick Start"
268
+ children: "Jump to"
201
269
  }), /* @__PURE__ */ f("div", {
202
270
  className: "space-y-2",
203
- children: [
204
- {
205
- icon: r,
206
- label: "Authentication Guide"
207
- },
208
- {
209
- icon: a,
210
- label: "SDK Reference"
211
- },
212
- {
213
- icon: d,
214
- label: "Webhooks"
215
- },
216
- {
217
- icon: u,
218
- label: "Rate Limiting"
219
- }
220
- ].map((e) => /* @__PURE__ */ p("button", {
221
- className: "flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-sm hover:bg-bg-sunken transition-colors",
271
+ children: H.map((e) => /* @__PURE__ */ p("button", {
272
+ type: "button",
273
+ "aria-label": `Jump to ${e.name}`,
274
+ onClick: () => K(e.id),
275
+ className: "flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors hover:bg-bg-sunken",
222
276
  children: [
223
- /* @__PURE__ */ f(e.icon, { className: "h-3 w-3 text-text-secondary" }),
224
- /* @__PURE__ */ f("span", { children: e.label }),
225
- /* @__PURE__ */ f(i, { className: "h-3 w-3 ml-auto text-text-secondary" })
277
+ /* @__PURE__ */ f(c, { className: "h-3 w-3 text-text-secondary" }),
278
+ /* @__PURE__ */ f("span", { children: e.name }),
279
+ /* @__PURE__ */ f(m, {
280
+ variant: "outline",
281
+ className: "ml-auto text-[10px]",
282
+ children: e.operations.length
283
+ }),
284
+ /* @__PURE__ */ f(i, { className: "h-3 w-3 text-text-secondary" })
226
285
  ]
227
- }, e.label))
286
+ }, e.id))
228
287
  })] }), /* @__PURE__ */ p(g, { children: [/* @__PURE__ */ f(y, { children: /* @__PURE__ */ f(b, {
229
288
  className: "text-sm",
230
289
  children: "Authentication"
@@ -233,69 +292,77 @@ function D() {
233
292
  children: [/* @__PURE__ */ f("div", {
234
293
  className: "rounded-md bg-bg-sunken p-3",
235
294
  children: /* @__PURE__ */ p("code", {
236
- className: "text-xs font-mono",
295
+ className: "font-mono text-xs",
237
296
  children: ["Authorization: Bearer ", "<token>"]
238
297
  })
239
298
  }), /* @__PURE__ */ f("p", {
240
299
  className: "text-xs text-text-secondary",
241
- children: "All API requests require a valid JWT token obtained through the OAuth 2.0 flow."
300
+ children: "Requests are authenticated at the gateway edge. Send your session bearer token on every request; the gateway resolves the actor and enforces workspace-scoped RBAC before the subgraph runs."
242
301
  })]
243
302
  })] })]
244
303
  }), /* @__PURE__ */ p("div", {
245
- className: "lg:col-span-3 space-y-4",
304
+ className: "space-y-4 lg:col-span-3",
246
305
  children: [
247
306
  /* @__PURE__ */ p("div", {
248
307
  className: "relative max-w-md",
249
- children: [/* @__PURE__ */ f(l, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-text-secondary" }), /* @__PURE__ */ f(w, {
250
- placeholder: "Search endpoints...",
308
+ children: [/* @__PURE__ */ f(d, { className: "absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2 text-text-secondary" }), /* @__PURE__ */ f(w, {
309
+ placeholder: "Search operations...",
251
310
  className: "pl-9",
252
- value: M,
253
- onChange: (e) => N(e.target.value)
311
+ value: R,
312
+ onChange: (e) => z(e.target.value)
254
313
  })]
255
314
  }),
256
- R.map((e) => /* @__PURE__ */ p(g, { children: [/* @__PURE__ */ p(y, { children: [/* @__PURE__ */ p("div", {
257
- className: "flex items-center gap-2",
258
- children: [/* @__PURE__ */ f(b, {
259
- className: "text-base",
260
- children: e.name
261
- }), /* @__PURE__ */ f(m, {
262
- variant: "outline",
263
- className: "text-[10px]",
264
- children: e.version
315
+ W.map((e) => /* @__PURE__ */ p(g, {
316
+ id: `group-${e.id}`,
317
+ className: "scroll-mt-6",
318
+ children: [/* @__PURE__ */ p(y, { children: [/* @__PURE__ */ p("div", {
319
+ className: "flex items-center gap-2",
320
+ children: [/* @__PURE__ */ f(s, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ f(b, {
321
+ className: "text-base",
322
+ children: e.name
323
+ })]
324
+ }), /* @__PURE__ */ p(v, { children: [
325
+ e.description,
326
+ " · ",
327
+ e.operations.length,
328
+ " operations"
329
+ ] })] }), /* @__PURE__ */ f(_, {
330
+ className: "p-0",
331
+ children: e.operations.map((t, n) => /* @__PURE__ */ p("div", {
332
+ className: `flex items-center gap-3 px-6 py-3 hover:bg-bg-sunken/50 ${n < e.operations.length - 1 ? "border-b" : ""}`,
333
+ children: [
334
+ /* @__PURE__ */ f(m, {
335
+ className: `${k[t.kind]} min-w-[64px] justify-center border-0 font-mono text-[10px]`,
336
+ children: t.kind
337
+ }),
338
+ /* @__PURE__ */ p("div", {
339
+ className: "min-w-0 flex-1",
340
+ children: [/* @__PURE__ */ f("code", {
341
+ className: "block truncate font-mono text-sm",
342
+ children: t.signature
343
+ }), /* @__PURE__ */ f("span", {
344
+ className: "text-xs text-text-secondary",
345
+ children: t.description
346
+ })]
347
+ }),
348
+ /* @__PURE__ */ f(h, {
349
+ variant: "ghost",
350
+ size: "sm",
351
+ className: "h-6 w-6 shrink-0 p-0",
352
+ "aria-label": `Copy ${t.name} operation name`,
353
+ onClick: () => void G(t.name),
354
+ children: B === t.name ? /* @__PURE__ */ f(r, { className: "h-3 w-3 text-status-success-text" }) : /* @__PURE__ */ f(o, { className: "h-3 w-3 text-text-secondary" })
355
+ })
356
+ ]
357
+ }, t.name))
265
358
  })]
266
- }), /* @__PURE__ */ p(v, { children: [e.endpoints.length, " endpoints"] })] }), /* @__PURE__ */ f(_, {
267
- className: "p-0",
268
- children: e.endpoints.map((t, n) => /* @__PURE__ */ p("div", {
269
- className: `flex items-center gap-3 px-6 py-3 hover:bg-bg-sunken/50 cursor-pointer ${n < e.endpoints.length - 1 ? "border-b" : ""}`,
270
- children: [
271
- /* @__PURE__ */ f(m, {
272
- className: `${E[t.method]} text-[10px] font-mono border-0 min-w-[50px] justify-center`,
273
- children: t.method
274
- }),
275
- /* @__PURE__ */ f("code", {
276
- className: "text-sm font-mono flex-1",
277
- children: t.path
278
- }),
279
- /* @__PURE__ */ f("span", {
280
- className: "text-xs text-text-secondary hidden lg:block max-w-[250px] truncate",
281
- children: t.description
282
- }),
283
- /* @__PURE__ */ f(h, {
284
- variant: "ghost",
285
- size: "sm",
286
- className: "h-6 w-6 p-0",
287
- onClick: () => L(t.path),
288
- children: /* @__PURE__ */ f(o, { className: `h-3 w-3 ${P === t.path ? "text-status-success-text" : "text-text-secondary"}` })
289
- })
290
- ]
291
- }, t.path + t.method))
292
- })] }, e.name)),
293
- R.length === 0 && /* @__PURE__ */ f("div", {
359
+ }, e.id)),
360
+ W.length === 0 && /* @__PURE__ */ f("div", {
294
361
  className: "py-6",
295
362
  children: /* @__PURE__ */ f(C, {
296
363
  illustration: "empty-search",
297
- title: "No endpoints match",
298
- description: "Try a different search term to find the API you need."
364
+ title: "No operations match",
365
+ description: "Try a different search term to find the operation you need."
299
366
  })
300
367
  })
301
368
  ]
@@ -305,6 +372,6 @@ function D() {
305
372
  });
306
373
  }
307
374
  //#endregion
308
- export { D as HelpApiDocumentationPagePage };
375
+ export { M as HelpApiDocumentationPagePage };
309
376
 
310
377
  //# sourceMappingURL=HelpApiDocumentationPagePage.js.map