@burdenoff/microfe-devportal 2026.1113.1 → 2026.1113.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/devportal/DevportalRoot.js +65 -119
- package/dist/devportal/DevportalRoot.js.map +1 -1
- package/dist/devportal/components/AppCard.js +4 -4
- package/dist/devportal/components/DeveloperSettingsHub.d.ts +6 -0
- package/dist/devportal/components/DeveloperSettingsHub.js +59 -0
- package/dist/devportal/components/DeveloperSettingsHub.js.map +1 -0
- package/dist/devportal/components/SectionNav.d.ts +1 -1
- package/dist/devportal/components/SectionNav.js +60 -36
- package/dist/devportal/components/SectionNav.js.map +1 -1
- package/dist/devportal/pages/AnalyticsDashboardPage.js +186 -179
- package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
- package/dist/devportal/pages/ApiKeysPage.js +113 -111
- package/dist/devportal/pages/ApiKeysPage.js.map +1 -1
- package/dist/devportal/pages/AppLogsPage.js +80 -84
- package/dist/devportal/pages/AppLogsPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationDetailPage.js +529 -504
- package/dist/devportal/pages/ApplicationDetailPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationsPage.js +68 -67
- package/dist/devportal/pages/ApplicationsPage.js.map +1 -1
- package/dist/devportal/pages/CreateApiKeyPage.js +163 -166
- package/dist/devportal/pages/CreateApiKeyPage.js.map +1 -1
- package/dist/devportal/pages/CreateOAuthClientPage.js +134 -130
- package/dist/devportal/pages/CreateOAuthClientPage.js.map +1 -1
- package/dist/devportal/pages/DelegationsPage.js +11 -11
- package/dist/devportal/pages/DocumentationPage.js +100 -94
- package/dist/devportal/pages/DocumentationPage.js.map +1 -1
- package/dist/devportal/pages/EditApplicationPage.js +379 -377
- package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
- package/dist/devportal/pages/InvitationDecisionPage.js +83 -79
- package/dist/devportal/pages/InvitationDecisionPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientDetailPage.js +76 -76
- package/dist/devportal/pages/OAuthClientDetailPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientsPage.js +126 -124
- package/dist/devportal/pages/OAuthClientsPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationDetailPage.js +19 -19
- package/dist/devportal/pages/OrganizationMembersPage.js +223 -204
- package/dist/devportal/pages/OrganizationMembersPage.js.map +1 -1
- package/dist/devportal/pages/ResourcesPage.d.ts +6 -0
- package/dist/devportal/pages/ResourcesPage.js +171 -155
- package/dist/devportal/pages/ResourcesPage.js.map +1 -1
- package/dist/devportal/pages/SellerDashboardPage.js +13 -13
- package/dist/devportal/pages/SellerItemsPage.js +4 -4
- package/dist/devportal/pages/SettingsPage.js +330 -315
- package/dist/devportal/pages/SettingsPage.js.map +1 -1
- package/dist/devportal/pages/SetupPage.js +5 -5
- package/dist/devportal/pages/WebhookDetailPage.js +6 -6
- package/dist/devportal/pages/WebhooksPage.js +39 -39
- package/dist/devportal/pages/WebhooksPage.js.map +1 -1
- package/dist/devportal/utils/appDetailTabs.d.ts +73 -0
- package/dist/devportal/utils/appDetailTabs.js +62 -0
- package/dist/devportal/utils/appDetailTabs.js.map +1 -0
- package/dist/devportal/utils/developerNav.d.ts +39 -0
- package/dist/devportal/utils/developerNav.js +304 -0
- package/dist/devportal/utils/developerNav.js.map +1 -0
- package/package.json +2 -2
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { PageLayout as e, PageSection as t } from "../components/PageLayout.js";
|
|
2
2
|
import { DEVELOPER_LINKS as n } from "../constants/developerLinks.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
3
|
+
import { useIsFluidgridsVariant as r } from "../providers/DevportalProvider.js";
|
|
4
|
+
import { ResourcesSections as i } from "./ResourcesPage.js";
|
|
5
|
+
import { Book as a, BookOpen as o, Code2 as s, Database as c, ExternalLink as l, FileText as u, HelpCircle as d, Key as f, Lightbulb as p, MessageSquare as m, Rocket as h, Shield as g, Users as _, Webhook as v, Zap as y } from "lucide-react";
|
|
6
|
+
import { jsx as b, jsxs as x } from "react/jsx-runtime";
|
|
7
|
+
import { EmphasisPanel as S } from "@burdenoff/fe-libs/ui";
|
|
8
|
+
import { useI18n as C } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
7
9
|
// src/devportal/pages/DocumentationPage.tsx
|
|
8
|
-
var
|
|
10
|
+
var w = [
|
|
9
11
|
{
|
|
10
12
|
id: "register",
|
|
11
13
|
title: "Register as a Developer",
|
|
12
14
|
description: "Who can register, and the steps from a new account to a submitted app",
|
|
13
15
|
url: n.registrationGuide,
|
|
14
|
-
icon: /* @__PURE__ */
|
|
16
|
+
icon: /* @__PURE__ */ b(h, { size: 24 }),
|
|
15
17
|
category: "getting-started",
|
|
16
18
|
isNew: !0
|
|
17
19
|
},
|
|
@@ -20,7 +22,7 @@ var S = [
|
|
|
20
22
|
title: "Quick Start Guide",
|
|
21
23
|
description: "Make your first authenticated API call to the platform",
|
|
22
24
|
url: n.quickStart,
|
|
23
|
-
icon: /* @__PURE__ */
|
|
25
|
+
icon: /* @__PURE__ */ b(y, { size: 24 }),
|
|
24
26
|
category: "getting-started",
|
|
25
27
|
isPopular: !0
|
|
26
28
|
},
|
|
@@ -29,7 +31,7 @@ var S = [
|
|
|
29
31
|
title: "Platform Overview",
|
|
30
32
|
description: "Workspaces, tenants, actors and how the platform fits together",
|
|
31
33
|
url: n.platformOverview,
|
|
32
|
-
icon: /* @__PURE__ */
|
|
34
|
+
icon: /* @__PURE__ */ b(p, { size: 24 }),
|
|
33
35
|
category: "getting-started"
|
|
34
36
|
},
|
|
35
37
|
{
|
|
@@ -37,7 +39,7 @@ var S = [
|
|
|
37
39
|
title: "Authentication Guide",
|
|
38
40
|
description: "Tokens, API keys and how requests are authorized",
|
|
39
41
|
url: n.authentication,
|
|
40
|
-
icon: /* @__PURE__ */
|
|
42
|
+
icon: /* @__PURE__ */ b(g, { size: 24 }),
|
|
41
43
|
category: "getting-started"
|
|
42
44
|
},
|
|
43
45
|
{
|
|
@@ -45,7 +47,7 @@ var S = [
|
|
|
45
47
|
title: "GraphQL API",
|
|
46
48
|
description: "Query and mutate platform data through the federated API",
|
|
47
49
|
url: n.graphqlApi,
|
|
48
|
-
icon: /* @__PURE__ */
|
|
50
|
+
icon: /* @__PURE__ */ b(s, { size: 24 }),
|
|
49
51
|
category: "api",
|
|
50
52
|
isPopular: !0
|
|
51
53
|
},
|
|
@@ -54,7 +56,7 @@ var S = [
|
|
|
54
56
|
title: "Webhooks",
|
|
55
57
|
description: "Receive signed event notifications from the platform",
|
|
56
58
|
url: n.webhooks,
|
|
57
|
-
icon: /* @__PURE__ */ v
|
|
59
|
+
icon: /* @__PURE__ */ b(v, { size: 24 }),
|
|
58
60
|
category: "api"
|
|
59
61
|
},
|
|
60
62
|
{
|
|
@@ -62,7 +64,7 @@ var S = [
|
|
|
62
64
|
title: "Building Integrations",
|
|
63
65
|
description: "How integrations, providers and connections work",
|
|
64
66
|
url: n.integrationsOverview,
|
|
65
|
-
icon: /* @__PURE__ */
|
|
67
|
+
icon: /* @__PURE__ */ b(y, { size: 24 }),
|
|
66
68
|
category: "guides"
|
|
67
69
|
},
|
|
68
70
|
{
|
|
@@ -70,7 +72,7 @@ var S = [
|
|
|
70
72
|
title: "Publish a Connector",
|
|
71
73
|
description: "Submit an API-key connector to the integrations catalog",
|
|
72
74
|
url: n.publishConnector,
|
|
73
|
-
icon: /* @__PURE__ */
|
|
75
|
+
icon: /* @__PURE__ */ b(f, { size: 24 }),
|
|
74
76
|
category: "guides"
|
|
75
77
|
},
|
|
76
78
|
{
|
|
@@ -78,7 +80,7 @@ var S = [
|
|
|
78
80
|
title: "Plugins",
|
|
79
81
|
description: "Extend Workspaces with UI and AI plugins",
|
|
80
82
|
url: n.plugins,
|
|
81
|
-
icon: /* @__PURE__ */
|
|
83
|
+
icon: /* @__PURE__ */ b(o, { size: 24 }),
|
|
82
84
|
category: "guides"
|
|
83
85
|
},
|
|
84
86
|
{
|
|
@@ -86,7 +88,7 @@ var S = [
|
|
|
86
88
|
title: "Node.js SDK",
|
|
87
89
|
description: "The official TypeScript client for the platform",
|
|
88
90
|
url: n.nodeSdk,
|
|
89
|
-
icon: /* @__PURE__ */
|
|
91
|
+
icon: /* @__PURE__ */ b(c, { size: 24 }),
|
|
90
92
|
category: "reference"
|
|
91
93
|
},
|
|
92
94
|
{
|
|
@@ -94,7 +96,7 @@ var S = [
|
|
|
94
96
|
title: "Python SDK",
|
|
95
97
|
description: "The official Python client for the platform",
|
|
96
98
|
url: n.pythonSdk,
|
|
97
|
-
icon: /* @__PURE__ */
|
|
99
|
+
icon: /* @__PURE__ */ b(c, { size: 24 }),
|
|
98
100
|
category: "reference"
|
|
99
101
|
},
|
|
100
102
|
{
|
|
@@ -102,7 +104,7 @@ var S = [
|
|
|
102
104
|
title: "CLI Reference",
|
|
103
105
|
description: "Every command of the Workspaces CLI",
|
|
104
106
|
url: n.cliReference,
|
|
105
|
-
icon: /* @__PURE__ */
|
|
107
|
+
icon: /* @__PURE__ */ b(u, { size: 24 }),
|
|
106
108
|
category: "reference"
|
|
107
109
|
},
|
|
108
110
|
{
|
|
@@ -110,7 +112,7 @@ var S = [
|
|
|
110
112
|
title: "MCP Server",
|
|
111
113
|
description: "Use Workspaces tools from AI assistants over MCP",
|
|
112
114
|
url: n.mcpServer,
|
|
113
|
-
icon: /* @__PURE__ */
|
|
115
|
+
icon: /* @__PURE__ */ b(s, { size: 24 }),
|
|
114
116
|
category: "reference"
|
|
115
117
|
},
|
|
116
118
|
{
|
|
@@ -118,7 +120,7 @@ var S = [
|
|
|
118
120
|
title: "Developer FAQ",
|
|
119
121
|
description: "Answers to common questions about building on the platform",
|
|
120
122
|
url: n.faq,
|
|
121
|
-
icon: /* @__PURE__ */
|
|
123
|
+
icon: /* @__PURE__ */ b(d, { size: 24 }),
|
|
122
124
|
category: "support"
|
|
123
125
|
},
|
|
124
126
|
{
|
|
@@ -126,184 +128,188 @@ var S = [
|
|
|
126
128
|
title: "Developer Community",
|
|
127
129
|
description: "Join the community forum for discussions and help",
|
|
128
130
|
url: n.community,
|
|
129
|
-
icon: /* @__PURE__ */
|
|
131
|
+
icon: /* @__PURE__ */ b(_, { size: 24 }),
|
|
130
132
|
category: "support"
|
|
131
133
|
}
|
|
132
|
-
],
|
|
134
|
+
], T = [
|
|
133
135
|
{
|
|
134
136
|
title: "API Status",
|
|
135
137
|
url: n.status,
|
|
136
|
-
icon: /* @__PURE__ */
|
|
138
|
+
icon: /* @__PURE__ */ b(y, { size: 16 })
|
|
137
139
|
},
|
|
138
140
|
{
|
|
139
141
|
title: "Code Examples",
|
|
140
142
|
url: n.examples,
|
|
141
|
-
icon: /* @__PURE__ */
|
|
143
|
+
icon: /* @__PURE__ */ b(s, { size: 16 })
|
|
142
144
|
},
|
|
143
145
|
{
|
|
144
146
|
title: "SDKs",
|
|
145
147
|
url: n.nodeSdk,
|
|
146
|
-
icon: /* @__PURE__ */
|
|
148
|
+
icon: /* @__PURE__ */ b(c, { size: 16 })
|
|
147
149
|
},
|
|
148
150
|
{
|
|
149
151
|
title: "Developer Agreement",
|
|
150
152
|
url: n.developerAgreement,
|
|
151
|
-
icon: /* @__PURE__ */
|
|
153
|
+
icon: /* @__PURE__ */ b(g, { size: 16 })
|
|
152
154
|
}
|
|
153
|
-
],
|
|
155
|
+
], E = ({ doc: e }) => /* @__PURE__ */ x("a", {
|
|
154
156
|
href: e.url,
|
|
155
157
|
target: "_blank",
|
|
156
158
|
rel: "noopener noreferrer",
|
|
157
159
|
className: "group flex flex-col rounded-card border border-border-seam bg-bg-surface p-5 shadow-[var(--shadow-pop)] transition-[box-shadow,border-color] hover:border-border-strong hover:shadow-[var(--shadow-pop-hover)]",
|
|
158
160
|
children: [
|
|
159
|
-
/* @__PURE__ */
|
|
161
|
+
/* @__PURE__ */ x("div", {
|
|
160
162
|
className: "flex items-start justify-between",
|
|
161
|
-
children: [/* @__PURE__ */
|
|
163
|
+
children: [/* @__PURE__ */ b("div", {
|
|
162
164
|
className: "rounded-lg bg-action-primary-bg/10 p-2.5 text-primary",
|
|
163
165
|
children: e.icon
|
|
164
|
-
}), /* @__PURE__ */
|
|
166
|
+
}), /* @__PURE__ */ x("div", {
|
|
165
167
|
className: "flex items-center gap-2",
|
|
166
168
|
children: [
|
|
167
|
-
e.isNew && /* @__PURE__ */
|
|
169
|
+
e.isNew && /* @__PURE__ */ b("span", {
|
|
168
170
|
className: "rounded-full bg-status-success-bg-subtle px-2 py-0.5 text-xs font-medium text-status-success-text",
|
|
169
171
|
children: "New"
|
|
170
172
|
}),
|
|
171
|
-
e.isPopular && /* @__PURE__ */
|
|
173
|
+
e.isPopular && /* @__PURE__ */ b("span", {
|
|
172
174
|
className: "rounded-full bg-status-warning-bg-subtle px-2 py-0.5 text-xs font-medium text-status-warning-text",
|
|
173
175
|
children: "Popular"
|
|
174
176
|
}),
|
|
175
|
-
/* @__PURE__ */
|
|
177
|
+
/* @__PURE__ */ b(l, {
|
|
176
178
|
size: 16,
|
|
177
179
|
className: "text-text-secondary opacity-0 transition-opacity group-hover:opacity-100"
|
|
178
180
|
})
|
|
179
181
|
]
|
|
180
182
|
})]
|
|
181
183
|
}),
|
|
182
|
-
/* @__PURE__ */
|
|
184
|
+
/* @__PURE__ */ b("h3", {
|
|
183
185
|
className: "mt-4 font-semibold group-hover:text-primary",
|
|
184
186
|
children: e.title
|
|
185
187
|
}),
|
|
186
|
-
/* @__PURE__ */
|
|
188
|
+
/* @__PURE__ */ b("p", {
|
|
187
189
|
className: "mt-1 text-sm text-text-secondary line-clamp-2",
|
|
188
190
|
children: e.description
|
|
189
191
|
})
|
|
190
192
|
]
|
|
191
|
-
}),
|
|
193
|
+
}), D = ({ link: e }) => /* @__PURE__ */ x("a", {
|
|
192
194
|
href: e.url,
|
|
193
195
|
target: "_blank",
|
|
194
196
|
rel: "noopener noreferrer",
|
|
195
197
|
className: "flex items-center gap-2 rounded-md border bg-bg-surface px-4 py-3 text-sm font-medium transition-colors hover:bg-accent",
|
|
196
198
|
children: [
|
|
197
|
-
/* @__PURE__ */
|
|
199
|
+
/* @__PURE__ */ b("span", {
|
|
198
200
|
className: "text-text-secondary",
|
|
199
201
|
children: e.icon
|
|
200
202
|
}),
|
|
201
203
|
e.title,
|
|
202
|
-
/* @__PURE__ */
|
|
204
|
+
/* @__PURE__ */ b(l, {
|
|
203
205
|
size: 14,
|
|
204
206
|
className: "ml-auto text-text-secondary"
|
|
205
207
|
})
|
|
206
208
|
]
|
|
207
|
-
}),
|
|
208
|
-
let { t:
|
|
209
|
-
let n =
|
|
209
|
+
}), O = () => {
|
|
210
|
+
let { t: o } = C(), s = r(), c = (e, t) => {
|
|
211
|
+
let n = o(e);
|
|
210
212
|
return n === e ? t : n;
|
|
211
|
-
},
|
|
212
|
-
return /* @__PURE__ */
|
|
213
|
-
title:
|
|
214
|
-
description:
|
|
215
|
-
purpose:
|
|
216
|
-
actions: /* @__PURE__ */
|
|
213
|
+
}, u = (e) => w.filter((t) => t.category === e);
|
|
214
|
+
return /* @__PURE__ */ x(e, {
|
|
215
|
+
title: c("devportal.documentation", "Documentation"),
|
|
216
|
+
description: c("devportal.exploreDocsDescription", "Explore guides, API references, and resources to build on the Burdenoff platform"),
|
|
217
|
+
purpose: c("devportal.docsPurpose", "The reference material for building integrations — getting-started guides, full API docs, and how-tos. New here? Begin with Getting Started, then dive into the API reference for the endpoints your app calls."),
|
|
218
|
+
actions: /* @__PURE__ */ x("a", {
|
|
217
219
|
href: n.docsHome,
|
|
218
220
|
target: "_blank",
|
|
219
221
|
rel: "noopener noreferrer",
|
|
220
222
|
className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors",
|
|
221
223
|
children: [
|
|
222
|
-
/* @__PURE__ */
|
|
223
|
-
|
|
224
|
-
/* @__PURE__ */
|
|
224
|
+
/* @__PURE__ */ b(a, { size: 16 }),
|
|
225
|
+
c("devportal.viewFullDocs", "View Full Docs"),
|
|
226
|
+
/* @__PURE__ */ b(l, { size: 14 })
|
|
225
227
|
]
|
|
226
228
|
}),
|
|
227
229
|
children: [
|
|
228
|
-
/* @__PURE__ */
|
|
230
|
+
!s && /* @__PURE__ */ x("div", {
|
|
229
231
|
role: "status",
|
|
230
232
|
className: "mb-6 rounded-lg border border-status-warning-border bg-status-warning-bg p-4 text-sm text-status-warning-text",
|
|
231
|
-
children: [/* @__PURE__ */
|
|
233
|
+
children: [/* @__PURE__ */ b("strong", {
|
|
232
234
|
className: "font-semibold",
|
|
233
|
-
children:
|
|
234
|
-
}), /* @__PURE__ */
|
|
235
|
+
children: c("devportal.docs.comingSoon.title", "Coming soon")
|
|
236
|
+
}), /* @__PURE__ */ b("span", {
|
|
235
237
|
className: "ml-2",
|
|
236
|
-
children:
|
|
238
|
+
children: c("devportal.docs.comingSoon.description", "We're building a fully integrated documentation experience. The links below open the public docs site in the meantime.")
|
|
237
239
|
})]
|
|
238
240
|
}),
|
|
239
|
-
/* @__PURE__ */
|
|
241
|
+
/* @__PURE__ */ b(t, { children: /* @__PURE__ */ b("div", {
|
|
240
242
|
className: "grid gap-3 sm:grid-cols-2 lg:grid-cols-4",
|
|
241
|
-
children:
|
|
243
|
+
children: T.map((e) => /* @__PURE__ */ b(D, { link: e }, e.title))
|
|
242
244
|
}) }),
|
|
243
|
-
/* @__PURE__ */
|
|
244
|
-
title:
|
|
245
|
-
description:
|
|
246
|
-
children: /* @__PURE__ */
|
|
245
|
+
/* @__PURE__ */ b(S, { children: /* @__PURE__ */ b(t, {
|
|
246
|
+
title: c("devportal.gettingStarted", "Getting Started"),
|
|
247
|
+
description: c("devportal.everythingToStartBuilding", "Everything you need to start building"),
|
|
248
|
+
children: /* @__PURE__ */ b("div", {
|
|
247
249
|
className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-3",
|
|
248
|
-
children:
|
|
250
|
+
children: u("getting-started").map((e) => /* @__PURE__ */ b(E, { doc: e }, e.id))
|
|
249
251
|
})
|
|
250
252
|
}) }),
|
|
251
|
-
/* @__PURE__ */
|
|
252
|
-
title:
|
|
253
|
-
description:
|
|
254
|
-
children: /* @__PURE__ */
|
|
253
|
+
/* @__PURE__ */ b(t, {
|
|
254
|
+
title: c("devportal.apiReference", "API Reference"),
|
|
255
|
+
description: c("devportal.completeApiDocumentation", "Complete API documentation"),
|
|
256
|
+
children: /* @__PURE__ */ b("div", {
|
|
255
257
|
className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-4",
|
|
256
|
-
children:
|
|
258
|
+
children: u("api").map((e) => /* @__PURE__ */ b(E, { doc: e }, e.id))
|
|
257
259
|
})
|
|
258
260
|
}),
|
|
259
|
-
/* @__PURE__ */
|
|
260
|
-
title:
|
|
261
|
-
description:
|
|
262
|
-
children: /* @__PURE__ */
|
|
261
|
+
/* @__PURE__ */ b(t, {
|
|
262
|
+
title: c("devportal.guides", "Guides"),
|
|
263
|
+
description: c("devportal.stepByStepTutorials", "Step-by-step tutorials and best practices"),
|
|
264
|
+
children: /* @__PURE__ */ b("div", {
|
|
263
265
|
className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-3",
|
|
264
|
-
children:
|
|
266
|
+
children: u("guides").map((e) => /* @__PURE__ */ b(E, { doc: e }, e.id))
|
|
265
267
|
})
|
|
266
268
|
}),
|
|
267
|
-
/* @__PURE__ */
|
|
269
|
+
/* @__PURE__ */ x("div", {
|
|
268
270
|
className: "grid gap-6 lg:grid-cols-2",
|
|
269
|
-
children: [/* @__PURE__ */
|
|
270
|
-
title:
|
|
271
|
-
description:
|
|
272
|
-
children: /* @__PURE__ */
|
|
271
|
+
children: [/* @__PURE__ */ b(t, {
|
|
272
|
+
title: c("devportal.reference", "Reference"),
|
|
273
|
+
description: c("devportal.detailedSpecifications", "Detailed specifications"),
|
|
274
|
+
children: /* @__PURE__ */ b("div", {
|
|
273
275
|
className: "grid gap-4 sm:grid-cols-2",
|
|
274
|
-
children:
|
|
276
|
+
children: u("reference").map((e) => /* @__PURE__ */ b(E, { doc: e }, e.id))
|
|
275
277
|
})
|
|
276
|
-
}), /* @__PURE__ */
|
|
277
|
-
title:
|
|
278
|
-
description:
|
|
279
|
-
children: /* @__PURE__ */
|
|
278
|
+
}), /* @__PURE__ */ b(t, {
|
|
279
|
+
title: c("devportal.support", "Support"),
|
|
280
|
+
description: c("devportal.getHelpStayUpdated", "Get help and stay updated"),
|
|
281
|
+
children: /* @__PURE__ */ b("div", {
|
|
280
282
|
className: "grid gap-4 sm:grid-cols-2",
|
|
281
|
-
children:
|
|
283
|
+
children: u("support").map((e) => /* @__PURE__ */ b(E, { doc: e }, e.id))
|
|
282
284
|
})
|
|
283
285
|
})]
|
|
284
286
|
}),
|
|
285
|
-
/* @__PURE__ */
|
|
287
|
+
s && /* @__PURE__ */ b("div", {
|
|
288
|
+
className: "mt-6 space-y-6",
|
|
289
|
+
children: /* @__PURE__ */ b(i, {})
|
|
290
|
+
}),
|
|
291
|
+
/* @__PURE__ */ b("div", {
|
|
286
292
|
className: "mt-6 rounded-card border border-border-seam bg-accent-wash p-6",
|
|
287
|
-
children: /* @__PURE__ */
|
|
293
|
+
children: /* @__PURE__ */ x("div", {
|
|
288
294
|
className: "flex flex-col items-start gap-4 sm:flex-row sm:items-center sm:justify-between",
|
|
289
|
-
children: [/* @__PURE__ */
|
|
295
|
+
children: [/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("h3", {
|
|
290
296
|
className: "text-lg font-semibold",
|
|
291
|
-
children:
|
|
292
|
-
}), /* @__PURE__ */
|
|
297
|
+
children: c("devportal.needMoreHelp", "Need more help?")
|
|
298
|
+
}), /* @__PURE__ */ b("p", {
|
|
293
299
|
className: "mt-1 text-text-secondary",
|
|
294
|
-
children:
|
|
295
|
-
})] }), /* @__PURE__ */
|
|
300
|
+
children: c("devportal.developerSupportTeamHelp", "Our developer support team is here to help you build amazing applications.")
|
|
301
|
+
})] }), /* @__PURE__ */ x("div", {
|
|
296
302
|
className: "flex gap-3",
|
|
297
|
-
children: [/* @__PURE__ */
|
|
303
|
+
children: [/* @__PURE__ */ x("a", {
|
|
298
304
|
href: n.community,
|
|
299
305
|
target: "_blank",
|
|
300
306
|
rel: "noopener noreferrer",
|
|
301
307
|
className: "inline-flex items-center gap-2 rounded-md border bg-bg-surface px-4 py-2 text-sm font-medium hover:bg-accent transition-colors",
|
|
302
|
-
children: [/* @__PURE__ */
|
|
303
|
-
}), /* @__PURE__ */
|
|
308
|
+
children: [/* @__PURE__ */ b(_, { size: 16 }), c("devportal.community", "Community")]
|
|
309
|
+
}), /* @__PURE__ */ x("a", {
|
|
304
310
|
href: "mailto:contact@burdenoff.com",
|
|
305
311
|
className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors",
|
|
306
|
-
children: [/* @__PURE__ */
|
|
312
|
+
children: [/* @__PURE__ */ b(m, { size: 16 }), c("devportal.contactSupport", "Contact Support")]
|
|
307
313
|
})]
|
|
308
314
|
})]
|
|
309
315
|
})
|
|
@@ -311,6 +317,6 @@ var S = [
|
|
|
311
317
|
]
|
|
312
318
|
});
|
|
313
319
|
};
|
|
314
|
-
export {
|
|
320
|
+
export { O as DocumentationPage };
|
|
315
321
|
|
|
316
322
|
//# sourceMappingURL=DocumentationPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentationPage.js","names":["documentationLinks","DEVELOPER_LINKS","Rocket","Zap","Lightbulb","Shield","Code2","Webhook","Key","BookOpen","Database","FileText","HelpCircle","Users","quickLinks","DocumentationCard","doc","ExternalLink","QuickLinkCard","link","DocumentationPage","useI18n","tr","value","t","key","fallback","getDocsForCategory","categoryId","PageLayout","Book","PageSection","EmphasisPanel","MessageSquare"],"sources":["../../../src/devportal/pages/DocumentationPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\nimport {\n Book,\n Code2,\n FileText,\n ExternalLink,\n BookOpen,\n Lightbulb,\n Rocket,\n Shield,\n Zap,\n Database,\n Webhook,\n Key,\n Users,\n HelpCircle,\n MessageSquare,\n} from \"lucide-react\";\nimport { EmphasisPanel } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout, PageSection } from \"../components/PageLayout\";\nimport { DEVELOPER_LINKS } from \"../constants/developerLinks\";\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\ninterface DocumentationLink {\n id: string;\n title: string;\n description: string;\n url: string;\n icon: React.ReactNode;\n category: \"getting-started\" | \"api\" | \"guides\" | \"reference\" | \"support\";\n isNew?: boolean;\n isPopular?: boolean;\n}\n\ninterface QuickLink {\n title: string;\n url: string;\n icon: React.ReactNode;\n}\n\n// =============================================================================\n// DATA\n// =============================================================================\n\n// Every URL comes from DEVELOPER_LINKS, which only holds pages that exist on\n// the public docs site. The previous list pointed at /developer/*, /api/*,\n// /guides/* and /reference/* paths that were never published and all\n// returned 404 (BOFF-10636).\nconst documentationLinks: DocumentationLink[] = [\n // Getting Started\n {\n id: \"register\",\n title: \"Register as a Developer\",\n description:\n \"Who can register, and the steps from a new account to a submitted app\",\n url: DEVELOPER_LINKS.registrationGuide,\n icon: <Rocket size={24} />,\n category: \"getting-started\",\n isNew: true,\n },\n {\n id: \"quickstart\",\n title: \"Quick Start Guide\",\n description: \"Make your first authenticated API call to the platform\",\n url: DEVELOPER_LINKS.quickStart,\n icon: <Zap size={24} />,\n category: \"getting-started\",\n isPopular: true,\n },\n {\n id: \"concepts\",\n title: \"Platform Overview\",\n description:\n \"Workspaces, tenants, actors and how the platform fits together\",\n url: DEVELOPER_LINKS.platformOverview,\n icon: <Lightbulb size={24} />,\n category: \"getting-started\",\n },\n {\n id: \"authentication\",\n title: \"Authentication Guide\",\n description: \"Tokens, API keys and how requests are authorized\",\n url: DEVELOPER_LINKS.authentication,\n icon: <Shield size={24} />,\n category: \"getting-started\",\n },\n\n // API Reference\n {\n id: \"graphql-api\",\n title: \"GraphQL API\",\n description: \"Query and mutate platform data through the federated API\",\n url: DEVELOPER_LINKS.graphqlApi,\n icon: <Code2 size={24} />,\n category: \"api\",\n isPopular: true,\n },\n {\n id: \"webhooks\",\n title: \"Webhooks\",\n description: \"Receive signed event notifications from the platform\",\n url: DEVELOPER_LINKS.webhooks,\n icon: <Webhook size={24} />,\n category: \"api\",\n },\n\n // Guides\n {\n id: \"building-integrations\",\n title: \"Building Integrations\",\n description: \"How integrations, providers and connections work\",\n url: DEVELOPER_LINKS.integrationsOverview,\n icon: <Zap size={24} />,\n category: \"guides\",\n },\n {\n id: \"publish-connector\",\n title: \"Publish a Connector\",\n description: \"Submit an API-key connector to the integrations catalog\",\n url: DEVELOPER_LINKS.publishConnector,\n icon: <Key size={24} />,\n category: \"guides\",\n },\n {\n id: \"plugins\",\n title: \"Plugins\",\n description: \"Extend Workspaces with UI and AI plugins\",\n url: DEVELOPER_LINKS.plugins,\n icon: <BookOpen size={24} />,\n category: \"guides\",\n },\n\n // Reference\n {\n id: \"node-sdk\",\n title: \"Node.js SDK\",\n description: \"The official TypeScript client for the platform\",\n url: DEVELOPER_LINKS.nodeSdk,\n icon: <Database size={24} />,\n category: \"reference\",\n },\n {\n id: \"python-sdk\",\n title: \"Python SDK\",\n description: \"The official Python client for the platform\",\n url: DEVELOPER_LINKS.pythonSdk,\n icon: <Database size={24} />,\n category: \"reference\",\n },\n {\n id: \"cli\",\n title: \"CLI Reference\",\n description: \"Every command of the Workspaces CLI\",\n url: DEVELOPER_LINKS.cliReference,\n icon: <FileText size={24} />,\n category: \"reference\",\n },\n {\n id: \"mcp-server\",\n title: \"MCP Server\",\n description: \"Use Workspaces tools from AI assistants over MCP\",\n url: DEVELOPER_LINKS.mcpServer,\n icon: <Code2 size={24} />,\n category: \"reference\",\n },\n\n // Support\n {\n id: \"faq\",\n title: \"Developer FAQ\",\n description: \"Answers to common questions about building on the platform\",\n url: DEVELOPER_LINKS.faq,\n icon: <HelpCircle size={24} />,\n category: \"support\",\n },\n {\n id: \"community\",\n title: \"Developer Community\",\n description: \"Join the community forum for discussions and help\",\n url: DEVELOPER_LINKS.community,\n icon: <Users size={24} />,\n category: \"support\",\n },\n];\n\nconst quickLinks: QuickLink[] = [\n {\n title: \"API Status\",\n url: DEVELOPER_LINKS.status,\n icon: <Zap size={16} />,\n },\n {\n title: \"Code Examples\",\n url: DEVELOPER_LINKS.examples,\n icon: <Code2 size={16} />,\n },\n {\n title: \"SDKs\",\n url: DEVELOPER_LINKS.nodeSdk,\n icon: <Database size={16} />,\n },\n {\n title: \"Developer Agreement\",\n url: DEVELOPER_LINKS.developerAgreement,\n icon: <Shield size={16} />,\n },\n];\n\nconst categories = [\n {\n id: \"getting-started\",\n label: \"Getting Started\",\n icon: <Rocket size={18} />,\n },\n { id: \"api\", label: \"API Reference\", icon: <Code2 size={18} /> },\n { id: \"guides\", label: \"Guides\", icon: <BookOpen size={18} /> },\n { id: \"reference\", label: \"Reference\", icon: <FileText size={18} /> },\n { id: \"support\", label: \"Support\", icon: <HelpCircle size={18} /> },\n];\n\n// =============================================================================\n// COMPONENTS\n// =============================================================================\n\nconst DocumentationCard: FC<{ doc: DocumentationLink }> = ({ doc }) => (\n <a\n href={doc.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"group flex flex-col rounded-card border border-border-seam bg-bg-surface p-5 shadow-[var(--shadow-pop)] transition-[box-shadow,border-color] hover:border-border-strong hover:shadow-[var(--shadow-pop-hover)]\"\n >\n <div className=\"flex items-start justify-between\">\n <div className=\"rounded-lg bg-action-primary-bg/10 p-2.5 text-primary\">\n {doc.icon}\n </div>\n <div className=\"flex items-center gap-2\">\n {doc.isNew && (\n <span className=\"rounded-full bg-status-success-bg-subtle px-2 py-0.5 text-xs font-medium text-status-success-text\">\n New\n </span>\n )}\n {doc.isPopular && (\n <span className=\"rounded-full bg-status-warning-bg-subtle px-2 py-0.5 text-xs font-medium text-status-warning-text\">\n Popular\n </span>\n )}\n <ExternalLink\n size={16}\n className=\"text-text-secondary opacity-0 transition-opacity group-hover:opacity-100\"\n />\n </div>\n </div>\n <h3 className=\"mt-4 font-semibold group-hover:text-primary\">{doc.title}</h3>\n <p className=\"mt-1 text-sm text-text-secondary line-clamp-2\">\n {doc.description}\n </p>\n </a>\n);\n\nconst QuickLinkCard: FC<{ link: QuickLink }> = ({ link }) => (\n <a\n href={link.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"flex items-center gap-2 rounded-md border bg-bg-surface px-4 py-3 text-sm font-medium transition-colors hover:bg-accent\"\n >\n <span className=\"text-text-secondary\">{link.icon}</span>\n {link.title}\n <ExternalLink size={14} className=\"ml-auto text-text-secondary\" />\n </a>\n);\n\n// =============================================================================\n// PAGE COMPONENT\n// =============================================================================\n\nexport const DocumentationPage: FC = () => {\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n const getDocsForCategory = (categoryId: string) =>\n documentationLinks.filter((doc) => doc.category === categoryId);\n\n return (\n <PageLayout\n title={tr(\"devportal.documentation\", \"Documentation\")}\n description={tr(\n \"devportal.exploreDocsDescription\",\n \"Explore guides, API references, and resources to build on the Burdenoff platform\",\n )}\n purpose={tr(\n \"devportal.docsPurpose\",\n \"The reference material for building integrations — getting-started guides, full API docs, and how-tos. New here? Begin with Getting Started, then dive into the API reference for the endpoints your app calls.\",\n )}\n actions={\n <a\n href={DEVELOPER_LINKS.docsHome}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors\"\n >\n <Book size={16} />\n {tr(\"devportal.viewFullDocs\", \"View Full Docs\")}\n <ExternalLink size={14} />\n </a>\n }\n >\n {/* Coming-soon banner — page is intentionally a static stub until the\n CMS-backed documentation surface ships. See devportal stability\n tracker (`/docs` is Deferred). */}\n <div\n role=\"status\"\n className=\"mb-6 rounded-lg border border-status-warning-border bg-status-warning-bg p-4 text-sm text-status-warning-text\"\n >\n <strong className=\"font-semibold\">\n {tr(\"devportal.docs.comingSoon.title\", \"Coming soon\")}\n </strong>\n <span className=\"ml-2\">\n {tr(\n \"devportal.docs.comingSoon.description\",\n \"We're building a fully integrated documentation experience. The links below open the public docs site in the meantime.\",\n )}\n </span>\n </div>\n\n {/* Quick Links */}\n <PageSection>\n <div className=\"grid gap-3 sm:grid-cols-2 lg:grid-cols-4\">\n {quickLinks.map((link) => (\n <QuickLinkCard key={link.title} link={link} />\n ))}\n </div>\n </PageSection>\n\n {/* Featured / Getting Started — primary emphasis zone */}\n <EmphasisPanel>\n <PageSection\n title={tr(\"devportal.gettingStarted\", \"Getting Started\")}\n description={tr(\n \"devportal.everythingToStartBuilding\",\n \"Everything you need to start building\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {getDocsForCategory(\"getting-started\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n </EmphasisPanel>\n\n {/* API Reference */}\n <PageSection\n title={tr(\"devportal.apiReference\", \"API Reference\")}\n description={tr(\n \"devportal.completeApiDocumentation\",\n \"Complete API documentation\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n {getDocsForCategory(\"api\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n\n {/* Guides */}\n <PageSection\n title={tr(\"devportal.guides\", \"Guides\")}\n description={tr(\n \"devportal.stepByStepTutorials\",\n \"Step-by-step tutorials and best practices\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {getDocsForCategory(\"guides\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n\n {/* Reference & Support Row */}\n <div className=\"grid gap-6 lg:grid-cols-2\">\n {/* Reference */}\n <PageSection\n title={tr(\"devportal.reference\", \"Reference\")}\n description={tr(\n \"devportal.detailedSpecifications\",\n \"Detailed specifications\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2\">\n {getDocsForCategory(\"reference\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n\n {/* Support */}\n <PageSection\n title={tr(\"devportal.support\", \"Support\")}\n description={tr(\n \"devportal.getHelpStayUpdated\",\n \"Get help and stay updated\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2\">\n {getDocsForCategory(\"support\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n </div>\n\n {/* Help Banner */}\n <div className=\"mt-6 rounded-card border border-border-seam bg-accent-wash p-6\">\n <div className=\"flex flex-col items-start gap-4 sm:flex-row sm:items-center sm:justify-between\">\n <div>\n <h3 className=\"text-lg font-semibold\">\n {tr(\"devportal.needMoreHelp\", \"Need more help?\")}\n </h3>\n <p className=\"mt-1 text-text-secondary\">\n {tr(\n \"devportal.developerSupportTeamHelp\",\n \"Our developer support team is here to help you build amazing applications.\",\n )}\n </p>\n </div>\n <div className=\"flex gap-3\">\n <a\n href={DEVELOPER_LINKS.community}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-2 rounded-md border bg-bg-surface px-4 py-2 text-sm font-medium hover:bg-accent transition-colors\"\n >\n <Users size={16} />\n {tr(\"devportal.community\", \"Community\")}\n </a>\n <a\n href=\"mailto:contact@burdenoff.com\"\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors\"\n >\n <MessageSquare size={16} />\n {tr(\"devportal.contactSupport\", \"Contact Support\")}\n </a>\n </div>\n </div>\n </div>\n </PageLayout>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DocumentationPage.js","names":["documentationLinks","DEVELOPER_LINKS","Rocket","Zap","Lightbulb","Shield","Code2","Webhook","Key","BookOpen","Database","FileText","HelpCircle","Users","quickLinks","DocumentationCard","doc","ExternalLink","QuickLinkCard","link","DocumentationPage","useI18n","isFluidgrids","useIsFluidgridsVariant","tr","value","t","key","fallback","getDocsForCategory","categoryId","PageLayout","Book","PageSection","EmphasisPanel","ResourcesSections","MessageSquare"],"sources":["../../../src/devportal/pages/DocumentationPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\nimport {\n Book,\n Code2,\n FileText,\n ExternalLink,\n BookOpen,\n Lightbulb,\n Rocket,\n Shield,\n Zap,\n Database,\n Webhook,\n Key,\n Users,\n HelpCircle,\n MessageSquare,\n} from \"lucide-react\";\nimport { EmphasisPanel } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout, PageSection } from \"../components/PageLayout\";\nimport { DEVELOPER_LINKS } from \"../constants/developerLinks\";\nimport { useIsFluidgridsVariant } from \"../providers/DevportalProvider\";\nimport { ResourcesSections } from \"./ResourcesPage\";\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\ninterface DocumentationLink {\n id: string;\n title: string;\n description: string;\n url: string;\n icon: React.ReactNode;\n category: \"getting-started\" | \"api\" | \"guides\" | \"reference\" | \"support\";\n isNew?: boolean;\n isPopular?: boolean;\n}\n\ninterface QuickLink {\n title: string;\n url: string;\n icon: React.ReactNode;\n}\n\n// =============================================================================\n// DATA\n// =============================================================================\n\n// Every URL comes from DEVELOPER_LINKS, which only holds pages that exist on\n// the public docs site. The previous list pointed at /developer/*, /api/*,\n// /guides/* and /reference/* paths that were never published and all\n// returned 404 (BOFF-10636).\nconst documentationLinks: DocumentationLink[] = [\n // Getting Started\n {\n id: \"register\",\n title: \"Register as a Developer\",\n description:\n \"Who can register, and the steps from a new account to a submitted app\",\n url: DEVELOPER_LINKS.registrationGuide,\n icon: <Rocket size={24} />,\n category: \"getting-started\",\n isNew: true,\n },\n {\n id: \"quickstart\",\n title: \"Quick Start Guide\",\n description: \"Make your first authenticated API call to the platform\",\n url: DEVELOPER_LINKS.quickStart,\n icon: <Zap size={24} />,\n category: \"getting-started\",\n isPopular: true,\n },\n {\n id: \"concepts\",\n title: \"Platform Overview\",\n description:\n \"Workspaces, tenants, actors and how the platform fits together\",\n url: DEVELOPER_LINKS.platformOverview,\n icon: <Lightbulb size={24} />,\n category: \"getting-started\",\n },\n {\n id: \"authentication\",\n title: \"Authentication Guide\",\n description: \"Tokens, API keys and how requests are authorized\",\n url: DEVELOPER_LINKS.authentication,\n icon: <Shield size={24} />,\n category: \"getting-started\",\n },\n\n // API Reference\n {\n id: \"graphql-api\",\n title: \"GraphQL API\",\n description: \"Query and mutate platform data through the federated API\",\n url: DEVELOPER_LINKS.graphqlApi,\n icon: <Code2 size={24} />,\n category: \"api\",\n isPopular: true,\n },\n {\n id: \"webhooks\",\n title: \"Webhooks\",\n description: \"Receive signed event notifications from the platform\",\n url: DEVELOPER_LINKS.webhooks,\n icon: <Webhook size={24} />,\n category: \"api\",\n },\n\n // Guides\n {\n id: \"building-integrations\",\n title: \"Building Integrations\",\n description: \"How integrations, providers and connections work\",\n url: DEVELOPER_LINKS.integrationsOverview,\n icon: <Zap size={24} />,\n category: \"guides\",\n },\n {\n id: \"publish-connector\",\n title: \"Publish a Connector\",\n description: \"Submit an API-key connector to the integrations catalog\",\n url: DEVELOPER_LINKS.publishConnector,\n icon: <Key size={24} />,\n category: \"guides\",\n },\n {\n id: \"plugins\",\n title: \"Plugins\",\n description: \"Extend Workspaces with UI and AI plugins\",\n url: DEVELOPER_LINKS.plugins,\n icon: <BookOpen size={24} />,\n category: \"guides\",\n },\n\n // Reference\n {\n id: \"node-sdk\",\n title: \"Node.js SDK\",\n description: \"The official TypeScript client for the platform\",\n url: DEVELOPER_LINKS.nodeSdk,\n icon: <Database size={24} />,\n category: \"reference\",\n },\n {\n id: \"python-sdk\",\n title: \"Python SDK\",\n description: \"The official Python client for the platform\",\n url: DEVELOPER_LINKS.pythonSdk,\n icon: <Database size={24} />,\n category: \"reference\",\n },\n {\n id: \"cli\",\n title: \"CLI Reference\",\n description: \"Every command of the Workspaces CLI\",\n url: DEVELOPER_LINKS.cliReference,\n icon: <FileText size={24} />,\n category: \"reference\",\n },\n {\n id: \"mcp-server\",\n title: \"MCP Server\",\n description: \"Use Workspaces tools from AI assistants over MCP\",\n url: DEVELOPER_LINKS.mcpServer,\n icon: <Code2 size={24} />,\n category: \"reference\",\n },\n\n // Support\n {\n id: \"faq\",\n title: \"Developer FAQ\",\n description: \"Answers to common questions about building on the platform\",\n url: DEVELOPER_LINKS.faq,\n icon: <HelpCircle size={24} />,\n category: \"support\",\n },\n {\n id: \"community\",\n title: \"Developer Community\",\n description: \"Join the community forum for discussions and help\",\n url: DEVELOPER_LINKS.community,\n icon: <Users size={24} />,\n category: \"support\",\n },\n];\n\nconst quickLinks: QuickLink[] = [\n {\n title: \"API Status\",\n url: DEVELOPER_LINKS.status,\n icon: <Zap size={16} />,\n },\n {\n title: \"Code Examples\",\n url: DEVELOPER_LINKS.examples,\n icon: <Code2 size={16} />,\n },\n {\n title: \"SDKs\",\n url: DEVELOPER_LINKS.nodeSdk,\n icon: <Database size={16} />,\n },\n {\n title: \"Developer Agreement\",\n url: DEVELOPER_LINKS.developerAgreement,\n icon: <Shield size={16} />,\n },\n];\n\nconst categories = [\n {\n id: \"getting-started\",\n label: \"Getting Started\",\n icon: <Rocket size={18} />,\n },\n { id: \"api\", label: \"API Reference\", icon: <Code2 size={18} /> },\n { id: \"guides\", label: \"Guides\", icon: <BookOpen size={18} /> },\n { id: \"reference\", label: \"Reference\", icon: <FileText size={18} /> },\n { id: \"support\", label: \"Support\", icon: <HelpCircle size={18} /> },\n];\n\n// =============================================================================\n// COMPONENTS\n// =============================================================================\n\nconst DocumentationCard: FC<{ doc: DocumentationLink }> = ({ doc }) => (\n <a\n href={doc.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"group flex flex-col rounded-card border border-border-seam bg-bg-surface p-5 shadow-[var(--shadow-pop)] transition-[box-shadow,border-color] hover:border-border-strong hover:shadow-[var(--shadow-pop-hover)]\"\n >\n <div className=\"flex items-start justify-between\">\n <div className=\"rounded-lg bg-action-primary-bg/10 p-2.5 text-primary\">\n {doc.icon}\n </div>\n <div className=\"flex items-center gap-2\">\n {doc.isNew && (\n <span className=\"rounded-full bg-status-success-bg-subtle px-2 py-0.5 text-xs font-medium text-status-success-text\">\n New\n </span>\n )}\n {doc.isPopular && (\n <span className=\"rounded-full bg-status-warning-bg-subtle px-2 py-0.5 text-xs font-medium text-status-warning-text\">\n Popular\n </span>\n )}\n <ExternalLink\n size={16}\n className=\"text-text-secondary opacity-0 transition-opacity group-hover:opacity-100\"\n />\n </div>\n </div>\n <h3 className=\"mt-4 font-semibold group-hover:text-primary\">{doc.title}</h3>\n <p className=\"mt-1 text-sm text-text-secondary line-clamp-2\">\n {doc.description}\n </p>\n </a>\n);\n\nconst QuickLinkCard: FC<{ link: QuickLink }> = ({ link }) => (\n <a\n href={link.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"flex items-center gap-2 rounded-md border bg-bg-surface px-4 py-3 text-sm font-medium transition-colors hover:bg-accent\"\n >\n <span className=\"text-text-secondary\">{link.icon}</span>\n {link.title}\n <ExternalLink size={14} className=\"ml-auto text-text-secondary\" />\n </a>\n);\n\n// =============================================================================\n// PAGE COMPONENT\n// =============================================================================\n\nexport const DocumentationPage: FC = () => {\n const { t } = useI18n();\n const isFluidgrids = useIsFluidgridsVariant();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n const getDocsForCategory = (categoryId: string) =>\n documentationLinks.filter((doc) => doc.category === categoryId);\n\n return (\n <PageLayout\n title={tr(\"devportal.documentation\", \"Documentation\")}\n description={tr(\n \"devportal.exploreDocsDescription\",\n \"Explore guides, API references, and resources to build on the Burdenoff platform\",\n )}\n purpose={tr(\n \"devportal.docsPurpose\",\n \"The reference material for building integrations — getting-started guides, full API docs, and how-tos. New here? Begin with Getting Started, then dive into the API reference for the endpoints your app calls.\",\n )}\n actions={\n <a\n href={DEVELOPER_LINKS.docsHome}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors\"\n >\n <Book size={16} />\n {tr(\"devportal.viewFullDocs\", \"View Full Docs\")}\n <ExternalLink size={14} />\n </a>\n }\n >\n {/* Coming-soon banner — page is intentionally a static stub until the\n CMS-backed documentation surface ships. See devportal stability\n tracker (`/docs` is Deferred). */}\n {!isFluidgrids && (\n <div\n role=\"status\"\n className=\"mb-6 rounded-lg border border-status-warning-border bg-status-warning-bg p-4 text-sm text-status-warning-text\"\n >\n <strong className=\"font-semibold\">\n {tr(\"devportal.docs.comingSoon.title\", \"Coming soon\")}\n </strong>\n <span className=\"ml-2\">\n {tr(\n \"devportal.docs.comingSoon.description\",\n \"We're building a fully integrated documentation experience. The links below open the public docs site in the meantime.\",\n )}\n </span>\n </div>\n )}\n\n {/* Quick Links */}\n <PageSection>\n <div className=\"grid gap-3 sm:grid-cols-2 lg:grid-cols-4\">\n {quickLinks.map((link) => (\n <QuickLinkCard key={link.title} link={link} />\n ))}\n </div>\n </PageSection>\n\n {/* Featured / Getting Started — primary emphasis zone */}\n <EmphasisPanel>\n <PageSection\n title={tr(\"devportal.gettingStarted\", \"Getting Started\")}\n description={tr(\n \"devportal.everythingToStartBuilding\",\n \"Everything you need to start building\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {getDocsForCategory(\"getting-started\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n </EmphasisPanel>\n\n {/* API Reference */}\n <PageSection\n title={tr(\"devportal.apiReference\", \"API Reference\")}\n description={tr(\n \"devportal.completeApiDocumentation\",\n \"Complete API documentation\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n {getDocsForCategory(\"api\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n\n {/* Guides */}\n <PageSection\n title={tr(\"devportal.guides\", \"Guides\")}\n description={tr(\n \"devportal.stepByStepTutorials\",\n \"Step-by-step tutorials and best practices\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {getDocsForCategory(\"guides\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n\n {/* Reference & Support Row */}\n <div className=\"grid gap-6 lg:grid-cols-2\">\n {/* Reference */}\n <PageSection\n title={tr(\"devportal.reference\", \"Reference\")}\n description={tr(\n \"devportal.detailedSpecifications\",\n \"Detailed specifications\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2\">\n {getDocsForCategory(\"reference\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n\n {/* Support */}\n <PageSection\n title={tr(\"devportal.support\", \"Support\")}\n description={tr(\n \"devportal.getHelpStayUpdated\",\n \"Get help and stay updated\",\n )}\n >\n <div className=\"grid gap-4 sm:grid-cols-2\">\n {getDocsForCategory(\"support\").map((doc) => (\n <DocumentationCard key={doc.id} doc={doc} />\n ))}\n </div>\n </PageSection>\n </div>\n\n {/* FluidGrids: Resources (SDKs, build and learning links) is merged in here. */}\n {isFluidgrids && (\n <div className=\"mt-6 space-y-6\">\n <ResourcesSections />\n </div>\n )}\n\n {/* Help Banner */}\n <div className=\"mt-6 rounded-card border border-border-seam bg-accent-wash p-6\">\n <div className=\"flex flex-col items-start gap-4 sm:flex-row sm:items-center sm:justify-between\">\n <div>\n <h3 className=\"text-lg font-semibold\">\n {tr(\"devportal.needMoreHelp\", \"Need more help?\")}\n </h3>\n <p className=\"mt-1 text-text-secondary\">\n {tr(\n \"devportal.developerSupportTeamHelp\",\n \"Our developer support team is here to help you build amazing applications.\",\n )}\n </p>\n </div>\n <div className=\"flex gap-3\">\n <a\n href={DEVELOPER_LINKS.community}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-2 rounded-md border bg-bg-surface px-4 py-2 text-sm font-medium hover:bg-accent transition-colors\"\n >\n <Users size={16} />\n {tr(\"devportal.community\", \"Community\")}\n </a>\n <a\n href=\"mailto:contact@burdenoff.com\"\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors\"\n >\n <MessageSquare size={16} />\n {tr(\"devportal.contactSupport\", \"Contact Support\")}\n </a>\n </div>\n </div>\n </div>\n </PageLayout>\n );\n};\n"],"mappings":";;;;;;;;;AAsDA,IAAMA,IAA0C;CAE9C;EACE,IAAI;EACJ,OAAO;EACP,aACE;EACF,KAAKC,EAAgB;EACrB,MAAM,kBAACC,GAAD,EAAQ,MAAM,GAAK,CAAA;EACzB,UAAU;EACV,OAAO;CACT;CACA;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,KAAKD,EAAgB;EACrB,MAAM,kBAACE,GAAD,EAAK,MAAM,GAAK,CAAA;EACtB,UAAU;EACV,WAAW;CACb;CACA;EACE,IAAI;EACJ,OAAO;EACP,aACE;EACF,KAAKF,EAAgB;EACrB,MAAM,kBAACG,GAAD,EAAW,MAAM,GAAK,CAAA;EAC5B,UAAU;CACZ;CACA;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,KAAKH,EAAgB;EACrB,MAAM,kBAACI,GAAD,EAAQ,MAAM,GAAK,CAAA;EACzB,UAAU;CACZ;CAGA;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,KAAKJ,EAAgB;EACrB,MAAM,kBAACK,GAAD,EAAO,MAAM,GAAK,CAAA;EACxB,UAAU;EACV,WAAW;CACb;CACA;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,KAAKL,EAAgB;EACrB,MAAM,kBAACM,GAAD,EAAS,MAAM,GAAK,CAAA;EAC1B,UAAU;CACZ;CAGA;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,KAAKN,EAAgB;EACrB,MAAM,kBAACE,GAAD,EAAK,MAAM,GAAK,CAAA;EACtB,UAAU;CACZ;CACA;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,KAAKF,EAAgB;EACrB,MAAM,kBAACO,GAAD,EAAK,MAAM,GAAK,CAAA;EACtB,UAAU;CACZ;CACA;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,KAAKP,EAAgB;EACrB,MAAM,kBAACQ,GAAD,EAAU,MAAM,GAAK,CAAA;EAC3B,UAAU;CACZ;CAGA;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,KAAKR,EAAgB;EACrB,MAAM,kBAACS,GAAD,EAAU,MAAM,GAAK,CAAA;EAC3B,UAAU;CACZ;CACA;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,KAAKT,EAAgB;EACrB,MAAM,kBAACS,GAAD,EAAU,MAAM,GAAK,CAAA;EAC3B,UAAU;CACZ;CACA;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,KAAKT,EAAgB;EACrB,MAAM,kBAACU,GAAD,EAAU,MAAM,GAAK,CAAA;EAC3B,UAAU;CACZ;CACA;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,KAAKV,EAAgB;EACrB,MAAM,kBAACK,GAAD,EAAO,MAAM,GAAK,CAAA;EACxB,UAAU;CACZ;CAGA;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,KAAKL,EAAgB;EACrB,MAAM,kBAACW,GAAD,EAAY,MAAM,GAAK,CAAA;EAC7B,UAAU;CACZ;CACA;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,KAAKX,EAAgB;EACrB,MAAM,kBAACY,GAAD,EAAO,MAAM,GAAK,CAAA;EACxB,UAAU;CACZ;AACF,GAEMC,IAA0B;CAC9B;EACE,OAAO;EACP,KAAKb,EAAgB;EACrB,MAAM,kBAACE,GAAD,EAAK,MAAM,GAAK,CAAA;CACxB;CACA;EACE,OAAO;EACP,KAAKF,EAAgB;EACrB,MAAM,kBAACK,GAAD,EAAO,MAAM,GAAK,CAAA;CAC1B;CACA;EACE,OAAO;EACP,KAAKL,EAAgB;EACrB,MAAM,kBAACS,GAAD,EAAU,MAAM,GAAK,CAAA;CAC7B;CACA;EACE,OAAO;EACP,KAAKT,EAAgB;EACrB,MAAM,kBAACI,GAAD,EAAQ,MAAM,GAAK,CAAA;CAC3B;AACF,GAkBMU,KAAqD,EAAE,aAC3D,kBAAC,KAAD;CACE,MAAMC,EAAI;CACV,QAAO;CACP,KAAI;CACJ,WAAU;CAJZ,UAAA;EAME,kBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,kBAAC,OAAD;IAAK,WAAU;IACZ,UAAAA,EAAI;GACF,CAAA,GACL,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACGA,EAAI,SACH,kBAAC,QAAD;MAAM,WAAU;MAAoG,UAAA;KAE9G,CAAA;KAEPA,EAAI,aACH,kBAAC,QAAD;MAAM,WAAU;MAAoG,UAAA;KAE9G,CAAA;KAER,kBAACC,GAAD;MACE,MAAM;MACN,WAAU;KACX,CAAA;IACE;GACF,CAAA,CAAA;;EACL,kBAAC,MAAD;GAAI,WAAU;GAA+C,UAAAD,EAAI;EAAU,CAAA;EAC3E,kBAAC,KAAD;GAAG,WAAU;GACV,UAAAA,EAAI;EACJ,CAAA;CACF;A,IAGCE,KAA0C,EAAE,cAChD,kBAAC,KAAD;CACE,MAAMC,EAAK;CACX,QAAO;CACP,KAAI;CACJ,WAAU;CAJZ,UAAA;EAME,kBAAC,QAAD;GAAM,WAAU;GAAuB,UAAAA,EAAK;EAAW,CAAA;EACtDA,EAAK;EACN,kBAACF,GAAD;GAAc,MAAM;GAAI,WAAU;EAA+B,CAAA;CAChE;A,IAOQG,UAA8B;CACzC,IAAM,EAAE,SAAMC,EAAQ,GAChBC,IAAeC,EAAuB,GACtCC,KAAM,GAAa,MAA6B;EACpD,IAAMC,IAAQC,EAAEC,CAAG;EACnB,OAAOF,MAAUE,IAAMC,IAAWH;CACpC,GACMI,KAAsB,MAC1B7B,EAAmB,QAAQ,MAAQgB,EAAI,aAAac,CAAU;CAEhE,OACE,kBAACC,GAAD;EACE,OAAOP,EAAG,2BAA2B,eAAe;EACpD,aAAaA,EACX,oCACA,kFACF;EACA,SAASA,EACP,yBACA,iNACF;EACA,SACE,kBAAC,KAAD;GACE,MAAMvB,EAAgB;GACtB,QAAO;GACP,KAAI;GACJ,WAAU;GAJZ,UAAA;IAME,kBAAC+B,GAAD,EAAM,MAAM,GAAK,CAAA;IAChBR,EAAG,0BAA0B,gBAAgB;IAC9C,kBAACP,GAAD,EAAc,MAAM,GAAK,CAAA;GACxB;;EApBP,UAAA;GA0BG,CAACK,KACA,kBAAC,OAAD;IACE,MAAK;IACL,WAAU;IAFZ,UAAA,CAIE,kBAAC,UAAD;KAAQ,WAAU;KACf,UAAAE,EAAG,mCAAmC,aAAa;IAC9C,CAAA,GACR,kBAAC,QAAD;KAAM,WAAU;KACb,UAAAA,EACC,yCACA,wHACF;IACI,CAAA,CACH;;GAIP,kBAACS,GAAD,EAAA,UACE,kBAAC,OAAD;IAAK,WAAU;IACZ,UAAAnB,EAAW,KAAK,MACf,kBAACI,GAAD,EAAsC,QAAO,GAAzBC,EAAK,KAAoB,CAC9C;GACE,CAAA,EACM,CAAA;GAGb,kBAACe,GAAD,EAAA,UACE,kBAACD,GAAD;IACE,OAAOT,EAAG,4BAA4B,iBAAiB;IACvD,aAAaA,EACX,uCACA,uCACF;IAEA,UAAA,kBAAC,OAAD;KAAK,WAAU;KACZ,UAAAK,EAAmB,iBAAiB,CAAC,CAAC,KAAK,MAC1C,kBAACd,GAAD,EAAqC,OAAM,GAAnBC,EAAI,EAAe,CAC5C;IACE,CAAA;GACM,CAAA,EACA,CAAA;GAGf,kBAACiB,GAAD;IACE,OAAOT,EAAG,0BAA0B,eAAe;IACnD,aAAaA,EACX,sCACA,4BACF;IAEA,UAAA,kBAAC,OAAD;KAAK,WAAU;KACZ,UAAAK,EAAmB,KAAK,CAAC,CAAC,KAAK,MAC9B,kBAACd,GAAD,EAAqC,OAAM,GAAnBC,EAAI,EAAe,CAC5C;IACE,CAAA;GACM,CAAA;GAGb,kBAACiB,GAAD;IACE,OAAOT,EAAG,oBAAoB,QAAQ;IACtC,aAAaA,EACX,iCACA,2CACF;IAEA,UAAA,kBAAC,OAAD;KAAK,WAAU;KACZ,UAAAK,EAAmB,QAAQ,CAAC,CAAC,KAAK,MACjC,kBAACd,GAAD,EAAqC,OAAM,GAAnBC,EAAI,EAAe,CAC5C;IACE,CAAA;GACM,CAAA;GAGb,kBAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CAEE,kBAACiB,GAAD;KACE,OAAOT,EAAG,uBAAuB,WAAW;KAC5C,aAAaA,EACX,oCACA,yBACF;KAEA,UAAA,kBAAC,OAAD;MAAK,WAAU;MACZ,UAAAK,EAAmB,WAAW,CAAC,CAAC,KAAK,MACpC,kBAACd,GAAD,EAAqC,OAAM,GAAnBC,EAAI,EAAe,CAC5C;KACE,CAAA;IACM,CAAA,GAGb,kBAACiB,GAAD;KACE,OAAOT,EAAG,qBAAqB,SAAS;KACxC,aAAaA,EACX,gCACA,2BACF;KAEA,UAAA,kBAAC,OAAD;MAAK,WAAU;MACZ,UAAAK,EAAmB,SAAS,CAAC,CAAC,KAAK,MAClC,kBAACd,GAAD,EAAqC,OAAM,GAAnBC,EAAI,EAAe,CAC5C;KACE,CAAA;IACM,CAAA,CACV;;GAGJM,KACC,kBAAC,OAAD;IAAK,WAAU;IACb,UAAA,kBAACa,GAAD,CAAoB,CAAA;GACjB,CAAA;GAIP,kBAAC,OAAD;IAAK,WAAU;IACb,UAAA,kBAAC,OAAD;KAAK,WAAU;KAAf,UAAA,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;MAAI,WAAU;MACX,UAAAX,EAAG,0BAA0B,iBAAiB;KAC7C,CAAA,GACJ,kBAAC,KAAD;MAAG,WAAU;MACV,UAAAA,EACC,sCACA,4EACF;KACC,CAAA,CACA,EAAA,CAAA,GACL,kBAAC,OAAD;MAAK,WAAU;MAAf,UAAA,CACE,kBAAC,KAAD;OACE,MAAMvB,EAAgB;OACtB,QAAO;OACP,KAAI;OACJ,WAAU;OAJZ,UAAA,CAME,kBAACY,GAAD,EAAO,MAAM,GAAK,CAAA,GACjBW,EAAG,uBAAuB,WAAW,CACrC;MACH,CAAA,GAAA,kBAAC,KAAD;OACE,MAAK;OACL,WAAU;OAFZ,UAAA,CAIE,kBAACY,GAAD,EAAe,MAAM,GAAK,CAAA,GACzBZ,EAAG,4BAA4B,iBAAiB,CAChD;MACA,CAAA,CAAA;KACF,CAAA,CAAA;;GACF,CAAA;EACK;;AAEhB"}
|