@burdenoff/microfe-devportal 2026.611.2 → 2026.614.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 (50) hide show
  1. package/dist/devportal/components/SectionNav.js +105 -41
  2. package/dist/devportal/components/SectionNav.js.map +1 -1
  3. package/dist/devportal/hooks/useGraphQL.js +1 -1
  4. package/dist/devportal/pages/AdminReviewPage.js +36 -36
  5. package/dist/devportal/pages/AnalyticsDashboardPage.js +150 -150
  6. package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
  7. package/dist/devportal/pages/ApiKeysPage.js +184 -172
  8. package/dist/devportal/pages/ApiKeysPage.js.map +1 -1
  9. package/dist/devportal/pages/AppLogsPage.js +9 -9
  10. package/dist/devportal/pages/ApplicationDetailPage.js +414 -414
  11. package/dist/devportal/pages/ApplicationDetailPage.js.map +1 -1
  12. package/dist/devportal/pages/ApplicationVersionsPage.js +44 -44
  13. package/dist/devportal/pages/ApplicationVersionsPage.js.map +1 -1
  14. package/dist/devportal/pages/ApplicationsPage.js +118 -118
  15. package/dist/devportal/pages/ApplicationsPage.js.map +1 -1
  16. package/dist/devportal/pages/CreateApiKeyPage.js +20 -20
  17. package/dist/devportal/pages/CreateApplicationPage.js +32 -32
  18. package/dist/devportal/pages/CreateOAuthClientPage.js +20 -20
  19. package/dist/devportal/pages/CreateOrganizationPage.js +125 -442
  20. package/dist/devportal/pages/CreateOrganizationPage.js.map +1 -1
  21. package/dist/devportal/pages/CreateWebhookPage.js +25 -25
  22. package/dist/devportal/pages/DashboardPage.js +160 -145
  23. package/dist/devportal/pages/DashboardPage.js.map +1 -1
  24. package/dist/devportal/pages/DelegationsPage.js +22 -22
  25. package/dist/devportal/pages/EditApplicationPage.js +283 -283
  26. package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
  27. package/dist/devportal/pages/ListingPreviewPage.js +9 -9
  28. package/dist/devportal/pages/OAuthClientDetailPage.js +17 -17
  29. package/dist/devportal/pages/OAuthClientsPage.js +16 -16
  30. package/dist/devportal/pages/OrganizationDetailPage.js +78 -78
  31. package/dist/devportal/pages/OrganizationMembersPage.js +260 -260
  32. package/dist/devportal/pages/OrganizationMembersPage.js.map +1 -1
  33. package/dist/devportal/pages/OrganizationsPage.js +18 -18
  34. package/dist/devportal/pages/PublishPage.js +16 -16
  35. package/dist/devportal/pages/PublisherProfilePage.js +156 -146
  36. package/dist/devportal/pages/PublisherProfilePage.js.map +1 -1
  37. package/dist/devportal/pages/RevenueDashboardPage.js +512 -362
  38. package/dist/devportal/pages/RevenueDashboardPage.js.map +1 -1
  39. package/dist/devportal/pages/SettingsPage.js +17 -17
  40. package/dist/devportal/pages/SetupPage.js +99 -99
  41. package/dist/devportal/pages/SetupPage.js.map +1 -1
  42. package/dist/devportal/pages/WebhookDetailPage.js +143 -143
  43. package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
  44. package/dist/devportal/pages/WebhooksPage.js +140 -140
  45. package/dist/devportal/pages/WebhooksPage.js.map +1 -1
  46. package/dist/devportal/providers/DevportalProvider.js +46 -33
  47. package/dist/devportal/providers/DevportalProvider.js.map +1 -1
  48. package/dist/generated/global-operations.js +69 -55
  49. package/dist/generated/global-operations.js.map +1 -1
  50. package/package.json +1 -1
@@ -1,18 +1,18 @@
1
1
  import { useDevportal as e } from "../providers/DevportalProvider.js";
2
2
  import { useDevportalEventBus as t } from "../events/index.js";
3
- import { APP_TYPE_LABELS as n } from "../utils/constants.js";
4
- import { InputField as r, SelectField as i, TextareaField as a } from "../components/FormField.js";
5
- import { useCreateApplicationMutation as ee, useCreateBillingAccountMutation as o, useCreateOrganizationMutation as s } from "../../generated/global-operations.js";
3
+ import { useCreateApplicationMutation as n, useCreateBillingAccountMutation as r, useCreateOrganizationMutation as i } from "../../generated/global-operations.js";
4
+ import { APP_TYPE_LABELS as a } from "../utils/constants.js";
5
+ import { InputField as o, SelectField as s, TextareaField as c } from "../components/FormField.js";
6
6
  import "../hooks/index.js";
7
- import { useState as c } from "react";
8
- import { useI18n as te } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
9
- import { AppWindow as l, ArrowRight as u, BookOpen as d, Building2 as f, Check as p, ChevronRight as m, Key as h, Rocket as g } from "lucide-react";
10
- import { jsx as _, jsxs as v } from "react/jsx-runtime";
7
+ import { useState as l } from "react";
8
+ import { useI18n as u } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
9
+ import { AppWindow as d, ArrowRight as ee, BookOpen as te, Building2 as f, Check as p, ChevronRight as m, Key as ne, Rocket as h } from "lucide-react";
10
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
11
11
  //#region src/devportal/pages/SetupPage.tsx
12
- var y = Object.entries(n).map(([e, t]) => ({
12
+ var v = Object.entries(a).map(([e, t]) => ({
13
13
  value: e,
14
14
  label: t
15
- })), b = [
15
+ })), y = [
16
16
  {
17
17
  value: "productivity",
18
18
  label: "Productivity"
@@ -62,15 +62,15 @@ var y = Object.entries(n).map(([e, t]) => ({
62
62
  label: "Other"
63
63
  }
64
64
  ];
65
- function x(e) {
65
+ function b(e) {
66
66
  return e.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
67
67
  }
68
- function S() {
68
+ function x() {
69
69
  try {
70
70
  localStorage.setItem("devportal_setup_dismissed", "1");
71
71
  } catch {}
72
72
  }
73
- var C = [
73
+ var S = [
74
74
  {
75
75
  key: "org",
76
76
  label: "Organization"
@@ -83,32 +83,32 @@ var C = [
83
83
  key: "done",
84
84
  label: "Done"
85
85
  }
86
- ], ne = ({ current: e }) => {
87
- let t = C.findIndex((t) => t.key === e);
88
- return /* @__PURE__ */ _("div", {
86
+ ], C = ({ current: e }) => {
87
+ let t = S.findIndex((t) => t.key === e);
88
+ return /* @__PURE__ */ g("div", {
89
89
  className: "flex items-center gap-0",
90
- children: C.map((e, n) => {
90
+ children: S.map((e, n) => {
91
91
  let r = n < t, i = n === t;
92
- return /* @__PURE__ */ v("div", {
92
+ return /* @__PURE__ */ _("div", {
93
93
  className: "flex items-center",
94
- children: [/* @__PURE__ */ v("div", {
94
+ children: [/* @__PURE__ */ _("div", {
95
95
  className: "flex flex-col items-center gap-1.5",
96
- children: [/* @__PURE__ */ _("div", {
96
+ children: [/* @__PURE__ */ g("div", {
97
97
  className: ["flex h-8 w-8 items-center justify-center rounded-full text-sm font-semibold transition-colors", r ? "bg-primary text-primary-foreground" : i ? "bg-primary text-primary-foreground ring-4 ring-primary/20" : "bg-muted text-muted-foreground"].join(" "),
98
- children: r ? /* @__PURE__ */ _(p, { size: 14 }) : n + 1
99
- }), /* @__PURE__ */ _("span", {
98
+ children: r ? /* @__PURE__ */ g(p, { size: 14 }) : n + 1
99
+ }), /* @__PURE__ */ g("span", {
100
100
  className: ["text-xs font-medium whitespace-nowrap", i ? "text-foreground" : "text-muted-foreground"].join(" "),
101
101
  children: e.label
102
102
  })]
103
- }), n < C.length - 1 && /* @__PURE__ */ _("div", { className: ["mx-3 mb-5 h-px w-16 flex-shrink-0 transition-colors", n < t ? "bg-primary" : "bg-border"].join(" ") })]
103
+ }), n < S.length - 1 && /* @__PURE__ */ g("div", { className: ["mx-3 mb-5 h-px w-16 flex-shrink-0 transition-colors", n < t ? "bg-primary" : "bg-border"].join(" ") })]
104
104
  }, e.key);
105
105
  })
106
106
  });
107
107
  }, w = () => {
108
- let { navigate: n, basePath: p, currentUser: C } = e(), { t: w } = te(), E = t(), D = (e, t) => {
108
+ let { navigate: a, basePath: p, currentUser: S } = e(), { t: w } = u(), E = t(), D = (e, t) => {
109
109
  let n = w(e);
110
110
  return n === e ? t : n;
111
- }, O = (e) => n?.(`${p}${e}`), [k, A] = c("org"), [j, re] = c(null), [M, ie] = c(null), [N, ae] = c(""), [P, F] = c(""), [I, oe] = c(""), [L, R] = c({}), [z, { loading: B }] = s(), [V] = o(), H = () => {
111
+ }, O = (e) => a?.(`${p}${e}`), [k, A] = l("org"), [j, re] = l(null), [M, ie] = l(null), [N, ae] = l(""), [P, F] = l(""), [I, oe] = l(""), [L, R] = l({}), [z, { loading: B }] = i(), [V] = r(), H = () => {
112
112
  let e = {};
113
113
  return N.trim() ? N.length < 2 && (e.name = D("devportal.orgNameTooShort", "Name must be at least 2 characters")) : e.name = D("devportal.orgNameRequired", "Organization name is required"), P.trim() ? /^[a-z0-9-]+$/.test(P) || (e.slug = D("devportal.slugInvalid", "Lowercase letters, numbers, and hyphens only")) : e.slug = D("devportal.slugRequired", "Slug is required"), R(e), Object.keys(e).length === 0;
114
114
  }, U = async () => {
@@ -126,13 +126,13 @@ var C = [
126
126
  try {
127
127
  V({ variables: { input: {
128
128
  name: N,
129
- email: C?.email ?? ""
129
+ email: S?.email ?? ""
130
130
  } } }).catch(() => {});
131
131
  } catch {}
132
132
  A("app");
133
133
  }
134
134
  } catch {}
135
- }, [W, G] = c(""), [K, se] = c(""), [q, ce] = c(""), [J, le] = c(""), [Y, ue] = c(""), [X, Z] = c({}), [de, { loading: Q }] = ee(), fe = () => {
135
+ }, [W, G] = l(""), [K, se] = l(""), [q, ce] = l(""), [J, le] = l(""), [Y, ue] = l(""), [X, Z] = l({}), [de, { loading: Q }] = n(), fe = () => {
136
136
  let e = {};
137
137
  return W.trim() ? W.length < 3 && (e.name = D("devportal.nameTooShort", "Name must be at least 3 characters")) : e.name = D("devportal.appNameRequired", "Application name is required"), q || (e.appType = D("devportal.appTypeRequired", "Application type is required")), J || (e.category = D("devportal.categoryRequired", "Category is required")), Y.trim() || (e.shortDescription = D("devportal.shortDescriptionRequired", "Short description is required")), Z(e), Object.keys(e).length === 0;
138
138
  }, pe = async () => {
@@ -151,32 +151,32 @@ var C = [
151
151
  name: W,
152
152
  appType: q,
153
153
  organizationId: j
154
- }), ie(e), S(), A("done"));
154
+ }), ie(e), x(), A("done"));
155
155
  } catch {}
156
156
  }, $ = () => {
157
- S(), O("/");
157
+ x(), O("/");
158
158
  };
159
- return /* @__PURE__ */ v("main", {
159
+ return /* @__PURE__ */ _("main", {
160
160
  className: "min-h-screen bg-surface-default",
161
- children: [/* @__PURE__ */ _("div", {
161
+ children: [/* @__PURE__ */ g("div", {
162
162
  className: "border-b border-border-default bg-surface-raised",
163
- children: /* @__PURE__ */ _("div", {
163
+ children: /* @__PURE__ */ g("div", {
164
164
  className: "mx-auto max-w-2xl px-6 py-5",
165
- children: /* @__PURE__ */ v("div", {
165
+ children: /* @__PURE__ */ _("div", {
166
166
  className: "flex items-center justify-between",
167
- children: [/* @__PURE__ */ v("div", {
167
+ children: [/* @__PURE__ */ _("div", {
168
168
  className: "flex items-center gap-3",
169
- children: [/* @__PURE__ */ _("div", {
169
+ children: [/* @__PURE__ */ g("div", {
170
170
  className: "flex h-9 w-9 items-center justify-center rounded-lg bg-primary/10 text-primary",
171
- children: /* @__PURE__ */ _(g, { size: 20 })
172
- }), /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("p", {
171
+ children: /* @__PURE__ */ g(h, { size: 20 })
172
+ }), /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("p", {
173
173
  className: "text-xs font-medium text-muted-foreground",
174
174
  children: D("devportal.developerPortal", "Developer Portal")
175
- }), /* @__PURE__ */ _("h1", {
175
+ }), /* @__PURE__ */ g("h1", {
176
176
  className: "text-base font-semibold text-foreground",
177
177
  children: D("devportal.setup.title", "Get set up")
178
178
  })] })]
179
- }), k !== "done" && /* @__PURE__ */ _("button", {
179
+ }), k !== "done" && /* @__PURE__ */ g("button", {
180
180
  type: "button",
181
181
  onClick: $,
182
182
  className: "text-sm text-muted-foreground hover:text-foreground transition-colors",
@@ -184,37 +184,37 @@ var C = [
184
184
  })]
185
185
  })
186
186
  })
187
- }), /* @__PURE__ */ v("div", {
187
+ }), /* @__PURE__ */ _("div", {
188
188
  className: "mx-auto max-w-2xl px-6 py-10",
189
189
  children: [
190
- /* @__PURE__ */ _("div", {
190
+ /* @__PURE__ */ g("div", {
191
191
  className: "mb-10 flex justify-center",
192
- children: /* @__PURE__ */ _(ne, { current: k })
192
+ children: /* @__PURE__ */ g(C, { current: k })
193
193
  }),
194
- k === "org" && /* @__PURE__ */ v("div", {
194
+ k === "org" && /* @__PURE__ */ _("div", {
195
195
  className: "rounded-xl border border-border-default bg-surface-raised p-8 shadow-sm",
196
196
  children: [
197
- /* @__PURE__ */ v("div", {
197
+ /* @__PURE__ */ _("div", {
198
198
  className: "mb-6 flex items-center gap-3",
199
- children: [/* @__PURE__ */ _("div", {
199
+ children: [/* @__PURE__ */ g("div", {
200
200
  className: "flex h-10 w-10 items-center justify-center rounded-lg bg-primary/10 text-primary",
201
- children: /* @__PURE__ */ _(f, { size: 20 })
202
- }), /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("h2", {
201
+ children: /* @__PURE__ */ g(f, { size: 20 })
202
+ }), /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("h2", {
203
203
  className: "text-lg font-semibold text-foreground",
204
204
  children: D("devportal.setup.orgTitle", "Set up your organization")
205
- }), /* @__PURE__ */ _("p", {
205
+ }), /* @__PURE__ */ g("p", {
206
206
  className: "text-sm text-muted-foreground",
207
207
  children: D("devportal.setup.orgSubtitle", "This groups your apps and teams under one publisher identity.")
208
208
  })] })]
209
209
  }),
210
- /* @__PURE__ */ v("div", {
210
+ /* @__PURE__ */ _("div", {
211
211
  className: "space-y-5",
212
212
  children: [
213
- /* @__PURE__ */ _(r, {
213
+ /* @__PURE__ */ g(o, {
214
214
  label: D("devportal.organizationName", "Organization Name"),
215
215
  value: N,
216
216
  onChange: (e) => {
217
- ae(e.target.value), (!P || P === x(N)) && F(x(e.target.value)), R((e) => ({
217
+ ae(e.target.value), (!P || P === b(N)) && F(b(e.target.value)), R((e) => ({
218
218
  ...e,
219
219
  name: void 0
220
220
  }));
@@ -223,7 +223,7 @@ var C = [
223
223
  required: !0,
224
224
  error: L.name
225
225
  }),
226
- /* @__PURE__ */ _(r, {
226
+ /* @__PURE__ */ g(o, {
227
227
  label: D("devportal.slug", "Slug"),
228
228
  value: P,
229
229
  onChange: (e) => {
@@ -237,7 +237,7 @@ var C = [
237
237
  error: L.slug,
238
238
  hint: D("devportal.slugHint", "URL-friendly identifier — auto-generated from name")
239
239
  }),
240
- /* @__PURE__ */ _(a, {
240
+ /* @__PURE__ */ g(c, {
241
241
  label: D("devportal.description", "Description"),
242
242
  value: I,
243
243
  onChange: (e) => oe(e.target.value),
@@ -246,51 +246,51 @@ var C = [
246
246
  })
247
247
  ]
248
248
  }),
249
- /* @__PURE__ */ v("div", {
249
+ /* @__PURE__ */ _("div", {
250
250
  className: "mt-8 flex items-center justify-between border-t border-border-default pt-6",
251
- children: [/* @__PURE__ */ _("button", {
251
+ children: [/* @__PURE__ */ g("button", {
252
252
  type: "button",
253
253
  onClick: $,
254
254
  className: "text-sm text-muted-foreground hover:text-foreground transition-colors",
255
255
  children: D("devportal.setup.skipForNow", "Skip for now")
256
- }), /* @__PURE__ */ v("button", {
256
+ }), /* @__PURE__ */ _("button", {
257
257
  type: "button",
258
258
  onClick: () => void U(),
259
259
  disabled: B,
260
260
  className: "inline-flex items-center gap-2 rounded-lg bg-primary px-5 py-2.5 text-sm font-semibold text-primary-foreground hover:bg-primary/90 disabled:opacity-60 transition-colors",
261
261
  children: [
262
- B ? /* @__PURE__ */ _("span", { className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }) : null,
262
+ B ? /* @__PURE__ */ g("span", { className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }) : null,
263
263
  D("devportal.setup.createAndContinue", "Create & Continue"),
264
- !B && /* @__PURE__ */ _(m, { size: 16 })
264
+ !B && /* @__PURE__ */ g(m, { size: 16 })
265
265
  ]
266
266
  })]
267
267
  })
268
268
  ]
269
269
  }),
270
- k === "app" && /* @__PURE__ */ v("div", {
270
+ k === "app" && /* @__PURE__ */ _("div", {
271
271
  className: "rounded-xl border border-border-default bg-surface-raised p-8 shadow-sm",
272
272
  children: [
273
- /* @__PURE__ */ v("div", {
273
+ /* @__PURE__ */ _("div", {
274
274
  className: "mb-6 flex items-center gap-3",
275
- children: [/* @__PURE__ */ _("div", {
275
+ children: [/* @__PURE__ */ g("div", {
276
276
  className: "flex h-10 w-10 items-center justify-center rounded-lg bg-primary/10 text-primary",
277
- children: /* @__PURE__ */ _(l, { size: 20 })
278
- }), /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("h2", {
277
+ children: /* @__PURE__ */ g(d, { size: 20 })
278
+ }), /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("h2", {
279
279
  className: "text-lg font-semibold text-foreground",
280
280
  children: D("devportal.setup.appTitle", "Create your first app")
281
- }), /* @__PURE__ */ _("p", {
281
+ }), /* @__PURE__ */ g("p", {
282
282
  className: "text-sm text-muted-foreground",
283
283
  children: D("devportal.setup.appSubtitle", "Register the app you want to publish or integrate.")
284
284
  })] })]
285
285
  }),
286
- /* @__PURE__ */ v("div", {
286
+ /* @__PURE__ */ _("div", {
287
287
  className: "space-y-5",
288
288
  children: [
289
- /* @__PURE__ */ _(r, {
289
+ /* @__PURE__ */ g(o, {
290
290
  label: D("devportal.applicationName", "Application Name"),
291
291
  value: W,
292
292
  onChange: (e) => {
293
- G(e.target.value), (!K || K === x(W)) && se(x(e.target.value)), Z((e) => ({
293
+ G(e.target.value), (!K || K === b(W)) && se(b(e.target.value)), Z((e) => ({
294
294
  ...e,
295
295
  name: void 0
296
296
  }));
@@ -299,9 +299,9 @@ var C = [
299
299
  required: !0,
300
300
  error: X.name
301
301
  }),
302
- /* @__PURE__ */ v("div", {
302
+ /* @__PURE__ */ _("div", {
303
303
  className: "grid grid-cols-2 gap-4",
304
- children: [/* @__PURE__ */ _(i, {
304
+ children: [/* @__PURE__ */ g(s, {
305
305
  label: D("devportal.applicationType", "Application Type"),
306
306
  value: q,
307
307
  onChange: (e) => {
@@ -310,11 +310,11 @@ var C = [
310
310
  appType: void 0
311
311
  }));
312
312
  },
313
- options: y,
313
+ options: v,
314
314
  placeholder: D("devportal.selectType", "Select type…"),
315
315
  required: !0,
316
316
  error: X.appType
317
- }), /* @__PURE__ */ _(i, {
317
+ }), /* @__PURE__ */ g(s, {
318
318
  label: D("devportal.category", "Category"),
319
319
  value: J,
320
320
  onChange: (e) => {
@@ -323,13 +323,13 @@ var C = [
323
323
  category: void 0
324
324
  }));
325
325
  },
326
- options: b,
326
+ options: y,
327
327
  placeholder: D("devportal.selectCategory", "Select category…"),
328
328
  required: !0,
329
329
  error: X.category
330
330
  })]
331
331
  }),
332
- /* @__PURE__ */ _(a, {
332
+ /* @__PURE__ */ g(c, {
333
333
  label: D("devportal.shortDescription", "Short Description"),
334
334
  value: Y,
335
335
  onChange: (e) => {
@@ -346,103 +346,103 @@ var C = [
346
346
  })
347
347
  ]
348
348
  }),
349
- /* @__PURE__ */ v("div", {
349
+ /* @__PURE__ */ _("div", {
350
350
  className: "mt-8 flex items-center justify-between border-t border-border-default pt-6",
351
- children: [/* @__PURE__ */ _("button", {
351
+ children: [/* @__PURE__ */ g("button", {
352
352
  type: "button",
353
353
  onClick: $,
354
354
  className: "text-sm text-muted-foreground hover:text-foreground transition-colors",
355
355
  children: D("devportal.setup.skipForNow", "Skip for now")
356
- }), /* @__PURE__ */ v("button", {
356
+ }), /* @__PURE__ */ _("button", {
357
357
  type: "button",
358
358
  onClick: () => void pe(),
359
359
  disabled: Q,
360
360
  className: "inline-flex items-center gap-2 rounded-lg bg-primary px-5 py-2.5 text-sm font-semibold text-primary-foreground hover:bg-primary/90 disabled:opacity-60 transition-colors",
361
361
  children: [
362
- Q ? /* @__PURE__ */ _("span", { className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }) : null,
362
+ Q ? /* @__PURE__ */ g("span", { className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }) : null,
363
363
  D("devportal.setup.createApp", "Create App"),
364
- !Q && /* @__PURE__ */ _(m, { size: 16 })
364
+ !Q && /* @__PURE__ */ g(m, { size: 16 })
365
365
  ]
366
366
  })]
367
367
  })
368
368
  ]
369
369
  }),
370
- k === "done" && /* @__PURE__ */ v("div", {
370
+ k === "done" && /* @__PURE__ */ _("div", {
371
371
  className: "text-center",
372
372
  children: [
373
- /* @__PURE__ */ _("div", {
373
+ /* @__PURE__ */ g("div", {
374
374
  className: "mx-auto mb-6 flex h-16 w-16 items-center justify-center rounded-full bg-primary/10 text-primary",
375
- children: /* @__PURE__ */ _(g, { size: 32 })
375
+ children: /* @__PURE__ */ g(h, { size: 32 })
376
376
  }),
377
- /* @__PURE__ */ _("h2", {
377
+ /* @__PURE__ */ g("h2", {
378
378
  className: "text-2xl font-bold text-foreground",
379
379
  children: D("devportal.setup.doneTitle", "You're all set!")
380
380
  }),
381
- /* @__PURE__ */ _("p", {
381
+ /* @__PURE__ */ g("p", {
382
382
  className: "mt-2 text-muted-foreground",
383
383
  children: D("devportal.setup.doneSubtitle", "Your organization and first app are ready. Here's what to do next.")
384
384
  }),
385
- /* @__PURE__ */ v("div", {
385
+ /* @__PURE__ */ _("div", {
386
386
  className: "mt-8 grid gap-3 sm:grid-cols-2",
387
387
  children: [
388
- M && /* @__PURE__ */ _(T, {
389
- icon: /* @__PURE__ */ _(l, { size: 20 }),
388
+ M && /* @__PURE__ */ g(T, {
389
+ icon: /* @__PURE__ */ g(d, { size: 20 }),
390
390
  title: D("devportal.setup.viewApp", "View your app"),
391
391
  description: D("devportal.setup.viewAppDesc", "Configure OAuth, webhooks, and versioning"),
392
392
  onClick: () => O(`/apps/${M}`),
393
393
  primary: !0
394
394
  }),
395
- /* @__PURE__ */ _(T, {
396
- icon: /* @__PURE__ */ _(h, { size: 20 }),
395
+ /* @__PURE__ */ g(T, {
396
+ icon: /* @__PURE__ */ g(ne, { size: 20 }),
397
397
  title: D("devportal.setup.generateApiKey", "Generate API key"),
398
398
  description: D("devportal.setup.generateApiKeyDesc", "Create credentials to start calling APIs"),
399
399
  onClick: () => O("/api-keys/new")
400
400
  }),
401
- /* @__PURE__ */ _(T, {
402
- icon: /* @__PURE__ */ _(d, { size: 20 }),
401
+ /* @__PURE__ */ g(T, {
402
+ icon: /* @__PURE__ */ g(te, { size: 20 }),
403
403
  title: D("devportal.setup.browseDocs", "Browse docs"),
404
404
  description: D("devportal.setup.browseDocsDesc", "Learn about publishing, SDKs, and webhooks"),
405
405
  onClick: () => O("/docs")
406
406
  }),
407
- j && /* @__PURE__ */ _(T, {
408
- icon: /* @__PURE__ */ _(f, { size: 20 }),
407
+ j && /* @__PURE__ */ g(T, {
408
+ icon: /* @__PURE__ */ g(f, { size: 20 }),
409
409
  title: D("devportal.setup.inviteTeam", "Invite your team"),
410
410
  description: D("devportal.setup.inviteTeamDesc", "Add members to collaborate on your apps"),
411
411
  onClick: () => O(`/organizations/${j}/members`)
412
412
  })
413
413
  ]
414
414
  }),
415
- /* @__PURE__ */ v("button", {
415
+ /* @__PURE__ */ _("button", {
416
416
  type: "button",
417
417
  onClick: () => O("/"),
418
418
  className: "mt-8 inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors",
419
- children: [D("devportal.setup.goToDashboard", "Go to dashboard"), /* @__PURE__ */ _(u, { size: 14 })]
419
+ children: [D("devportal.setup.goToDashboard", "Go to dashboard"), /* @__PURE__ */ g(ee, { size: 14 })]
420
420
  })
421
421
  ]
422
422
  })
423
423
  ]
424
424
  })]
425
425
  });
426
- }, T = ({ icon: e, title: t, description: n, onClick: r, primary: i }) => /* @__PURE__ */ v("button", {
426
+ }, T = ({ icon: e, title: t, description: n, onClick: r, primary: i }) => /* @__PURE__ */ _("button", {
427
427
  type: "button",
428
428
  onClick: r,
429
429
  className: ["flex items-start gap-4 rounded-xl border p-5 text-left transition-colors", i ? "border-primary bg-primary/5 hover:bg-primary/10" : "border-border-default bg-surface-raised hover:bg-surface-hover"].join(" "),
430
430
  children: [
431
- /* @__PURE__ */ _("div", {
431
+ /* @__PURE__ */ g("div", {
432
432
  className: ["flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-lg", i ? "bg-primary/20 text-primary" : "bg-muted text-muted-foreground"].join(" "),
433
433
  children: e
434
434
  }),
435
- /* @__PURE__ */ v("div", {
435
+ /* @__PURE__ */ _("div", {
436
436
  className: "min-w-0 flex-1",
437
- children: [/* @__PURE__ */ _("p", {
437
+ children: [/* @__PURE__ */ g("p", {
438
438
  className: "font-semibold text-foreground",
439
439
  children: t
440
- }), /* @__PURE__ */ _("p", {
440
+ }), /* @__PURE__ */ g("p", {
441
441
  className: "mt-0.5 text-sm text-muted-foreground",
442
442
  children: n
443
443
  })]
444
444
  }),
445
- /* @__PURE__ */ _(m, {
445
+ /* @__PURE__ */ g(m, {
446
446
  size: 16,
447
447
  className: "mt-0.5 flex-shrink-0 text-muted-foreground"
448
448
  })