@burdenoff/microfe-store 2026.801.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.
Files changed (69) hide show
  1. package/dist/StoreAdminRoutes.js +27 -27
  2. package/dist/StoreRoot.js +78 -45
  3. package/dist/StoreRoot.js.map +1 -1
  4. package/dist/StoreRoutes.js +163 -85
  5. package/dist/StoreRoutes.js.map +1 -1
  6. package/dist/components/InstallAppModal.js +211 -137
  7. package/dist/components/InstallAppModal.js.map +1 -1
  8. package/dist/components/sourcing/SourcingConfirmationDialog.d.ts +15 -0
  9. package/dist/components/sourcing/SourcingConfirmationDialog.js +61 -0
  10. package/dist/components/sourcing/SourcingConfirmationDialog.js.map +1 -0
  11. package/dist/components/sourcing/SourcingUi.d.ts +51 -0
  12. package/dist/components/sourcing/SourcingUi.js +176 -0
  13. package/dist/components/sourcing/SourcingUi.js.map +1 -0
  14. package/dist/generated/global-operations.d.ts +713 -0
  15. package/dist/generated/global-operations.js +557 -175
  16. package/dist/generated/global-operations.js.map +1 -1
  17. package/dist/generated/global-types.d.ts +2158 -2159
  18. package/dist/generated/global-types.js +8 -2
  19. package/dist/generated/global-types.js.map +1 -1
  20. package/dist/hooks/useBackendCart.js +17 -17
  21. package/dist/hooks/useInstallations.js +32 -32
  22. package/dist/hooks/useOrders.js +7 -7
  23. package/dist/hooks/useSourcing.d.ts +319 -0
  24. package/dist/hooks/useSourcing.js +87 -0
  25. package/dist/hooks/useSourcing.js.map +1 -0
  26. package/dist/hooks/useStoreGraphQL.js +163 -163
  27. package/dist/index.js +12 -12
  28. package/dist/pages/AdminDashboardPage.js +132 -132
  29. package/dist/pages/AdminReviewModerationPage.js +55 -55
  30. package/dist/pages/AdminStoresPage.js +95 -95
  31. package/dist/pages/AdminSubmissionsQueuePage.js +297 -297
  32. package/dist/pages/AdminSubmissionsQueuePage.js.map +1 -1
  33. package/dist/pages/AppDetailPage.js +65 -65
  34. package/dist/pages/AppSettingsPage.js +32 -32
  35. package/dist/pages/CartPage.js +66 -66
  36. package/dist/pages/CreateSourcingRequestPage.d.ts +3 -0
  37. package/dist/pages/CreateSourcingRequestPage.js +439 -0
  38. package/dist/pages/CreateSourcingRequestPage.js.map +1 -0
  39. package/dist/pages/InstalledAppsPage.js +15 -15
  40. package/dist/pages/InstalledAppsPage.js.map +1 -1
  41. package/dist/pages/MarketplaceHomePage.js +384 -384
  42. package/dist/pages/MarketplaceHomePage.js.map +1 -1
  43. package/dist/pages/MyLicensesPage.js +39 -39
  44. package/dist/pages/OrderConfirmationPage.js +57 -57
  45. package/dist/pages/OrdersPage.js +3 -3
  46. package/dist/pages/OrdersPage.js.map +1 -1
  47. package/dist/pages/ProductDetailPage.js +6 -6
  48. package/dist/pages/SellerSourcingOffersPage.d.ts +3 -0
  49. package/dist/pages/SellerSourcingOffersPage.js +284 -0
  50. package/dist/pages/SellerSourcingOffersPage.js.map +1 -0
  51. package/dist/pages/SellerSourcingOpportunitiesPage.d.ts +3 -0
  52. package/dist/pages/SellerSourcingOpportunitiesPage.js +272 -0
  53. package/dist/pages/SellerSourcingOpportunitiesPage.js.map +1 -0
  54. package/dist/pages/SellerSourcingOpportunityDetailPage.d.ts +3 -0
  55. package/dist/pages/SellerSourcingOpportunityDetailPage.js +465 -0
  56. package/dist/pages/SellerSourcingOpportunityDetailPage.js.map +1 -0
  57. package/dist/pages/SourcingRequestDetailPage.d.ts +3 -0
  58. package/dist/pages/SourcingRequestDetailPage.js +447 -0
  59. package/dist/pages/SourcingRequestDetailPage.js.map +1 -0
  60. package/dist/pages/SourcingRequestsPage.d.ts +3 -0
  61. package/dist/pages/SourcingRequestsPage.js +272 -0
  62. package/dist/pages/SourcingRequestsPage.js.map +1 -0
  63. package/dist/providers/SourcingAccessProvider.d.ts +21 -0
  64. package/dist/providers/SourcingAccessProvider.js +95 -0
  65. package/dist/providers/SourcingAccessProvider.js.map +1 -0
  66. package/dist/translations/en.d.ts +3 -0
  67. package/dist/translations/en.js +3 -0
  68. package/dist/translations/en.js.map +1 -1
  69. package/package.json +2 -2
@@ -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 { ArrowLeft as ee, Check as te, ChevronDown as s, ChevronUp as c, Clock as l, Download as u, ExternalLink as d, FileJson as f, FlaskConical as ne, GitBranch as p, Hash as re, PackageCheck as ie, RefreshCw as m, ShieldCheck as ae, Tag as oe, User as se, X as h } from "lucide-react";
7
- import { graphqlFetch as g } from "@burdenoff/fe-libs/shared/graphql";
8
- import { jsx as _, jsxs as v } from "react/jsx-runtime";
9
- import { useNavigate as ce } from "react-router";
10
- import { IllustratedEmptyState as le, PagePurpose as ue } from "@burdenoff/fe-libs/ui";
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 de = "\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", fe = "\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", pe = "\n mutation ApproveProduct($id: ID!, $notes: String) {\n approveProduct(id: $id, notes: $notes) {\n id\n status\n publishedAt\n }\n }\n", me = "\n mutation RejectProduct($id: ID!, $reason: String!) {\n rejectProduct(id: $id, reason: $reason) {\n id\n status\n rejectedReason\n }\n }\n", he = "\n mutation DelistProduct($id: ID!, $reason: String) {\n delistProduct(id: $id, reason: $reason) {\n id\n status\n }\n }\n", ge = "\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", _e = "\n mutation RefreshApplicationVersionPackageUrl($id: ID!) {\n refreshApplicationVersionPackageUrl(id: $id)\n }\n", ve = "\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", ye = "\n mutation AdminApproveApplicationVersion($id: ID!, $notes: String) {\n approveApplicationVersion(id: $id, notes: $notes) {\n id\n status\n }\n }\n", be = "\n mutation AdminRejectApplicationVersion($id: ID!, $reason: String!) {\n rejectApplicationVersion(id: $id, reason: $reason) {\n id\n status\n }\n }\n", xe = [
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
- ], y = {
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
- }, b = {
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
- }, x = new Set([
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 Se(e) {
51
- return y[e] ?? "bg-[var(--color-surface-muted)] text-[var(--color-text-secondary)]";
50
+ function be(e) {
51
+ return x[e] ?? "bg-[var(--color-surface-muted)] text-[var(--color-text-secondary)]";
52
52
  }
53
- function Ce(e) {
54
- return b[e] ?? "bg-[var(--color-surface-muted)] text-[var(--color-text-secondary)]";
53
+ function xe(e) {
54
+ return S[e] ?? "bg-[var(--color-surface-muted)] text-[var(--color-text-secondary)]";
55
55
  }
56
- function S(e) {
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 C = () => {
66
- let y = ce(), { authToken: b, basePath: C } = e(), [w, T] = o([]), [E, D] = o(0), [O, k] = o(!1), [A, j] = o(null), [M, N] = o(null), [P, we] = o("PENDING_REVIEW"), [Te, F] = o(null), [I, L] = o(""), [R, z] = o(null), [B, V] = o(null), [H, Ee] = o([]), [U, De] = o(0), [W, G] = o(null), [K, q] = o(null), [J, Y] = o(""), [Oe, X] = o(null), [ke, Ae] = o({}), [Z, je] = o(null), Q = i(async () => {
67
- k(!0), j(null);
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 g({
69
+ let e = await _({
70
70
  gateway: "global",
71
- query: ve,
71
+ query: ge,
72
72
  variables: {
73
73
  limit: 50,
74
74
  offset: 0
75
75
  },
76
- authToken: b || void 0
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
- Ee((e.data?.applicationsWithPendingVersions.edges ?? []).map((e) => e.node)), De(e.data?.applicationsWithPendingVersions.totalCount ?? 0);
79
+ Te((e.data?.applicationsWithPendingVersions.edges ?? []).map((e) => e.node)), De(e.data?.applicationsWithPendingVersions.totalCount ?? 0);
80
80
  } catch (e) {
81
- j(e instanceof Error ? e.message : "Failed to load version updates");
81
+ M(e instanceof Error ? e.message : "Failed to load version updates");
82
82
  } finally {
83
- k(!1);
83
+ A(!1);
84
84
  }
85
- }, [b]), Me = async (e, t, n) => {
86
- G(e), j(null);
85
+ }, [S]), Ne = async (e, t, n) => {
86
+ G(e), M(null);
87
87
  try {
88
- let t = await g({
88
+ let t = await _({
89
89
  gateway: "global",
90
- query: ye,
90
+ query: _e,
91
91
  variables: {
92
92
  id: e,
93
93
  notes: n || null
94
94
  },
95
- authToken: b || void 0
95
+ authToken: S || void 0
96
96
  });
97
97
  if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Approval failed");
98
- await Q();
98
+ await Z();
99
99
  } catch (e) {
100
- j(e instanceof Error ? e.message : "Approval failed");
100
+ M(e instanceof Error ? e.message : "Approval failed");
101
101
  } finally {
102
102
  G(null);
103
103
  }
104
- }, Ne = async (e, t, n) => {
104
+ }, Pe = async (e, t, n) => {
105
105
  if (!n.trim()) {
106
- j("Rejection reason is required");
106
+ M("Rejection reason is required");
107
107
  return;
108
108
  }
109
- G(e), j(null);
109
+ G(e), M(null);
110
110
  try {
111
- let t = await g({
111
+ let t = await _({
112
112
  gateway: "global",
113
- query: be,
113
+ query: ve,
114
114
  variables: {
115
115
  id: e,
116
116
  reason: n.trim()
117
117
  },
118
- authToken: b || void 0
118
+ authToken: S || void 0
119
119
  });
120
120
  if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Rejection failed");
121
- q(null), Y(""), X(null), await Q();
121
+ K(null), J(""), Y(null), await Z();
122
122
  } catch (e) {
123
- j(e instanceof Error ? e.message : "Rejection failed");
123
+ M(e instanceof Error ? e.message : "Rejection failed");
124
124
  } finally {
125
125
  G(null);
126
126
  }
127
- }, $ = i(async (e) => {
127
+ }, Q = i(async (e) => {
128
128
  if (e === "VERSION_UPDATES") {
129
- await Q();
129
+ await Z();
130
130
  return;
131
131
  }
132
- k(!0), j(null);
132
+ A(!0), M(null);
133
133
  try {
134
134
  if (e === "PENDING_REVIEW") {
135
- let e = await g({
135
+ let e = await _({
136
136
  gateway: "global",
137
- query: de,
137
+ query: le,
138
138
  variables: {
139
139
  limit: 100,
140
140
  offset: 0
141
141
  },
142
- authToken: b || void 0
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
- T(e.data?.pendingReviewProducts.products ?? []), D(e.data?.pendingReviewProducts.totalCount ?? 0);
145
+ E(e.data?.pendingReviewProducts.products ?? []), O(e.data?.pendingReviewProducts.totalCount ?? 0);
146
146
  } else {
147
- let t = await g({
147
+ let t = await _({
148
148
  gateway: "global",
149
- query: fe,
149
+ query: ue,
150
150
  variables: {
151
151
  limit: 100,
152
152
  offset: 0,
153
153
  ...e !== "ALL" && { status: e }
154
154
  },
155
- authToken: b || void 0
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
- T(n), D(n.length);
159
+ E(n), O(n.length);
160
160
  }
161
161
  } catch (e) {
162
- j(e instanceof Error ? e.message : "Failed to load products");
162
+ M(e instanceof Error ? e.message : "Failed to load products");
163
163
  } finally {
164
- k(!1);
164
+ A(!1);
165
165
  }
166
- }, [b, Q]);
166
+ }, [S, Z]);
167
167
  a(() => {
168
- $(P);
169
- }, [$, P]), a(() => {
170
- Q();
171
- }, [Q]), a(() => {
172
- let e = w.filter((e) => x.has(e.type) && e.productId && !e.zipFileUrl);
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) => g({
174
+ let t = await Promise.allSettled(e.map((e) => _({
175
175
  gateway: "global",
176
- query: ge,
176
+ query: me,
177
177
  variables: { id: e.productId },
178
- authToken: b || void 0
178
+ authToken: S || void 0
179
179
  })));
180
- Ae((n) => {
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
- }, [w, b]);
194
- let Pe = async (e) => {
195
- je(e);
193
+ }, [T, S]);
194
+ let Fe = async (e) => {
195
+ Me(e);
196
196
  try {
197
- let t = (await g({
197
+ let t = (await _({
198
198
  gateway: "global",
199
- query: _e,
199
+ query: he,
200
200
  variables: { id: e },
201
- authToken: b || void 0
201
+ authToken: S || void 0
202
202
  })).data?.refreshApplicationVersionPackageUrl;
203
- t ? window.open(t, "_blank", "noreferrer") : j("Could not generate a download URL. S3 credentials may not be configured.");
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
- j(e instanceof Error ? e.message : "Failed to refresh download URL");
205
+ M(e instanceof Error ? e.message : "Failed to refresh download URL");
206
206
  } finally {
207
- je(null);
207
+ Me(null);
208
208
  }
209
- }, Fe = async (e) => {
210
- N(e), j(null);
209
+ }, Ie = async (e) => {
210
+ P(e), M(null);
211
211
  try {
212
- let t = await g({
212
+ let t = await _({
213
213
  gateway: "global",
214
- query: pe,
214
+ query: de,
215
215
  variables: {
216
216
  id: e,
217
217
  notes: null
218
218
  },
219
- authToken: b || void 0
219
+ authToken: S || void 0
220
220
  });
221
221
  if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Approval failed");
222
- await $(P);
222
+ await Q(F);
223
223
  } catch (e) {
224
- j(e instanceof Error ? e.message : "Approval failed");
224
+ M(e instanceof Error ? e.message : "Approval failed");
225
225
  } finally {
226
- N(null);
226
+ P(null);
227
227
  }
228
- }, Ie = async (e) => {
229
- if (!I.trim()) {
230
- j("Rejection reason is required");
228
+ }, Le = async (e) => {
229
+ if (!L.trim()) {
230
+ M("Rejection reason is required");
231
231
  return;
232
232
  }
233
- N(e), j(null);
233
+ P(e), M(null);
234
234
  try {
235
- let t = await g({
235
+ let t = await _({
236
236
  gateway: "global",
237
- query: me,
237
+ query: fe,
238
238
  variables: {
239
239
  id: e,
240
- reason: I.trim()
240
+ reason: L.trim()
241
241
  },
242
- authToken: b || void 0
242
+ authToken: S || void 0
243
243
  });
244
244
  if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Rejection failed");
245
- F(null), L(""), await $(P);
245
+ I(null), R(""), await Q(F);
246
246
  } catch (e) {
247
- j(e instanceof Error ? e.message : "Rejection failed");
247
+ M(e instanceof Error ? e.message : "Rejection failed");
248
248
  } finally {
249
- N(null);
249
+ P(null);
250
250
  }
251
- }, Le = async (e) => {
252
- N(e), j(null);
251
+ }, Re = async (e) => {
252
+ P(e), M(null);
253
253
  try {
254
- let t = await g({
254
+ let t = await _({
255
255
  gateway: "global",
256
- query: he,
256
+ query: pe,
257
257
  variables: {
258
258
  id: e,
259
- reason: I.trim() || void 0
259
+ reason: L.trim() || void 0
260
260
  },
261
- authToken: b || void 0
261
+ authToken: S || void 0
262
262
  });
263
263
  if (t.errors?.length) throw Error(t.errors[0]?.message ?? "Delist failed");
264
- F(null), L(""), await $(P);
264
+ I(null), R(""), await Q(F);
265
265
  } catch (e) {
266
- j(e instanceof Error ? e.message : "Delist failed");
266
+ M(e instanceof Error ? e.message : "Delist failed");
267
267
  } finally {
268
- N(null);
268
+ P(null);
269
269
  }
270
- }, Re = w.filter((e) => e.status === "PENDING_REVIEW").length;
271
- return /* @__PURE__ */ v("div", {
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__ */ _("header", {
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__ */ v("div", {
276
+ children: /* @__PURE__ */ y("div", {
277
277
  className: "mx-auto max-w-5xl px-6 py-4",
278
- children: [/* @__PURE__ */ v("div", {
278
+ children: [/* @__PURE__ */ y("div", {
279
279
  className: "flex items-center justify-between gap-4",
280
- children: [/* @__PURE__ */ v("div", {
280
+ children: [/* @__PURE__ */ y("div", {
281
281
  className: "flex items-center gap-3 min-w-0",
282
282
  children: [
283
- /* @__PURE__ */ v("button", {
283
+ /* @__PURE__ */ y("button", {
284
284
  type: "button",
285
- onClick: () => y(`${C}/dashboard`),
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__ */ _(ee, { className: "size-4 shrink-0" }), "Back"]
287
+ children: [/* @__PURE__ */ v(te, { className: "size-4 shrink-0" }), "Back"]
288
288
  }),
289
- /* @__PURE__ */ _("div", { className: "h-5 w-px bg-[var(--color-border-seam)]" }),
290
- /* @__PURE__ */ _(ie, { className: "size-5 shrink-0 text-[var(--color-text-primary)]" }),
291
- /* @__PURE__ */ _("h1", {
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
- E > 0 && /* @__PURE__ */ _("span", {
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: E
297
+ children: D
298
298
  })
299
299
  ]
300
- }), /* @__PURE__ */ v("button", {
300
+ }), /* @__PURE__ */ y("button", {
301
301
  type: "button",
302
- onClick: () => void $(P),
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: O,
305
- children: [/* @__PURE__ */ _(m, { className: `size-4 ${O ? "animate-spin" : ""}` }), "Refresh"]
304
+ disabled: k,
305
+ children: [/* @__PURE__ */ v(h, { className: `size-4 ${k ? "animate-spin" : ""}` }), "Refresh"]
306
306
  })]
307
- }), /* @__PURE__ */ _("div", {
307
+ }), /* @__PURE__ */ v("div", {
308
308
  className: "mt-3 flex gap-1.5 flex-wrap",
309
- children: xe.map((e) => /* @__PURE__ */ v("button", {
309
+ children: ye.map((e) => /* @__PURE__ */ y("button", {
310
310
  type: "button",
311
- onClick: () => we(e.value),
312
- className: `rounded-full px-3.5 py-1 text-xs font-medium transition-colors ${P === 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)]"}`,
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" && Re > 0 && P !== "PENDING_REVIEW" && /* @__PURE__ */ _("span", {
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: Re
317
+ children: $
318
318
  }),
319
- e.value === "VERSION_UPDATES" && U > 0 && P !== "VERSION_UPDATES" && /* @__PURE__ */ _("span", {
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: U
321
+ children: Ee
322
322
  })
323
323
  ]
324
324
  }, e.value))
325
325
  })]
326
326
  })
327
327
  }),
328
- /* @__PURE__ */ v("main", {
328
+ /* @__PURE__ */ y("main", {
329
329
  className: "mx-auto max-w-5xl space-y-4 p-6",
330
330
  children: [
331
- /* @__PURE__ */ _(ue, {
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
- A && /* @__PURE__ */ _("div", {
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: A
338
+ children: j
339
339
  }),
340
- P === "VERSION_UPDATES" ? O && H.length === 0 ? /* @__PURE__ */ _("div", {
340
+ F === "VERSION_UPDATES" ? k && U.length === 0 ? /* @__PURE__ */ v("div", {
341
341
  className: "flex items-center justify-center py-24",
342
- children: /* @__PURE__ */ _(m, { className: "size-6 animate-spin text-[var(--color-text-muted)]" })
343
- }) : H.length === 0 ? /* @__PURE__ */ _(le, {
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__ */ _("ul", {
347
+ }) : /* @__PURE__ */ v("ul", {
348
348
  className: "space-y-4",
349
- children: H.map((e) => {
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__ */ v("li", {
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__ */ v("div", {
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__ */ _("img", {
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__ */ _("div", {
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__ */ v("div", {
364
+ /* @__PURE__ */ y("div", {
365
365
  className: "flex-1 min-w-0",
366
- children: [/* @__PURE__ */ v("div", {
366
+ children: [/* @__PURE__ */ y("div", {
367
367
  className: "flex items-center gap-2 flex-wrap",
368
- children: [/* @__PURE__ */ _("h3", {
368
+ children: [/* @__PURE__ */ v("h3", {
369
369
  className: "text-base font-semibold text-[var(--color-text-primary)]",
370
370
  children: e.name
371
- }), /* @__PURE__ */ v("span", {
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__ */ _(p, { className: "size-3" }),
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__ */ _("p", {
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__ */ v("a", {
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__ */ _(d, { className: "size-3.5" }), "Devportal"]
391
+ children: [/* @__PURE__ */ v(f, { className: "size-3.5" }), "Devportal"]
392
392
  })
393
393
  ]
394
- }), /* @__PURE__ */ _("div", {
394
+ }), /* @__PURE__ */ v("div", {
395
395
  className: "divide-y divide-[var(--color-border-seam)]",
396
- children: t.map((t) => /* @__PURE__ */ v("div", {
396
+ children: t.map((t) => /* @__PURE__ */ y("div", {
397
397
  className: "p-5 space-y-3",
398
398
  children: [
399
- /* @__PURE__ */ v("div", {
399
+ /* @__PURE__ */ y("div", {
400
400
  className: "flex items-center gap-2 flex-wrap",
401
401
  children: [
402
- /* @__PURE__ */ _(p, { className: "size-4 text-[var(--color-text-secondary)] shrink-0" }),
403
- /* @__PURE__ */ _("span", {
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__ */ _("span", {
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__ */ _("span", {
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__ */ v("span", {
415
+ /* @__PURE__ */ y("span", {
416
416
  className: "ml-auto flex items-center gap-1 text-xs text-[var(--color-text-secondary)]",
417
- children: [/* @__PURE__ */ _(l, { className: "size-3" }), S(t.createdAt)]
417
+ children: [/* @__PURE__ */ v(u, { className: "size-3" }), Se(t.createdAt)]
418
418
  })
419
419
  ]
420
420
  }),
421
- t.releaseNotes && /* @__PURE__ */ _("div", {
421
+ t.releaseNotes && /* @__PURE__ */ v("div", {
422
422
  className: "text-sm text-[var(--color-text-secondary)]",
423
- children: /* @__PURE__ */ _(n, { children: t.releaseNotes })
423
+ children: /* @__PURE__ */ v(n, { children: t.releaseNotes })
424
424
  }),
425
- /* @__PURE__ */ v("div", {
425
+ /* @__PURE__ */ y("div", {
426
426
  className: "flex flex-wrap gap-2",
427
- children: [t.packageUrl && /* @__PURE__ */ v("button", {
427
+ children: [t.packageUrl && /* @__PURE__ */ y("button", {
428
428
  type: "button",
429
- onClick: () => void Pe(t.id),
430
- disabled: Z === t.id,
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
- Z === t.id ? /* @__PURE__ */ _(m, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ _(u, { className: "size-3.5" }),
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__ */ v("span", {
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__ */ v("button", {
444
+ }), t.manifest && /* @__PURE__ */ y("button", {
445
445
  type: "button",
446
- onClick: () => z(R === t.id ? null : t.id),
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__ */ _(f, { className: "size-3.5" }),
450
- R === t.id ? "Hide manifest" : "View manifest",
451
- R === t.id ? /* @__PURE__ */ _(c, { className: "size-3" }) : /* @__PURE__ */ _(s, { className: "size-3" })
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
- R === t.id && t.manifest && /* @__PURE__ */ _("pre", {
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
- K === t.id && Oe === e.id && /* @__PURE__ */ v("div", {
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__ */ _("p", {
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__ */ _("textarea", {
467
- value: J,
468
- onChange: (e) => Y(e.target.value),
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__ */ v("div", {
473
+ /* @__PURE__ */ y("div", {
474
474
  className: "flex gap-2 justify-end",
475
- children: [/* @__PURE__ */ _("button", {
475
+ children: [/* @__PURE__ */ v("button", {
476
476
  type: "button",
477
477
  onClick: () => {
478
- q(null), Y(""), X(null);
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__ */ _("button", {
482
+ }), /* @__PURE__ */ v("button", {
483
483
  type: "button",
484
- onClick: () => void Ne(t.id, e.id, J),
485
- disabled: !J.trim() || W === t.id,
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__ */ v("div", {
492
+ /* @__PURE__ */ y("div", {
493
493
  className: "flex items-center gap-2",
494
- children: [/* @__PURE__ */ v("button", {
494
+ children: [/* @__PURE__ */ y("button", {
495
495
  type: "button",
496
- onClick: () => void Me(t.id, e.id, ""),
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__ */ _(m, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ _(te, { className: "size-3.5" }), "Approve version"]
500
- }), K !== t.id && /* @__PURE__ */ v("button", {
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
- q(t.id), Y(""), X(e.id);
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__ */ _(h, { className: "size-3.5" }), "Reject version"]
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
- }) : O && w.length === 0 ? /* @__PURE__ */ _("div", {
515
+ }) : k && T.length === 0 ? /* @__PURE__ */ v("div", {
516
516
  className: "flex items-center justify-center py-24",
517
- children: /* @__PURE__ */ _(m, { className: "size-6 animate-spin text-[var(--color-text-muted)]" })
518
- }) : w.length === 0 ? /* @__PURE__ */ _(le, {
519
- illustration: P === "PENDING_REVIEW" ? "empty-notifications" : "empty-data",
520
- title: P === "PENDING_REVIEW" ? "Queue is clear" : "No products match this filter",
521
- description: P === "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__ */ _("ul", {
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: w.map((e) => /* @__PURE__ */ v("li", {
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__ */ v("div", {
527
+ /* @__PURE__ */ y("div", {
528
528
  className: "flex items-start gap-4 p-5",
529
- children: [e.icon ? /* @__PURE__ */ _("img", {
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__ */ _("div", {
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__ */ v("div", {
536
+ }), /* @__PURE__ */ y("div", {
537
537
  className: "min-w-0 flex-1",
538
538
  children: [
539
- /* @__PURE__ */ v("div", {
539
+ /* @__PURE__ */ y("div", {
540
540
  className: "flex flex-wrap items-center gap-2",
541
541
  children: [
542
- /* @__PURE__ */ _("h3", {
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__ */ _("span", {
547
- className: `rounded-full px-2 py-0.5 text-[11px] font-semibold uppercase tracking-wide ${Se(e.type)}`,
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__ */ _("span", {
551
- className: `rounded-full px-2 py-0.5 text-[11px] font-medium ${Ce(e.status)}`,
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__ */ v("div", {
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__ */ v("span", {
559
+ /* @__PURE__ */ y("span", {
560
560
  className: "flex items-center gap-1",
561
- children: [/* @__PURE__ */ _(re, { className: "size-3" }), /* @__PURE__ */ _("span", {
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__ */ v("span", {
566
+ e.publisher && /* @__PURE__ */ y("span", {
567
567
  className: "flex items-center gap-1",
568
568
  children: [
569
- /* @__PURE__ */ _(se, { className: "size-3" }),
569
+ /* @__PURE__ */ v(se, { className: "size-3" }),
570
570
  e.publisher.name,
571
- e.publisher.email && /* @__PURE__ */ v("span", {
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__ */ v("span", {
581
+ e.submittedAt && /* @__PURE__ */ y("span", {
582
582
  className: "flex items-center gap-1",
583
- children: [/* @__PURE__ */ _(l, { className: "size-3" }), S(e.submittedAt)]
583
+ children: [/* @__PURE__ */ v(u, { className: "size-3" }), Se(e.submittedAt)]
584
584
  }),
585
- /* @__PURE__ */ v("span", {
585
+ /* @__PURE__ */ y("span", {
586
586
  className: "flex items-center gap-1",
587
- children: [/* @__PURE__ */ _(oe, { className: "size-3" }), t(e.price, e.currency, e.pricingModel)]
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__ */ _("p", {
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__ */ v("div", {
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__ */ v("div", {
600
+ children: [/* @__PURE__ */ y("div", {
601
601
  className: "flex flex-wrap items-center gap-2",
602
602
  children: [
603
- e.productId && /* @__PURE__ */ v("a", {
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__ */ _(d, { className: "size-3.5" }), "Devportal"]
608
+ children: [/* @__PURE__ */ v(f, { className: "size-3.5" }), "Devportal"]
609
609
  }),
610
- x.has(e.type) && (() => {
611
- let t = e.productId ? ke[e.productId]?.versionId ?? H.find((t) => t.id === e.productId)?.versions?.edges?.[0]?.node?.id : void 0;
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 = Z === t;
614
- return t ? /* @__PURE__ */ v("button", {
613
+ let n = X === t;
614
+ return t ? /* @__PURE__ */ y("button", {
615
615
  type: "button",
616
- onClick: () => void Pe(t),
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__ */ _(m, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ _(u, { className: "size-3.5" }), "Download Package"]
620
- }) : /* @__PURE__ */ v("a", {
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__ */ _(u, { className: "size-3.5" }), "Download Package"]
626
+ children: [/* @__PURE__ */ v(d, { className: "size-3.5" }), "Download Package"]
627
627
  });
628
628
  })(),
629
- x.has(e.type) && /* @__PURE__ */ v("button", {
629
+ C.has(e.type) && /* @__PURE__ */ y("button", {
630
630
  type: "button",
631
- onClick: () => V(e),
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__ */ _(ne, { className: "size-3.5" }), "Test in workspace"]
633
+ children: [/* @__PURE__ */ v(ne, { className: "size-3.5" }), "Test in workspace"]
634
634
  }),
635
- /* @__PURE__ */ v("button", {
635
+ /* @__PURE__ */ y("button", {
636
636
  type: "button",
637
- onClick: () => z(R === e.id ? null : e.id),
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__ */ _(f, { className: "size-3.5" }),
641
- R === e.id ? "Hide details" : "Inspect details",
642
- R === e.id ? /* @__PURE__ */ _(c, { className: "size-3" }) : /* @__PURE__ */ _(s, { className: "size-3" })
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__ */ v("div", {
646
+ }), /* @__PURE__ */ y("div", {
647
647
  className: "flex items-center gap-2",
648
648
  children: [
649
- e.status !== "PUBLISHED" && /* @__PURE__ */ v("button", {
649
+ e.status !== "PUBLISHED" && /* @__PURE__ */ y("button", {
650
650
  type: "button",
651
- onClick: () => void Fe(e.id),
652
- disabled: M === e.id,
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__ */ _(te, { className: "size-3.5" }), "Approve"]
654
+ children: [/* @__PURE__ */ v(s, { className: "size-3.5" }), "Approve"]
655
655
  }),
656
- e.status === "PENDING_REVIEW" && /* @__PURE__ */ v("button", {
656
+ e.status === "PENDING_REVIEW" && /* @__PURE__ */ y("button", {
657
657
  type: "button",
658
658
  onClick: () => {
659
- F(e.id), L("");
659
+ I(e.id), R("");
660
660
  },
661
- disabled: M === e.id,
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__ */ _(h, { className: "size-3.5" }), "Reject"]
663
+ children: [/* @__PURE__ */ v(g, { className: "size-3.5" }), "Reject"]
664
664
  }),
665
- e.status === "PUBLISHED" && /* @__PURE__ */ v("button", {
665
+ e.status === "PUBLISHED" && /* @__PURE__ */ y("button", {
666
666
  type: "button",
667
667
  onClick: () => {
668
- F(e.id), L("");
668
+ I(e.id), R("");
669
669
  },
670
- disabled: M === e.id,
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__ */ _(h, { className: "size-3.5" }), "Delist"]
672
+ children: [/* @__PURE__ */ v(g, { className: "size-3.5" }), "Delist"]
673
673
  })
674
674
  ]
675
675
  })]
676
676
  }),
677
- R === e.id && /* @__PURE__ */ v("div", {
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__ */ v("div", {
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__ */ v("div", { children: [/* @__PURE__ */ _("dt", {
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__ */ _("dd", {
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__ */ v("div", { children: [/* @__PURE__ */ _("dt", {
690
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
691
691
  className: "font-medium text-[var(--color-text-secondary)]",
692
692
  children: "Slug"
693
- }), /* @__PURE__ */ _("dd", {
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__ */ v("div", { children: [/* @__PURE__ */ _("dt", {
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__ */ v("dd", {
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__ */ v("div", { children: [/* @__PURE__ */ _("dt", {
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__ */ _("dd", {
711
+ }), /* @__PURE__ */ v("dd", {
712
712
  className: "mt-0.5 text-[var(--color-text-primary)]",
713
713
  children: e.category
714
714
  })] }),
715
- /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("dt", {
715
+ /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
716
716
  className: "font-medium text-[var(--color-text-secondary)]",
717
717
  children: "Pricing"
718
- }), /* @__PURE__ */ v("dd", {
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__ */ v("span", {
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__ */ v("div", { children: [/* @__PURE__ */ _("dt", {
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__ */ _("dd", {
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__ */ v("div", { children: [/* @__PURE__ */ _("dt", {
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__ */ _("dd", {
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__ */ v("div", { children: [/* @__PURE__ */ v("h4", {
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__ */ _(ae, { className: "size-3.5 text-[var(--color-status-success-text)]" }), "Required Permissions"]
752
- }), /* @__PURE__ */ _("div", {
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__ */ _("span", {
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__ */ v("div", { children: [/* @__PURE__ */ v("h4", {
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__ */ _(f, { className: "size-3.5" }), "Manifest"]
762
- }), /* @__PURE__ */ _("pre", {
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
- Te === e.id && /* @__PURE__ */ v("div", {
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__ */ _("p", {
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__ */ _("p", {
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__ */ _("textarea", {
778
+ /* @__PURE__ */ v("textarea", {
779
779
  id: `reject-reason-${e.id}`,
780
780
  "aria-label": e.status === "PUBLISHED" ? "Delist reason" : "Rejection reason",
781
- value: I,
782
- onChange: (e) => L(e.target.value),
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__ */ v("div", {
789
+ /* @__PURE__ */ y("div", {
790
790
  className: "mt-2 flex items-center justify-end gap-2",
791
- children: [/* @__PURE__ */ _("button", {
791
+ children: [/* @__PURE__ */ v("button", {
792
792
  type: "button",
793
793
  onClick: () => {
794
- F(null), L("");
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__ */ _("button", {
798
+ }), e.status === "PUBLISHED" ? /* @__PURE__ */ v("button", {
799
799
  type: "button",
800
- onClick: () => void Le(e.id),
801
- disabled: M === e.id,
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__ */ _("button", {
804
+ }) : /* @__PURE__ */ v("button", {
805
805
  type: "button",
806
- onClick: () => void Ie(e.id),
807
- disabled: !I.trim() || M === e.id,
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
- B && /* @__PURE__ */ _(r, {
819
+ V && /* @__PURE__ */ v(r, {
820
820
  isOpen: !0,
821
- onClose: () => V(null),
821
+ onClose: () => H(null),
822
822
  app: {
823
- id: B.id,
824
- name: B.name,
825
- slug: B.slug,
826
- icon: B.icon ?? void 0,
827
- type: B.type,
828
- permissions: B.requiredPermissions?.length ? B.requiredPermissions : void 0
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
- V(null);
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 { C as AdminSubmissionsQueuePage };
840
+ export { w as AdminSubmissionsQueuePage };
841
841
 
842
842
  //# sourceMappingURL=AdminSubmissionsQueuePage.js.map