@burdenoff/microfe-devportal 2026.623.5 → 2026.623.6
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/DevportalRoutes.js +101 -94
- package/dist/devportal/DevportalRoutes.js.map +1 -1
- package/dist/devportal/components/SectionNav.js +71 -5
- package/dist/devportal/components/SectionNav.js.map +1 -0
- package/dist/devportal/components/index.js +1 -1
- package/dist/devportal/hooks/useGraphQL.js +1 -1
- package/dist/devportal/pages/AdminReviewPage.js +39 -39
- package/dist/devportal/pages/AnalyticsDashboardPage.js +54 -54
- package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
- package/dist/devportal/pages/ApiKeysPage.js +53 -53
- package/dist/devportal/pages/ApiKeysPage.js.map +1 -1
- package/dist/devportal/pages/AppLogsPage.js +9 -9
- package/dist/devportal/pages/ApplicationDetailPage.js +462 -462
- package/dist/devportal/pages/ApplicationDetailPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationVersionsPage.js +120 -120
- package/dist/devportal/pages/ApplicationVersionsPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationsPage.js +73 -73
- package/dist/devportal/pages/ApplicationsPage.js.map +1 -1
- package/dist/devportal/pages/CreateApiKeyPage.js +20 -20
- package/dist/devportal/pages/CreateApplicationPage.js +32 -32
- package/dist/devportal/pages/CreateOAuthClientPage.js +18 -18
- package/dist/devportal/pages/CreateOrganizationPage.js +12 -12
- package/dist/devportal/pages/CreateWebhookPage.js +23 -23
- package/dist/devportal/pages/DashboardPage.js +23 -23
- package/dist/devportal/pages/DelegationsPage.js +22 -22
- package/dist/devportal/pages/EditApplicationPage.js +283 -283
- package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
- package/dist/devportal/pages/ListingPreviewPage.js +9 -9
- package/dist/devportal/pages/OAuthClientDetailPage.js +15 -15
- package/dist/devportal/pages/OAuthClientsPage.js +14 -14
- package/dist/devportal/pages/OrganizationDetailPage.js +84 -84
- package/dist/devportal/pages/OrganizationMembersPage.js +260 -260
- package/dist/devportal/pages/OrganizationMembersPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationsPage.js +16 -16
- package/dist/devportal/pages/PublishPage.js +16 -16
- package/dist/devportal/pages/PublisherProfilePage.js +18 -18
- package/dist/devportal/pages/RevenueDashboardPage.js +29 -29
- package/dist/devportal/pages/SettingsPage.js +17 -17
- package/dist/devportal/pages/SetupPage.js +99 -99
- package/dist/devportal/pages/SetupPage.js.map +1 -1
- package/dist/devportal/pages/WebhookDetailPage.js +143 -143
- package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
- package/dist/devportal/pages/WebhooksPage.js +133 -133
- package/dist/devportal/pages/WebhooksPage.js.map +1 -1
- 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 {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
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
|
|
8
|
-
import { useI18n as
|
|
9
|
-
import { AppWindow as
|
|
10
|
-
import { jsx as
|
|
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
|
|
12
|
+
var v = Object.entries(a).map(([e, t]) => ({
|
|
13
13
|
value: e,
|
|
14
14
|
label: t
|
|
15
|
-
})),
|
|
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
|
|
65
|
+
function b(e) {
|
|
66
66
|
return e.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
|
|
67
67
|
}
|
|
68
|
-
function
|
|
68
|
+
function x() {
|
|
69
69
|
try {
|
|
70
70
|
localStorage.setItem("devportal_setup_dismissed", "1");
|
|
71
71
|
} catch {}
|
|
72
72
|
}
|
|
73
|
-
var
|
|
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
|
-
],
|
|
87
|
-
let t =
|
|
88
|
-
return /* @__PURE__ */
|
|
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:
|
|
90
|
+
children: S.map((e, n) => {
|
|
91
91
|
let r = n < t, i = n === t;
|
|
92
|
-
return /* @__PURE__ */
|
|
92
|
+
return /* @__PURE__ */ _("div", {
|
|
93
93
|
className: "flex items-center",
|
|
94
|
-
children: [/* @__PURE__ */
|
|
94
|
+
children: [/* @__PURE__ */ _("div", {
|
|
95
95
|
className: "flex flex-col items-center gap-1.5",
|
|
96
|
-
children: [/* @__PURE__ */
|
|
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__ */
|
|
99
|
-
}), /* @__PURE__ */
|
|
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 <
|
|
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:
|
|
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) =>
|
|
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:
|
|
129
|
+
email: S?.email ?? ""
|
|
130
130
|
} } }).catch(() => {});
|
|
131
131
|
} catch {}
|
|
132
132
|
A("app");
|
|
133
133
|
}
|
|
134
134
|
} catch {}
|
|
135
|
-
}, [W, G] =
|
|
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),
|
|
154
|
+
}), ie(e), x(), A("done"));
|
|
155
155
|
} catch {}
|
|
156
156
|
}, $ = () => {
|
|
157
|
-
|
|
157
|
+
x(), O("/");
|
|
158
158
|
};
|
|
159
|
-
return /* @__PURE__ */
|
|
159
|
+
return /* @__PURE__ */ _("main", {
|
|
160
160
|
className: "min-h-screen bg-surface-default",
|
|
161
|
-
children: [/* @__PURE__ */
|
|
161
|
+
children: [/* @__PURE__ */ g("div", {
|
|
162
162
|
className: "border-b border-border-default bg-surface-raised",
|
|
163
|
-
children: /* @__PURE__ */
|
|
163
|
+
children: /* @__PURE__ */ g("div", {
|
|
164
164
|
className: "mx-auto max-w-2xl px-6 py-5",
|
|
165
|
-
children: /* @__PURE__ */
|
|
165
|
+
children: /* @__PURE__ */ _("div", {
|
|
166
166
|
className: "flex items-center justify-between",
|
|
167
|
-
children: [/* @__PURE__ */
|
|
167
|
+
children: [/* @__PURE__ */ _("div", {
|
|
168
168
|
className: "flex items-center gap-3",
|
|
169
|
-
children: [/* @__PURE__ */
|
|
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__ */
|
|
172
|
-
}), /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
187
|
+
}), /* @__PURE__ */ _("div", {
|
|
188
188
|
className: "mx-auto max-w-2xl px-6 py-10",
|
|
189
189
|
children: [
|
|
190
|
-
/* @__PURE__ */
|
|
190
|
+
/* @__PURE__ */ g("div", {
|
|
191
191
|
className: "mb-10 flex justify-center",
|
|
192
|
-
children: /* @__PURE__ */
|
|
192
|
+
children: /* @__PURE__ */ g(C, { current: k })
|
|
193
193
|
}),
|
|
194
|
-
k === "org" && /* @__PURE__ */
|
|
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__ */
|
|
197
|
+
/* @__PURE__ */ _("div", {
|
|
198
198
|
className: "mb-6 flex items-center gap-3",
|
|
199
|
-
children: [/* @__PURE__ */
|
|
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__ */
|
|
202
|
-
}), /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
210
|
+
/* @__PURE__ */ _("div", {
|
|
211
211
|
className: "space-y-5",
|
|
212
212
|
children: [
|
|
213
|
-
/* @__PURE__ */
|
|
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 ===
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
249
|
+
/* @__PURE__ */ _("div", {
|
|
250
250
|
className: "mt-8 flex items-center justify-between border-t border-border-default pt-6",
|
|
251
|
-
children: [/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
264
|
+
!B && /* @__PURE__ */ g(m, { size: 16 })
|
|
265
265
|
]
|
|
266
266
|
})]
|
|
267
267
|
})
|
|
268
268
|
]
|
|
269
269
|
}),
|
|
270
|
-
k === "app" && /* @__PURE__ */
|
|
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__ */
|
|
273
|
+
/* @__PURE__ */ _("div", {
|
|
274
274
|
className: "mb-6 flex items-center gap-3",
|
|
275
|
-
children: [/* @__PURE__ */
|
|
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__ */
|
|
278
|
-
}), /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
286
|
+
/* @__PURE__ */ _("div", {
|
|
287
287
|
className: "space-y-5",
|
|
288
288
|
children: [
|
|
289
|
-
/* @__PURE__ */
|
|
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 ===
|
|
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__ */
|
|
302
|
+
/* @__PURE__ */ _("div", {
|
|
303
303
|
className: "grid grid-cols-2 gap-4",
|
|
304
|
-
children: [/* @__PURE__ */
|
|
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:
|
|
313
|
+
options: v,
|
|
314
314
|
placeholder: D("devportal.selectType", "Select type…"),
|
|
315
315
|
required: !0,
|
|
316
316
|
error: X.appType
|
|
317
|
-
}), /* @__PURE__ */
|
|
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:
|
|
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__ */
|
|
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__ */
|
|
349
|
+
/* @__PURE__ */ _("div", {
|
|
350
350
|
className: "mt-8 flex items-center justify-between border-t border-border-default pt-6",
|
|
351
|
-
children: [/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
364
|
+
!Q && /* @__PURE__ */ g(m, { size: 16 })
|
|
365
365
|
]
|
|
366
366
|
})]
|
|
367
367
|
})
|
|
368
368
|
]
|
|
369
369
|
}),
|
|
370
|
-
k === "done" && /* @__PURE__ */
|
|
370
|
+
k === "done" && /* @__PURE__ */ _("div", {
|
|
371
371
|
className: "text-center",
|
|
372
372
|
children: [
|
|
373
|
-
/* @__PURE__ */
|
|
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__ */
|
|
375
|
+
children: /* @__PURE__ */ g(h, { size: 32 })
|
|
376
376
|
}),
|
|
377
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
385
|
+
/* @__PURE__ */ _("div", {
|
|
386
386
|
className: "mt-8 grid gap-3 sm:grid-cols-2",
|
|
387
387
|
children: [
|
|
388
|
-
M && /* @__PURE__ */
|
|
389
|
-
icon: /* @__PURE__ */
|
|
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__ */
|
|
396
|
-
icon: /* @__PURE__ */
|
|
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__ */
|
|
402
|
-
icon: /* @__PURE__ */
|
|
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__ */
|
|
408
|
-
icon: /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
435
|
+
/* @__PURE__ */ _("div", {
|
|
436
436
|
className: "min-w-0 flex-1",
|
|
437
|
-
children: [/* @__PURE__ */
|
|
437
|
+
children: [/* @__PURE__ */ g("p", {
|
|
438
438
|
className: "font-semibold text-foreground",
|
|
439
439
|
children: t
|
|
440
|
-
}), /* @__PURE__ */
|
|
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__ */
|
|
445
|
+
/* @__PURE__ */ g(m, {
|
|
446
446
|
size: 16,
|
|
447
447
|
className: "mt-0.5 flex-shrink-0 text-muted-foreground"
|
|
448
448
|
})
|