@burdenoff/microfe-devportal 2026.1112.2 → 2026.1113.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/devportal/components/AppCard.js +73 -70
- package/dist/devportal/components/AppCard.js.map +1 -1
- package/dist/devportal/components/ImageUploadField.js +82 -80
- package/dist/devportal/components/ImageUploadField.js.map +1 -1
- package/dist/devportal/components/StoreImage.d.ts +15 -0
- package/dist/devportal/components/StoreImage.js +30 -0
- package/dist/devportal/components/StoreImage.js.map +1 -0
- package/dist/devportal/components/index.d.ts +1 -0
- package/dist/devportal/components/index.js +17 -16
- package/dist/devportal/hooks/usePackageUpload.d.ts +46 -4
- package/dist/devportal/hooks/usePackageUpload.js +90 -36
- package/dist/devportal/hooks/usePackageUpload.js.map +1 -1
- package/dist/devportal/pages/AdminReviewPage.js +205 -202
- package/dist/devportal/pages/AdminReviewPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationDetailPage.js +2 -2
- package/dist/devportal/pages/ApplicationDetailPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationsPage.js +201 -199
- package/dist/devportal/pages/ApplicationsPage.js.map +1 -1
- package/dist/devportal/pages/CreatePhysicalItemPage.js +2 -2
- package/dist/devportal/pages/CreatePhysicalItemPage.js.map +1 -1
- package/dist/devportal/pages/EditPhysicalItemPage.js +312 -307
- package/dist/devportal/pages/EditPhysicalItemPage.js.map +1 -1
- package/dist/devportal/pages/ListingPreviewPage.js +175 -171
- package/dist/devportal/pages/ListingPreviewPage.js.map +1 -1
- package/dist/devportal/pages/SellerDashboardPage.js +118 -116
- package/dist/devportal/pages/SellerDashboardPage.js.map +1 -1
- package/dist/devportal/pages/SellerItemsPage.js +202 -199
- package/dist/devportal/pages/SellerItemsPage.js.map +1 -1
- package/dist/devportal/pages/StoreSubmissionPage.js +133 -131
- package/dist/devportal/pages/StoreSubmissionPage.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { useDevportalEventBus as e } from "../events/index.js";
|
|
2
2
|
import { useTr as t } from "../utils/i18n.js";
|
|
3
|
-
import { useDevportalPermission as n } from "../hooks/usePermission.js";
|
|
4
3
|
import "../hooks/index.js";
|
|
4
|
+
import { useDevportalPermission as n } from "../hooks/usePermission.js";
|
|
5
5
|
import { DEVPORTAL_PERMISSIONS as r } from "../constants/permissions.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
6
|
+
import { StoreImage as i } from "../components/StoreImage.js";
|
|
7
|
+
import { useEffect as a, useState as o } from "react";
|
|
8
|
+
import { AlertTriangle as s, ArrowLeft as ee, CheckCircle2 as c, Clock as l, EyeOff as u, GitBranch as d, Package as f, RefreshCw as p, Store as m, XCircle as h } from "lucide-react";
|
|
9
|
+
import { useNavigate as g, useParams as _ } from "react-router";
|
|
10
|
+
import { jsx as v, jsxs as y } from "react/jsx-runtime";
|
|
11
|
+
import { IllustratedEmptyState as te, PagePurpose as ne } from "@burdenoff/fe-libs/ui";
|
|
12
|
+
import { graphqlFetch as b } from "@burdenoff/fe-libs/shared/graphql";
|
|
12
13
|
// src/devportal/pages/StoreSubmissionPage.tsx
|
|
13
|
-
var
|
|
14
|
-
function
|
|
14
|
+
var x = "\n query DevportalAppForSubmission($id: ID!) {\n application(id: $id) {\n id\n name\n slug\n status\n appType\n reviewStatus\n reviewNotes\n iconUrl\n submittedAt\n metadata\n versions {\n edges {\n node {\n id\n version\n status\n releaseNotes\n packageUrl\n }\n }\n }\n }\n }\n", re = "\n mutation DevportalSubmitForReview($id: ID!, $notes: String) {\n submitApplicationForReview(id: $id, notes: $notes) {\n id\n status\n submittedAt\n metadata\n }\n }\n", ie = "\n mutation DevportalUnlistProduct($id: ID!) {\n unlistProduct(id: $id) {\n id\n status\n }\n }\n", S = "\n mutation DevportalPublishVersion($id: ID!) {\n publishApplicationVersion(id: $id) {\n id\n status\n }\n }\n";
|
|
15
|
+
function C(e) {
|
|
15
16
|
if (!e) return null;
|
|
16
17
|
let t = e.metadata ?? {}, n = typeof t.storeProductId == "string" ? t.storeProductId : "", r = typeof t.storeSubmissionStatus == "string" ? t.storeSubmissionStatus : null, i;
|
|
17
18
|
i = r === "PENDING_REVIEW" || r === "PUBLISHED" || r === "REJECTED" || r === "DRAFT" ? r : e.status === "SUBMITTED" ? "PENDING_REVIEW" : e.status === "PUBLISHED" ? "PUBLISHED" : e.status === "REJECTED" ? "REJECTED" : "UNKNOWN";
|
|
@@ -26,55 +27,55 @@ function S(e) {
|
|
|
26
27
|
rejectedReason: null
|
|
27
28
|
};
|
|
28
29
|
}
|
|
29
|
-
var
|
|
30
|
+
var ae = {
|
|
30
31
|
DRAFT: {
|
|
31
32
|
i18nKey: "devportal.storeSubmission.status.draft",
|
|
32
33
|
fallback: "Draft",
|
|
33
|
-
icon:
|
|
34
|
+
icon: l,
|
|
34
35
|
tone: "text-text-secondary"
|
|
35
36
|
},
|
|
36
37
|
PENDING_REVIEW: {
|
|
37
38
|
i18nKey: "devportal.storeSubmission.status.pending",
|
|
38
39
|
fallback: "Pending review",
|
|
39
|
-
icon:
|
|
40
|
+
icon: l,
|
|
40
41
|
tone: "text-status-warning-text"
|
|
41
42
|
},
|
|
42
43
|
PUBLISHED: {
|
|
43
44
|
i18nKey: "devportal.storeSubmission.status.published",
|
|
44
45
|
fallback: "Published",
|
|
45
|
-
icon:
|
|
46
|
+
icon: c,
|
|
46
47
|
tone: "text-status-success-text"
|
|
47
48
|
},
|
|
48
49
|
UNLISTED: {
|
|
49
50
|
i18nKey: "devportal.storeSubmission.status.unlisted",
|
|
50
51
|
fallback: "Unlisted",
|
|
51
|
-
icon:
|
|
52
|
+
icon: u,
|
|
52
53
|
tone: "text-text-secondary"
|
|
53
54
|
},
|
|
54
55
|
REJECTED: {
|
|
55
56
|
i18nKey: "devportal.storeSubmission.status.rejected",
|
|
56
57
|
fallback: "Rejected",
|
|
57
|
-
icon:
|
|
58
|
+
icon: h,
|
|
58
59
|
tone: "text-status-danger-text"
|
|
59
60
|
},
|
|
60
61
|
UNKNOWN: {
|
|
61
62
|
i18nKey: "devportal.storeSubmission.status.unknown",
|
|
62
63
|
fallback: "Not yet submitted",
|
|
63
|
-
icon:
|
|
64
|
+
icon: s,
|
|
64
65
|
tone: "text-text-tertiary"
|
|
65
66
|
}
|
|
66
67
|
}, w = () => {
|
|
67
|
-
let { appId: w } =
|
|
68
|
+
let { appId: w } = _(), T = g(), E = e(), D = t(), O = n(r.APP_SUBMIT), [k, oe] = o(null), [A, j] = o(!0), [M, N] = o(null), [P, F] = o(!1), [I, L] = o(!1), [R, z] = o(!1), [B, V] = o(null), [H, U] = o(""), W = async () => {
|
|
68
69
|
if (w) {
|
|
69
70
|
j(!0), N(null);
|
|
70
71
|
try {
|
|
71
|
-
let e = await
|
|
72
|
+
let e = await b({
|
|
72
73
|
gateway: "global",
|
|
73
|
-
query:
|
|
74
|
+
query: x,
|
|
74
75
|
variables: { id: w }
|
|
75
76
|
});
|
|
76
77
|
if (e.errors?.length) throw Error(e.errors[0]?.message ?? D("devportal.storeSubmission.errors.loadFailed", "Failed to load application"));
|
|
77
|
-
|
|
78
|
+
oe(e.data?.application ?? null);
|
|
78
79
|
} catch (e) {
|
|
79
80
|
N(e instanceof Error ? e.message : D("devportal.storeSubmission.errors.loadFailed", "Failed to load application"));
|
|
80
81
|
} finally {
|
|
@@ -82,9 +83,9 @@ var C = {
|
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
85
|
};
|
|
85
|
-
|
|
86
|
+
a(() => {
|
|
86
87
|
W();
|
|
87
|
-
}, [w]),
|
|
88
|
+
}, [w]), a(() => {
|
|
88
89
|
let e = k?.name;
|
|
89
90
|
if (!w || !e) return;
|
|
90
91
|
let t = window.__breadcrumbRegistry;
|
|
@@ -96,16 +97,16 @@ var C = {
|
|
|
96
97
|
try {
|
|
97
98
|
let e = (k?.versions.edges ?? []).map((e) => e.node).filter((e) => e.status === "draft");
|
|
98
99
|
for (let t of e) {
|
|
99
|
-
let e = await
|
|
100
|
+
let e = await b({
|
|
100
101
|
gateway: "global",
|
|
101
|
-
query:
|
|
102
|
+
query: S,
|
|
102
103
|
variables: { id: t.id }
|
|
103
104
|
});
|
|
104
105
|
if (e.errors?.length) throw Error(e.errors[0]?.message ?? `Failed to submit version ${t.version}`);
|
|
105
106
|
}
|
|
106
|
-
let t = await
|
|
107
|
+
let t = await b({
|
|
107
108
|
gateway: "global",
|
|
108
|
-
query:
|
|
109
|
+
query: re,
|
|
109
110
|
variables: {
|
|
110
111
|
id: w,
|
|
111
112
|
notes: H || null
|
|
@@ -120,13 +121,13 @@ var C = {
|
|
|
120
121
|
}
|
|
121
122
|
}
|
|
122
123
|
}, K = async () => {
|
|
123
|
-
let e =
|
|
124
|
+
let e = C(k)?.productId;
|
|
124
125
|
if (e) {
|
|
125
126
|
L(!0), N(null);
|
|
126
127
|
try {
|
|
127
|
-
let t = await
|
|
128
|
+
let t = await b({
|
|
128
129
|
gateway: "global",
|
|
129
|
-
query:
|
|
130
|
+
query: ie,
|
|
130
131
|
variables: { id: e }
|
|
131
132
|
});
|
|
132
133
|
if (t.errors?.length) throw Error(t.errors[0]?.message ?? D("devportal.storeSubmission.errors.unlistFailed", "Failed to unlist"));
|
|
@@ -137,31 +138,31 @@ var C = {
|
|
|
137
138
|
L(!1), z(!1);
|
|
138
139
|
}
|
|
139
140
|
}
|
|
140
|
-
}, q =
|
|
141
|
-
return /* @__PURE__ */
|
|
141
|
+
}, q = C(k), J = B ?? q?.status ?? "UNKNOWN", Y = ae[J], se = Y.icon, X = (k?.versions.edges ?? []).map((e) => e.node), Z = X.filter((e) => e.status === "draft"), Q = k?.appType === "NODE" || k?.appType === "WORKFLOW", $ = Q && X.length === 0;
|
|
142
|
+
return /* @__PURE__ */ y("main", {
|
|
142
143
|
className: "min-h-screen bg-surface-default",
|
|
143
144
|
"aria-labelledby": "store-submission-heading",
|
|
144
145
|
children: [
|
|
145
|
-
/* @__PURE__ */
|
|
146
|
+
/* @__PURE__ */ v("div", {
|
|
146
147
|
className: "border-b border-border-default bg-surface-raised",
|
|
147
|
-
children: /* @__PURE__ */
|
|
148
|
+
children: /* @__PURE__ */ v("div", {
|
|
148
149
|
className: "mx-auto max-w-3xl px-6 py-4",
|
|
149
|
-
children: /* @__PURE__ */
|
|
150
|
+
children: /* @__PURE__ */ y("div", {
|
|
150
151
|
className: "flex items-center gap-3",
|
|
151
|
-
children: [/* @__PURE__ */
|
|
152
|
+
children: [/* @__PURE__ */ y("button", {
|
|
152
153
|
type: "button",
|
|
153
154
|
onClick: () => T(-1),
|
|
154
155
|
className: "inline-flex items-center gap-2 rounded-md px-3 py-1.5 text-sm text-text-secondary hover:bg-surface-hover hover:text-text-primary focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary",
|
|
155
|
-
children: [/* @__PURE__ */
|
|
156
|
+
children: [/* @__PURE__ */ v(ee, {
|
|
156
157
|
className: "h-4 w-4",
|
|
157
158
|
"aria-hidden": "true"
|
|
158
159
|
}), D("devportal.common.back", "Back")]
|
|
159
|
-
}), /* @__PURE__ */
|
|
160
|
+
}), /* @__PURE__ */ y("div", {
|
|
160
161
|
className: "flex items-center gap-2",
|
|
161
|
-
children: [/* @__PURE__ */
|
|
162
|
+
children: [/* @__PURE__ */ v(m, {
|
|
162
163
|
className: "h-5 w-5 text-text-primary",
|
|
163
164
|
"aria-hidden": "true"
|
|
164
|
-
}), /* @__PURE__ */
|
|
165
|
+
}), /* @__PURE__ */ v("h1", {
|
|
165
166
|
id: "store-submission-heading",
|
|
166
167
|
className: "text-xl font-semibold text-text-primary",
|
|
167
168
|
children: D("devportal.storeSubmission.title", "Store submission")
|
|
@@ -170,39 +171,39 @@ var C = {
|
|
|
170
171
|
})
|
|
171
172
|
})
|
|
172
173
|
}),
|
|
173
|
-
R && /* @__PURE__ */
|
|
174
|
+
R && /* @__PURE__ */ v("div", {
|
|
174
175
|
role: "dialog",
|
|
175
176
|
"aria-modal": "true",
|
|
176
177
|
"aria-labelledby": "unlist-dialog-title",
|
|
177
178
|
className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
|
|
178
|
-
children: /* @__PURE__ */
|
|
179
|
+
children: /* @__PURE__ */ y("div", {
|
|
179
180
|
className: "w-full max-w-md rounded-lg border border-border-default bg-surface-raised p-6 shadow-xl",
|
|
180
|
-
children: [/* @__PURE__ */
|
|
181
|
+
children: [/* @__PURE__ */ y("div", {
|
|
181
182
|
className: "mb-4 flex items-start gap-3",
|
|
182
|
-
children: [/* @__PURE__ */
|
|
183
|
+
children: [/* @__PURE__ */ v(u, {
|
|
183
184
|
className: "mt-0.5 h-5 w-5 shrink-0 text-text-secondary",
|
|
184
185
|
"aria-hidden": "true"
|
|
185
|
-
}), /* @__PURE__ */
|
|
186
|
+
}), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("h2", {
|
|
186
187
|
id: "unlist-dialog-title",
|
|
187
188
|
className: "text-base font-semibold text-text-primary",
|
|
188
189
|
children: D("devportal.storeSubmission.unlistTitle", "Unlist from marketplace?")
|
|
189
|
-
}), /* @__PURE__ */
|
|
190
|
+
}), /* @__PURE__ */ v("p", {
|
|
190
191
|
className: "mt-1 text-sm text-text-secondary",
|
|
191
192
|
children: D("devportal.storeSubmission.unlistDescription", "Your app will no longer appear in the marketplace for new users. Existing installations are not affected — users who already have it installed can continue using it.")
|
|
192
193
|
})] })]
|
|
193
|
-
}), /* @__PURE__ */
|
|
194
|
+
}), /* @__PURE__ */ y("div", {
|
|
194
195
|
className: "flex justify-end gap-3",
|
|
195
|
-
children: [/* @__PURE__ */
|
|
196
|
+
children: [/* @__PURE__ */ v("button", {
|
|
196
197
|
type: "button",
|
|
197
198
|
onClick: () => z(!1),
|
|
198
199
|
className: "rounded-md border border-border-default px-4 py-2 text-sm font-medium text-text-secondary hover:bg-surface-hover",
|
|
199
200
|
children: D("devportal.common.cancel", "Cancel")
|
|
200
|
-
}), /* @__PURE__ */
|
|
201
|
+
}), /* @__PURE__ */ y("button", {
|
|
201
202
|
type: "button",
|
|
202
203
|
onClick: () => void K(),
|
|
203
204
|
disabled: I,
|
|
204
205
|
className: "inline-flex items-center gap-2 rounded-md bg-surface-danger px-4 py-2 text-sm font-semibold text-text-on-danger hover:opacity-90 disabled:opacity-60",
|
|
205
|
-
children: [I && /* @__PURE__ */
|
|
206
|
+
children: [I && /* @__PURE__ */ v(p, {
|
|
206
207
|
className: "h-4 w-4 animate-spin",
|
|
207
208
|
"aria-hidden": "true"
|
|
208
209
|
}), D("devportal.storeSubmission.confirmUnlist", "Unlist app")]
|
|
@@ -210,56 +211,57 @@ var C = {
|
|
|
210
211
|
})]
|
|
211
212
|
})
|
|
212
213
|
}),
|
|
213
|
-
/* @__PURE__ */
|
|
214
|
+
/* @__PURE__ */ y("div", {
|
|
214
215
|
className: "mx-auto max-w-3xl px-6 py-6",
|
|
215
216
|
children: [
|
|
216
|
-
(A || !q || J === "UNKNOWN" || J === "DRAFT" || J === "REJECTED") && /* @__PURE__ */
|
|
217
|
+
(A || !q || J === "UNKNOWN" || J === "DRAFT" || J === "REJECTED") && /* @__PURE__ */ v(ne, {
|
|
217
218
|
className: "mb-5",
|
|
218
219
|
children: D("devportal.storeSubmission.purpose", "Finalize the details the marketplace needs before your app can be reviewed — pricing, categories, and required assets. Completing this is what makes the app eligible to submit for publication.")
|
|
219
220
|
}),
|
|
220
|
-
M && /* @__PURE__ */
|
|
221
|
+
M && /* @__PURE__ */ v("div", {
|
|
221
222
|
role: "alert",
|
|
222
223
|
className: "mb-4 rounded-md border border-border-danger bg-surface-danger-muted px-4 py-3 text-sm text-text-danger",
|
|
223
224
|
children: M
|
|
224
225
|
}),
|
|
225
|
-
A && !k ? /* @__PURE__ */
|
|
226
|
+
A && !k ? /* @__PURE__ */ v("div", {
|
|
226
227
|
className: "py-16 text-center text-text-secondary",
|
|
227
228
|
role: "status",
|
|
228
229
|
"aria-live": "polite",
|
|
229
230
|
children: D("devportal.storeSubmission.loading", "Loading application…")
|
|
230
|
-
}) : k ? /* @__PURE__ */
|
|
231
|
+
}) : k ? /* @__PURE__ */ y("div", {
|
|
231
232
|
className: "space-y-4",
|
|
232
233
|
children: [
|
|
233
|
-
/* @__PURE__ */
|
|
234
|
+
/* @__PURE__ */ v("div", {
|
|
234
235
|
className: "rounded-lg border border-border-default bg-surface-raised p-4",
|
|
235
|
-
children: /* @__PURE__ */
|
|
236
|
+
children: /* @__PURE__ */ y("div", {
|
|
236
237
|
className: "flex items-center gap-3",
|
|
237
238
|
children: [
|
|
238
|
-
|
|
239
|
+
/* @__PURE__ */ v(i, {
|
|
239
240
|
src: k.iconUrl,
|
|
240
241
|
alt: "",
|
|
241
|
-
className: "h-14 w-14 flex-shrink-0 rounded-md object-cover"
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
242
|
+
className: "h-14 w-14 flex-shrink-0 rounded-md object-cover",
|
|
243
|
+
fallback: /* @__PURE__ */ v("div", {
|
|
244
|
+
className: "flex h-14 w-14 flex-shrink-0 items-center justify-center rounded-md bg-surface-muted text-text-secondary text-sm font-medium",
|
|
245
|
+
children: k.name.slice(0, 2).toUpperCase()
|
|
246
|
+
})
|
|
245
247
|
}),
|
|
246
|
-
/* @__PURE__ */
|
|
248
|
+
/* @__PURE__ */ y("div", {
|
|
247
249
|
className: "min-w-0 flex-1",
|
|
248
|
-
children: [/* @__PURE__ */
|
|
250
|
+
children: [/* @__PURE__ */ v("h2", {
|
|
249
251
|
className: "text-lg font-semibold text-text-primary",
|
|
250
252
|
children: k.name
|
|
251
|
-
}), /* @__PURE__ */
|
|
253
|
+
}), /* @__PURE__ */ v("p", {
|
|
252
254
|
className: "font-mono text-xs text-text-tertiary",
|
|
253
255
|
children: k.slug
|
|
254
256
|
})]
|
|
255
257
|
}),
|
|
256
|
-
/* @__PURE__ */
|
|
258
|
+
/* @__PURE__ */ y("div", {
|
|
257
259
|
className: `flex items-center gap-1.5 ${Y.tone}`,
|
|
258
260
|
role: "status",
|
|
259
|
-
children: [/* @__PURE__ */
|
|
261
|
+
children: [/* @__PURE__ */ v(se, {
|
|
260
262
|
className: "h-5 w-5",
|
|
261
263
|
"aria-hidden": "true"
|
|
262
|
-
}), /* @__PURE__ */
|
|
264
|
+
}), /* @__PURE__ */ v("span", {
|
|
263
265
|
className: "text-sm font-medium",
|
|
264
266
|
children: D(Y.i18nKey, Y.fallback)
|
|
265
267
|
})]
|
|
@@ -267,18 +269,18 @@ var C = {
|
|
|
267
269
|
]
|
|
268
270
|
})
|
|
269
271
|
}),
|
|
270
|
-
J === "PENDING_REVIEW" && /* @__PURE__ */
|
|
272
|
+
J === "PENDING_REVIEW" && /* @__PURE__ */ y("div", {
|
|
271
273
|
className: "rounded-lg border border-primary/20 bg-action-primary-bg/5 p-5 space-y-4",
|
|
272
274
|
children: [
|
|
273
|
-
/* @__PURE__ */
|
|
275
|
+
/* @__PURE__ */ y("div", {
|
|
274
276
|
className: "flex items-start gap-3",
|
|
275
|
-
children: [/* @__PURE__ */
|
|
277
|
+
children: [/* @__PURE__ */ v(l, {
|
|
276
278
|
className: "h-5 w-5 mt-0.5 shrink-0 text-primary",
|
|
277
279
|
"aria-hidden": "true"
|
|
278
|
-
}), /* @__PURE__ */
|
|
280
|
+
}), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
|
|
279
281
|
className: "text-sm font-semibold text-text-primary",
|
|
280
282
|
children: D("devportal.storeSubmission.underReview", "Your app is under review")
|
|
281
|
-
}), k.submittedAt && /* @__PURE__ */
|
|
283
|
+
}), k.submittedAt && /* @__PURE__ */ y("p", {
|
|
282
284
|
className: "mt-0.5 text-xs text-text-secondary",
|
|
283
285
|
children: [
|
|
284
286
|
D("devportal.storeSubmission.submittedOn", "Submitted on"),
|
|
@@ -287,31 +289,31 @@ var C = {
|
|
|
287
289
|
]
|
|
288
290
|
})] })]
|
|
289
291
|
}),
|
|
290
|
-
/* @__PURE__ */
|
|
292
|
+
/* @__PURE__ */ y("div", {
|
|
291
293
|
className: "border-t border-border-default pt-4",
|
|
292
|
-
children: [/* @__PURE__ */
|
|
294
|
+
children: [/* @__PURE__ */ v("p", {
|
|
293
295
|
className: "text-xs font-medium text-text-secondary mb-3",
|
|
294
296
|
children: D("devportal.storeSubmission.whatNext", "What happens next")
|
|
295
|
-
}), /* @__PURE__ */
|
|
297
|
+
}), /* @__PURE__ */ y("ol", {
|
|
296
298
|
className: "space-y-2.5 text-sm text-text-secondary",
|
|
297
299
|
children: [
|
|
298
|
-
/* @__PURE__ */
|
|
300
|
+
/* @__PURE__ */ y("li", {
|
|
299
301
|
className: "flex items-start gap-2",
|
|
300
|
-
children: [/* @__PURE__ */
|
|
302
|
+
children: [/* @__PURE__ */ v("span", {
|
|
301
303
|
className: "flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-surface-muted text-xs font-medium text-text-tertiary",
|
|
302
304
|
children: "1"
|
|
303
305
|
}), "Our team reviews your app's listing, assets, and compliance."]
|
|
304
306
|
}),
|
|
305
|
-
/* @__PURE__ */
|
|
307
|
+
/* @__PURE__ */ y("li", {
|
|
306
308
|
className: "flex items-start gap-2",
|
|
307
|
-
children: [/* @__PURE__ */
|
|
309
|
+
children: [/* @__PURE__ */ v("span", {
|
|
308
310
|
className: "flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-surface-muted text-xs font-medium text-text-tertiary",
|
|
309
311
|
children: "2"
|
|
310
312
|
}), "You'll receive a notification when a decision is made."]
|
|
311
313
|
}),
|
|
312
|
-
/* @__PURE__ */
|
|
314
|
+
/* @__PURE__ */ y("li", {
|
|
313
315
|
className: "flex items-start gap-2",
|
|
314
|
-
children: [/* @__PURE__ */
|
|
316
|
+
children: [/* @__PURE__ */ v("span", {
|
|
315
317
|
className: "flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-surface-muted text-xs font-medium text-text-tertiary",
|
|
316
318
|
children: "3"
|
|
317
319
|
}), "If approved, your app goes live in the marketplace automatically."]
|
|
@@ -319,31 +321,31 @@ var C = {
|
|
|
319
321
|
]
|
|
320
322
|
})]
|
|
321
323
|
}),
|
|
322
|
-
k.reviewNotes && /* @__PURE__ */
|
|
324
|
+
k.reviewNotes && /* @__PURE__ */ y("div", {
|
|
323
325
|
className: "border-t border-border-default pt-4",
|
|
324
|
-
children: [/* @__PURE__ */
|
|
326
|
+
children: [/* @__PURE__ */ v("p", {
|
|
325
327
|
className: "text-xs font-medium text-text-secondary mb-1",
|
|
326
328
|
children: D("devportal.storeSubmission.reviewerNotes", "Reviewer notes")
|
|
327
|
-
}), /* @__PURE__ */
|
|
329
|
+
}), /* @__PURE__ */ v("p", {
|
|
328
330
|
className: "text-sm text-text-primary",
|
|
329
331
|
children: k.reviewNotes
|
|
330
332
|
})]
|
|
331
333
|
})
|
|
332
334
|
]
|
|
333
335
|
}),
|
|
334
|
-
J === "PUBLISHED" && /* @__PURE__ */
|
|
336
|
+
J === "PUBLISHED" && /* @__PURE__ */ y("div", {
|
|
335
337
|
className: "rounded-lg border border-status-success-bg bg-status-success-bg-subtle p-5 space-y-4",
|
|
336
|
-
children: [/* @__PURE__ */
|
|
338
|
+
children: [/* @__PURE__ */ y("div", {
|
|
337
339
|
className: "flex items-start gap-3",
|
|
338
|
-
children: [/* @__PURE__ */
|
|
340
|
+
children: [/* @__PURE__ */ v(c, {
|
|
339
341
|
className: "h-5 w-5 mt-0.5 shrink-0 text-status-success-text",
|
|
340
342
|
"aria-hidden": "true"
|
|
341
|
-
}), /* @__PURE__ */
|
|
343
|
+
}), /* @__PURE__ */ y("div", {
|
|
342
344
|
className: "flex-1 min-w-0",
|
|
343
|
-
children: [/* @__PURE__ */
|
|
345
|
+
children: [/* @__PURE__ */ v("p", {
|
|
344
346
|
className: "text-sm font-semibold text-status-success-text",
|
|
345
347
|
children: D("devportal.storeSubmission.publishedTitle", "Your app is live in the marketplace")
|
|
346
|
-
}), q?.publishedAt && /* @__PURE__ */
|
|
348
|
+
}), q?.publishedAt && /* @__PURE__ */ y("p", {
|
|
347
349
|
className: "mt-0.5 text-xs text-text-secondary",
|
|
348
350
|
children: [
|
|
349
351
|
D("devportal.storeSubmission.publishedOn", "Published on"),
|
|
@@ -352,101 +354,101 @@ var C = {
|
|
|
352
354
|
]
|
|
353
355
|
})]
|
|
354
356
|
})]
|
|
355
|
-
}), q?.productId && /* @__PURE__ */
|
|
357
|
+
}), q?.productId && /* @__PURE__ */ y("div", {
|
|
356
358
|
className: "border-t border-status-success-bg pt-4",
|
|
357
|
-
children: [/* @__PURE__ */
|
|
359
|
+
children: [/* @__PURE__ */ v("p", {
|
|
358
360
|
className: "mb-2 text-xs text-text-secondary",
|
|
359
361
|
children: D("devportal.storeSubmission.unlistHint", "Need to remove this app from the marketplace? Unlisting hides it from new users while keeping existing installations active.")
|
|
360
|
-
}), /* @__PURE__ */
|
|
362
|
+
}), /* @__PURE__ */ y("button", {
|
|
361
363
|
type: "button",
|
|
362
364
|
onClick: () => z(!0),
|
|
363
365
|
className: "inline-flex items-center gap-2 rounded-md border border-border-default bg-surface-raised px-3 py-1.5 text-sm font-medium text-text-secondary hover:bg-surface-hover hover:text-text-primary",
|
|
364
|
-
children: [/* @__PURE__ */
|
|
366
|
+
children: [/* @__PURE__ */ v(u, {
|
|
365
367
|
className: "h-4 w-4",
|
|
366
368
|
"aria-hidden": "true"
|
|
367
369
|
}), D("devportal.storeSubmission.unlistButton", "Unlist from marketplace")]
|
|
368
370
|
})]
|
|
369
371
|
})]
|
|
370
372
|
}),
|
|
371
|
-
J === "UNLISTED" && /* @__PURE__ */
|
|
373
|
+
J === "UNLISTED" && /* @__PURE__ */ y("div", {
|
|
372
374
|
className: "rounded-lg border border-border-default bg-surface-muted p-5 flex items-start gap-3",
|
|
373
|
-
children: [/* @__PURE__ */
|
|
375
|
+
children: [/* @__PURE__ */ v(u, {
|
|
374
376
|
className: "h-5 w-5 mt-0.5 shrink-0 text-text-secondary",
|
|
375
377
|
"aria-hidden": "true"
|
|
376
|
-
}), /* @__PURE__ */
|
|
378
|
+
}), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
|
|
377
379
|
className: "text-sm font-semibold text-text-primary",
|
|
378
380
|
children: D("devportal.storeSubmission.unlistedTitle", "Your app has been unlisted")
|
|
379
|
-
}), /* @__PURE__ */
|
|
381
|
+
}), /* @__PURE__ */ v("p", {
|
|
380
382
|
className: "mt-0.5 text-xs text-text-secondary",
|
|
381
383
|
children: D("devportal.storeSubmission.unlistedDescription", "It no longer appears in the marketplace for new users. Existing installations remain active and unaffected.")
|
|
382
384
|
})] })]
|
|
383
385
|
}),
|
|
384
|
-
J === "REJECTED" && /* @__PURE__ */
|
|
386
|
+
J === "REJECTED" && /* @__PURE__ */ y("div", {
|
|
385
387
|
className: "rounded-lg border border-status-error-bg bg-status-error-bg-subtle p-5 space-y-3",
|
|
386
|
-
children: [/* @__PURE__ */
|
|
388
|
+
children: [/* @__PURE__ */ y("div", {
|
|
387
389
|
className: "flex items-start gap-3",
|
|
388
|
-
children: [/* @__PURE__ */ h
|
|
390
|
+
children: [/* @__PURE__ */ v(h, {
|
|
389
391
|
className: "h-5 w-5 mt-0.5 shrink-0 text-status-error-text",
|
|
390
392
|
"aria-hidden": "true"
|
|
391
|
-
}), /* @__PURE__ */
|
|
393
|
+
}), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
|
|
392
394
|
className: "text-sm font-semibold text-status-error-text",
|
|
393
395
|
children: D("devportal.storeSubmission.rejectedTitle", "Submission was not approved")
|
|
394
|
-
}), /* @__PURE__ */
|
|
396
|
+
}), /* @__PURE__ */ v("p", {
|
|
395
397
|
className: "mt-0.5 text-xs text-text-secondary",
|
|
396
398
|
children: D("devportal.storeSubmission.rejectedHint", "Address the feedback below and resubmit.")
|
|
397
399
|
})] })]
|
|
398
|
-
}), k.reviewNotes && /* @__PURE__ */
|
|
400
|
+
}), k.reviewNotes && /* @__PURE__ */ y("div", {
|
|
399
401
|
className: "rounded-md bg-surface-muted p-3",
|
|
400
|
-
children: [/* @__PURE__ */
|
|
402
|
+
children: [/* @__PURE__ */ v("p", {
|
|
401
403
|
className: "text-xs font-medium text-text-secondary mb-1",
|
|
402
404
|
children: D("devportal.storeSubmission.reviewerFeedback", "Reviewer feedback")
|
|
403
|
-
}), /* @__PURE__ */
|
|
405
|
+
}), /* @__PURE__ */ v("p", {
|
|
404
406
|
className: "text-sm text-text-primary",
|
|
405
407
|
children: k.reviewNotes
|
|
406
408
|
})]
|
|
407
409
|
})]
|
|
408
410
|
}),
|
|
409
|
-
(J === "UNKNOWN" || J === "DRAFT" || J === "REJECTED") && /* @__PURE__ */
|
|
411
|
+
(J === "UNKNOWN" || J === "DRAFT" || J === "REJECTED") && /* @__PURE__ */ y("div", {
|
|
410
412
|
className: "rounded-lg border border-border-default bg-surface-raised p-4 space-y-4",
|
|
411
413
|
children: [
|
|
412
|
-
/* @__PURE__ */
|
|
414
|
+
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("h3", {
|
|
413
415
|
className: "mb-1 text-sm font-semibold text-text-primary",
|
|
414
416
|
children: J === "REJECTED" ? D("devportal.storeSubmission.resubmitForReview", "Resubmit for review") : D("devportal.storeSubmission.submitForReview", "Submit for review")
|
|
415
|
-
}), /* @__PURE__ */
|
|
417
|
+
}), /* @__PURE__ */ v("p", {
|
|
416
418
|
className: "text-sm text-text-secondary",
|
|
417
419
|
children: D("devportal.storeSubmission.help", "Your application will be sent to the store's review queue. Whether it's auto-published or requires admin approval depends on the target store's configuration.")
|
|
418
420
|
})] }),
|
|
419
|
-
Q && /* @__PURE__ */
|
|
421
|
+
Q && /* @__PURE__ */ y("div", {
|
|
420
422
|
className: "rounded-md border border-border-default bg-surface-muted p-3 space-y-2",
|
|
421
|
-
children: [/* @__PURE__ */
|
|
423
|
+
children: [/* @__PURE__ */ y("div", {
|
|
422
424
|
className: "flex items-center gap-2 text-xs font-medium text-text-secondary",
|
|
423
|
-
children: [/* @__PURE__ */
|
|
425
|
+
children: [/* @__PURE__ */ v(d, {
|
|
424
426
|
className: "h-3.5 w-3.5",
|
|
425
427
|
"aria-hidden": "true"
|
|
426
428
|
}), D("devportal.storeSubmission.versionsIncluded", "Versions included in this submission")]
|
|
427
|
-
}), $ ? /* @__PURE__ */
|
|
429
|
+
}), $ ? /* @__PURE__ */ y("div", {
|
|
428
430
|
className: "flex items-start gap-2 text-sm text-status-danger-text",
|
|
429
|
-
children: [/* @__PURE__ */
|
|
431
|
+
children: [/* @__PURE__ */ v(s, {
|
|
430
432
|
className: "h-4 w-4 mt-0.5 shrink-0",
|
|
431
433
|
"aria-hidden": "true"
|
|
432
|
-
}), /* @__PURE__ */
|
|
433
|
-
}) : Z.length === 0 ? /* @__PURE__ */
|
|
434
|
+
}), /* @__PURE__ */ v("span", { children: D("devportal.storeSubmission.noVersionsError", "You must create at least one version before submitting. Go to the Versions tab to create one.") })]
|
|
435
|
+
}) : Z.length === 0 ? /* @__PURE__ */ v("p", {
|
|
434
436
|
className: "text-xs text-text-secondary",
|
|
435
437
|
children: D("devportal.storeSubmission.noDraftVersions", "No draft versions — all versions are already submitted or published.")
|
|
436
|
-
}) : /* @__PURE__ */
|
|
438
|
+
}) : /* @__PURE__ */ v("ul", {
|
|
437
439
|
className: "space-y-1",
|
|
438
|
-
children: Z.map((e) => /* @__PURE__ */
|
|
440
|
+
children: Z.map((e) => /* @__PURE__ */ y("li", {
|
|
439
441
|
className: "flex items-center gap-2 text-sm",
|
|
440
442
|
children: [
|
|
441
|
-
/* @__PURE__ */
|
|
443
|
+
/* @__PURE__ */ v(f, {
|
|
442
444
|
className: "h-3.5 w-3.5 text-text-secondary shrink-0",
|
|
443
445
|
"aria-hidden": "true"
|
|
444
446
|
}),
|
|
445
|
-
/* @__PURE__ */
|
|
447
|
+
/* @__PURE__ */ v("span", {
|
|
446
448
|
className: "font-mono font-medium",
|
|
447
449
|
children: e.version
|
|
448
450
|
}),
|
|
449
|
-
e.releaseNotes && /* @__PURE__ */
|
|
451
|
+
e.releaseNotes && /* @__PURE__ */ y("span", {
|
|
450
452
|
className: "text-xs text-text-secondary truncate",
|
|
451
453
|
children: ["— ", e.releaseNotes]
|
|
452
454
|
})
|
|
@@ -454,16 +456,16 @@ var C = {
|
|
|
454
456
|
}, e.id))
|
|
455
457
|
})]
|
|
456
458
|
}),
|
|
457
|
-
/* @__PURE__ */
|
|
458
|
-
/* @__PURE__ */
|
|
459
|
+
/* @__PURE__ */ y("div", { children: [
|
|
460
|
+
/* @__PURE__ */ v("label", {
|
|
459
461
|
className: "block",
|
|
460
462
|
htmlFor: "store-submission-notes",
|
|
461
|
-
children: /* @__PURE__ */
|
|
463
|
+
children: /* @__PURE__ */ v("span", {
|
|
462
464
|
className: "sr-only",
|
|
463
465
|
children: D("devportal.storeSubmission.notesLabel", "Notes for the reviewer (optional)")
|
|
464
466
|
})
|
|
465
467
|
}),
|
|
466
|
-
/* @__PURE__ */
|
|
468
|
+
/* @__PURE__ */ v("textarea", {
|
|
467
469
|
id: "store-submission-notes",
|
|
468
470
|
value: H,
|
|
469
471
|
onChange: (e) => U(e.target.value),
|
|
@@ -471,14 +473,14 @@ var C = {
|
|
|
471
473
|
placeholder: D("devportal.storeSubmission.notesLabel", "Notes for the reviewer (optional)"),
|
|
472
474
|
className: "mb-3 w-full rounded-md border border-border-default bg-surface-default px-3 py-2 text-sm text-text-primary focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary"
|
|
473
475
|
}),
|
|
474
|
-
/* @__PURE__ */
|
|
476
|
+
/* @__PURE__ */ y("button", {
|
|
475
477
|
type: "button",
|
|
476
478
|
onClick: () => void G(),
|
|
477
479
|
disabled: P || !O.allowed || $,
|
|
478
480
|
"aria-disabled": P || !O.allowed || $,
|
|
479
481
|
title: $ ? D("devportal.storeSubmission.noVersionsError", "Create a version first") : O.allowed ? void 0 : D("devportal.common.noPermission", "You do not have permission to perform this action"),
|
|
480
482
|
className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-semibold text-action-primary-text hover:opacity-90 disabled:opacity-60 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary",
|
|
481
|
-
children: [P && /* @__PURE__ */
|
|
483
|
+
children: [P && /* @__PURE__ */ v(p, {
|
|
482
484
|
className: "h-4 w-4 animate-spin",
|
|
483
485
|
"aria-hidden": "true"
|
|
484
486
|
}), J === "REJECTED" ? D("devportal.storeSubmission.resubmit", "Resubmit") : D("devportal.storeSubmission.submitForReview", "Submit for review")]
|
|
@@ -486,18 +488,18 @@ var C = {
|
|
|
486
488
|
] })
|
|
487
489
|
]
|
|
488
490
|
}),
|
|
489
|
-
q?.productId && /* @__PURE__ */
|
|
491
|
+
q?.productId && /* @__PURE__ */ y("div", {
|
|
490
492
|
className: "rounded-lg border border-border-default bg-surface-raised p-4",
|
|
491
|
-
children: [/* @__PURE__ */
|
|
493
|
+
children: [/* @__PURE__ */ v("p", {
|
|
492
494
|
className: "text-xs font-medium text-text-secondary",
|
|
493
495
|
children: D("devportal.storeSubmission.storeProductId", "Store product ID")
|
|
494
|
-
}), /* @__PURE__ */
|
|
496
|
+
}), /* @__PURE__ */ v("code", {
|
|
495
497
|
className: "mt-1 block break-all font-mono text-xs text-text-primary",
|
|
496
498
|
children: q.productId
|
|
497
499
|
})]
|
|
498
500
|
})
|
|
499
501
|
]
|
|
500
|
-
}) : /* @__PURE__ */
|
|
502
|
+
}) : /* @__PURE__ */ v(te, {
|
|
501
503
|
illustration: "empty-generic",
|
|
502
504
|
title: D("devportal.storeSubmission.notFoundTitle", "Application not found"),
|
|
503
505
|
description: D("devportal.storeSubmission.notFound", "Application not found.")
|