@burdenoff/microfe-devportal 2026.609.4 → 2026.611.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.
- package/dist/devportal/DevportalRoot.js +6 -1
- package/dist/devportal/DevportalRoot.js.map +1 -1
- package/dist/devportal/DevportalRoutes.js +169 -158
- package/dist/devportal/DevportalRoutes.js.map +1 -1
- package/dist/devportal/hooks/usePackageUpload.js +120 -0
- package/dist/devportal/hooks/usePackageUpload.js.map +1 -0
- package/dist/devportal/pages/AnalyticsDashboardPage.js +73 -62
- package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
- package/dist/devportal/pages/AppLogsPage.js +89 -82
- package/dist/devportal/pages/AppLogsPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationDetailPage.js +948 -367
- package/dist/devportal/pages/ApplicationDetailPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationVersionsPage.js +56 -45
- package/dist/devportal/pages/ApplicationVersionsPage.js.map +1 -1
- package/dist/devportal/pages/CreateApiKeyPage.js +30 -32
- package/dist/devportal/pages/CreateApiKeyPage.js.map +1 -1
- package/dist/devportal/pages/CreateApplicationPage.js +8 -3
- package/dist/devportal/pages/CreateApplicationPage.js.map +1 -1
- package/dist/devportal/pages/CreateOAuthClientPage.js +4 -4
- package/dist/devportal/pages/CreateOAuthClientPage.js.map +1 -1
- package/dist/devportal/pages/CreateOrganizationPage.js +233 -228
- package/dist/devportal/pages/CreateOrganizationPage.js.map +1 -1
- package/dist/devportal/pages/CreateWebhookPage.js +159 -148
- package/dist/devportal/pages/CreateWebhookPage.js.map +1 -1
- package/dist/devportal/pages/DelegationsPage.js +1 -1
- package/dist/devportal/pages/DelegationsPage.js.map +1 -1
- package/dist/devportal/pages/EditApplicationPage.js +25 -17
- package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
- package/dist/devportal/pages/ListingPreviewPage.js +159 -153
- package/dist/devportal/pages/ListingPreviewPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientDetailPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientsPage.js +2 -2
- package/dist/devportal/pages/OAuthClientsPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationDetailPage.js +158 -153
- package/dist/devportal/pages/OrganizationDetailPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationMembersPage.js +223 -212
- package/dist/devportal/pages/OrganizationMembersPage.js.map +1 -1
- package/dist/devportal/pages/PublishPage.js +172 -165
- package/dist/devportal/pages/PublishPage.js.map +1 -1
- package/dist/devportal/pages/ResourcesPage.js.map +1 -1
- package/dist/devportal/pages/RevenueDashboardPage.js +405 -0
- package/dist/devportal/pages/RevenueDashboardPage.js.map +1 -0
- package/dist/devportal/pages/SetupPage.js +186 -181
- package/dist/devportal/pages/SetupPage.js.map +1 -1
- package/dist/devportal/pages/StoreSubmissionPage.js +76 -97
- package/dist/devportal/pages/StoreSubmissionPage.js.map +1 -1
- package/dist/devportal/pages/WebhookDetailPage.js +172 -154
- package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
- package/dist/devportal/pages/WebhooksPage.js +218 -200
- package/dist/devportal/pages/WebhooksPage.js.map +1 -1
- package/dist/devportal/providers/DevportalProvider.js +16 -13
- package/dist/devportal/providers/DevportalProvider.js.map +1 -1
- package/dist/devportal/types/index.js.map +1 -1
- package/dist/generated/global-operations.js +310 -225
- package/dist/generated/global-operations.js.map +1 -1
- package/package.json +1 -1
- package/dist/devportal/pages/RevenueRedirectPage.js +0 -14
- package/dist/devportal/pages/RevenueRedirectPage.js.map +0 -1
|
@@ -9,13 +9,13 @@ import { DataTable as l, DetailList as u } from "../components/DataTable.js";
|
|
|
9
9
|
import { useGetApplicationsQuery as d, useGetOrganizationQuery as f } from "../../generated/global-operations.js";
|
|
10
10
|
import { DEVPORTAL_PERMISSIONS as p } from "../constants/permissions.js";
|
|
11
11
|
import { useDevportalPermission as m } from "../hooks/usePermission.js";
|
|
12
|
-
import {
|
|
13
|
-
import { useI18n as
|
|
14
|
-
import { AlertCircle as
|
|
15
|
-
import { useParams as
|
|
16
|
-
import { jsx as
|
|
12
|
+
import { useEffect as h, useState as g } from "react";
|
|
13
|
+
import { useI18n as _ } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
14
|
+
import { AlertCircle as v, AppWindow as y, ArrowRight as b, BarChart3 as x, Building2 as S, CheckCircle as C, DollarSign as w, Edit as T, ExternalLink as E, Loader2 as D, Plus as O, Settings as k, Shield as A, TrendingUp as j, Users as M } from "lucide-react";
|
|
15
|
+
import { useParams as N } from "react-router-dom";
|
|
16
|
+
import { jsx as P, jsxs as F } from "react/jsx-runtime";
|
|
17
17
|
//#region src/devportal/pages/OrganizationDetailPage.tsx
|
|
18
|
-
function
|
|
18
|
+
function I(e) {
|
|
19
19
|
return {
|
|
20
20
|
id: e.id,
|
|
21
21
|
name: e.name,
|
|
@@ -58,7 +58,7 @@ function F(e) {
|
|
|
58
58
|
updatedAt: e.updatedAt
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
|
-
function
|
|
61
|
+
function L(e) {
|
|
62
62
|
return {
|
|
63
63
|
id: e.id,
|
|
64
64
|
organizationId: e.organizationId,
|
|
@@ -78,221 +78,226 @@ function I(e) {
|
|
|
78
78
|
updatedAt: e.updatedAt
|
|
79
79
|
};
|
|
80
80
|
}
|
|
81
|
-
var
|
|
82
|
-
let { navigate: n, basePath: i } = e(), { orgId: a } =
|
|
81
|
+
var R = () => {
|
|
82
|
+
let { navigate: n, basePath: i } = e(), { orgId: a } = N(), { t: o } = _(), s = (e, t) => {
|
|
83
83
|
let n = o(e);
|
|
84
84
|
return n === e ? t : n;
|
|
85
|
-
}, { allowed: c } = m(p.ORG_UPDATE), [l, u] =
|
|
85
|
+
}, { allowed: c } = m(p.ORG_UPDATE), [l, u] = g("overview"), b = [
|
|
86
86
|
{
|
|
87
87
|
id: "overview",
|
|
88
88
|
label: s("devportal.overview", "Overview"),
|
|
89
|
-
icon:
|
|
89
|
+
icon: S
|
|
90
90
|
},
|
|
91
91
|
{
|
|
92
92
|
id: "apps",
|
|
93
93
|
label: s("devportal.applications", "Applications"),
|
|
94
|
-
icon:
|
|
94
|
+
icon: y
|
|
95
95
|
},
|
|
96
96
|
{
|
|
97
97
|
id: "members",
|
|
98
98
|
label: s("devportal.members", "Members"),
|
|
99
|
-
icon:
|
|
99
|
+
icon: M
|
|
100
100
|
},
|
|
101
101
|
{
|
|
102
102
|
id: "settings",
|
|
103
103
|
label: s("devportal.settings", "Settings"),
|
|
104
|
-
icon:
|
|
104
|
+
icon: k
|
|
105
105
|
}
|
|
106
|
-
], { data:
|
|
106
|
+
], { data: x, loading: C, error: E } = f({
|
|
107
107
|
variables: { id: a },
|
|
108
108
|
skip: !a
|
|
109
|
-
}), { data:
|
|
109
|
+
}), { data: O } = d({
|
|
110
110
|
variables: { limit: 50 },
|
|
111
111
|
fetchPolicy: "cache-and-network"
|
|
112
|
-
}),
|
|
112
|
+
}), A = (e) => {
|
|
113
113
|
n?.(`${i}${e}`);
|
|
114
114
|
};
|
|
115
|
-
if (
|
|
115
|
+
if (h(() => {
|
|
116
|
+
let e = x?.developerOrganization?.name;
|
|
117
|
+
if (!a || !e) return;
|
|
118
|
+
let t = window.__breadcrumbRegistry;
|
|
119
|
+
return t?.register(a, e), () => t?.unregister(a);
|
|
120
|
+
}, [a, x?.developerOrganization?.name]), C) return /* @__PURE__ */ P(r, {
|
|
116
121
|
title: s("devportal.loadingDots", "Loading..."),
|
|
117
122
|
backLink: `${i}/organizations`,
|
|
118
123
|
backLabel: s("devportal.backToOrganizations", "Back to Organizations"),
|
|
119
|
-
children: /* @__PURE__ */
|
|
124
|
+
children: /* @__PURE__ */ P("div", {
|
|
120
125
|
className: "flex items-center justify-center py-12",
|
|
121
|
-
children: /* @__PURE__ */
|
|
126
|
+
children: /* @__PURE__ */ P(D, { className: "h-8 w-8 animate-spin text-muted-foreground" })
|
|
122
127
|
})
|
|
123
128
|
});
|
|
124
|
-
if (
|
|
129
|
+
if (E || !x?.developerOrganization) return /* @__PURE__ */ P(r, {
|
|
125
130
|
title: s("devportal.organizationNotFound", "Organization Not Found"),
|
|
126
131
|
backLink: `${i}/organizations`,
|
|
127
132
|
backLabel: s("devportal.backToOrganizations", "Back to Organizations"),
|
|
128
|
-
children: /* @__PURE__ */
|
|
133
|
+
children: /* @__PURE__ */ F("div", {
|
|
129
134
|
className: "flex flex-col items-center justify-center py-12 gap-4",
|
|
130
135
|
children: [
|
|
131
|
-
/* @__PURE__ */
|
|
132
|
-
/* @__PURE__ */
|
|
136
|
+
/* @__PURE__ */ P(v, { className: "h-12 w-12 text-destructive" }),
|
|
137
|
+
/* @__PURE__ */ P("h2", {
|
|
133
138
|
className: "text-lg font-semibold",
|
|
134
139
|
children: s("devportal.organizationNotFoundLower", "Organization not found")
|
|
135
140
|
}),
|
|
136
|
-
/* @__PURE__ */
|
|
141
|
+
/* @__PURE__ */ P("p", {
|
|
137
142
|
className: "text-muted-foreground",
|
|
138
|
-
children:
|
|
143
|
+
children: E?.message || s("devportal.organizationNotFoundDescription", "The organization you're looking for doesn't exist or you don't have access to it.")
|
|
139
144
|
}),
|
|
140
|
-
/* @__PURE__ */
|
|
141
|
-
onClick: () =>
|
|
145
|
+
/* @__PURE__ */ P("button", {
|
|
146
|
+
onClick: () => A("/organizations"),
|
|
142
147
|
className: "mt-4 inline-flex items-center gap-2 rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90",
|
|
143
148
|
children: s("devportal.backToOrganizations", "Back to Organizations")
|
|
144
149
|
})
|
|
145
150
|
]
|
|
146
151
|
})
|
|
147
152
|
});
|
|
148
|
-
let
|
|
149
|
-
return /* @__PURE__ */
|
|
150
|
-
title:
|
|
151
|
-
description:
|
|
153
|
+
let j = I(x.developerOrganization), R = (x.developerOrganization.members ?? []).map(L), U = O?.applications?.edges?.map((e) => e.node) ?? [], W = a ? U.filter((e) => e.developerOrganizationId === a) : U, G = parseInt(j.apiCallsUsed) / j.apiCallsLimit * 100, K = parseInt(j.storageUsed) / parseInt(j.storageLimit) * 100;
|
|
154
|
+
return /* @__PURE__ */ F(r, {
|
|
155
|
+
title: j.name,
|
|
156
|
+
description: j.description,
|
|
152
157
|
backLink: `${i}/organizations`,
|
|
153
158
|
backLabel: s("devportal.backToOrganizations", "Back to Organizations"),
|
|
154
|
-
actions: /* @__PURE__ */
|
|
159
|
+
actions: /* @__PURE__ */ F("div", {
|
|
155
160
|
className: "flex items-center gap-2",
|
|
156
|
-
children: [/* @__PURE__ */
|
|
157
|
-
onClick: () => n?.(`/billing/earnings?developerOrgId=${encodeURIComponent(
|
|
161
|
+
children: [/* @__PURE__ */ F("button", {
|
|
162
|
+
onClick: () => n?.(`/billing/earnings?developerOrgId=${encodeURIComponent(j.id)}&developerOrgName=${encodeURIComponent(j.name)}`),
|
|
158
163
|
className: "inline-flex items-center gap-2 rounded-md border px-4 py-2 text-sm font-medium hover:bg-muted transition-colors",
|
|
159
|
-
children: [/* @__PURE__ */
|
|
160
|
-
}), /* @__PURE__ */
|
|
164
|
+
children: [/* @__PURE__ */ P(w, { size: 16 }), s("devportal.revenue", "Revenue")]
|
|
165
|
+
}), /* @__PURE__ */ F("button", {
|
|
161
166
|
onClick: () => u("settings"),
|
|
162
167
|
disabled: !c,
|
|
163
168
|
"aria-disabled": !c,
|
|
164
169
|
className: "inline-flex items-center gap-2 rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors disabled:opacity-50",
|
|
165
|
-
children: [/* @__PURE__ */
|
|
170
|
+
children: [/* @__PURE__ */ P(T, { size: 16 }), s("devportal.settings", "Settings")]
|
|
166
171
|
})]
|
|
167
172
|
}),
|
|
168
|
-
children: [/* @__PURE__ */
|
|
173
|
+
children: [/* @__PURE__ */ P("div", {
|
|
169
174
|
className: "border-b",
|
|
170
|
-
children: /* @__PURE__ */
|
|
175
|
+
children: /* @__PURE__ */ P("nav", {
|
|
171
176
|
className: "-mb-px flex gap-4 overflow-x-auto",
|
|
172
177
|
role: "tablist",
|
|
173
178
|
"aria-label": s("devportal.organizationSections", "Organization sections"),
|
|
174
|
-
children:
|
|
179
|
+
children: b.map((e) => {
|
|
175
180
|
let n = e.icon;
|
|
176
|
-
return /* @__PURE__ */
|
|
181
|
+
return /* @__PURE__ */ F("button", {
|
|
177
182
|
id: `organization-tab-${e.id}`,
|
|
178
183
|
role: "tab",
|
|
179
184
|
"aria-selected": l === e.id,
|
|
180
185
|
"aria-controls": `organization-panel-${e.id}`,
|
|
181
186
|
onClick: () => u(e.id),
|
|
182
187
|
className: t("flex items-center gap-2 border-b-2 px-1 py-3 text-sm font-medium transition-colors", l === e.id ? "border-primary text-primary" : "border-transparent text-muted-foreground hover:text-foreground hover:border-muted-foreground"),
|
|
183
|
-
children: [/* @__PURE__ */
|
|
188
|
+
children: [/* @__PURE__ */ P(n, { size: 16 }), e.label]
|
|
184
189
|
}, e.id);
|
|
185
190
|
})
|
|
186
191
|
})
|
|
187
|
-
}), /* @__PURE__ */
|
|
192
|
+
}), /* @__PURE__ */ F("div", {
|
|
188
193
|
className: "mt-6",
|
|
189
194
|
id: `organization-panel-${l}`,
|
|
190
195
|
role: "tabpanel",
|
|
191
196
|
"aria-labelledby": `organization-tab-${l}`,
|
|
192
197
|
tabIndex: 0,
|
|
193
198
|
children: [
|
|
194
|
-
l === "overview" && /* @__PURE__ */
|
|
195
|
-
org:
|
|
196
|
-
apps:
|
|
197
|
-
members:
|
|
198
|
-
apiCallsPercent:
|
|
199
|
-
storagePercent:
|
|
200
|
-
onNavigate:
|
|
199
|
+
l === "overview" && /* @__PURE__ */ P(z, {
|
|
200
|
+
org: j,
|
|
201
|
+
apps: W,
|
|
202
|
+
members: R,
|
|
203
|
+
apiCallsPercent: G,
|
|
204
|
+
storagePercent: K,
|
|
205
|
+
onNavigate: A,
|
|
201
206
|
onShowApps: () => u("apps")
|
|
202
207
|
}),
|
|
203
|
-
l === "apps" && /* @__PURE__ */
|
|
204
|
-
apps:
|
|
205
|
-
onNavigate:
|
|
208
|
+
l === "apps" && /* @__PURE__ */ P(B, {
|
|
209
|
+
apps: W,
|
|
210
|
+
onNavigate: A
|
|
206
211
|
}),
|
|
207
|
-
l === "members" && /* @__PURE__ */
|
|
208
|
-
members:
|
|
209
|
-
onNavigate:
|
|
210
|
-
orgId:
|
|
212
|
+
l === "members" && /* @__PURE__ */ P(V, {
|
|
213
|
+
members: R,
|
|
214
|
+
onNavigate: A,
|
|
215
|
+
orgId: j.id
|
|
211
216
|
}),
|
|
212
|
-
l === "settings" && /* @__PURE__ */
|
|
217
|
+
l === "settings" && /* @__PURE__ */ P(H, { org: j })
|
|
213
218
|
]
|
|
214
219
|
})]
|
|
215
220
|
});
|
|
216
|
-
},
|
|
217
|
-
let { t: m } =
|
|
221
|
+
}, z = ({ org: e, apps: t, members: r, apiCallsPercent: l, storagePercent: d, onNavigate: f, onShowApps: p }) => {
|
|
222
|
+
let { t: m } = _(), h = (e, t) => {
|
|
218
223
|
let n = m(e);
|
|
219
224
|
return n === e ? t : n;
|
|
220
225
|
};
|
|
221
|
-
return /* @__PURE__ */
|
|
226
|
+
return /* @__PURE__ */ F("div", {
|
|
222
227
|
className: "grid gap-6 lg:grid-cols-3",
|
|
223
|
-
children: [/* @__PURE__ */
|
|
228
|
+
children: [/* @__PURE__ */ F("div", {
|
|
224
229
|
className: "lg:col-span-2 space-y-6",
|
|
225
230
|
children: [
|
|
226
|
-
/* @__PURE__ */
|
|
231
|
+
/* @__PURE__ */ F(o, {
|
|
227
232
|
columns: 4,
|
|
228
233
|
children: [
|
|
229
|
-
/* @__PURE__ */
|
|
234
|
+
/* @__PURE__ */ P(a, {
|
|
230
235
|
title: h("devportal.publishedApps", "Published Apps"),
|
|
231
236
|
value: `${e.publishedApps}/${e.totalApps}`,
|
|
232
|
-
icon: /* @__PURE__ */
|
|
237
|
+
icon: /* @__PURE__ */ P(y, { size: 20 })
|
|
233
238
|
}),
|
|
234
|
-
/* @__PURE__ */
|
|
239
|
+
/* @__PURE__ */ P(a, {
|
|
235
240
|
title: h("devportal.totalInstalls", "Total Installs"),
|
|
236
241
|
value: e.totalInstalls.toLocaleString(),
|
|
237
|
-
icon: /* @__PURE__ */
|
|
242
|
+
icon: /* @__PURE__ */ P(j, { size: 20 }),
|
|
238
243
|
trend: {
|
|
239
244
|
value: 12,
|
|
240
245
|
label: h("devportal.thisMonth", "this month")
|
|
241
246
|
}
|
|
242
247
|
}),
|
|
243
|
-
/* @__PURE__ */
|
|
248
|
+
/* @__PURE__ */ P(a, {
|
|
244
249
|
title: h("devportal.totalRevenue", "Total Revenue"),
|
|
245
250
|
value: `$${e.totalRevenue.toLocaleString()}`,
|
|
246
|
-
icon: /* @__PURE__ */
|
|
251
|
+
icon: /* @__PURE__ */ P(w, { size: 20 })
|
|
247
252
|
}),
|
|
248
|
-
/* @__PURE__ */
|
|
253
|
+
/* @__PURE__ */ P(a, {
|
|
249
254
|
title: h("devportal.avgRating", "Avg Rating"),
|
|
250
255
|
value: e.averageRating ? `${e.averageRating.toFixed(1)} ★` : h("devportal.notAvailable", "N/A"),
|
|
251
|
-
icon: /* @__PURE__ */
|
|
256
|
+
icon: /* @__PURE__ */ P(x, { size: 20 })
|
|
252
257
|
})
|
|
253
258
|
]
|
|
254
259
|
}),
|
|
255
|
-
/* @__PURE__ */
|
|
260
|
+
/* @__PURE__ */ P(i, {
|
|
256
261
|
title: h("devportal.recentApplications", "Recent Applications"),
|
|
257
|
-
actions: /* @__PURE__ */
|
|
262
|
+
actions: /* @__PURE__ */ F("button", {
|
|
258
263
|
onClick: p,
|
|
259
264
|
className: "text-sm text-primary hover:underline flex items-center gap-1",
|
|
260
265
|
children: [
|
|
261
266
|
h("devportal.viewAll", "View all"),
|
|
262
267
|
" ",
|
|
263
|
-
/* @__PURE__ */
|
|
268
|
+
/* @__PURE__ */ P(b, { size: 14 })
|
|
264
269
|
]
|
|
265
270
|
}),
|
|
266
|
-
children: t.length > 0 ? /* @__PURE__ */
|
|
271
|
+
children: t.length > 0 ? /* @__PURE__ */ P("div", {
|
|
267
272
|
className: "space-y-2",
|
|
268
|
-
children: t.slice(0, 3).map((e) => /* @__PURE__ */
|
|
273
|
+
children: t.slice(0, 3).map((e) => /* @__PURE__ */ P(c, {
|
|
269
274
|
app: e,
|
|
270
275
|
onClick: () => f(`/apps/${e.id}`)
|
|
271
276
|
}, e.id))
|
|
272
|
-
}) : /* @__PURE__ */
|
|
273
|
-
icon: /* @__PURE__ */
|
|
277
|
+
}) : /* @__PURE__ */ P(n, {
|
|
278
|
+
icon: /* @__PURE__ */ P(y, { size: 24 }),
|
|
274
279
|
title: h("devportal.noApplications", "No applications"),
|
|
275
280
|
description: h("devportal.createYourFirstApplication", "Create your first application")
|
|
276
281
|
})
|
|
277
282
|
}),
|
|
278
|
-
/* @__PURE__ */
|
|
283
|
+
/* @__PURE__ */ F(i, {
|
|
279
284
|
title: h("devportal.usageAndQuotas", "Usage & Quotas"),
|
|
280
|
-
children: [/* @__PURE__ */
|
|
285
|
+
children: [/* @__PURE__ */ F("div", {
|
|
281
286
|
className: "grid gap-4 sm:grid-cols-2",
|
|
282
|
-
children: [/* @__PURE__ */
|
|
287
|
+
children: [/* @__PURE__ */ P(U, {
|
|
283
288
|
label: h("devportal.apiCalls", "API Calls"),
|
|
284
289
|
used: parseInt(e.apiCallsUsed),
|
|
285
290
|
limit: e.apiCallsLimit,
|
|
286
291
|
percent: l,
|
|
287
292
|
format: "number"
|
|
288
|
-
}), /* @__PURE__ */
|
|
293
|
+
}), /* @__PURE__ */ P(U, {
|
|
289
294
|
label: h("devportal.storage", "Storage"),
|
|
290
295
|
used: parseInt(e.storageUsed),
|
|
291
296
|
limit: parseInt(e.storageLimit),
|
|
292
297
|
percent: d,
|
|
293
298
|
format: "bytes"
|
|
294
299
|
})]
|
|
295
|
-
}), e.quotaResetAt && /* @__PURE__ */
|
|
300
|
+
}), e.quotaResetAt && /* @__PURE__ */ F("p", {
|
|
296
301
|
className: "text-xs text-muted-foreground mt-2",
|
|
297
302
|
children: [
|
|
298
303
|
h("devportal.quotasResetOn", "Quotas reset on"),
|
|
@@ -302,12 +307,12 @@ var L = () => {
|
|
|
302
307
|
})]
|
|
303
308
|
})
|
|
304
309
|
]
|
|
305
|
-
}), /* @__PURE__ */
|
|
310
|
+
}), /* @__PURE__ */ F("div", {
|
|
306
311
|
className: "space-y-6",
|
|
307
312
|
children: [
|
|
308
|
-
/* @__PURE__ */
|
|
313
|
+
/* @__PURE__ */ P(i, {
|
|
309
314
|
title: h("devportal.revenueSummary", "Revenue Summary"),
|
|
310
|
-
children: /* @__PURE__ */
|
|
315
|
+
children: /* @__PURE__ */ P(u, { items: [
|
|
311
316
|
{
|
|
312
317
|
label: h("devportal.totalRevenue", "Total Revenue"),
|
|
313
318
|
value: `$${e.totalRevenue.toLocaleString()}`
|
|
@@ -330,31 +335,31 @@ var L = () => {
|
|
|
330
335
|
}
|
|
331
336
|
] })
|
|
332
337
|
}),
|
|
333
|
-
/* @__PURE__ */
|
|
338
|
+
/* @__PURE__ */ P(i, {
|
|
334
339
|
title: h("devportal.teamMembers", "Team Members"),
|
|
335
|
-
actions: /* @__PURE__ */
|
|
340
|
+
actions: /* @__PURE__ */ P("button", {
|
|
336
341
|
onClick: () => f(`/organizations/${e.id}/members`),
|
|
337
342
|
className: "text-sm text-primary hover:underline",
|
|
338
343
|
children: h("devportal.manage", "Manage")
|
|
339
344
|
}),
|
|
340
|
-
children: /* @__PURE__ */
|
|
345
|
+
children: /* @__PURE__ */ F("div", {
|
|
341
346
|
className: "space-y-2",
|
|
342
|
-
children: [r.slice(0, 3).map((e) => /* @__PURE__ */
|
|
347
|
+
children: [r.slice(0, 3).map((e) => /* @__PURE__ */ P("div", {
|
|
343
348
|
className: "flex items-center justify-between py-2",
|
|
344
|
-
children: /* @__PURE__ */
|
|
349
|
+
children: /* @__PURE__ */ F("div", {
|
|
345
350
|
className: "flex items-center gap-3",
|
|
346
|
-
children: [/* @__PURE__ */
|
|
351
|
+
children: [/* @__PURE__ */ P("div", {
|
|
347
352
|
className: "h-8 w-8 rounded-full bg-primary/10 flex items-center justify-center text-sm font-medium text-primary",
|
|
348
353
|
children: e.email?.charAt(0).toUpperCase() || "U"
|
|
349
|
-
}), /* @__PURE__ */
|
|
354
|
+
}), /* @__PURE__ */ F("div", { children: [/* @__PURE__ */ P("p", {
|
|
350
355
|
className: "text-sm font-medium",
|
|
351
356
|
children: e.email
|
|
352
|
-
}), /* @__PURE__ */
|
|
357
|
+
}), /* @__PURE__ */ P("p", {
|
|
353
358
|
className: "text-xs text-muted-foreground",
|
|
354
359
|
children: s[e.role]
|
|
355
360
|
})] })]
|
|
356
361
|
})
|
|
357
|
-
}, e.id)), r.length > 3 && /* @__PURE__ */
|
|
362
|
+
}, e.id)), r.length > 3 && /* @__PURE__ */ F("p", {
|
|
358
363
|
className: "text-xs text-muted-foreground",
|
|
359
364
|
children: [
|
|
360
365
|
"+",
|
|
@@ -365,98 +370,98 @@ var L = () => {
|
|
|
365
370
|
})]
|
|
366
371
|
})
|
|
367
372
|
}),
|
|
368
|
-
/* @__PURE__ */
|
|
373
|
+
/* @__PURE__ */ P(i, {
|
|
369
374
|
title: h("devportal.links", "Links"),
|
|
370
|
-
children: /* @__PURE__ */
|
|
375
|
+
children: /* @__PURE__ */ F("div", {
|
|
371
376
|
className: "space-y-2",
|
|
372
|
-
children: [e.websiteUrl && /* @__PURE__ */
|
|
377
|
+
children: [e.websiteUrl && /* @__PURE__ */ F("a", {
|
|
373
378
|
href: e.websiteUrl,
|
|
374
379
|
target: "_blank",
|
|
375
380
|
rel: "noopener noreferrer",
|
|
376
381
|
className: "flex items-center gap-2 text-sm text-primary hover:underline",
|
|
377
|
-
children: [/* @__PURE__ */
|
|
378
|
-
}), e.contactEmail && /* @__PURE__ */
|
|
382
|
+
children: [/* @__PURE__ */ P(E, { size: 14 }), h("devportal.website", "Website")]
|
|
383
|
+
}), e.contactEmail && /* @__PURE__ */ F("a", {
|
|
379
384
|
href: `mailto:${e.contactEmail}`,
|
|
380
385
|
className: "flex items-center gap-2 text-sm text-primary hover:underline",
|
|
381
|
-
children: [/* @__PURE__ */
|
|
386
|
+
children: [/* @__PURE__ */ P(E, { size: 14 }), e.contactEmail]
|
|
382
387
|
})]
|
|
383
388
|
})
|
|
384
389
|
})
|
|
385
390
|
]
|
|
386
391
|
})]
|
|
387
392
|
});
|
|
388
|
-
},
|
|
389
|
-
let { t: r } =
|
|
393
|
+
}, B = ({ apps: e, onNavigate: t }) => {
|
|
394
|
+
let { t: r } = _(), i = (e, t) => {
|
|
390
395
|
let n = r(e);
|
|
391
396
|
return n === e ? t : n;
|
|
392
397
|
};
|
|
393
|
-
return /* @__PURE__ */
|
|
398
|
+
return /* @__PURE__ */ F("div", {
|
|
394
399
|
className: "space-y-6",
|
|
395
|
-
children: [/* @__PURE__ */
|
|
400
|
+
children: [/* @__PURE__ */ F("div", {
|
|
396
401
|
className: "flex items-center justify-between",
|
|
397
|
-
children: [/* @__PURE__ */
|
|
402
|
+
children: [/* @__PURE__ */ F("p", {
|
|
398
403
|
className: "text-sm text-muted-foreground",
|
|
399
404
|
children: [
|
|
400
405
|
e.length,
|
|
401
406
|
" ",
|
|
402
407
|
e.length === 1 ? i("devportal.application", "application") : i("devportal.applications", "applications")
|
|
403
408
|
]
|
|
404
|
-
}), /* @__PURE__ */
|
|
409
|
+
}), /* @__PURE__ */ F("button", {
|
|
405
410
|
onClick: () => t("/apps/new"),
|
|
406
411
|
className: "inline-flex items-center gap-2 rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors",
|
|
407
|
-
children: [/* @__PURE__ */
|
|
412
|
+
children: [/* @__PURE__ */ P(O, { size: 16 }), i("devportal.createApp", "Create App")]
|
|
408
413
|
})]
|
|
409
|
-
}), e.length > 0 ? /* @__PURE__ */
|
|
414
|
+
}), e.length > 0 ? /* @__PURE__ */ P("div", {
|
|
410
415
|
className: "space-y-2",
|
|
411
|
-
children: e.map((e) => /* @__PURE__ */
|
|
416
|
+
children: e.map((e) => /* @__PURE__ */ P(c, {
|
|
412
417
|
app: e,
|
|
413
418
|
onClick: () => t(`/apps/${e.id}`)
|
|
414
419
|
}, e.id))
|
|
415
|
-
}) : /* @__PURE__ */
|
|
416
|
-
icon: /* @__PURE__ */
|
|
420
|
+
}) : /* @__PURE__ */ P(n, {
|
|
421
|
+
icon: /* @__PURE__ */ P(y, { size: 32 }),
|
|
417
422
|
title: i("devportal.noApplications", "No applications"),
|
|
418
423
|
description: i("devportal.createFirstAppForOrg", "Create your first application for this organization"),
|
|
419
|
-
action: /* @__PURE__ */
|
|
424
|
+
action: /* @__PURE__ */ F("button", {
|
|
420
425
|
onClick: () => t("/apps/new"),
|
|
421
426
|
className: "inline-flex items-center gap-2 rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90",
|
|
422
|
-
children: [/* @__PURE__ */
|
|
427
|
+
children: [/* @__PURE__ */ P(O, { size: 16 }), i("devportal.createApp", "Create App")]
|
|
423
428
|
})
|
|
424
429
|
})]
|
|
425
430
|
});
|
|
426
|
-
},
|
|
427
|
-
let { t: i } =
|
|
431
|
+
}, V = ({ members: e, onNavigate: n, orgId: r }) => {
|
|
432
|
+
let { t: i } = _(), a = (e, t) => {
|
|
428
433
|
let n = i(e);
|
|
429
434
|
return n === e ? t : n;
|
|
430
435
|
};
|
|
431
|
-
return /* @__PURE__ */
|
|
436
|
+
return /* @__PURE__ */ F("div", {
|
|
432
437
|
className: "space-y-6",
|
|
433
|
-
children: [/* @__PURE__ */
|
|
438
|
+
children: [/* @__PURE__ */ F("div", {
|
|
434
439
|
className: "flex items-center justify-between",
|
|
435
|
-
children: [/* @__PURE__ */
|
|
440
|
+
children: [/* @__PURE__ */ F("p", {
|
|
436
441
|
className: "text-sm text-muted-foreground",
|
|
437
442
|
children: [
|
|
438
443
|
e.length,
|
|
439
444
|
" ",
|
|
440
445
|
e.length === 1 ? a("devportal.memberLower", "member") : a("devportal.membersLower", "members")
|
|
441
446
|
]
|
|
442
|
-
}), /* @__PURE__ */
|
|
447
|
+
}), /* @__PURE__ */ F("button", {
|
|
443
448
|
onClick: () => n(`/organizations/${r}/members`),
|
|
444
449
|
className: "inline-flex items-center gap-2 rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors",
|
|
445
|
-
children: [/* @__PURE__ */
|
|
450
|
+
children: [/* @__PURE__ */ P(O, { size: 16 }), a("devportal.inviteMember", "Invite Member")]
|
|
446
451
|
})]
|
|
447
|
-
}), /* @__PURE__ */
|
|
452
|
+
}), /* @__PURE__ */ P(l, {
|
|
448
453
|
data: e,
|
|
449
454
|
keyField: "id",
|
|
450
455
|
columns: [
|
|
451
456
|
{
|
|
452
457
|
key: "email",
|
|
453
458
|
header: a("devportal.memberColumn", "Member"),
|
|
454
|
-
render: (e) => /* @__PURE__ */
|
|
459
|
+
render: (e) => /* @__PURE__ */ F("div", {
|
|
455
460
|
className: "flex items-center gap-3",
|
|
456
|
-
children: [/* @__PURE__ */
|
|
461
|
+
children: [/* @__PURE__ */ P("div", {
|
|
457
462
|
className: "h-8 w-8 rounded-full bg-primary/10 flex items-center justify-center text-sm font-medium text-primary",
|
|
458
463
|
children: e.email?.charAt(0).toUpperCase() || "U"
|
|
459
|
-
}), /* @__PURE__ */
|
|
464
|
+
}), /* @__PURE__ */ P("span", {
|
|
460
465
|
className: "font-medium",
|
|
461
466
|
children: e.email
|
|
462
467
|
})]
|
|
@@ -465,7 +470,7 @@ var L = () => {
|
|
|
465
470
|
{
|
|
466
471
|
key: "role",
|
|
467
472
|
header: a("devportal.roleColumn", "Role"),
|
|
468
|
-
render: (e) => /* @__PURE__ */
|
|
473
|
+
render: (e) => /* @__PURE__ */ P("span", {
|
|
469
474
|
className: t("inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium", e.role === "OWNER" ? "bg-accent-purple-subtle text-accent-purple" : e.role === "ADMIN" ? "bg-status-info-bg-subtle text-status-info-text" : e.role === "DEVELOPER" ? "bg-status-success-bg-subtle text-status-success-text" : "bg-bg-sunken text-text-primary"),
|
|
470
475
|
children: s[e.role]
|
|
471
476
|
})
|
|
@@ -483,20 +488,20 @@ var L = () => {
|
|
|
483
488
|
]
|
|
484
489
|
})]
|
|
485
490
|
});
|
|
486
|
-
},
|
|
487
|
-
let { t } =
|
|
491
|
+
}, H = ({ org: e }) => {
|
|
492
|
+
let { t } = _(), n = (e, n) => {
|
|
488
493
|
let r = t(e);
|
|
489
494
|
return r === e ? n : r;
|
|
490
495
|
};
|
|
491
|
-
return /* @__PURE__ */
|
|
496
|
+
return /* @__PURE__ */ F("div", {
|
|
492
497
|
className: "space-y-6 max-w-2xl",
|
|
493
498
|
children: [
|
|
494
|
-
/* @__PURE__ */
|
|
499
|
+
/* @__PURE__ */ P(i, {
|
|
495
500
|
title: n("devportal.organizationDetails", "Organization Details"),
|
|
496
|
-
children: /* @__PURE__ */
|
|
501
|
+
children: /* @__PURE__ */ P(u, { items: [
|
|
497
502
|
{
|
|
498
503
|
label: n("devportal.organizationId", "Organization ID"),
|
|
499
|
-
value: /* @__PURE__ */
|
|
504
|
+
value: /* @__PURE__ */ P("code", {
|
|
500
505
|
className: "text-xs",
|
|
501
506
|
children: e.id
|
|
502
507
|
})
|
|
@@ -523,9 +528,9 @@ var L = () => {
|
|
|
523
528
|
}
|
|
524
529
|
] })
|
|
525
530
|
}),
|
|
526
|
-
/* @__PURE__ */
|
|
531
|
+
/* @__PURE__ */ P(i, {
|
|
527
532
|
title: n("devportal.legalInformation", "Legal Information"),
|
|
528
|
-
children: /* @__PURE__ */
|
|
533
|
+
children: /* @__PURE__ */ P(u, { items: [
|
|
529
534
|
{
|
|
530
535
|
label: n("devportal.legalEntityName", "Legal Entity Name"),
|
|
531
536
|
value: e.legalEntityName || n("devportal.notProvided", "Not provided")
|
|
@@ -548,10 +553,10 @@ var L = () => {
|
|
|
548
553
|
},
|
|
549
554
|
{
|
|
550
555
|
label: n("devportal.taxFormStatus", "Tax Form Status"),
|
|
551
|
-
value: e.taxFormVerified ? /* @__PURE__ */
|
|
556
|
+
value: e.taxFormVerified ? /* @__PURE__ */ F("span", {
|
|
552
557
|
className: "text-status-success-text flex items-center gap-1",
|
|
553
558
|
children: [
|
|
554
|
-
/* @__PURE__ */
|
|
559
|
+
/* @__PURE__ */ P(C, { size: 14 }),
|
|
555
560
|
" ",
|
|
556
561
|
n("devportal.verified", "Verified")
|
|
557
562
|
]
|
|
@@ -559,14 +564,14 @@ var L = () => {
|
|
|
559
564
|
}
|
|
560
565
|
] })
|
|
561
566
|
}),
|
|
562
|
-
/* @__PURE__ */
|
|
567
|
+
/* @__PURE__ */ P(i, {
|
|
563
568
|
title: n("devportal.verificationStatus", "Verification Status"),
|
|
564
|
-
children: /* @__PURE__ */
|
|
569
|
+
children: /* @__PURE__ */ P(u, { items: [{
|
|
565
570
|
label: n("devportal.verifiedLabel", "Verified"),
|
|
566
|
-
value: e.isVerified ? /* @__PURE__ */
|
|
571
|
+
value: e.isVerified ? /* @__PURE__ */ F("span", {
|
|
567
572
|
className: "text-status-success-text flex items-center gap-1",
|
|
568
573
|
children: [
|
|
569
|
-
/* @__PURE__ */
|
|
574
|
+
/* @__PURE__ */ P(C, { size: 14 }),
|
|
570
575
|
" ",
|
|
571
576
|
n("devportal.verifiedVia", "Verified via"),
|
|
572
577
|
" ",
|
|
@@ -575,10 +580,10 @@ var L = () => {
|
|
|
575
580
|
}) : n("devportal.notVerified", "Not verified")
|
|
576
581
|
}, {
|
|
577
582
|
label: n("devportal.certifiedLabel", "Certified"),
|
|
578
|
-
value: e.isCertified ? /* @__PURE__ */
|
|
583
|
+
value: e.isCertified ? /* @__PURE__ */ F("span", {
|
|
579
584
|
className: "text-accent-blue flex items-center gap-1",
|
|
580
585
|
children: [
|
|
581
|
-
/* @__PURE__ */
|
|
586
|
+
/* @__PURE__ */ P(A, { size: 14 }),
|
|
582
587
|
" ",
|
|
583
588
|
n("devportal.certifiedUntil", "Certified until"),
|
|
584
589
|
" ",
|
|
@@ -589,20 +594,20 @@ var L = () => {
|
|
|
589
594
|
})
|
|
590
595
|
]
|
|
591
596
|
});
|
|
592
|
-
},
|
|
593
|
-
let { t: o } =
|
|
597
|
+
}, U = ({ label: e, used: n, limit: r, percent: i, format: a }) => {
|
|
598
|
+
let { t: o } = _(), s = (e, t) => {
|
|
594
599
|
let n = o(e);
|
|
595
600
|
return n === e ? t : n;
|
|
596
601
|
}, c = (e) => a === "bytes" ? `${(e / (1024 * 1024 * 1024)).toFixed(1)} GB` : e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).toFixed(1)}K` : e.toLocaleString();
|
|
597
|
-
return /* @__PURE__ */
|
|
602
|
+
return /* @__PURE__ */ F("div", {
|
|
598
603
|
className: "rounded-lg border p-4",
|
|
599
604
|
children: [
|
|
600
|
-
/* @__PURE__ */
|
|
605
|
+
/* @__PURE__ */ F("div", {
|
|
601
606
|
className: "flex items-center justify-between mb-2",
|
|
602
|
-
children: [/* @__PURE__ */
|
|
607
|
+
children: [/* @__PURE__ */ P("span", {
|
|
603
608
|
className: "text-sm font-medium",
|
|
604
609
|
children: e
|
|
605
|
-
}), /* @__PURE__ */
|
|
610
|
+
}), /* @__PURE__ */ F("span", {
|
|
606
611
|
className: "text-xs text-muted-foreground",
|
|
607
612
|
children: [
|
|
608
613
|
c(n),
|
|
@@ -611,14 +616,14 @@ var L = () => {
|
|
|
611
616
|
]
|
|
612
617
|
})]
|
|
613
618
|
}),
|
|
614
|
-
/* @__PURE__ */
|
|
619
|
+
/* @__PURE__ */ P("div", {
|
|
615
620
|
className: "h-2 rounded-full bg-muted overflow-hidden",
|
|
616
|
-
children: /* @__PURE__ */
|
|
621
|
+
children: /* @__PURE__ */ P("div", {
|
|
617
622
|
className: t("h-full rounded-full transition-all", i > 90 ? "bg-status-error-bg-subtle" : i > 70 ? "bg-status-warning-bg-subtle" : "bg-primary"),
|
|
618
623
|
style: { width: `${Math.min(i, 100)}%` }
|
|
619
624
|
})
|
|
620
625
|
}),
|
|
621
|
-
/* @__PURE__ */
|
|
626
|
+
/* @__PURE__ */ F("p", {
|
|
622
627
|
className: "text-xs text-muted-foreground mt-1",
|
|
623
628
|
children: [
|
|
624
629
|
i.toFixed(1),
|
|
@@ -630,6 +635,6 @@ var L = () => {
|
|
|
630
635
|
});
|
|
631
636
|
};
|
|
632
637
|
//#endregion
|
|
633
|
-
export {
|
|
638
|
+
export { R as OrganizationDetailPage };
|
|
634
639
|
|
|
635
640
|
//# sourceMappingURL=OrganizationDetailPage.js.map
|