@burdenoff/microfe-store 2026.805.1 → 2026.819.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/StoreAdminRoutes.js +27 -27
- package/dist/StoreRoot.js +78 -45
- package/dist/StoreRoot.js.map +1 -1
- package/dist/StoreRoutes.js +163 -85
- package/dist/StoreRoutes.js.map +1 -1
- package/dist/components/sourcing/SourcingConfirmationDialog.d.ts +15 -0
- package/dist/components/sourcing/SourcingConfirmationDialog.js +61 -0
- package/dist/components/sourcing/SourcingConfirmationDialog.js.map +1 -0
- package/dist/components/sourcing/SourcingUi.d.ts +51 -0
- package/dist/components/sourcing/SourcingUi.js +176 -0
- package/dist/components/sourcing/SourcingUi.js.map +1 -0
- package/dist/generated/global-operations.d.ts +713 -0
- package/dist/generated/global-operations.js +557 -175
- package/dist/generated/global-operations.js.map +1 -1
- package/dist/generated/global-types.d.ts +2152 -2159
- package/dist/generated/global-types.js +8 -2
- package/dist/generated/global-types.js.map +1 -1
- package/dist/hooks/useBackendCart.js +17 -17
- package/dist/hooks/useInstallations.js +32 -32
- package/dist/hooks/useOrders.js +7 -7
- package/dist/hooks/useSourcing.d.ts +319 -0
- package/dist/hooks/useSourcing.js +87 -0
- package/dist/hooks/useSourcing.js.map +1 -0
- package/dist/hooks/useStoreGraphQL.js +163 -163
- package/dist/index.js +12 -12
- package/dist/pages/AdminDashboardPage.js +132 -132
- package/dist/pages/AdminReviewModerationPage.js +55 -55
- package/dist/pages/AdminStoresPage.js +95 -95
- package/dist/pages/AdminSubmissionsQueuePage.js +297 -297
- package/dist/pages/AdminSubmissionsQueuePage.js.map +1 -1
- package/dist/pages/AppDetailPage.js +65 -65
- package/dist/pages/AppSettingsPage.js +32 -32
- package/dist/pages/CartPage.js +66 -66
- package/dist/pages/CreateSourcingRequestPage.d.ts +3 -0
- package/dist/pages/CreateSourcingRequestPage.js +439 -0
- package/dist/pages/CreateSourcingRequestPage.js.map +1 -0
- package/dist/pages/InstalledAppsPage.js +15 -15
- package/dist/pages/InstalledAppsPage.js.map +1 -1
- package/dist/pages/MarketplaceHomePage.js +384 -384
- package/dist/pages/MarketplaceHomePage.js.map +1 -1
- package/dist/pages/MyLicensesPage.js +39 -39
- package/dist/pages/OrderConfirmationPage.js +57 -57
- package/dist/pages/OrdersPage.js +3 -3
- package/dist/pages/OrdersPage.js.map +1 -1
- package/dist/pages/ProductDetailPage.js +6 -6
- package/dist/pages/SellerSourcingOffersPage.d.ts +3 -0
- package/dist/pages/SellerSourcingOffersPage.js +284 -0
- package/dist/pages/SellerSourcingOffersPage.js.map +1 -0
- package/dist/pages/SellerSourcingOpportunitiesPage.d.ts +3 -0
- package/dist/pages/SellerSourcingOpportunitiesPage.js +272 -0
- package/dist/pages/SellerSourcingOpportunitiesPage.js.map +1 -0
- package/dist/pages/SellerSourcingOpportunityDetailPage.d.ts +3 -0
- package/dist/pages/SellerSourcingOpportunityDetailPage.js +465 -0
- package/dist/pages/SellerSourcingOpportunityDetailPage.js.map +1 -0
- package/dist/pages/SourcingRequestDetailPage.d.ts +3 -0
- package/dist/pages/SourcingRequestDetailPage.js +447 -0
- package/dist/pages/SourcingRequestDetailPage.js.map +1 -0
- package/dist/pages/SourcingRequestsPage.d.ts +3 -0
- package/dist/pages/SourcingRequestsPage.js +272 -0
- package/dist/pages/SourcingRequestsPage.js.map +1 -0
- package/dist/providers/SourcingAccessProvider.d.ts +21 -0
- package/dist/providers/SourcingAccessProvider.js +95 -0
- package/dist/providers/SourcingAccessProvider.js.map +1 -0
- package/dist/translations/en.d.ts +3 -0
- package/dist/translations/en.js +3 -0
- package/dist/translations/en.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,13 +3,13 @@ import { formatPriceForModel as t } from "../utils/index.js";
|
|
|
3
3
|
import { Markdown as n } from "../node_modules/react-markdown/lib/index.js";
|
|
4
4
|
import { InstallAppModal as r } from "../components/InstallAppModal.js";
|
|
5
5
|
import { useCallback as i, useEffect as a, useState as o } from "react";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { IllustratedEmptyState as
|
|
6
|
+
import { useNavigate as ee } from "react-router";
|
|
7
|
+
import { ArrowLeft as te, Check as s, ChevronDown as c, ChevronUp as l, Clock as u, Download as d, ExternalLink as f, FileJson as p, FlaskConical as ne, GitBranch as m, Hash as re, PackageCheck as ie, RefreshCw as h, ShieldCheck as ae, Tag as oe, User as se, X as g } from "lucide-react";
|
|
8
|
+
import { graphqlFetch as _ } from "@burdenoff/fe-libs/shared/graphql";
|
|
9
|
+
import { jsx as v, jsxs as y } from "react/jsx-runtime";
|
|
10
|
+
import { IllustratedEmptyState as b, PagePurpose as ce } from "@burdenoff/fe-libs/ui";
|
|
11
11
|
//#region src/pages/AdminSubmissionsQueuePage.tsx
|
|
12
|
-
var
|
|
12
|
+
var le = "\n query PendingReviewProducts($limit: Int, $offset: Int) {\n pendingReviewProducts(limit: $limit, offset: $offset) {\n totalCount\n products {\n id\n slug\n name\n type\n nature\n status\n pricingModel\n price\n currency\n description\n submittedAt\n submittedBy\n category\n icon\n productId\n zipFileUrl\n manifest\n requiredPermissions\n publisher {\n id\n name\n email\n }\n }\n }\n }\n", ue = "\n query AdminProducts($limit: Int, $offset: Int, $status: ProductStatus) {\n products(filter: { status: $status }, limit: $limit, offset: $offset) {\n id\n slug\n name\n type\n nature\n status\n pricingModel\n price\n currency\n description\n submittedAt\n submittedBy\n category\n icon\n productId\n zipFileUrl\n manifest\n requiredPermissions\n publisher {\n id\n name\n email\n }\n }\n }\n", de = "\n mutation ApproveProduct($id: ID!, $notes: String) {\n approveProduct(id: $id, notes: $notes) {\n id\n status\n publishedAt\n }\n }\n", fe = "\n mutation RejectProduct($id: ID!, $reason: String!) {\n rejectProduct(id: $id, reason: $reason) {\n id\n status\n rejectedReason\n }\n }\n", pe = "\n mutation DelistProduct($id: ID!, $reason: String) {\n delistProduct(id: $id, reason: $reason) {\n id\n status\n }\n }\n", me = "\n query AdminAppPackageUrl($id: ID!) {\n application(id: $id) {\n id\n versions(first: 1) {\n edges {\n node {\n id\n packageUrl\n }\n }\n }\n }\n }\n", he = "\n mutation RefreshApplicationVersionPackageUrl($id: ID!) {\n refreshApplicationVersionPackageUrl(id: $id)\n }\n", ge = "\n query AdminPendingVersionApps($limit: Int, $offset: Int) {\n applicationsWithPendingVersions(limit: $limit, offset: $offset) {\n totalCount\n edges {\n node {\n id\n name\n slug\n iconUrl\n shortDescription\n description\n versions(first: 5) {\n edges {\n node {\n id\n version\n status\n releaseNotes\n packageUrl\n packageSize\n isLatest\n reviewNotes\n manifest\n createdAt\n }\n }\n }\n }\n }\n }\n }\n", _e = "\n mutation AdminApproveApplicationVersion($id: ID!, $notes: String) {\n approveApplicationVersion(id: $id, notes: $notes) {\n id\n status\n }\n }\n", ve = "\n mutation AdminRejectApplicationVersion($id: ID!, $reason: String!) {\n rejectApplicationVersion(id: $id, reason: $reason) {\n id\n status\n }\n }\n", ye = [
|
|
13
13
|
{
|
|
14
14
|
label: "Pending review",
|
|
15
15
|
value: "PENDING_REVIEW"
|
|
@@ -30,16 +30,16 @@ var de = "\n query PendingReviewProducts($limit: Int, $offset: Int) {\n pend
|
|
|
30
30
|
label: "All",
|
|
31
31
|
value: "ALL"
|
|
32
32
|
}
|
|
33
|
-
],
|
|
33
|
+
], x = {
|
|
34
34
|
NODE: "bg-[var(--color-status-info-bg-subtle)] text-[var(--color-status-info-text)]",
|
|
35
35
|
WORKFLOW: "bg-[var(--color-status-warning-bg-subtle)] text-[var(--color-status-warning-text)]",
|
|
36
36
|
INTEGRATION: "bg-[var(--color-status-success-bg-subtle)] text-[var(--color-status-success-text)]",
|
|
37
37
|
VIBEMODULE: "bg-[var(--color-surface-accent-muted)] text-[var(--color-text-accent)]"
|
|
38
|
-
},
|
|
38
|
+
}, S = {
|
|
39
39
|
PENDING_REVIEW: "bg-[var(--color-status-warning-bg-subtle)] text-[var(--color-status-warning-text)]",
|
|
40
40
|
PUBLISHED: "bg-[var(--color-status-success-bg-subtle)] text-[var(--color-status-success-text)]",
|
|
41
41
|
REJECTED: "bg-[var(--color-status-error-bg-subtle)] text-[var(--color-status-error-text)]"
|
|
42
|
-
},
|
|
42
|
+
}, C = new Set([
|
|
43
43
|
"NODE",
|
|
44
44
|
"WORKFLOW",
|
|
45
45
|
"VIBEMODULE",
|
|
@@ -47,13 +47,13 @@ var de = "\n query PendingReviewProducts($limit: Int, $offset: Int) {\n pend
|
|
|
47
47
|
"DATASINK",
|
|
48
48
|
"CONSOLE"
|
|
49
49
|
]);
|
|
50
|
-
function
|
|
51
|
-
return
|
|
50
|
+
function be(e) {
|
|
51
|
+
return x[e] ?? "bg-[var(--color-surface-muted)] text-[var(--color-text-secondary)]";
|
|
52
52
|
}
|
|
53
|
-
function
|
|
54
|
-
return
|
|
53
|
+
function xe(e) {
|
|
54
|
+
return S[e] ?? "bg-[var(--color-surface-muted)] text-[var(--color-text-secondary)]";
|
|
55
55
|
}
|
|
56
|
-
function
|
|
56
|
+
function Se(e) {
|
|
57
57
|
return e ? new Date(e).toLocaleString(void 0, {
|
|
58
58
|
month: "short",
|
|
59
59
|
day: "numeric",
|
|
@@ -62,122 +62,122 @@ function S(e) {
|
|
|
62
62
|
minute: "2-digit"
|
|
63
63
|
}) : "—";
|
|
64
64
|
}
|
|
65
|
-
var
|
|
66
|
-
let
|
|
67
|
-
|
|
65
|
+
var w = () => {
|
|
66
|
+
let x = ee(), { authToken: S, basePath: w } = e(), [T, E] = o([]), [D, O] = o(0), [k, A] = o(!1), [j, M] = o(null), [N, P] = o(null), [F, Ce] = o("PENDING_REVIEW"), [we, I] = o(null), [L, R] = o(""), [z, B] = o(null), [V, H] = o(null), [U, Te] = o([]), [Ee, De] = o(0), [W, G] = o(null), [Oe, K] = o(null), [q, J] = o(""), [ke, Y] = o(null), [Ae, je] = o({}), [X, Me] = o(null), Z = i(async () => {
|
|
67
|
+
A(!0), M(null);
|
|
68
68
|
try {
|
|
69
|
-
let e = await
|
|
69
|
+
let e = await _({
|
|
70
70
|
gateway: "global",
|
|
71
|
-
query:
|
|
71
|
+
query: ge,
|
|
72
72
|
variables: {
|
|
73
73
|
limit: 50,
|
|
74
74
|
offset: 0
|
|
75
75
|
},
|
|
76
|
-
authToken:
|
|
76
|
+
authToken: S || void 0
|
|
77
77
|
});
|
|
78
78
|
if (e.errors?.length) throw Error(e.errors[0]?.message ?? "Failed to load version updates");
|
|
79
|
-
|
|
79
|
+
Te((e.data?.applicationsWithPendingVersions.edges ?? []).map((e) => e.node)), De(e.data?.applicationsWithPendingVersions.totalCount ?? 0);
|
|
80
80
|
} catch (e) {
|
|
81
|
-
|
|
81
|
+
M(e instanceof Error ? e.message : "Failed to load version updates");
|
|
82
82
|
} finally {
|
|
83
|
-
|
|
83
|
+
A(!1);
|
|
84
84
|
}
|
|
85
|
-
}, [
|
|
86
|
-
G(e),
|
|
85
|
+
}, [S]), Ne = async (e, t, n) => {
|
|
86
|
+
G(e), M(null);
|
|
87
87
|
try {
|
|
88
|
-
let t = await
|
|
88
|
+
let t = await _({
|
|
89
89
|
gateway: "global",
|
|
90
|
-
query:
|
|
90
|
+
query: _e,
|
|
91
91
|
variables: {
|
|
92
92
|
id: e,
|
|
93
93
|
notes: n || null
|
|
94
94
|
},
|
|
95
|
-
authToken:
|
|
95
|
+
authToken: S || void 0
|
|
96
96
|
});
|
|
97
97
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Approval failed");
|
|
98
|
-
await
|
|
98
|
+
await Z();
|
|
99
99
|
} catch (e) {
|
|
100
|
-
|
|
100
|
+
M(e instanceof Error ? e.message : "Approval failed");
|
|
101
101
|
} finally {
|
|
102
102
|
G(null);
|
|
103
103
|
}
|
|
104
|
-
},
|
|
104
|
+
}, Pe = async (e, t, n) => {
|
|
105
105
|
if (!n.trim()) {
|
|
106
|
-
|
|
106
|
+
M("Rejection reason is required");
|
|
107
107
|
return;
|
|
108
108
|
}
|
|
109
|
-
G(e),
|
|
109
|
+
G(e), M(null);
|
|
110
110
|
try {
|
|
111
|
-
let t = await
|
|
111
|
+
let t = await _({
|
|
112
112
|
gateway: "global",
|
|
113
|
-
query:
|
|
113
|
+
query: ve,
|
|
114
114
|
variables: {
|
|
115
115
|
id: e,
|
|
116
116
|
reason: n.trim()
|
|
117
117
|
},
|
|
118
|
-
authToken:
|
|
118
|
+
authToken: S || void 0
|
|
119
119
|
});
|
|
120
120
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Rejection failed");
|
|
121
|
-
|
|
121
|
+
K(null), J(""), Y(null), await Z();
|
|
122
122
|
} catch (e) {
|
|
123
|
-
|
|
123
|
+
M(e instanceof Error ? e.message : "Rejection failed");
|
|
124
124
|
} finally {
|
|
125
125
|
G(null);
|
|
126
126
|
}
|
|
127
|
-
},
|
|
127
|
+
}, Q = i(async (e) => {
|
|
128
128
|
if (e === "VERSION_UPDATES") {
|
|
129
|
-
await
|
|
129
|
+
await Z();
|
|
130
130
|
return;
|
|
131
131
|
}
|
|
132
|
-
|
|
132
|
+
A(!0), M(null);
|
|
133
133
|
try {
|
|
134
134
|
if (e === "PENDING_REVIEW") {
|
|
135
|
-
let e = await
|
|
135
|
+
let e = await _({
|
|
136
136
|
gateway: "global",
|
|
137
|
-
query:
|
|
137
|
+
query: le,
|
|
138
138
|
variables: {
|
|
139
139
|
limit: 100,
|
|
140
140
|
offset: 0
|
|
141
141
|
},
|
|
142
|
-
authToken:
|
|
142
|
+
authToken: S || void 0
|
|
143
143
|
});
|
|
144
144
|
if (e.errors?.length) throw Error(e.errors[0]?.message ?? "Failed to load pending products");
|
|
145
|
-
|
|
145
|
+
E(e.data?.pendingReviewProducts.products ?? []), O(e.data?.pendingReviewProducts.totalCount ?? 0);
|
|
146
146
|
} else {
|
|
147
|
-
let t = await
|
|
147
|
+
let t = await _({
|
|
148
148
|
gateway: "global",
|
|
149
|
-
query:
|
|
149
|
+
query: ue,
|
|
150
150
|
variables: {
|
|
151
151
|
limit: 100,
|
|
152
152
|
offset: 0,
|
|
153
153
|
...e !== "ALL" && { status: e }
|
|
154
154
|
},
|
|
155
|
-
authToken:
|
|
155
|
+
authToken: S || void 0
|
|
156
156
|
});
|
|
157
157
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Failed to load products");
|
|
158
158
|
let n = t.data?.products ?? [];
|
|
159
|
-
|
|
159
|
+
E(n), O(n.length);
|
|
160
160
|
}
|
|
161
161
|
} catch (e) {
|
|
162
|
-
|
|
162
|
+
M(e instanceof Error ? e.message : "Failed to load products");
|
|
163
163
|
} finally {
|
|
164
|
-
|
|
164
|
+
A(!1);
|
|
165
165
|
}
|
|
166
|
-
}, [
|
|
166
|
+
}, [S, Z]);
|
|
167
167
|
a(() => {
|
|
168
|
-
|
|
169
|
-
}, [
|
|
170
|
-
|
|
171
|
-
}, [
|
|
172
|
-
let e =
|
|
168
|
+
Q(F);
|
|
169
|
+
}, [Q, F]), a(() => {
|
|
170
|
+
Z();
|
|
171
|
+
}, [Z]), a(() => {
|
|
172
|
+
let e = T.filter((e) => C.has(e.type) && e.productId && !e.zipFileUrl);
|
|
173
173
|
e.length !== 0 && (async () => {
|
|
174
|
-
let t = await Promise.allSettled(e.map((e) =>
|
|
174
|
+
let t = await Promise.allSettled(e.map((e) => _({
|
|
175
175
|
gateway: "global",
|
|
176
|
-
query:
|
|
176
|
+
query: me,
|
|
177
177
|
variables: { id: e.productId },
|
|
178
|
-
authToken:
|
|
178
|
+
authToken: S || void 0
|
|
179
179
|
})));
|
|
180
|
-
|
|
180
|
+
je((n) => {
|
|
181
181
|
let r = { ...n };
|
|
182
182
|
return t.forEach((t, n) => {
|
|
183
183
|
if (t.status === "fulfilled") {
|
|
@@ -190,249 +190,249 @@ var C = () => {
|
|
|
190
190
|
}), r;
|
|
191
191
|
});
|
|
192
192
|
})();
|
|
193
|
-
}, [
|
|
194
|
-
let
|
|
195
|
-
|
|
193
|
+
}, [T, S]);
|
|
194
|
+
let Fe = async (e) => {
|
|
195
|
+
Me(e);
|
|
196
196
|
try {
|
|
197
|
-
let t = (await
|
|
197
|
+
let t = (await _({
|
|
198
198
|
gateway: "global",
|
|
199
|
-
query:
|
|
199
|
+
query: he,
|
|
200
200
|
variables: { id: e },
|
|
201
|
-
authToken:
|
|
201
|
+
authToken: S || void 0
|
|
202
202
|
})).data?.refreshApplicationVersionPackageUrl;
|
|
203
|
-
t ? window.open(t, "_blank", "noreferrer") :
|
|
203
|
+
t ? window.open(t, "_blank", "noreferrer") : M("Could not generate a download URL. S3 credentials may not be configured.");
|
|
204
204
|
} catch (e) {
|
|
205
|
-
|
|
205
|
+
M(e instanceof Error ? e.message : "Failed to refresh download URL");
|
|
206
206
|
} finally {
|
|
207
|
-
|
|
207
|
+
Me(null);
|
|
208
208
|
}
|
|
209
|
-
},
|
|
210
|
-
|
|
209
|
+
}, Ie = async (e) => {
|
|
210
|
+
P(e), M(null);
|
|
211
211
|
try {
|
|
212
|
-
let t = await
|
|
212
|
+
let t = await _({
|
|
213
213
|
gateway: "global",
|
|
214
|
-
query:
|
|
214
|
+
query: de,
|
|
215
215
|
variables: {
|
|
216
216
|
id: e,
|
|
217
217
|
notes: null
|
|
218
218
|
},
|
|
219
|
-
authToken:
|
|
219
|
+
authToken: S || void 0
|
|
220
220
|
});
|
|
221
221
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Approval failed");
|
|
222
|
-
await
|
|
222
|
+
await Q(F);
|
|
223
223
|
} catch (e) {
|
|
224
|
-
|
|
224
|
+
M(e instanceof Error ? e.message : "Approval failed");
|
|
225
225
|
} finally {
|
|
226
|
-
|
|
226
|
+
P(null);
|
|
227
227
|
}
|
|
228
|
-
},
|
|
229
|
-
if (!
|
|
230
|
-
|
|
228
|
+
}, Le = async (e) => {
|
|
229
|
+
if (!L.trim()) {
|
|
230
|
+
M("Rejection reason is required");
|
|
231
231
|
return;
|
|
232
232
|
}
|
|
233
|
-
|
|
233
|
+
P(e), M(null);
|
|
234
234
|
try {
|
|
235
|
-
let t = await
|
|
235
|
+
let t = await _({
|
|
236
236
|
gateway: "global",
|
|
237
|
-
query:
|
|
237
|
+
query: fe,
|
|
238
238
|
variables: {
|
|
239
239
|
id: e,
|
|
240
|
-
reason:
|
|
240
|
+
reason: L.trim()
|
|
241
241
|
},
|
|
242
|
-
authToken:
|
|
242
|
+
authToken: S || void 0
|
|
243
243
|
});
|
|
244
244
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Rejection failed");
|
|
245
|
-
|
|
245
|
+
I(null), R(""), await Q(F);
|
|
246
246
|
} catch (e) {
|
|
247
|
-
|
|
247
|
+
M(e instanceof Error ? e.message : "Rejection failed");
|
|
248
248
|
} finally {
|
|
249
|
-
|
|
249
|
+
P(null);
|
|
250
250
|
}
|
|
251
|
-
},
|
|
252
|
-
|
|
251
|
+
}, Re = async (e) => {
|
|
252
|
+
P(e), M(null);
|
|
253
253
|
try {
|
|
254
|
-
let t = await
|
|
254
|
+
let t = await _({
|
|
255
255
|
gateway: "global",
|
|
256
|
-
query:
|
|
256
|
+
query: pe,
|
|
257
257
|
variables: {
|
|
258
258
|
id: e,
|
|
259
|
-
reason:
|
|
259
|
+
reason: L.trim() || void 0
|
|
260
260
|
},
|
|
261
|
-
authToken:
|
|
261
|
+
authToken: S || void 0
|
|
262
262
|
});
|
|
263
263
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Delist failed");
|
|
264
|
-
|
|
264
|
+
I(null), R(""), await Q(F);
|
|
265
265
|
} catch (e) {
|
|
266
|
-
|
|
266
|
+
M(e instanceof Error ? e.message : "Delist failed");
|
|
267
267
|
} finally {
|
|
268
|
-
|
|
268
|
+
P(null);
|
|
269
269
|
}
|
|
270
|
-
},
|
|
271
|
-
return /* @__PURE__ */
|
|
270
|
+
}, $ = T.filter((e) => e.status === "PENDING_REVIEW").length;
|
|
271
|
+
return /* @__PURE__ */ y("div", {
|
|
272
272
|
className: "min-h-screen bg-[var(--color-surface-default)]",
|
|
273
273
|
children: [
|
|
274
|
-
/* @__PURE__ */
|
|
274
|
+
/* @__PURE__ */ v("header", {
|
|
275
275
|
className: "sticky top-0 z-10 border-b border-[var(--color-border-seam)] bg-[var(--color-surface-raised)] shadow-[var(--shadow-elevation-1)]",
|
|
276
|
-
children: /* @__PURE__ */
|
|
276
|
+
children: /* @__PURE__ */ y("div", {
|
|
277
277
|
className: "mx-auto max-w-5xl px-6 py-4",
|
|
278
|
-
children: [/* @__PURE__ */
|
|
278
|
+
children: [/* @__PURE__ */ y("div", {
|
|
279
279
|
className: "flex items-center justify-between gap-4",
|
|
280
|
-
children: [/* @__PURE__ */
|
|
280
|
+
children: [/* @__PURE__ */ y("div", {
|
|
281
281
|
className: "flex items-center gap-3 min-w-0",
|
|
282
282
|
children: [
|
|
283
|
-
/* @__PURE__ */
|
|
283
|
+
/* @__PURE__ */ y("button", {
|
|
284
284
|
type: "button",
|
|
285
|
-
onClick: () =>
|
|
285
|
+
onClick: () => x(`${w}/dashboard`),
|
|
286
286
|
className: "inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-sm text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] hover:text-[var(--color-text-primary)] transition-colors",
|
|
287
|
-
children: [/* @__PURE__ */
|
|
287
|
+
children: [/* @__PURE__ */ v(te, { className: "size-4 shrink-0" }), "Back"]
|
|
288
288
|
}),
|
|
289
|
-
/* @__PURE__ */
|
|
290
|
-
/* @__PURE__ */
|
|
291
|
-
/* @__PURE__ */
|
|
289
|
+
/* @__PURE__ */ v("div", { className: "h-5 w-px bg-[var(--color-border-seam)]" }),
|
|
290
|
+
/* @__PURE__ */ v(ie, { className: "size-5 shrink-0 text-[var(--color-text-primary)]" }),
|
|
291
|
+
/* @__PURE__ */ v("h1", {
|
|
292
292
|
className: "text-lg font-semibold text-[var(--color-text-primary)] truncate",
|
|
293
293
|
children: "Submission Queue"
|
|
294
294
|
}),
|
|
295
|
-
|
|
295
|
+
D > 0 && /* @__PURE__ */ v("span", {
|
|
296
296
|
className: "shrink-0 rounded-full bg-[var(--color-status-warning-bg-subtle)] px-2 py-0.5 text-xs font-semibold text-[var(--color-status-warning-text)]",
|
|
297
|
-
children:
|
|
297
|
+
children: D
|
|
298
298
|
})
|
|
299
299
|
]
|
|
300
|
-
}), /* @__PURE__ */
|
|
300
|
+
}), /* @__PURE__ */ y("button", {
|
|
301
301
|
type: "button",
|
|
302
|
-
onClick: () => void
|
|
302
|
+
onClick: () => void Q(F),
|
|
303
303
|
className: "shrink-0 inline-flex items-center gap-2 rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-sm text-[var(--color-text-primary)] hover:bg-[var(--color-surface-hover)] transition-colors disabled:opacity-50",
|
|
304
|
-
disabled:
|
|
305
|
-
children: [/* @__PURE__ */
|
|
304
|
+
disabled: k,
|
|
305
|
+
children: [/* @__PURE__ */ v(h, { className: `size-4 ${k ? "animate-spin" : ""}` }), "Refresh"]
|
|
306
306
|
})]
|
|
307
|
-
}), /* @__PURE__ */
|
|
307
|
+
}), /* @__PURE__ */ v("div", {
|
|
308
308
|
className: "mt-3 flex gap-1.5 flex-wrap",
|
|
309
|
-
children:
|
|
309
|
+
children: ye.map((e) => /* @__PURE__ */ y("button", {
|
|
310
310
|
type: "button",
|
|
311
|
-
onClick: () =>
|
|
312
|
-
className: `rounded-full px-3.5 py-1 text-xs font-medium transition-colors ${
|
|
311
|
+
onClick: () => Ce(e.value),
|
|
312
|
+
className: `rounded-full px-3.5 py-1 text-xs font-medium transition-colors ${F === e.value ? "bg-[var(--color-action-primary-bg)] text-[var(--color-action-primary-text)]" : "bg-[var(--color-surface-muted)] text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)]"}`,
|
|
313
313
|
children: [
|
|
314
314
|
e.label,
|
|
315
|
-
e.value === "PENDING_REVIEW" &&
|
|
315
|
+
e.value === "PENDING_REVIEW" && $ > 0 && F !== "PENDING_REVIEW" && /* @__PURE__ */ v("span", {
|
|
316
316
|
className: "ml-1.5 rounded-full bg-[var(--color-status-warning-text)] px-1.5 py-0.5 text-[10px] text-white",
|
|
317
|
-
children:
|
|
317
|
+
children: $
|
|
318
318
|
}),
|
|
319
|
-
e.value === "VERSION_UPDATES" &&
|
|
319
|
+
e.value === "VERSION_UPDATES" && Ee > 0 && F !== "VERSION_UPDATES" && /* @__PURE__ */ v("span", {
|
|
320
320
|
className: "ml-1.5 rounded-full bg-[var(--color-status-info-text)] px-1.5 py-0.5 text-[10px] text-white",
|
|
321
|
-
children:
|
|
321
|
+
children: Ee
|
|
322
322
|
})
|
|
323
323
|
]
|
|
324
324
|
}, e.value))
|
|
325
325
|
})]
|
|
326
326
|
})
|
|
327
327
|
}),
|
|
328
|
-
/* @__PURE__ */
|
|
328
|
+
/* @__PURE__ */ y("main", {
|
|
329
329
|
className: "mx-auto max-w-5xl space-y-4 p-6",
|
|
330
330
|
children: [
|
|
331
|
-
/* @__PURE__ */
|
|
331
|
+
/* @__PURE__ */ v(ce, {
|
|
332
332
|
className: "mb-2",
|
|
333
333
|
children: "Every publisher submission lands here for your review. Inspect the manifest, permissions, and package details — then approve to publish or reject with a clear reason the developer will see."
|
|
334
334
|
}),
|
|
335
|
-
|
|
335
|
+
j && /* @__PURE__ */ v("div", {
|
|
336
336
|
role: "alert",
|
|
337
337
|
className: "rounded-lg border border-[var(--color-border-danger)] bg-[var(--color-surface-danger-muted)] px-4 py-3 text-sm text-[var(--color-text-danger)]",
|
|
338
|
-
children:
|
|
338
|
+
children: j
|
|
339
339
|
}),
|
|
340
|
-
|
|
340
|
+
F === "VERSION_UPDATES" ? k && U.length === 0 ? /* @__PURE__ */ v("div", {
|
|
341
341
|
className: "flex items-center justify-center py-24",
|
|
342
|
-
children: /* @__PURE__ */
|
|
343
|
-
}) :
|
|
342
|
+
children: /* @__PURE__ */ v(h, { className: "size-6 animate-spin text-[var(--color-text-muted)]" })
|
|
343
|
+
}) : U.length === 0 ? /* @__PURE__ */ v(b, {
|
|
344
344
|
illustration: "empty-data",
|
|
345
345
|
title: "No pending version updates",
|
|
346
346
|
description: "All published apps are up to date. When a developer submits a new version, it will appear here for your review."
|
|
347
|
-
}) : /* @__PURE__ */
|
|
347
|
+
}) : /* @__PURE__ */ v("ul", {
|
|
348
348
|
className: "space-y-4",
|
|
349
|
-
children:
|
|
349
|
+
children: U.map((e) => {
|
|
350
350
|
let t = e.versions.edges.map((e) => e.node).filter((e) => e.status === "pending_review");
|
|
351
|
-
return t.length === 0 ? null : /* @__PURE__ */
|
|
351
|
+
return t.length === 0 ? null : /* @__PURE__ */ y("li", {
|
|
352
352
|
className: "overflow-hidden rounded-xl border border-[var(--color-border-seam)] bg-[var(--color-surface-raised)] shadow-[var(--shadow-elevation-1)]",
|
|
353
|
-
children: [/* @__PURE__ */
|
|
353
|
+
children: [/* @__PURE__ */ y("div", {
|
|
354
354
|
className: "flex items-center gap-4 p-5 border-b border-[var(--color-border-seam)]",
|
|
355
355
|
children: [
|
|
356
|
-
e.iconUrl ? /* @__PURE__ */
|
|
356
|
+
e.iconUrl ? /* @__PURE__ */ v("img", {
|
|
357
357
|
src: e.iconUrl,
|
|
358
358
|
alt: "",
|
|
359
359
|
className: "size-12 shrink-0 rounded-xl object-cover shadow-sm"
|
|
360
|
-
}) : /* @__PURE__ */
|
|
360
|
+
}) : /* @__PURE__ */ v("div", {
|
|
361
361
|
className: "flex size-12 shrink-0 items-center justify-center rounded-xl bg-[var(--color-surface-muted)] text-sm font-bold text-[var(--color-text-muted)] uppercase",
|
|
362
362
|
children: e.name.slice(0, 2)
|
|
363
363
|
}),
|
|
364
|
-
/* @__PURE__ */
|
|
364
|
+
/* @__PURE__ */ y("div", {
|
|
365
365
|
className: "flex-1 min-w-0",
|
|
366
|
-
children: [/* @__PURE__ */
|
|
366
|
+
children: [/* @__PURE__ */ y("div", {
|
|
367
367
|
className: "flex items-center gap-2 flex-wrap",
|
|
368
|
-
children: [/* @__PURE__ */
|
|
368
|
+
children: [/* @__PURE__ */ v("h3", {
|
|
369
369
|
className: "text-base font-semibold text-[var(--color-text-primary)]",
|
|
370
370
|
children: e.name
|
|
371
|
-
}), /* @__PURE__ */
|
|
371
|
+
}), /* @__PURE__ */ y("span", {
|
|
372
372
|
className: "inline-flex items-center gap-1 rounded-full bg-[var(--color-status-info-bg-subtle)] px-2 py-0.5 text-[11px] font-semibold text-[var(--color-status-info-text)]",
|
|
373
373
|
children: [
|
|
374
|
-
/* @__PURE__ */
|
|
374
|
+
/* @__PURE__ */ v(m, { className: "size-3" }),
|
|
375
375
|
t.length,
|
|
376
376
|
" version",
|
|
377
377
|
t.length === 1 ? "" : "s",
|
|
378
378
|
" pending"
|
|
379
379
|
]
|
|
380
380
|
})]
|
|
381
|
-
}), (e.shortDescription ?? e.description) && /* @__PURE__ */
|
|
381
|
+
}), (e.shortDescription ?? e.description) && /* @__PURE__ */ v("p", {
|
|
382
382
|
className: "mt-0.5 text-sm text-[var(--color-text-secondary)] line-clamp-1",
|
|
383
383
|
children: e.shortDescription ?? e.description
|
|
384
384
|
})]
|
|
385
385
|
}),
|
|
386
|
-
/* @__PURE__ */
|
|
386
|
+
/* @__PURE__ */ y("a", {
|
|
387
387
|
href: `/devportal/apps/${e.id}`,
|
|
388
388
|
target: "_blank",
|
|
389
389
|
rel: "noreferrer",
|
|
390
390
|
className: "shrink-0 inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] transition-colors",
|
|
391
|
-
children: [/* @__PURE__ */
|
|
391
|
+
children: [/* @__PURE__ */ v(f, { className: "size-3.5" }), "Devportal"]
|
|
392
392
|
})
|
|
393
393
|
]
|
|
394
|
-
}), /* @__PURE__ */
|
|
394
|
+
}), /* @__PURE__ */ v("div", {
|
|
395
395
|
className: "divide-y divide-[var(--color-border-seam)]",
|
|
396
|
-
children: t.map((t) => /* @__PURE__ */
|
|
396
|
+
children: t.map((t) => /* @__PURE__ */ y("div", {
|
|
397
397
|
className: "p-5 space-y-3",
|
|
398
398
|
children: [
|
|
399
|
-
/* @__PURE__ */
|
|
399
|
+
/* @__PURE__ */ y("div", {
|
|
400
400
|
className: "flex items-center gap-2 flex-wrap",
|
|
401
401
|
children: [
|
|
402
|
-
/* @__PURE__ */
|
|
403
|
-
/* @__PURE__ */
|
|
402
|
+
/* @__PURE__ */ v(m, { className: "size-4 text-[var(--color-text-secondary)] shrink-0" }),
|
|
403
|
+
/* @__PURE__ */ v("span", {
|
|
404
404
|
className: "font-mono font-semibold text-sm text-[var(--color-text-primary)]",
|
|
405
405
|
children: t.version
|
|
406
406
|
}),
|
|
407
|
-
t.isLatest && /* @__PURE__ */
|
|
407
|
+
t.isLatest && /* @__PURE__ */ v("span", {
|
|
408
408
|
className: "rounded-full bg-[var(--color-surface-muted)] px-2 py-0.5 text-[10px] text-[var(--color-text-secondary)]",
|
|
409
409
|
children: "Latest"
|
|
410
410
|
}),
|
|
411
|
-
/* @__PURE__ */
|
|
411
|
+
/* @__PURE__ */ v("span", {
|
|
412
412
|
className: "rounded-full bg-[var(--color-status-warning-bg-subtle)] px-2 py-0.5 text-[10px] font-medium text-[var(--color-status-warning-text)] uppercase",
|
|
413
413
|
children: "New Version"
|
|
414
414
|
}),
|
|
415
|
-
/* @__PURE__ */
|
|
415
|
+
/* @__PURE__ */ y("span", {
|
|
416
416
|
className: "ml-auto flex items-center gap-1 text-xs text-[var(--color-text-secondary)]",
|
|
417
|
-
children: [/* @__PURE__ */
|
|
417
|
+
children: [/* @__PURE__ */ v(u, { className: "size-3" }), Se(t.createdAt)]
|
|
418
418
|
})
|
|
419
419
|
]
|
|
420
420
|
}),
|
|
421
|
-
t.releaseNotes && /* @__PURE__ */
|
|
421
|
+
t.releaseNotes && /* @__PURE__ */ v("div", {
|
|
422
422
|
className: "text-sm text-[var(--color-text-secondary)]",
|
|
423
|
-
children: /* @__PURE__ */
|
|
423
|
+
children: /* @__PURE__ */ v(n, { children: t.releaseNotes })
|
|
424
424
|
}),
|
|
425
|
-
/* @__PURE__ */
|
|
425
|
+
/* @__PURE__ */ y("div", {
|
|
426
426
|
className: "flex flex-wrap gap-2",
|
|
427
|
-
children: [t.packageUrl && /* @__PURE__ */
|
|
427
|
+
children: [t.packageUrl && /* @__PURE__ */ y("button", {
|
|
428
428
|
type: "button",
|
|
429
|
-
onClick: () => void
|
|
430
|
-
disabled:
|
|
429
|
+
onClick: () => void Fe(t.id),
|
|
430
|
+
disabled: X === t.id,
|
|
431
431
|
className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] transition-colors disabled:opacity-50",
|
|
432
432
|
children: [
|
|
433
|
-
|
|
433
|
+
X === t.id ? /* @__PURE__ */ v(h, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ v(d, { className: "size-3.5" }),
|
|
434
434
|
"Download Package",
|
|
435
|
-
t.packageSize != null && /* @__PURE__ */
|
|
435
|
+
t.packageSize != null && /* @__PURE__ */ y("span", {
|
|
436
436
|
className: "text-[var(--color-text-muted)]",
|
|
437
437
|
children: [
|
|
438
438
|
"(",
|
|
@@ -441,70 +441,70 @@ var C = () => {
|
|
|
441
441
|
]
|
|
442
442
|
})
|
|
443
443
|
]
|
|
444
|
-
}), t.manifest && /* @__PURE__ */
|
|
444
|
+
}), t.manifest && /* @__PURE__ */ y("button", {
|
|
445
445
|
type: "button",
|
|
446
|
-
onClick: () => z
|
|
446
|
+
onClick: () => B(z === t.id ? null : t.id),
|
|
447
447
|
className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] transition-colors",
|
|
448
448
|
children: [
|
|
449
|
-
/* @__PURE__ */
|
|
450
|
-
|
|
451
|
-
|
|
449
|
+
/* @__PURE__ */ v(p, { className: "size-3.5" }),
|
|
450
|
+
z === t.id ? "Hide manifest" : "View manifest",
|
|
451
|
+
z === t.id ? /* @__PURE__ */ v(l, { className: "size-3" }) : /* @__PURE__ */ v(c, { className: "size-3" })
|
|
452
452
|
]
|
|
453
453
|
})]
|
|
454
454
|
}),
|
|
455
|
-
|
|
455
|
+
z === t.id && t.manifest && /* @__PURE__ */ v("pre", {
|
|
456
456
|
className: "overflow-x-auto rounded-lg border border-[var(--color-border-seam)] bg-[var(--color-surface-default)] p-4 text-[11px] leading-relaxed text-[var(--color-text-primary)] max-h-48 overflow-y-auto",
|
|
457
457
|
children: JSON.stringify(t.manifest, null, 2)
|
|
458
458
|
}),
|
|
459
|
-
|
|
459
|
+
Oe === t.id && ke === e.id && /* @__PURE__ */ y("div", {
|
|
460
460
|
className: "rounded-lg border border-[var(--color-border-danger)] bg-[var(--color-surface-danger-muted)]/30 p-3 space-y-2",
|
|
461
461
|
children: [
|
|
462
|
-
/* @__PURE__ */
|
|
462
|
+
/* @__PURE__ */ v("p", {
|
|
463
463
|
className: "text-xs font-semibold text-[var(--color-text-danger)]",
|
|
464
464
|
children: "Rejection reason (the developer will see this)"
|
|
465
465
|
}),
|
|
466
|
-
/* @__PURE__ */
|
|
467
|
-
value:
|
|
468
|
-
onChange: (e) =>
|
|
466
|
+
/* @__PURE__ */ v("textarea", {
|
|
467
|
+
value: q,
|
|
468
|
+
onChange: (e) => J(e.target.value),
|
|
469
469
|
rows: 2,
|
|
470
470
|
className: "w-full rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-2 text-sm text-[var(--color-text-primary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] resize-none",
|
|
471
471
|
placeholder: "Be specific — what needs to change before this version can be approved…"
|
|
472
472
|
}),
|
|
473
|
-
/* @__PURE__ */
|
|
473
|
+
/* @__PURE__ */ y("div", {
|
|
474
474
|
className: "flex gap-2 justify-end",
|
|
475
|
-
children: [/* @__PURE__ */
|
|
475
|
+
children: [/* @__PURE__ */ v("button", {
|
|
476
476
|
type: "button",
|
|
477
477
|
onClick: () => {
|
|
478
|
-
|
|
478
|
+
K(null), J(""), Y(null);
|
|
479
479
|
},
|
|
480
480
|
className: "rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-primary)] hover:bg-[var(--color-surface-hover)] transition-colors",
|
|
481
481
|
children: "Cancel"
|
|
482
|
-
}), /* @__PURE__ */
|
|
482
|
+
}), /* @__PURE__ */ v("button", {
|
|
483
483
|
type: "button",
|
|
484
|
-
onClick: () => void
|
|
485
|
-
disabled: !
|
|
484
|
+
onClick: () => void Pe(t.id, e.id, q),
|
|
485
|
+
disabled: !q.trim() || W === t.id,
|
|
486
486
|
className: "rounded-md bg-[var(--color-surface-danger)] px-3 py-1.5 text-xs font-semibold text-[var(--color-text-on-danger)] hover:opacity-90 disabled:opacity-50 transition-opacity",
|
|
487
487
|
children: "Submit rejection"
|
|
488
488
|
})]
|
|
489
489
|
})
|
|
490
490
|
]
|
|
491
491
|
}),
|
|
492
|
-
/* @__PURE__ */
|
|
492
|
+
/* @__PURE__ */ y("div", {
|
|
493
493
|
className: "flex items-center gap-2",
|
|
494
|
-
children: [/* @__PURE__ */
|
|
494
|
+
children: [/* @__PURE__ */ y("button", {
|
|
495
495
|
type: "button",
|
|
496
|
-
onClick: () => void
|
|
496
|
+
onClick: () => void Ne(t.id, e.id, ""),
|
|
497
497
|
disabled: W === t.id,
|
|
498
498
|
className: "inline-flex items-center gap-1.5 rounded-md bg-[var(--color-surface-success)] px-4 py-1.5 text-xs font-semibold text-[var(--color-text-on-success)] hover:opacity-90 disabled:opacity-50 transition-opacity",
|
|
499
|
-
children: [W === t.id ? /* @__PURE__ */
|
|
500
|
-
}),
|
|
499
|
+
children: [W === t.id ? /* @__PURE__ */ v(h, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ v(s, { className: "size-3.5" }), "Approve version"]
|
|
500
|
+
}), Oe !== t.id && /* @__PURE__ */ y("button", {
|
|
501
501
|
type: "button",
|
|
502
502
|
onClick: () => {
|
|
503
|
-
|
|
503
|
+
K(t.id), J(""), Y(e.id);
|
|
504
504
|
},
|
|
505
505
|
disabled: W === t.id,
|
|
506
506
|
className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-danger)] bg-[var(--color-surface-danger-muted)] px-4 py-1.5 text-xs font-semibold text-[var(--color-text-danger)] hover:bg-[var(--color-surface-danger)] hover:text-[var(--color-text-on-danger)] disabled:opacity-50 transition-colors",
|
|
507
|
-
children: [/* @__PURE__ */
|
|
507
|
+
children: [/* @__PURE__ */ v(g, { className: "size-3.5" }), "Reject version"]
|
|
508
508
|
})]
|
|
509
509
|
})
|
|
510
510
|
]
|
|
@@ -512,63 +512,63 @@ var C = () => {
|
|
|
512
512
|
})]
|
|
513
513
|
}, e.id);
|
|
514
514
|
})
|
|
515
|
-
}) :
|
|
515
|
+
}) : k && T.length === 0 ? /* @__PURE__ */ v("div", {
|
|
516
516
|
className: "flex items-center justify-center py-24",
|
|
517
|
-
children: /* @__PURE__ */
|
|
518
|
-
}) :
|
|
519
|
-
illustration:
|
|
520
|
-
title:
|
|
521
|
-
description:
|
|
522
|
-
}) : /* @__PURE__ */
|
|
517
|
+
children: /* @__PURE__ */ v(h, { className: "size-6 animate-spin text-[var(--color-text-muted)]" })
|
|
518
|
+
}) : T.length === 0 ? /* @__PURE__ */ v(b, {
|
|
519
|
+
illustration: F === "PENDING_REVIEW" ? "empty-notifications" : "empty-data",
|
|
520
|
+
title: F === "PENDING_REVIEW" ? "Queue is clear" : "No products match this filter",
|
|
521
|
+
description: F === "PENDING_REVIEW" ? "No submissions are awaiting review. New submissions will appear here as publishers send them in." : "Nothing matches the current filter. Try switching to a different status above."
|
|
522
|
+
}) : /* @__PURE__ */ v("ul", {
|
|
523
523
|
className: "space-y-3",
|
|
524
|
-
children:
|
|
524
|
+
children: T.map((e) => /* @__PURE__ */ y("li", {
|
|
525
525
|
className: "overflow-hidden rounded-xl border border-[var(--color-border-seam)] bg-[var(--color-surface-raised)] shadow-[var(--shadow-elevation-1)] transition-[box-shadow,border-color] hover:border-[var(--color-border-strong)] hover:shadow-[var(--shadow-elevation-2)]",
|
|
526
526
|
children: [
|
|
527
|
-
/* @__PURE__ */
|
|
527
|
+
/* @__PURE__ */ y("div", {
|
|
528
528
|
className: "flex items-start gap-4 p-5",
|
|
529
|
-
children: [e.icon ? /* @__PURE__ */
|
|
529
|
+
children: [e.icon ? /* @__PURE__ */ v("img", {
|
|
530
530
|
src: e.icon,
|
|
531
531
|
alt: "",
|
|
532
532
|
className: "size-14 shrink-0 rounded-xl object-cover shadow-sm"
|
|
533
|
-
}) : /* @__PURE__ */
|
|
533
|
+
}) : /* @__PURE__ */ v("div", {
|
|
534
534
|
className: "flex size-14 shrink-0 items-center justify-center rounded-xl bg-[var(--color-surface-muted)] text-sm font-bold text-[var(--color-text-muted)] uppercase",
|
|
535
535
|
children: e.type.slice(0, 2)
|
|
536
|
-
}), /* @__PURE__ */
|
|
536
|
+
}), /* @__PURE__ */ y("div", {
|
|
537
537
|
className: "min-w-0 flex-1",
|
|
538
538
|
children: [
|
|
539
|
-
/* @__PURE__ */
|
|
539
|
+
/* @__PURE__ */ y("div", {
|
|
540
540
|
className: "flex flex-wrap items-center gap-2",
|
|
541
541
|
children: [
|
|
542
|
-
/* @__PURE__ */
|
|
542
|
+
/* @__PURE__ */ v("h3", {
|
|
543
543
|
className: "text-base font-semibold text-[var(--color-text-primary)]",
|
|
544
544
|
children: e.name
|
|
545
545
|
}),
|
|
546
|
-
/* @__PURE__ */
|
|
547
|
-
className: `rounded-full px-2 py-0.5 text-[11px] font-semibold uppercase tracking-wide ${
|
|
546
|
+
/* @__PURE__ */ v("span", {
|
|
547
|
+
className: `rounded-full px-2 py-0.5 text-[11px] font-semibold uppercase tracking-wide ${be(e.type)}`,
|
|
548
548
|
children: e.type
|
|
549
549
|
}),
|
|
550
|
-
/* @__PURE__ */
|
|
551
|
-
className: `rounded-full px-2 py-0.5 text-[11px] font-medium ${
|
|
550
|
+
/* @__PURE__ */ v("span", {
|
|
551
|
+
className: `rounded-full px-2 py-0.5 text-[11px] font-medium ${xe(e.status)}`,
|
|
552
552
|
children: e.status.replace("_", " ")
|
|
553
553
|
})
|
|
554
554
|
]
|
|
555
555
|
}),
|
|
556
|
-
/* @__PURE__ */
|
|
556
|
+
/* @__PURE__ */ y("div", {
|
|
557
557
|
className: "mt-1 flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-[var(--color-text-secondary)]",
|
|
558
558
|
children: [
|
|
559
|
-
/* @__PURE__ */
|
|
559
|
+
/* @__PURE__ */ y("span", {
|
|
560
560
|
className: "flex items-center gap-1",
|
|
561
|
-
children: [/* @__PURE__ */
|
|
561
|
+
children: [/* @__PURE__ */ v(re, { className: "size-3" }), /* @__PURE__ */ v("span", {
|
|
562
562
|
className: "font-mono",
|
|
563
563
|
children: e.slug
|
|
564
564
|
})]
|
|
565
565
|
}),
|
|
566
|
-
e.publisher && /* @__PURE__ */
|
|
566
|
+
e.publisher && /* @__PURE__ */ y("span", {
|
|
567
567
|
className: "flex items-center gap-1",
|
|
568
568
|
children: [
|
|
569
|
-
/* @__PURE__ */
|
|
569
|
+
/* @__PURE__ */ v(se, { className: "size-3" }),
|
|
570
570
|
e.publisher.name,
|
|
571
|
-
e.publisher.email && /* @__PURE__ */
|
|
571
|
+
e.publisher.email && /* @__PURE__ */ y("span", {
|
|
572
572
|
className: "text-[var(--color-text-muted)]",
|
|
573
573
|
children: [
|
|
574
574
|
"(",
|
|
@@ -578,126 +578,126 @@ var C = () => {
|
|
|
578
578
|
})
|
|
579
579
|
]
|
|
580
580
|
}),
|
|
581
|
-
e.submittedAt && /* @__PURE__ */
|
|
581
|
+
e.submittedAt && /* @__PURE__ */ y("span", {
|
|
582
582
|
className: "flex items-center gap-1",
|
|
583
|
-
children: [/* @__PURE__ */
|
|
583
|
+
children: [/* @__PURE__ */ v(u, { className: "size-3" }), Se(e.submittedAt)]
|
|
584
584
|
}),
|
|
585
|
-
/* @__PURE__ */
|
|
585
|
+
/* @__PURE__ */ y("span", {
|
|
586
586
|
className: "flex items-center gap-1",
|
|
587
|
-
children: [/* @__PURE__ */
|
|
587
|
+
children: [/* @__PURE__ */ v(oe, { className: "size-3" }), t(e.price, e.currency, e.pricingModel)]
|
|
588
588
|
})
|
|
589
589
|
]
|
|
590
590
|
}),
|
|
591
|
-
e.description && /* @__PURE__ */
|
|
591
|
+
e.description && /* @__PURE__ */ v("p", {
|
|
592
592
|
className: "mt-2 line-clamp-2 text-sm text-[var(--color-text-secondary)]",
|
|
593
593
|
children: e.description
|
|
594
594
|
})
|
|
595
595
|
]
|
|
596
596
|
})]
|
|
597
597
|
}),
|
|
598
|
-
/* @__PURE__ */
|
|
598
|
+
/* @__PURE__ */ y("div", {
|
|
599
599
|
className: "flex flex-wrap items-center justify-between gap-2 border-t border-[var(--color-border-seam)] bg-[var(--color-surface-muted)] px-5 py-3",
|
|
600
|
-
children: [/* @__PURE__ */
|
|
600
|
+
children: [/* @__PURE__ */ y("div", {
|
|
601
601
|
className: "flex flex-wrap items-center gap-2",
|
|
602
602
|
children: [
|
|
603
|
-
e.productId && /* @__PURE__ */
|
|
603
|
+
e.productId && /* @__PURE__ */ y("a", {
|
|
604
604
|
href: `/devportal/apps/${e.productId}`,
|
|
605
605
|
target: "_blank",
|
|
606
606
|
rel: "noreferrer",
|
|
607
607
|
className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] hover:text-[var(--color-text-primary)] transition-colors",
|
|
608
|
-
children: [/* @__PURE__ */
|
|
608
|
+
children: [/* @__PURE__ */ v(f, { className: "size-3.5" }), "Devportal"]
|
|
609
609
|
}),
|
|
610
|
-
|
|
611
|
-
let t = e.productId ?
|
|
610
|
+
C.has(e.type) && (() => {
|
|
611
|
+
let t = e.productId ? Ae[e.productId]?.versionId ?? U.find((t) => t.id === e.productId)?.versions?.edges?.[0]?.node?.id : void 0;
|
|
612
612
|
if (!t && !e.zipFileUrl) return null;
|
|
613
|
-
let n =
|
|
614
|
-
return t ? /* @__PURE__ */
|
|
613
|
+
let n = X === t;
|
|
614
|
+
return t ? /* @__PURE__ */ y("button", {
|
|
615
615
|
type: "button",
|
|
616
|
-
onClick: () => void
|
|
616
|
+
onClick: () => void Fe(t),
|
|
617
617
|
disabled: n,
|
|
618
618
|
className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] hover:text-[var(--color-text-primary)] transition-colors disabled:opacity-50",
|
|
619
|
-
children: [n ? /* @__PURE__ */
|
|
620
|
-
}) : /* @__PURE__ */
|
|
619
|
+
children: [n ? /* @__PURE__ */ v(h, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ v(d, { className: "size-3.5" }), "Download Package"]
|
|
620
|
+
}) : /* @__PURE__ */ y("a", {
|
|
621
621
|
href: e.zipFileUrl,
|
|
622
622
|
download: !0,
|
|
623
623
|
target: "_blank",
|
|
624
624
|
rel: "noreferrer",
|
|
625
625
|
className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] hover:text-[var(--color-text-primary)] transition-colors",
|
|
626
|
-
children: [/* @__PURE__ */
|
|
626
|
+
children: [/* @__PURE__ */ v(d, { className: "size-3.5" }), "Download Package"]
|
|
627
627
|
});
|
|
628
628
|
})(),
|
|
629
|
-
|
|
629
|
+
C.has(e.type) && /* @__PURE__ */ y("button", {
|
|
630
630
|
type: "button",
|
|
631
|
-
onClick: () =>
|
|
631
|
+
onClick: () => H(e),
|
|
632
632
|
className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-accent)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-accent)] hover:bg-[var(--color-surface-accent-muted)] transition-colors",
|
|
633
|
-
children: [/* @__PURE__ */
|
|
633
|
+
children: [/* @__PURE__ */ v(ne, { className: "size-3.5" }), "Test in workspace"]
|
|
634
634
|
}),
|
|
635
|
-
/* @__PURE__ */
|
|
635
|
+
/* @__PURE__ */ y("button", {
|
|
636
636
|
type: "button",
|
|
637
|
-
onClick: () => z
|
|
637
|
+
onClick: () => B(z === e.id ? null : e.id),
|
|
638
638
|
className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)] hover:bg-[var(--color-surface-hover)] transition-colors",
|
|
639
639
|
children: [
|
|
640
|
-
/* @__PURE__ */
|
|
641
|
-
|
|
642
|
-
|
|
640
|
+
/* @__PURE__ */ v(p, { className: "size-3.5" }),
|
|
641
|
+
z === e.id ? "Hide details" : "Inspect details",
|
|
642
|
+
z === e.id ? /* @__PURE__ */ v(l, { className: "size-3" }) : /* @__PURE__ */ v(c, { className: "size-3" })
|
|
643
643
|
]
|
|
644
644
|
})
|
|
645
645
|
]
|
|
646
|
-
}), /* @__PURE__ */
|
|
646
|
+
}), /* @__PURE__ */ y("div", {
|
|
647
647
|
className: "flex items-center gap-2",
|
|
648
648
|
children: [
|
|
649
|
-
e.status !== "PUBLISHED" && /* @__PURE__ */
|
|
649
|
+
e.status !== "PUBLISHED" && /* @__PURE__ */ y("button", {
|
|
650
650
|
type: "button",
|
|
651
|
-
onClick: () => void
|
|
652
|
-
disabled:
|
|
651
|
+
onClick: () => void Ie(e.id),
|
|
652
|
+
disabled: N === e.id,
|
|
653
653
|
className: "inline-flex items-center gap-1.5 rounded-md bg-[var(--color-surface-success)] px-4 py-1.5 text-xs font-semibold text-[var(--color-text-on-success)] hover:opacity-90 disabled:opacity-50 transition-opacity",
|
|
654
|
-
children: [/* @__PURE__ */
|
|
654
|
+
children: [/* @__PURE__ */ v(s, { className: "size-3.5" }), "Approve"]
|
|
655
655
|
}),
|
|
656
|
-
e.status === "PENDING_REVIEW" && /* @__PURE__ */
|
|
656
|
+
e.status === "PENDING_REVIEW" && /* @__PURE__ */ y("button", {
|
|
657
657
|
type: "button",
|
|
658
658
|
onClick: () => {
|
|
659
|
-
|
|
659
|
+
I(e.id), R("");
|
|
660
660
|
},
|
|
661
|
-
disabled:
|
|
661
|
+
disabled: N === e.id,
|
|
662
662
|
className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-danger)] bg-[var(--color-surface-danger-muted)] px-4 py-1.5 text-xs font-semibold text-[var(--color-text-danger)] hover:bg-[var(--color-surface-danger)] hover:text-[var(--color-text-on-danger)] disabled:opacity-50 transition-colors",
|
|
663
|
-
children: [/* @__PURE__ */
|
|
663
|
+
children: [/* @__PURE__ */ v(g, { className: "size-3.5" }), "Reject"]
|
|
664
664
|
}),
|
|
665
|
-
e.status === "PUBLISHED" && /* @__PURE__ */
|
|
665
|
+
e.status === "PUBLISHED" && /* @__PURE__ */ y("button", {
|
|
666
666
|
type: "button",
|
|
667
667
|
onClick: () => {
|
|
668
|
-
|
|
668
|
+
I(e.id), R("");
|
|
669
669
|
},
|
|
670
|
-
disabled:
|
|
670
|
+
disabled: N === e.id,
|
|
671
671
|
className: "inline-flex items-center gap-1.5 rounded-md border border-[var(--color-border-warning)] bg-[var(--color-surface-warning-muted)] px-4 py-1.5 text-xs font-semibold text-[var(--color-text-warning)] hover:bg-[var(--color-surface-warning)] hover:text-[var(--color-text-on-warning)] disabled:opacity-50 transition-colors",
|
|
672
|
-
children: [/* @__PURE__ */
|
|
672
|
+
children: [/* @__PURE__ */ v(g, { className: "size-3.5" }), "Delist"]
|
|
673
673
|
})
|
|
674
674
|
]
|
|
675
675
|
})]
|
|
676
676
|
}),
|
|
677
|
-
|
|
677
|
+
z === e.id && /* @__PURE__ */ y("div", {
|
|
678
678
|
className: "border-t border-[var(--color-border-seam)] bg-[var(--color-surface-muted)] p-5 space-y-5",
|
|
679
679
|
children: [
|
|
680
|
-
/* @__PURE__ */
|
|
680
|
+
/* @__PURE__ */ y("div", {
|
|
681
681
|
className: "grid grid-cols-2 gap-x-8 gap-y-3 text-xs sm:grid-cols-3",
|
|
682
682
|
children: [
|
|
683
|
-
/* @__PURE__ */
|
|
683
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
|
|
684
684
|
className: "font-medium text-[var(--color-text-secondary)]",
|
|
685
685
|
children: "Store product ID"
|
|
686
|
-
}), /* @__PURE__ */
|
|
686
|
+
}), /* @__PURE__ */ v("dd", {
|
|
687
687
|
className: "mt-0.5 font-mono text-[var(--color-text-primary)] break-all",
|
|
688
688
|
children: e.id
|
|
689
689
|
})] }),
|
|
690
|
-
/* @__PURE__ */
|
|
690
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
|
|
691
691
|
className: "font-medium text-[var(--color-text-secondary)]",
|
|
692
692
|
children: "Slug"
|
|
693
|
-
}), /* @__PURE__ */
|
|
693
|
+
}), /* @__PURE__ */ v("dd", {
|
|
694
694
|
className: "mt-0.5 font-mono text-[var(--color-text-primary)]",
|
|
695
695
|
children: e.slug
|
|
696
696
|
})] }),
|
|
697
|
-
/* @__PURE__ */
|
|
697
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
|
|
698
698
|
className: "font-medium text-[var(--color-text-secondary)]",
|
|
699
699
|
children: "Type / Nature"
|
|
700
|
-
}), /* @__PURE__ */
|
|
700
|
+
}), /* @__PURE__ */ y("dd", {
|
|
701
701
|
className: "mt-0.5 text-[var(--color-text-primary)]",
|
|
702
702
|
children: [
|
|
703
703
|
e.type,
|
|
@@ -705,22 +705,22 @@ var C = () => {
|
|
|
705
705
|
e.nature
|
|
706
706
|
]
|
|
707
707
|
})] }),
|
|
708
|
-
e.category && /* @__PURE__ */
|
|
708
|
+
e.category && /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
|
|
709
709
|
className: "font-medium text-[var(--color-text-secondary)]",
|
|
710
710
|
children: "Category"
|
|
711
|
-
}), /* @__PURE__ */
|
|
711
|
+
}), /* @__PURE__ */ v("dd", {
|
|
712
712
|
className: "mt-0.5 text-[var(--color-text-primary)]",
|
|
713
713
|
children: e.category
|
|
714
714
|
})] }),
|
|
715
|
-
/* @__PURE__ */
|
|
715
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
|
|
716
716
|
className: "font-medium text-[var(--color-text-secondary)]",
|
|
717
717
|
children: "Pricing"
|
|
718
|
-
}), /* @__PURE__ */
|
|
718
|
+
}), /* @__PURE__ */ y("dd", {
|
|
719
719
|
className: "mt-0.5 text-[var(--color-text-primary)]",
|
|
720
720
|
children: [
|
|
721
721
|
t(e.price, e.currency, e.pricingModel),
|
|
722
722
|
" ",
|
|
723
|
-
/* @__PURE__ */
|
|
723
|
+
/* @__PURE__ */ y("span", {
|
|
724
724
|
className: "text-[var(--color-text-muted)]",
|
|
725
725
|
children: [
|
|
726
726
|
"(",
|
|
@@ -730,81 +730,81 @@ var C = () => {
|
|
|
730
730
|
})
|
|
731
731
|
]
|
|
732
732
|
})] }),
|
|
733
|
-
e.productId && /* @__PURE__ */
|
|
733
|
+
e.productId && /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
|
|
734
734
|
className: "font-medium text-[var(--color-text-secondary)]",
|
|
735
735
|
children: "Devportal app ID"
|
|
736
|
-
}), /* @__PURE__ */
|
|
736
|
+
}), /* @__PURE__ */ v("dd", {
|
|
737
737
|
className: "mt-0.5 font-mono text-[var(--color-text-primary)] break-all",
|
|
738
738
|
children: e.productId
|
|
739
739
|
})] }),
|
|
740
|
-
e.submittedBy && /* @__PURE__ */
|
|
740
|
+
e.submittedBy && /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
|
|
741
741
|
className: "font-medium text-[var(--color-text-secondary)]",
|
|
742
742
|
children: "Submitted by (actor)"
|
|
743
|
-
}), /* @__PURE__ */
|
|
743
|
+
}), /* @__PURE__ */ v("dd", {
|
|
744
744
|
className: "mt-0.5 font-mono text-[var(--color-text-primary)] break-all",
|
|
745
745
|
children: e.submittedBy
|
|
746
746
|
})] })
|
|
747
747
|
]
|
|
748
748
|
}),
|
|
749
|
-
e.requiredPermissions && e.requiredPermissions.length > 0 && /* @__PURE__ */
|
|
749
|
+
e.requiredPermissions && e.requiredPermissions.length > 0 && /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ y("h4", {
|
|
750
750
|
className: "mb-2 flex items-center gap-1.5 text-xs font-semibold text-[var(--color-text-secondary)] uppercase tracking-wide",
|
|
751
|
-
children: [/* @__PURE__ */
|
|
752
|
-
}), /* @__PURE__ */
|
|
751
|
+
children: [/* @__PURE__ */ v(ae, { className: "size-3.5 text-[var(--color-status-success-text)]" }), "Required Permissions"]
|
|
752
|
+
}), /* @__PURE__ */ v("div", {
|
|
753
753
|
className: "flex flex-wrap gap-1.5",
|
|
754
|
-
children: e.requiredPermissions.map((e) => /* @__PURE__ */
|
|
754
|
+
children: e.requiredPermissions.map((e) => /* @__PURE__ */ v("span", {
|
|
755
755
|
className: "inline-flex items-center gap-1 rounded-md bg-[var(--color-surface-default)] border border-[var(--color-border-seam)] px-2 py-1 text-xs font-mono text-[var(--color-text-primary)]",
|
|
756
756
|
children: e
|
|
757
757
|
}, e))
|
|
758
758
|
})] }),
|
|
759
|
-
e.manifest && /* @__PURE__ */
|
|
759
|
+
e.manifest && /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ y("h4", {
|
|
760
760
|
className: "mb-2 flex items-center gap-1.5 text-xs font-semibold text-[var(--color-text-secondary)] uppercase tracking-wide",
|
|
761
|
-
children: [/* @__PURE__ */
|
|
762
|
-
}), /* @__PURE__ */
|
|
761
|
+
children: [/* @__PURE__ */ v(p, { className: "size-3.5" }), "Manifest"]
|
|
762
|
+
}), /* @__PURE__ */ v("pre", {
|
|
763
763
|
className: "overflow-x-auto rounded-lg border border-[var(--color-border-seam)] bg-[var(--color-surface-default)] p-4 text-[11px] leading-relaxed text-[var(--color-text-primary)] max-h-72 overflow-y-auto scrollbar-thin",
|
|
764
764
|
children: JSON.stringify(e.manifest, null, 2)
|
|
765
765
|
})] })
|
|
766
766
|
]
|
|
767
767
|
}),
|
|
768
|
-
|
|
768
|
+
we === e.id && /* @__PURE__ */ y("div", {
|
|
769
769
|
className: `border-t border-[var(--color-border-seam)] px-5 py-4 ${e.status === "PUBLISHED" ? "bg-[var(--color-surface-warning-muted)]/30" : "bg-[var(--color-surface-danger-muted)]/30"}`,
|
|
770
770
|
children: [
|
|
771
|
-
e.status === "PUBLISHED" ? /* @__PURE__ */
|
|
771
|
+
e.status === "PUBLISHED" ? /* @__PURE__ */ v("p", {
|
|
772
772
|
className: "mb-2 text-xs font-semibold text-[var(--color-text-warning)]",
|
|
773
773
|
children: "Delist — this removes the product from the store for new users. Existing installs keep working. Reason is optional."
|
|
774
|
-
}) : /* @__PURE__ */
|
|
774
|
+
}) : /* @__PURE__ */ v("p", {
|
|
775
775
|
className: "mb-2 text-xs font-semibold text-[var(--color-text-danger)]",
|
|
776
776
|
children: "Reject — provide a reason (the publisher will see this)"
|
|
777
777
|
}),
|
|
778
|
-
/* @__PURE__ */
|
|
778
|
+
/* @__PURE__ */ v("textarea", {
|
|
779
779
|
id: `reject-reason-${e.id}`,
|
|
780
780
|
"aria-label": e.status === "PUBLISHED" ? "Delist reason" : "Rejection reason",
|
|
781
|
-
value:
|
|
782
|
-
onChange: (e) =>
|
|
781
|
+
value: L,
|
|
782
|
+
onChange: (e) => R(e.target.value),
|
|
783
783
|
rows: 3,
|
|
784
784
|
required: e.status !== "PUBLISHED",
|
|
785
785
|
"aria-required": e.status !== "PUBLISHED",
|
|
786
786
|
className: "w-full rounded-lg border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-2 text-sm text-[var(--color-text-primary)] focus:border-[var(--color-border-accent)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] resize-none",
|
|
787
787
|
placeholder: e.status === "PUBLISHED" ? "Optional — reason for delisting…" : "Be specific — e.g. 'Manifest is missing the identity.version field' or 'ZIP file is empty'…"
|
|
788
788
|
}),
|
|
789
|
-
/* @__PURE__ */
|
|
789
|
+
/* @__PURE__ */ y("div", {
|
|
790
790
|
className: "mt-2 flex items-center justify-end gap-2",
|
|
791
|
-
children: [/* @__PURE__ */
|
|
791
|
+
children: [/* @__PURE__ */ v("button", {
|
|
792
792
|
type: "button",
|
|
793
793
|
onClick: () => {
|
|
794
|
-
|
|
794
|
+
I(null), R("");
|
|
795
795
|
},
|
|
796
796
|
className: "rounded-md border border-[var(--color-border-default)] bg-[var(--color-surface-default)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-primary)] hover:bg-[var(--color-surface-hover)] transition-colors",
|
|
797
797
|
children: "Cancel"
|
|
798
|
-
}), e.status === "PUBLISHED" ? /* @__PURE__ */
|
|
798
|
+
}), e.status === "PUBLISHED" ? /* @__PURE__ */ v("button", {
|
|
799
799
|
type: "button",
|
|
800
|
-
onClick: () => void
|
|
801
|
-
disabled:
|
|
800
|
+
onClick: () => void Re(e.id),
|
|
801
|
+
disabled: N === e.id,
|
|
802
802
|
className: "rounded-md bg-[var(--color-surface-warning)] px-3 py-1.5 text-xs font-semibold text-[var(--color-text-on-warning)] hover:opacity-90 disabled:opacity-50 transition-opacity",
|
|
803
803
|
children: "Confirm delist"
|
|
804
|
-
}) : /* @__PURE__ */
|
|
804
|
+
}) : /* @__PURE__ */ v("button", {
|
|
805
805
|
type: "button",
|
|
806
|
-
onClick: () => void
|
|
807
|
-
disabled: !
|
|
806
|
+
onClick: () => void Le(e.id),
|
|
807
|
+
disabled: !L.trim() || N === e.id,
|
|
808
808
|
className: "rounded-md bg-[var(--color-surface-danger)] px-3 py-1.5 text-xs font-semibold text-[var(--color-text-on-danger)] hover:opacity-90 disabled:opacity-50 transition-opacity",
|
|
809
809
|
children: "Submit rejection"
|
|
810
810
|
})]
|
|
@@ -816,20 +816,20 @@ var C = () => {
|
|
|
816
816
|
})
|
|
817
817
|
]
|
|
818
818
|
}),
|
|
819
|
-
|
|
819
|
+
V && /* @__PURE__ */ v(r, {
|
|
820
820
|
isOpen: !0,
|
|
821
|
-
onClose: () =>
|
|
821
|
+
onClose: () => H(null),
|
|
822
822
|
app: {
|
|
823
|
-
id:
|
|
824
|
-
name:
|
|
825
|
-
slug:
|
|
826
|
-
icon:
|
|
827
|
-
type:
|
|
828
|
-
permissions:
|
|
823
|
+
id: V.id,
|
|
824
|
+
name: V.name,
|
|
825
|
+
slug: V.slug,
|
|
826
|
+
icon: V.icon ?? void 0,
|
|
827
|
+
type: V.type,
|
|
828
|
+
permissions: V.requiredPermissions?.length ? V.requiredPermissions : void 0
|
|
829
829
|
},
|
|
830
830
|
purchaseState: "free",
|
|
831
831
|
onInstallSuccess: () => {
|
|
832
|
-
|
|
832
|
+
H(null);
|
|
833
833
|
},
|
|
834
834
|
onInstallError: () => {}
|
|
835
835
|
})
|
|
@@ -837,6 +837,6 @@ var C = () => {
|
|
|
837
837
|
});
|
|
838
838
|
};
|
|
839
839
|
//#endregion
|
|
840
|
-
export {
|
|
840
|
+
export { w as AdminSubmissionsQueuePage };
|
|
841
841
|
|
|
842
842
|
//# sourceMappingURL=AdminSubmissionsQueuePage.js.map
|