@burdenoff/microfe-devportal 2026.828.1 → 2026.830.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/devportal/AdminDevportalRoot.d.ts.map +1 -1
- package/dist/devportal/AdminDevportalRoot.js +16 -19
- package/dist/devportal/AdminDevportalRoot.js.map +1 -1
- package/dist/devportal/DevportalRoot.d.ts.map +1 -1
- package/dist/devportal/DevportalRoot.js +36 -39
- package/dist/devportal/DevportalRoot.js.map +1 -1
- package/dist/devportal/components/AppCard.js +41 -41
- package/dist/devportal/components/ConfirmDialog.d.ts.map +1 -1
- package/dist/devportal/components/ConfirmDialog.js +19 -22
- package/dist/devportal/components/ConfirmDialog.js.map +1 -1
- package/dist/devportal/components/DataTable.d.ts.map +1 -1
- package/dist/devportal/components/DataTable.js +31 -34
- package/dist/devportal/components/DataTable.js.map +1 -1
- package/dist/devportal/components/FeatureFlaggedRoute.js +8 -8
- package/dist/devportal/components/FormField.d.ts.map +1 -1
- package/dist/devportal/components/FormField.js +26 -32
- package/dist/devportal/components/FormField.js.map +1 -1
- package/dist/devportal/components/GrantDelegationModal.js +64 -64
- package/dist/devportal/components/GrantDelegationModal.js.map +1 -1
- package/dist/devportal/components/LoadingState.d.ts.map +1 -1
- package/dist/devportal/components/LoadingState.js +5 -8
- package/dist/devportal/components/LoadingState.js.map +1 -1
- package/dist/devportal/components/PageLayout.d.ts.map +1 -1
- package/dist/devportal/components/PageLayout.js +10 -13
- package/dist/devportal/components/PageLayout.js.map +1 -1
- package/dist/devportal/components/PermissionGuard.d.ts.map +1 -1
- package/dist/devportal/components/PermissionGuard.js +11 -14
- package/dist/devportal/components/PermissionGuard.js.map +1 -1
- package/dist/devportal/components/SecretDisplay.d.ts.map +1 -1
- package/dist/devportal/components/SecretDisplay.js +24 -30
- package/dist/devportal/components/SecretDisplay.js.map +1 -1
- package/dist/devportal/components/SectionNav.d.ts.map +1 -1
- package/dist/devportal/components/SectionNav.js +24 -27
- package/dist/devportal/components/SectionNav.js.map +1 -1
- package/dist/devportal/components/StatusBadge.d.ts.map +1 -1
- package/dist/devportal/components/StatusBadge.js +24 -33
- package/dist/devportal/components/StatusBadge.js.map +1 -1
- package/dist/devportal/index.d.ts +1 -0
- package/dist/devportal/index.d.ts.map +1 -1
- package/dist/devportal/index.js +1 -0
- package/dist/devportal/pages/AdminReviewPage.js +172 -172
- package/dist/devportal/pages/AnalyticsDashboardPage.js +43 -43
- package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
- package/dist/devportal/pages/ApiKeysPage.js +119 -119
- package/dist/devportal/pages/ApiKeysPage.js.map +1 -1
- package/dist/devportal/pages/AppLogsPage.js +45 -45
- package/dist/devportal/pages/ApplicationDetailPage.js +607 -607
- package/dist/devportal/pages/ApplicationVersionsPage.js +13 -13
- package/dist/devportal/pages/ApplicationsPage.d.ts.map +1 -1
- package/dist/devportal/pages/ApplicationsPage.js +104 -101
- package/dist/devportal/pages/ApplicationsPage.js.map +1 -1
- package/dist/devportal/pages/CreateApiKeyPage.js +45 -45
- package/dist/devportal/pages/CreateApplicationPage.js +38 -38
- package/dist/devportal/pages/CreateApplicationPage.js.map +1 -1
- package/dist/devportal/pages/CreateOAuthClientPage.js +52 -52
- package/dist/devportal/pages/CreateOrganizationPage.js +26 -26
- package/dist/devportal/pages/CreateWebhookPage.d.ts.map +1 -1
- package/dist/devportal/pages/CreateWebhookPage.js +48 -48
- package/dist/devportal/pages/CreateWebhookPage.js.map +1 -1
- package/dist/devportal/pages/DashboardPage.d.ts.map +1 -1
- package/dist/devportal/pages/DashboardPage.js +66 -72
- package/dist/devportal/pages/DashboardPage.js.map +1 -1
- package/dist/devportal/pages/DelegationsPage.js +174 -174
- package/dist/devportal/pages/DocumentationPage.js +93 -93
- package/dist/devportal/pages/EditApplicationPage.js +14 -14
- package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
- package/dist/devportal/pages/ListingPreviewPage.js +76 -76
- package/dist/devportal/pages/OAuthClientDetailPage.js +75 -75
- package/dist/devportal/pages/OAuthClientDetailPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientsPage.js +64 -64
- package/dist/devportal/pages/OrganizationDetailPage.js +189 -189
- package/dist/devportal/pages/OrganizationDetailPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationMembersPage.js +10 -10
- package/dist/devportal/pages/OrganizationsPage.d.ts.map +1 -1
- package/dist/devportal/pages/OrganizationsPage.js +163 -154
- package/dist/devportal/pages/OrganizationsPage.js.map +1 -1
- package/dist/devportal/pages/PublishPage.js +104 -104
- package/dist/devportal/pages/PublishPage.js.map +1 -1
- package/dist/devportal/pages/PublisherProfilePage.js +55 -55
- package/dist/devportal/pages/ResourcesPage.js +60 -60
- package/dist/devportal/pages/RevenueDashboardPage.js +60 -60
- package/dist/devportal/pages/RevenueDashboardPage.js.map +1 -1
- package/dist/devportal/pages/SellerDashboardPage.js +83 -83
- package/dist/devportal/pages/SellerItemsPage.js +163 -163
- package/dist/devportal/pages/SellerItemsPage.js.map +1 -1
- package/dist/devportal/pages/SellerOrdersPage.js +63 -63
- package/dist/devportal/pages/SettingsPage.js +21 -21
- package/dist/devportal/pages/SetupPage.js +183 -183
- package/dist/devportal/pages/SetupPage.js.map +1 -1
- package/dist/devportal/pages/StoreSubmissionPage.js +5 -5
- package/dist/devportal/pages/WebhookDetailPage.js +123 -123
- package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
- package/dist/devportal/pages/WebhooksPage.js +118 -118
- package/dist/devportal/pages/WebhooksPage.js.map +1 -1
- package/dist/devportal/utils/i18n.d.ts +9 -2
- package/dist/devportal/utils/i18n.d.ts.map +1 -1
- package/dist/devportal/utils/i18n.js +13 -10
- package/dist/devportal/utils/i18n.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/translations/en.d.ts +1251 -0
- package/dist/translations/en.d.ts.map +1 -0
- package/dist/translations/en.js +1235 -0
- package/dist/translations/en.js.map +1 -0
- package/package.json +1 -1
|
@@ -16,16 +16,16 @@ import { DEVPORTAL_PERMISSIONS as pe } from "../constants/permissions.js";
|
|
|
16
16
|
import me from "../../node_modules/date-fns/format.js";
|
|
17
17
|
import { usePackageUpload as he } from "../hooks/usePackageUpload.js";
|
|
18
18
|
import { useCallback as o, useEffect as ge, useMemo as s, useRef as c, useState as l } from "react";
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import { useParams as we } from "react-router";
|
|
19
|
+
import { AlertCircle as u, Archive as _e, CheckCircle as ve, Clock as ye, Loader2 as d, Package as be, Plus as xe, Send as f, Upload as p, XCircle as Se } from "lucide-react";
|
|
20
|
+
import { useParams as Ce } from "react-router";
|
|
22
21
|
import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
22
|
+
import { useI18n as we } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
23
23
|
//#region src/devportal/pages/ApplicationVersionsPage.tsx
|
|
24
24
|
var Te = () => {
|
|
25
|
-
let { t: Te } =
|
|
25
|
+
let { t: Te } = we(), _ = (e, t) => {
|
|
26
26
|
let n = Te(e);
|
|
27
27
|
return n === e ? t : n;
|
|
28
|
-
}, { allowed: v } = fe(pe.APP_VERSION_CREATE), { allowed: y } = fe(pe.APP_VERSION_PUBLISH), { allowed: b } = fe(pe.APP_VERSION_DEPRECATE), { appId: x } =
|
|
28
|
+
}, { allowed: v } = fe(pe.APP_VERSION_CREATE), { allowed: y } = fe(pe.APP_VERSION_PUBLISH), { allowed: b } = fe(pe.APP_VERSION_DEPRECATE), { appId: x } = Ce(), { workspacesGatewayUrl: Ee, authToken: De, workspaceId: Oe, getWorkspaceToken: ke } = e(), { upload: S, uploading: C, progress: Ae, error: w } = he(Ee, De, Oe, ke), je = c(null), Me = c(null), Ne = c(null), Pe = c(null), [Fe, T] = l(null), [Ie, E] = l(null), [Le, D] = l(!1), [O, k] = l(null), [A, j] = l({
|
|
29
29
|
version: "",
|
|
30
30
|
releaseNotes: "",
|
|
31
31
|
changelog: "",
|
|
@@ -208,22 +208,22 @@ var Te = () => {
|
|
|
208
208
|
M(e instanceof Error ? e.message : _("devportal.versionRejectFailed", "Failed to reject version"));
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
|
-
}, gt = (e) => e.status === "published" && e.isLatest ? /* @__PURE__ */ h(
|
|
211
|
+
}, gt = (e) => e.status === "published" && e.isLatest ? /* @__PURE__ */ h(ve, {
|
|
212
212
|
size: 16,
|
|
213
213
|
className: "text-status-success-text"
|
|
214
214
|
}) : e.status === "pending_review" ? /* @__PURE__ */ h(f, {
|
|
215
215
|
size: 16,
|
|
216
216
|
className: "text-status-info-text"
|
|
217
|
-
}) : e.status === "rejected" ? /* @__PURE__ */ h(
|
|
217
|
+
}) : e.status === "rejected" ? /* @__PURE__ */ h(Se, {
|
|
218
218
|
size: 16,
|
|
219
219
|
className: "text-status-error-text"
|
|
220
|
-
}) : e.status === "draft" ? /* @__PURE__ */ h(
|
|
220
|
+
}) : e.status === "draft" ? /* @__PURE__ */ h(ye, {
|
|
221
221
|
size: 16,
|
|
222
222
|
className: "text-status-warning-text"
|
|
223
|
-
}) : e.status === "deprecated" ? /* @__PURE__ */ h(
|
|
223
|
+
}) : e.status === "deprecated" ? /* @__PURE__ */ h(_e, {
|
|
224
224
|
size: 16,
|
|
225
225
|
className: "text-text-secondary"
|
|
226
|
-
}) : /* @__PURE__ */ h(
|
|
226
|
+
}) : /* @__PURE__ */ h(be, {
|
|
227
227
|
size: 16,
|
|
228
228
|
className: "text-accent-blue"
|
|
229
229
|
}), _t = (e, t) => {
|
|
@@ -276,7 +276,7 @@ var Te = () => {
|
|
|
276
276
|
disabled: !v,
|
|
277
277
|
"aria-disabled": !v,
|
|
278
278
|
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 disabled:opacity-50",
|
|
279
|
-
children: [/* @__PURE__ */ h(
|
|
279
|
+
children: [/* @__PURE__ */ h(xe, { size: 16 }), _("devportal.newVersion", "New Version")]
|
|
280
280
|
}),
|
|
281
281
|
children: [
|
|
282
282
|
Re && /* @__PURE__ */ g("div", {
|
|
@@ -297,7 +297,7 @@ var Te = () => {
|
|
|
297
297
|
ze && /* @__PURE__ */ g("div", {
|
|
298
298
|
className: "rounded-lg border border-border-subtle bg-status-success-bg-subtle p-3 flex items-center gap-2 text-sm text-status-success-text",
|
|
299
299
|
children: [
|
|
300
|
-
/* @__PURE__ */ h(
|
|
300
|
+
/* @__PURE__ */ h(ve, {
|
|
301
301
|
size: 16,
|
|
302
302
|
className: "flex-shrink-0"
|
|
303
303
|
}),
|
|
@@ -528,7 +528,7 @@ var Te = () => {
|
|
|
528
528
|
P(null), D(!0);
|
|
529
529
|
},
|
|
530
530
|
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",
|
|
531
|
-
children: [/* @__PURE__ */ h(
|
|
531
|
+
children: [/* @__PURE__ */ h(xe, { size: 16 }), _("devportal.createVersion", "Create Version")]
|
|
532
532
|
})
|
|
533
533
|
}),
|
|
534
534
|
Le && /* @__PURE__ */ h(i, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationsPage.d.ts","sourceRoot":"","sources":["../../../src/devportal/pages/ApplicationsPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ApplicationsPage.d.ts","sourceRoot":"","sources":["../../../src/devportal/pages/ApplicationsPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AA0IhC;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,EA2lB9B,CAAC"}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import { useDevportal as e } from "../providers/DevportalProvider.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
2
|
+
import { useTr as t } from "../utils/i18n.js";
|
|
3
|
+
import { EmptyState as n } from "../components/EmptyState.js";
|
|
4
|
+
import { useDeactivateApplicationMutation as r, useGetApplicationsQuery as ee } from "../../generated/global-operations.js";
|
|
5
|
+
import { getErrorMessage as te } from "../hooks/useGraphQL.js";
|
|
6
|
+
import { PageLayout as i } from "../components/PageLayout.js";
|
|
7
|
+
import { APP_STATUS_COLORS as ne, APP_TYPE_LABELS as a } from "../utils/constants.js";
|
|
8
|
+
import { SelectionCheckbox as o } from "../components/SelectionCheckbox.js";
|
|
9
|
+
import { AppCard as re } from "../components/AppCard.js";
|
|
10
|
+
import { ConfirmDialog as s } from "../components/ConfirmDialog.js";
|
|
11
|
+
import { PermissionGuard as ie } from "../components/PermissionGuard.js";
|
|
11
12
|
import "../components/index.js";
|
|
12
|
-
import { useDevportalPermission as
|
|
13
|
+
import { useDevportalPermission as c } from "../hooks/usePermission.js";
|
|
13
14
|
import "../hooks/index.js";
|
|
14
|
-
import { DEVPORTAL_PERMISSIONS as
|
|
15
|
-
import { useMemo as
|
|
16
|
-
import {
|
|
17
|
-
import { AlertCircle as re, AppWindow as m, Archive as ie, Grid as ae, List as h, Loader2 as g, Plus as _, Search as oe } from "lucide-react";
|
|
15
|
+
import { DEVPORTAL_PERMISSIONS as l } from "../constants/permissions.js";
|
|
16
|
+
import { useMemo as u, useState as d } from "react";
|
|
17
|
+
import { AlertCircle as ae, AppWindow as f, Archive as oe, Grid as p, List as m, Loader2 as h, Plus as g, Search as _ } from "lucide-react";
|
|
18
18
|
import { jsx as v, jsxs as y } from "react/jsx-runtime";
|
|
19
19
|
import { EmphasisPanel as se, GlassCard as b } from "@burdenoff/fe-libs/ui";
|
|
20
20
|
//#region src/devportal/pages/ApplicationsPage.tsx
|
|
21
21
|
function ce(e, t, n) {
|
|
22
22
|
return `${e} ${t} application${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`;
|
|
23
23
|
}
|
|
24
|
-
function le({ status: e }) {
|
|
24
|
+
function le({ status: e, tr: t }) {
|
|
25
25
|
return /* @__PURE__ */ v("span", {
|
|
26
26
|
className: `inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${{
|
|
27
27
|
ACTIVE: "bg-status-success-bg-subtle text-status-success-text",
|
|
@@ -37,10 +37,10 @@ function le({ status: e }) {
|
|
|
37
37
|
REVOKED: "bg-status-error-bg-subtle text-status-error-text",
|
|
38
38
|
DEPRECATED: "bg-bg-sunken text-text-muted"
|
|
39
39
|
}[e] ?? "bg-bg-sunken text-text-secondary"}`,
|
|
40
|
-
children: e === "INACTIVE" || e === "REVOKED" ? "Deactivated" : e.replace(/_/g, " ")
|
|
40
|
+
children: e === "INACTIVE" || e === "REVOKED" ? t("devportal.status.deactivated", "Deactivated") : e.replace(/_/g, " ")
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
|
-
function
|
|
43
|
+
function x(e) {
|
|
44
44
|
let t = Array.isArray(e.screenshots) ? e.screenshots.length > 0 ? e.screenshots : void 0 : e.screenshots, n = e.pricingDetails && typeof e.pricingDetails == "object" ? e.pricingDetails : void 0;
|
|
45
45
|
return {
|
|
46
46
|
id: e.id,
|
|
@@ -86,65 +86,62 @@ function ue(e) {
|
|
|
86
86
|
updatedAt: e.updatedAt
|
|
87
87
|
};
|
|
88
88
|
}
|
|
89
|
-
var
|
|
90
|
-
let { navigate:
|
|
91
|
-
let n = w(e);
|
|
92
|
-
return n === e ? t : n;
|
|
93
|
-
}, E = u(d.APP_CREATE), D = u(d.APP_UPDATE), [O, k] = p("list"), [A, de] = p(""), [j, M] = p(""), [N, fe] = p(""), [P, F] = p(/* @__PURE__ */ new Set()), [I, L] = p(null), [R, z] = p(null), { data: B, loading: pe, error: V, refetch: H } = r({
|
|
89
|
+
var S = () => {
|
|
90
|
+
let { navigate: S, basePath: C, activeOrgId: w } = e(), T = t(), E = c(l.APP_CREATE), D = c(l.APP_UPDATE), [O, k] = d("list"), [A, ue] = d(""), [j, de] = d(""), [M, fe] = d(""), [N, P] = d(/* @__PURE__ */ new Set()), [F, I] = d(null), [L, R] = d(null), { data: z, loading: B, error: V, refetch: H } = ee({
|
|
94
91
|
variables: {
|
|
95
92
|
limit: 50,
|
|
96
93
|
offset: 0,
|
|
97
94
|
status: j || void 0,
|
|
98
|
-
organizationId:
|
|
95
|
+
organizationId: w ?? void 0
|
|
99
96
|
},
|
|
100
97
|
fetchPolicy: "cache-and-network"
|
|
101
|
-
}), U =
|
|
102
|
-
|
|
98
|
+
}), U = u(() => z?.applications?.edges?.map((e) => x(e.node)) ?? [], [z?.applications?.edges]), [pe] = r(), W = (e) => {
|
|
99
|
+
S?.(`${C}${e}`);
|
|
103
100
|
}, G = U.filter((e) => {
|
|
104
|
-
let t = !
|
|
101
|
+
let t = !w || e.developerOrganizationId === w, n = !A || e.name.toLowerCase().includes(A.toLowerCase()) || e.shortDescription?.toLowerCase().includes(A.toLowerCase()), r = !M || e.appType === M;
|
|
105
102
|
return t && n && r;
|
|
106
|
-
}), K =
|
|
107
|
-
total:
|
|
103
|
+
}), K = u(() => ({
|
|
104
|
+
total: z?.applications?.totalCount ?? G.length,
|
|
108
105
|
active: G.filter((e) => e.status === "ACTIVE").length,
|
|
109
106
|
draft: G.filter((e) => e.status === "DRAFT").length,
|
|
110
107
|
published: G.filter((e) => e.status === "PUBLISHED").length
|
|
111
|
-
}), [G,
|
|
112
|
-
|
|
108
|
+
}), [G, z?.applications?.totalCount]), q = u(() => U.filter((e) => N.has(e.id)), [U, N]), J = u(() => q.filter((e) => e.status !== "INACTIVE" && e.status !== "REVOKED"), [q]), Y = G.length > 0 && G.every((e) => N.has(e.id)), X = G.some((e) => N.has(e.id)) && !Y, Z = (e, t) => {
|
|
109
|
+
P((n) => {
|
|
113
110
|
let r = new Set(n);
|
|
114
111
|
return t ? r.add(e) : r.delete(e), r;
|
|
115
112
|
});
|
|
116
113
|
}, Q = (e) => {
|
|
117
|
-
|
|
114
|
+
P((t) => {
|
|
118
115
|
let n = new Set(t);
|
|
119
116
|
return G.forEach((t) => {
|
|
120
117
|
e ? n.add(t.id) : n.delete(t.id);
|
|
121
118
|
}), n;
|
|
122
119
|
});
|
|
123
|
-
}, $ = () =>
|
|
124
|
-
return
|
|
120
|
+
}, $ = () => P(/* @__PURE__ */ new Set());
|
|
121
|
+
return B && !z ? /* @__PURE__ */ v(i, {
|
|
125
122
|
title: T("devportal.myApplications", "My Applications"),
|
|
126
123
|
description: T("devportal.manageYourApps", "Manage your developer applications"),
|
|
127
124
|
children: /* @__PURE__ */ y("div", {
|
|
128
125
|
className: "flex items-center justify-center py-12",
|
|
129
|
-
children: [/* @__PURE__ */ v(
|
|
126
|
+
children: [/* @__PURE__ */ v(h, { className: "h-8 w-8 animate-spin text-text-secondary" }), /* @__PURE__ */ v("span", {
|
|
130
127
|
className: "ml-2 text-text-secondary",
|
|
131
128
|
children: T("devportal.loadingApplications", "Loading applications...")
|
|
132
129
|
})]
|
|
133
130
|
})
|
|
134
|
-
}) : V ? /* @__PURE__ */ v(
|
|
131
|
+
}) : V ? /* @__PURE__ */ v(i, {
|
|
135
132
|
title: T("devportal.myApplications", "My Applications"),
|
|
136
133
|
description: T("devportal.manageYourApps", "Manage your developer applications"),
|
|
137
134
|
children: /* @__PURE__ */ y("div", {
|
|
138
135
|
className: "rounded-lg border border-status-error-border/50 bg-status-error-bg/10 p-6 text-center",
|
|
139
136
|
children: [
|
|
140
|
-
/* @__PURE__ */ v(
|
|
137
|
+
/* @__PURE__ */ v(ae, { className: "mx-auto h-8 w-8 text-status-error-text" }),
|
|
141
138
|
/* @__PURE__ */ v("h3", {
|
|
142
139
|
className: "mt-2 font-medium text-status-error-text",
|
|
143
140
|
children: T("devportal.failedToLoadApplications", "Failed to load applications")
|
|
144
141
|
}),
|
|
145
142
|
/* @__PURE__ */ v("p", {
|
|
146
143
|
className: "mt-1 text-sm text-text-secondary",
|
|
147
|
-
children:
|
|
144
|
+
children: te(V)
|
|
148
145
|
}),
|
|
149
146
|
/* @__PURE__ */ v("button", {
|
|
150
147
|
onClick: () => H(),
|
|
@@ -153,9 +150,9 @@ var x = () => {
|
|
|
153
150
|
})
|
|
154
151
|
]
|
|
155
152
|
})
|
|
156
|
-
}) : /* @__PURE__ */ v(
|
|
153
|
+
}) : /* @__PURE__ */ v(ie, {
|
|
157
154
|
authOnly: !0,
|
|
158
|
-
children: /* @__PURE__ */ y(
|
|
155
|
+
children: /* @__PURE__ */ y(i, {
|
|
159
156
|
title: T("devportal.myApplications", "My Applications"),
|
|
160
157
|
description: T("devportal.manageYourApps", "Manage your developer applications"),
|
|
161
158
|
purpose: T("devportal.applicationsPurpose", "Applications are the integrations you build on the platform — OAuth apps, store listings, and API consumers. Create one here to get client credentials, request scopes, and ship to the marketplace."),
|
|
@@ -165,7 +162,7 @@ var x = () => {
|
|
|
165
162
|
"aria-disabled": !E.allowed,
|
|
166
163
|
title: E.allowed ? void 0 : T("devportal.common.noPermission", "You do not have permission to perform this action"),
|
|
167
164
|
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 disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary",
|
|
168
|
-
children: [/* @__PURE__ */ v(
|
|
165
|
+
children: [/* @__PURE__ */ v(g, {
|
|
169
166
|
size: 16,
|
|
170
167
|
"aria-hidden": "true"
|
|
171
168
|
}), T("devportal.createApp", "Create App")]
|
|
@@ -178,37 +175,37 @@ var x = () => {
|
|
|
178
175
|
children: [
|
|
179
176
|
/* @__PURE__ */ y("div", {
|
|
180
177
|
className: "relative flex-1 max-w-md",
|
|
181
|
-
children: [/* @__PURE__ */ v(
|
|
178
|
+
children: [/* @__PURE__ */ v(_, {
|
|
182
179
|
size: 16,
|
|
183
180
|
className: "absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary"
|
|
184
181
|
}), /* @__PURE__ */ v("input", {
|
|
185
182
|
type: "text",
|
|
186
183
|
placeholder: T("devportal.searchApplications", "Search applications..."),
|
|
187
184
|
value: A,
|
|
188
|
-
onChange: (e) =>
|
|
185
|
+
onChange: (e) => ue(e.target.value),
|
|
189
186
|
className: "w-full rounded-md border bg-bg-surface pl-9 pr-4 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary"
|
|
190
187
|
})]
|
|
191
188
|
}),
|
|
192
189
|
/* @__PURE__ */ y("select", {
|
|
193
190
|
value: j,
|
|
194
|
-
onChange: (e) =>
|
|
191
|
+
onChange: (e) => de(e.target.value),
|
|
195
192
|
className: "rounded-md border bg-bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary",
|
|
196
193
|
children: [/* @__PURE__ */ v("option", {
|
|
197
194
|
value: "",
|
|
198
195
|
children: T("devportal.allStatus", "All Status")
|
|
199
|
-
}), Object.keys(
|
|
196
|
+
}), Object.keys(ne).map((e) => /* @__PURE__ */ v("option", {
|
|
200
197
|
value: e,
|
|
201
|
-
children: e.replace(/_/g, " ")
|
|
198
|
+
children: T(`devportal.appStatus.${e}`, e.replace(/_/g, " "))
|
|
202
199
|
}, e))]
|
|
203
200
|
}),
|
|
204
201
|
/* @__PURE__ */ y("select", {
|
|
205
|
-
value:
|
|
202
|
+
value: M,
|
|
206
203
|
onChange: (e) => fe(e.target.value),
|
|
207
204
|
className: "rounded-md border bg-bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary",
|
|
208
205
|
children: [/* @__PURE__ */ v("option", {
|
|
209
206
|
value: "",
|
|
210
207
|
children: T("devportal.allTypes", "All Types")
|
|
211
|
-
}), Object.entries(
|
|
208
|
+
}), Object.entries(a).map(([e, t]) => /* @__PURE__ */ v("option", {
|
|
212
209
|
value: e,
|
|
213
210
|
children: t
|
|
214
211
|
}, e))]
|
|
@@ -219,13 +216,13 @@ var x = () => {
|
|
|
219
216
|
children: [/* @__PURE__ */ v("button", {
|
|
220
217
|
onClick: () => k("grid"),
|
|
221
218
|
className: `rounded p-1.5 ${O === "grid" ? "bg-bg-sunken" : "hover:bg-bg-sunken/50"}`,
|
|
222
|
-
title: "Grid view",
|
|
223
|
-
children: /* @__PURE__ */ v(
|
|
219
|
+
title: T("devportal.gridView", "Grid view"),
|
|
220
|
+
children: /* @__PURE__ */ v(p, { size: 16 })
|
|
224
221
|
}), /* @__PURE__ */ v("button", {
|
|
225
222
|
onClick: () => k("list"),
|
|
226
223
|
className: `rounded p-1.5 ${O === "list" ? "bg-bg-sunken" : "hover:bg-bg-sunken/50"}`,
|
|
227
|
-
title: "Table view",
|
|
228
|
-
children: /* @__PURE__ */ v(
|
|
224
|
+
title: T("devportal.tableView", "Table view"),
|
|
225
|
+
children: /* @__PURE__ */ v(m, { size: 16 })
|
|
229
226
|
})]
|
|
230
227
|
})]
|
|
231
228
|
}),
|
|
@@ -281,14 +278,14 @@ var x = () => {
|
|
|
281
278
|
]
|
|
282
279
|
})
|
|
283
280
|
}),
|
|
284
|
-
|
|
285
|
-
className: `rounded-lg border px-4 py-3 text-sm ${
|
|
281
|
+
L && /* @__PURE__ */ v("div", {
|
|
282
|
+
className: `rounded-lg border px-4 py-3 text-sm ${L.type === "success" ? "border-border-subtle bg-status-success-bg-subtle text-status-success-text" : "border-status-error-border/40 bg-status-error-bg/10 text-status-error-text"}`,
|
|
286
283
|
children: /* @__PURE__ */ y("div", {
|
|
287
284
|
className: "flex items-center justify-between gap-3",
|
|
288
|
-
children: [/* @__PURE__ */ v("span", { children:
|
|
289
|
-
onClick: () =>
|
|
285
|
+
children: [/* @__PURE__ */ v("span", { children: L.message }), /* @__PURE__ */ v("button", {
|
|
286
|
+
onClick: () => R(null),
|
|
290
287
|
className: "text-xs font-medium underline underline-offset-2",
|
|
291
|
-
children: "Dismiss"
|
|
288
|
+
children: T("devportal.dismiss", "Dismiss")
|
|
292
289
|
})]
|
|
293
290
|
})
|
|
294
291
|
}),
|
|
@@ -300,33 +297,37 @@ var x = () => {
|
|
|
300
297
|
className: "flex flex-wrap items-center gap-3",
|
|
301
298
|
children: [/* @__PURE__ */ y("div", {
|
|
302
299
|
className: "flex items-center gap-2",
|
|
303
|
-
children: [/* @__PURE__ */ v(
|
|
300
|
+
children: [/* @__PURE__ */ v(o, {
|
|
304
301
|
checked: Y,
|
|
305
302
|
indeterminate: X,
|
|
306
303
|
onChange: Q,
|
|
307
|
-
ariaLabel: "Select all visible applications"
|
|
304
|
+
ariaLabel: T("devportal.selectAllVisibleApplications", "Select all visible applications")
|
|
308
305
|
}), /* @__PURE__ */ v("span", {
|
|
309
306
|
className: "text-sm font-medium",
|
|
310
|
-
children: "Select all visible"
|
|
307
|
+
children: T("devportal.selectAllVisible", "Select all visible")
|
|
311
308
|
})]
|
|
312
|
-
}),
|
|
309
|
+
}), N.size > 0 && /* @__PURE__ */ v("button", {
|
|
313
310
|
onClick: $,
|
|
314
311
|
className: "text-sm text-text-secondary hover:text-text-primary",
|
|
315
|
-
children: "Clear selection"
|
|
312
|
+
children: T("devportal.clearSelection", "Clear selection")
|
|
316
313
|
})]
|
|
317
314
|
}), /* @__PURE__ */ y("div", {
|
|
318
315
|
className: "flex flex-wrap items-center gap-2",
|
|
319
316
|
children: [/* @__PURE__ */ y("span", {
|
|
320
317
|
className: "rounded-full bg-bg-sunken px-3 py-1 text-sm font-medium text-text-secondary",
|
|
321
|
-
children: [
|
|
318
|
+
children: [
|
|
319
|
+
N.size,
|
|
320
|
+
" ",
|
|
321
|
+
T("devportal.selectedLower", "selected")
|
|
322
|
+
]
|
|
322
323
|
}), /* @__PURE__ */ y("button", {
|
|
323
|
-
onClick: () =>
|
|
324
|
+
onClick: () => I("deactivate"),
|
|
324
325
|
disabled: J.length === 0 || !D.allowed,
|
|
325
326
|
"aria-disabled": J.length === 0 || !D.allowed,
|
|
326
327
|
title: D.allowed ? void 0 : T("devportal.common.noPermission", "You do not have permission to perform this action"),
|
|
327
328
|
className: "inline-flex items-center gap-2 rounded-md border border-status-warning-bg px-3 py-2 text-sm font-medium text-status-warning-text transition-colors hover:bg-status-warning-bg-subtle disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary",
|
|
328
329
|
children: [
|
|
329
|
-
/* @__PURE__ */ v(
|
|
330
|
+
/* @__PURE__ */ v(oe, {
|
|
330
331
|
size: 16,
|
|
331
332
|
"aria-hidden": "true"
|
|
332
333
|
}),
|
|
@@ -341,16 +342,15 @@ var x = () => {
|
|
|
341
342
|
className: "text-sm text-text-secondary",
|
|
342
343
|
children: [
|
|
343
344
|
G.length,
|
|
344
|
-
"
|
|
345
|
-
G.length === 1 ? "" : "
|
|
346
|
-
" found"
|
|
345
|
+
" ",
|
|
346
|
+
G.length === 1 ? T("devportal.applicationFound", "application found") : T("devportal.applicationsFound", "applications found")
|
|
347
347
|
]
|
|
348
348
|
}),
|
|
349
349
|
G.length > 0 ? O === "grid" ? /* @__PURE__ */ v("div", {
|
|
350
350
|
className: "grid gap-4 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
|
|
351
|
-
children: G.map((e) => /* @__PURE__ */ v(
|
|
351
|
+
children: G.map((e) => /* @__PURE__ */ v(re, {
|
|
352
352
|
app: e,
|
|
353
|
-
selected:
|
|
353
|
+
selected: N.has(e.id),
|
|
354
354
|
onToggleSelect: (t) => Z(e.id, t)
|
|
355
355
|
}, e.id))
|
|
356
356
|
}) : /* @__PURE__ */ v("div", {
|
|
@@ -362,42 +362,42 @@ var x = () => {
|
|
|
362
362
|
children: [
|
|
363
363
|
/* @__PURE__ */ v("th", {
|
|
364
364
|
className: "w-10 px-4 py-3",
|
|
365
|
-
children: /* @__PURE__ */ v(
|
|
365
|
+
children: /* @__PURE__ */ v(o, {
|
|
366
366
|
checked: Y,
|
|
367
367
|
indeterminate: X,
|
|
368
368
|
onChange: Q,
|
|
369
|
-
ariaLabel: "Select all"
|
|
369
|
+
ariaLabel: T("devportal.selectAll", "Select all")
|
|
370
370
|
})
|
|
371
371
|
}),
|
|
372
372
|
/* @__PURE__ */ v("th", {
|
|
373
373
|
className: "px-4 py-3 font-medium text-text-secondary",
|
|
374
|
-
children: "Name"
|
|
374
|
+
children: T("devportal.name", "Name")
|
|
375
375
|
}),
|
|
376
376
|
/* @__PURE__ */ v("th", {
|
|
377
377
|
className: "px-4 py-3 font-medium text-text-secondary",
|
|
378
|
-
children: "Status"
|
|
378
|
+
children: T("devportal.status", "Status")
|
|
379
379
|
}),
|
|
380
380
|
/* @__PURE__ */ v("th", {
|
|
381
381
|
className: "px-4 py-3 font-medium text-text-secondary",
|
|
382
|
-
children: "Type"
|
|
382
|
+
children: T("devportal.type", "Type")
|
|
383
383
|
}),
|
|
384
384
|
/* @__PURE__ */ v("th", {
|
|
385
385
|
className: "px-4 py-3 font-medium text-text-secondary",
|
|
386
|
-
children: "Created"
|
|
386
|
+
children: T("devportal.created", "Created")
|
|
387
387
|
}),
|
|
388
388
|
/* @__PURE__ */ v("th", { className: "px-4 py-3 font-medium text-text-secondary" })
|
|
389
389
|
]
|
|
390
390
|
}) }), /* @__PURE__ */ v("tbody", {
|
|
391
391
|
className: "divide-y divide-border-seam",
|
|
392
392
|
children: G.map((e) => /* @__PURE__ */ y("tr", {
|
|
393
|
-
className: `hover:bg-bg-surface-hover transition-colors ${
|
|
393
|
+
className: `hover:bg-bg-surface-hover transition-colors ${N.has(e.id) ? "bg-action-primary-bg/5" : ""}`,
|
|
394
394
|
children: [
|
|
395
395
|
/* @__PURE__ */ v("td", {
|
|
396
396
|
className: "w-10 px-4 py-3",
|
|
397
|
-
children: /* @__PURE__ */ v(
|
|
398
|
-
checked:
|
|
397
|
+
children: /* @__PURE__ */ v(o, {
|
|
398
|
+
checked: N.has(e.id),
|
|
399
399
|
onChange: (t) => Z(e.id, t),
|
|
400
|
-
ariaLabel:
|
|
400
|
+
ariaLabel: T("devportal.selectNamed", "Select {{name}}", { name: e.name })
|
|
401
401
|
})
|
|
402
402
|
}),
|
|
403
403
|
/* @__PURE__ */ v("td", {
|
|
@@ -411,7 +411,7 @@ var x = () => {
|
|
|
411
411
|
className: "h-8 w-8 rounded object-cover"
|
|
412
412
|
}) : /* @__PURE__ */ v("div", {
|
|
413
413
|
className: "flex h-8 w-8 items-center justify-center rounded bg-bg-sunken text-text-secondary",
|
|
414
|
-
children: /* @__PURE__ */ v(
|
|
414
|
+
children: /* @__PURE__ */ v(f, { size: 14 })
|
|
415
415
|
}), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
|
|
416
416
|
className: "font-medium text-text-primary group-hover:text-action-primary-text transition-colors",
|
|
417
417
|
children: e.name
|
|
@@ -423,11 +423,14 @@ var x = () => {
|
|
|
423
423
|
}),
|
|
424
424
|
/* @__PURE__ */ v("td", {
|
|
425
425
|
className: "px-4 py-3",
|
|
426
|
-
children: /* @__PURE__ */ v(le, {
|
|
426
|
+
children: /* @__PURE__ */ v(le, {
|
|
427
|
+
status: e.status,
|
|
428
|
+
tr: T
|
|
429
|
+
})
|
|
427
430
|
}),
|
|
428
431
|
/* @__PURE__ */ v("td", {
|
|
429
432
|
className: "px-4 py-3 text-text-secondary",
|
|
430
|
-
children:
|
|
433
|
+
children: a[e.appType] || e.appType
|
|
431
434
|
}),
|
|
432
435
|
/* @__PURE__ */ v("td", {
|
|
433
436
|
className: "px-4 py-3 text-text-secondary tabular-nums",
|
|
@@ -438,41 +441,41 @@ var x = () => {
|
|
|
438
441
|
children: /* @__PURE__ */ v("button", {
|
|
439
442
|
onClick: () => W(`/apps/${e.id}`),
|
|
440
443
|
className: "rounded-md px-3 py-1.5 text-xs font-medium text-text-secondary hover:bg-bg-sunken hover:text-text-primary transition-colors",
|
|
441
|
-
children: "View"
|
|
444
|
+
children: T("devportal.view", "View")
|
|
442
445
|
})
|
|
443
446
|
})
|
|
444
447
|
]
|
|
445
448
|
}, e.id))
|
|
446
449
|
})]
|
|
447
450
|
})
|
|
448
|
-
}) : /* @__PURE__ */ v(
|
|
449
|
-
illustration: A || j ||
|
|
450
|
-
icon: /* @__PURE__ */ v(
|
|
451
|
+
}) : /* @__PURE__ */ v(n, {
|
|
452
|
+
illustration: A || j || M ? "empty-search" : "empty-data",
|
|
453
|
+
icon: /* @__PURE__ */ v(f, { size: 32 }),
|
|
451
454
|
title: T("devportal.noApplicationsFound", "No applications found"),
|
|
452
|
-
description: A || j ||
|
|
453
|
-
action: !A && !j && !
|
|
455
|
+
description: A || j || M ? T("devportal.tryAdjustingFilters", "Try adjusting your filters") : T("devportal.createFirstApp", "Create your first application to get started"),
|
|
456
|
+
action: !A && !j && !M ? /* @__PURE__ */ y("button", {
|
|
454
457
|
onClick: () => W("/apps/new"),
|
|
455
458
|
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",
|
|
456
|
-
children: [/* @__PURE__ */ v(
|
|
459
|
+
children: [/* @__PURE__ */ v(g, { size: 16 }), T("devportal.createApp", "Create App")]
|
|
457
460
|
}) : void 0
|
|
458
461
|
}),
|
|
459
|
-
/* @__PURE__ */ v(
|
|
460
|
-
open:
|
|
462
|
+
/* @__PURE__ */ v(s, {
|
|
463
|
+
open: F === "deactivate",
|
|
461
464
|
onOpenChange: (e) => {
|
|
462
|
-
e ||
|
|
465
|
+
e || I(null);
|
|
463
466
|
},
|
|
464
467
|
onConfirm: async () => {
|
|
465
468
|
if (J.length === 0) return;
|
|
466
|
-
let e = await Promise.allSettled(J.map((e) =>
|
|
467
|
-
|
|
469
|
+
let e = await Promise.allSettled(J.map((e) => pe({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
|
|
470
|
+
R({
|
|
468
471
|
type: n === 0 ? "success" : "error",
|
|
469
|
-
message: ce("Deactivated", t, n)
|
|
470
|
-
}), $(),
|
|
472
|
+
message: ce(T("devportal.deactivated", "Deactivated"), t, n)
|
|
473
|
+
}), $(), I(null), await H();
|
|
471
474
|
},
|
|
472
|
-
title: "Deactivate selected applications",
|
|
473
|
-
description:
|
|
474
|
-
confirmLabel: "Deactivate",
|
|
475
|
-
cancelLabel: "Cancel",
|
|
475
|
+
title: T("devportal.deactivateSelectedApplications", "Deactivate selected applications"),
|
|
476
|
+
description: T("devportal.deactivateSelectedApplicationsDescription", "Deactivate {{count}} selected application(s)? Users and integrations may lose access until these apps are re-enabled.", { count: J.length }),
|
|
477
|
+
confirmLabel: T("devportal.deactivate", "Deactivate"),
|
|
478
|
+
cancelLabel: T("devportal.cancel", "Cancel"),
|
|
476
479
|
variant: "warning"
|
|
477
480
|
})
|
|
478
481
|
]
|
|
@@ -480,6 +483,6 @@ var x = () => {
|
|
|
480
483
|
});
|
|
481
484
|
};
|
|
482
485
|
//#endregion
|
|
483
|
-
export {
|
|
486
|
+
export { S as ApplicationsPage };
|
|
484
487
|
|
|
485
488
|
//# sourceMappingURL=ApplicationsPage.js.map
|