@burdenoff/microfe-devportal 2026.717.1 → 2026.720.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/devportal/components/PermissionGuard.d.ts +14 -1
- package/dist/devportal/components/PermissionGuard.d.ts.map +1 -1
- package/dist/devportal/components/PermissionGuard.js +16 -13
- package/dist/devportal/components/PermissionGuard.js.map +1 -1
- package/dist/devportal/pages/AdminReviewPage.js +9 -9
- package/dist/devportal/pages/ApiKeysPage.js +180 -181
- package/dist/devportal/pages/ApiKeysPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationDetailPage.js +3 -3
- package/dist/devportal/pages/ApplicationVersionsPage.js +4 -4
- package/dist/devportal/pages/ApplicationVersionsPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationsPage.js +4 -4
- package/dist/devportal/pages/ApplicationsPage.js.map +1 -1
- package/dist/devportal/pages/CreateApiKeyPage.js +1 -1
- package/dist/devportal/pages/CreateOAuthClientPage.js +1 -1
- package/dist/devportal/pages/CreateOrganizationPage.d.ts.map +1 -1
- package/dist/devportal/pages/CreateOrganizationPage.js +97 -98
- package/dist/devportal/pages/CreateOrganizationPage.js.map +1 -1
- package/dist/devportal/pages/CreateWebhookPage.js +25 -25
- package/dist/devportal/pages/DashboardPage.d.ts.map +1 -1
- package/dist/devportal/pages/DashboardPage.js +110 -111
- package/dist/devportal/pages/DashboardPage.js.map +1 -1
- package/dist/devportal/pages/DelegationsPage.js +1 -1
- package/dist/devportal/pages/EditApplicationPage.js +4 -4
- package/dist/devportal/pages/ListingPreviewPage.d.ts.map +1 -1
- package/dist/devportal/pages/ListingPreviewPage.js +160 -161
- package/dist/devportal/pages/ListingPreviewPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientDetailPage.d.ts.map +1 -1
- package/dist/devportal/pages/OAuthClientDetailPage.js +166 -167
- package/dist/devportal/pages/OAuthClientDetailPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientsPage.d.ts.map +1 -1
- package/dist/devportal/pages/OAuthClientsPage.js +121 -122
- package/dist/devportal/pages/OAuthClientsPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationDetailPage.js +3 -3
- package/dist/devportal/pages/OrganizationMembersPage.js +4 -4
- package/dist/devportal/pages/OrganizationMembersPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationsPage.d.ts.map +1 -1
- package/dist/devportal/pages/OrganizationsPage.js +97 -98
- package/dist/devportal/pages/OrganizationsPage.js.map +1 -1
- package/dist/devportal/pages/PublishPage.js +246 -246
- package/dist/devportal/pages/PublishPage.js.map +1 -1
- package/dist/devportal/pages/PublisherProfilePage.js +4 -4
- package/dist/devportal/pages/PublisherProfilePage.js.map +1 -1
- package/dist/devportal/pages/StoreSubmissionPage.js +3 -3
- package/dist/devportal/pages/WebhookDetailPage.js +3 -3
- package/dist/devportal/pages/WebhooksPage.js +129 -129
- package/dist/devportal/pages/WebhooksPage.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,14 +4,13 @@ import { PageLayout as n, PageSection as r } from "../components/PageLayout.js";
|
|
|
4
4
|
import { Alert as i } from "../components/ConfirmDialog.js";
|
|
5
5
|
import { PermissionGuard as a } from "../components/PermissionGuard.js";
|
|
6
6
|
import "../components/index.js";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { jsx as b, jsxs as x } from "react/jsx-runtime";
|
|
7
|
+
import { useEffect as o } from "react";
|
|
8
|
+
import { useI18n as s } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
9
|
+
import { CheckCircle as c, Download as l, ExternalLink as u, Eye as d, FileText as f, Globe as p, Loader2 as m, Shield as h, Star as g, Tag as _ } from "lucide-react";
|
|
10
|
+
import { useParams as v } from "react-router-dom";
|
|
11
|
+
import { jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
13
12
|
//#region src/devportal/pages/ListingPreviewPage.tsx
|
|
14
|
-
var
|
|
13
|
+
var x = {
|
|
15
14
|
FREE: "Free",
|
|
16
15
|
FREEMIUM: "Free with in-app purchases",
|
|
17
16
|
PAID: "Paid",
|
|
@@ -19,7 +18,7 @@ var S = {
|
|
|
19
18
|
SUBSCRIPTION: "Subscription",
|
|
20
19
|
USAGE_BASED: "Usage-based pricing",
|
|
21
20
|
ENTERPRISE: "Enterprise pricing"
|
|
22
|
-
},
|
|
21
|
+
}, S = {
|
|
23
22
|
WORKFLOW: "Workflow",
|
|
24
23
|
WIDGET: "Widget",
|
|
25
24
|
BOT: "Bot / Chatbot",
|
|
@@ -34,320 +33,320 @@ var S = {
|
|
|
34
33
|
DESKTOP_APP: "Desktop App",
|
|
35
34
|
CLI_TOOL: "CLI Tool",
|
|
36
35
|
SERVICE: "Service"
|
|
37
|
-
},
|
|
38
|
-
let { appId:
|
|
39
|
-
let n =
|
|
36
|
+
}, C = () => {
|
|
37
|
+
let { appId: C } = v(), { navigate: w, basePath: T } = e(), { t: E } = s(), D = (e, t) => {
|
|
38
|
+
let n = E(e);
|
|
40
39
|
return n === e ? t : n;
|
|
41
|
-
}, { data:
|
|
42
|
-
variables: { id:
|
|
43
|
-
skip: !
|
|
40
|
+
}, { data: O, loading: k, error: A } = t({
|
|
41
|
+
variables: { id: C },
|
|
42
|
+
skip: !C,
|
|
44
43
|
fetchPolicy: "cache-and-network"
|
|
45
|
-
}),
|
|
46
|
-
if (
|
|
47
|
-
let e =
|
|
48
|
-
if (!
|
|
44
|
+
}), j = O?.application;
|
|
45
|
+
if (o(() => {
|
|
46
|
+
let e = j?.name;
|
|
47
|
+
if (!C || !e) return;
|
|
49
48
|
let t = window.__breadcrumbRegistry;
|
|
50
|
-
return t?.register(
|
|
51
|
-
}, [
|
|
52
|
-
title:
|
|
53
|
-
description:
|
|
54
|
-
backLink: `/apps/${
|
|
55
|
-
backLabel:
|
|
56
|
-
children: /* @__PURE__ */
|
|
49
|
+
return t?.register(C, e), () => t?.unregister(C);
|
|
50
|
+
}, [C, j?.name]), k) return /* @__PURE__ */ y(n, {
|
|
51
|
+
title: D("devportal.marketplacePreview", "Marketplace Preview"),
|
|
52
|
+
description: D("devportal.loading", "Loading..."),
|
|
53
|
+
backLink: `/apps/${C}`,
|
|
54
|
+
backLabel: D("devportal.backToApplication", "Back to Application"),
|
|
55
|
+
children: /* @__PURE__ */ y("div", {
|
|
57
56
|
className: "flex items-center justify-center py-12",
|
|
58
|
-
children: /* @__PURE__ */
|
|
57
|
+
children: /* @__PURE__ */ y(m, { className: "h-8 w-8 animate-spin text-text-secondary" })
|
|
59
58
|
})
|
|
60
59
|
});
|
|
61
|
-
if (
|
|
62
|
-
title:
|
|
63
|
-
description:
|
|
64
|
-
backLink: `/apps/${
|
|
65
|
-
backLabel:
|
|
66
|
-
children: /* @__PURE__ */
|
|
60
|
+
if (A || !j) return /* @__PURE__ */ y(n, {
|
|
61
|
+
title: D("devportal.marketplacePreview", "Marketplace Preview"),
|
|
62
|
+
description: D("devportal.couldNotLoadApplication", "Could not load application"),
|
|
63
|
+
backLink: `/apps/${C}`,
|
|
64
|
+
backLabel: D("devportal.backToApplication", "Back to Application"),
|
|
65
|
+
children: /* @__PURE__ */ y(i, {
|
|
67
66
|
variant: "error",
|
|
68
|
-
title:
|
|
69
|
-
children:
|
|
67
|
+
title: D("devportal.failedToLoadApplication", "Failed to load application"),
|
|
68
|
+
children: A?.message ?? D("devportal.applicationNotFound", "Application not found")
|
|
70
69
|
})
|
|
71
70
|
});
|
|
72
|
-
let
|
|
73
|
-
return /* @__PURE__ */
|
|
74
|
-
|
|
75
|
-
children: /* @__PURE__ */
|
|
76
|
-
title:
|
|
77
|
-
description:
|
|
78
|
-
purpose:
|
|
79
|
-
backLink: `/apps/${
|
|
80
|
-
backLabel:
|
|
81
|
-
actions:
|
|
82
|
-
onClick: () =>
|
|
71
|
+
let M = Array.isArray(j.screenshots) ? j.screenshots : [], N = j.status === "PUBLISHED";
|
|
72
|
+
return /* @__PURE__ */ y(a, {
|
|
73
|
+
authOnly: !0,
|
|
74
|
+
children: /* @__PURE__ */ b(n, {
|
|
75
|
+
title: D("devportal.marketplacePreview", "Marketplace Preview"),
|
|
76
|
+
description: D("devportal.marketplacePreviewDescription", "Preview how your app will appear in the marketplace"),
|
|
77
|
+
purpose: D("devportal.marketplacePreviewPurpose", "See exactly how shoppers will experience your store listing — icon, screenshots, description, and pricing — before it goes live. Use it to catch missing assets or typos, then submit for review when the listing looks right."),
|
|
78
|
+
backLink: `/apps/${C}`,
|
|
79
|
+
backLabel: D("devportal.backToApplication", "Back to Application"),
|
|
80
|
+
actions: N ? void 0 : /* @__PURE__ */ b("button", {
|
|
81
|
+
onClick: () => w?.(`${T}/apps/${C}/publish`),
|
|
83
82
|
className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90",
|
|
84
|
-
children: [/* @__PURE__ */
|
|
83
|
+
children: [/* @__PURE__ */ y(d, { size: 16 }), D("devportal.submitForReview", "Submit for Review")]
|
|
85
84
|
}),
|
|
86
85
|
children: [
|
|
87
|
-
/* @__PURE__ */
|
|
86
|
+
/* @__PURE__ */ b("div", {
|
|
88
87
|
className: "flex items-center gap-2 rounded-lg border border-border-subtle bg-status-warning-bg-subtle px-4 py-3 text-sm text-status-warning-text",
|
|
89
|
-
children: [/* @__PURE__ */
|
|
88
|
+
children: [/* @__PURE__ */ y(d, {
|
|
90
89
|
size: 16,
|
|
91
90
|
className: "flex-shrink-0"
|
|
92
|
-
}), /* @__PURE__ */
|
|
91
|
+
}), /* @__PURE__ */ y("span", { children: D("devportal.previewBannerText", "This is a preview of your marketplace listing. It shows how your app will appear to users after publication.") })]
|
|
93
92
|
}),
|
|
94
|
-
/* @__PURE__ */
|
|
93
|
+
/* @__PURE__ */ b("div", {
|
|
95
94
|
className: "rounded-xl border bg-bg-surface overflow-hidden",
|
|
96
95
|
children: [
|
|
97
|
-
|
|
96
|
+
j.bannerUrl ? /* @__PURE__ */ y("div", {
|
|
98
97
|
className: "h-48 w-full overflow-hidden",
|
|
99
|
-
children: /* @__PURE__ */
|
|
100
|
-
src:
|
|
101
|
-
alt:
|
|
98
|
+
children: /* @__PURE__ */ y("img", {
|
|
99
|
+
src: j.bannerUrl,
|
|
100
|
+
alt: D("devportal.appBannerAlt", "App banner"),
|
|
102
101
|
className: "h-full w-full object-cover"
|
|
103
102
|
})
|
|
104
|
-
}) : /* @__PURE__ */
|
|
105
|
-
/* @__PURE__ */
|
|
103
|
+
}) : /* @__PURE__ */ y("div", { className: "h-32 w-full bg-gradient-to-r from-primary/20 to-primary/5" }),
|
|
104
|
+
/* @__PURE__ */ y("div", {
|
|
106
105
|
className: "p-6",
|
|
107
|
-
children: /* @__PURE__ */
|
|
106
|
+
children: /* @__PURE__ */ b("div", {
|
|
108
107
|
className: "flex items-start gap-5",
|
|
109
108
|
children: [
|
|
110
|
-
|
|
111
|
-
src:
|
|
112
|
-
alt:
|
|
109
|
+
j.iconUrl ? /* @__PURE__ */ y("img", {
|
|
110
|
+
src: j.iconUrl,
|
|
111
|
+
alt: j.name,
|
|
113
112
|
className: "h-20 w-20 rounded-2xl border object-cover flex-shrink-0 shadow-sm"
|
|
114
|
-
}) : /* @__PURE__ */
|
|
113
|
+
}) : /* @__PURE__ */ y("div", {
|
|
115
114
|
className: "h-20 w-20 rounded-2xl border bg-bg-sunken flex items-center justify-center flex-shrink-0",
|
|
116
|
-
children: /* @__PURE__ */
|
|
115
|
+
children: /* @__PURE__ */ y("span", {
|
|
117
116
|
className: "text-3xl font-bold text-text-secondary",
|
|
118
|
-
"aria-label":
|
|
119
|
-
children:
|
|
117
|
+
"aria-label": D("devportal.appIconFallbackAriaLabel", "App icon"),
|
|
118
|
+
children: j.name.charAt(0).toUpperCase()
|
|
120
119
|
})
|
|
121
120
|
}),
|
|
122
|
-
/* @__PURE__ */
|
|
121
|
+
/* @__PURE__ */ b("div", {
|
|
123
122
|
className: "flex-1 min-w-0",
|
|
124
123
|
children: [
|
|
125
|
-
/* @__PURE__ */
|
|
124
|
+
/* @__PURE__ */ b("div", {
|
|
126
125
|
className: "flex flex-wrap items-center gap-2",
|
|
127
126
|
children: [
|
|
128
|
-
/* @__PURE__ */
|
|
127
|
+
/* @__PURE__ */ y("h1", {
|
|
129
128
|
className: "text-2xl font-bold",
|
|
130
|
-
children:
|
|
129
|
+
children: j.name
|
|
131
130
|
}),
|
|
132
|
-
|
|
131
|
+
j.isVerified && /* @__PURE__ */ y(c, {
|
|
133
132
|
size: 20,
|
|
134
133
|
className: "text-primary"
|
|
135
134
|
}),
|
|
136
|
-
|
|
135
|
+
j.isFeatured && /* @__PURE__ */ y("span", {
|
|
137
136
|
className: "rounded-full bg-status-warning-bg-subtle px-2 py-0.5 text-xs font-medium text-status-warning-text",
|
|
138
|
-
children:
|
|
137
|
+
children: D("devportal.featured", "Featured")
|
|
139
138
|
})
|
|
140
139
|
]
|
|
141
140
|
}),
|
|
142
|
-
/* @__PURE__ */
|
|
141
|
+
/* @__PURE__ */ y("p", {
|
|
143
142
|
className: "mt-1 text-text-secondary",
|
|
144
|
-
children:
|
|
143
|
+
children: j.shortDescription ?? j.description ?? D("devportal.noDescription", "No description")
|
|
145
144
|
}),
|
|
146
|
-
/* @__PURE__ */
|
|
145
|
+
/* @__PURE__ */ b("div", {
|
|
147
146
|
className: "mt-3 flex flex-wrap items-center gap-4 text-sm text-text-secondary",
|
|
148
147
|
children: [
|
|
149
|
-
|
|
148
|
+
j.averageRating != null && /* @__PURE__ */ b("div", {
|
|
150
149
|
className: "flex items-center gap-1",
|
|
151
150
|
children: [
|
|
152
|
-
/* @__PURE__ */
|
|
151
|
+
/* @__PURE__ */ y(g, {
|
|
153
152
|
size: 14,
|
|
154
153
|
className: "text-status-warning-text fill-status-warning-text"
|
|
155
154
|
}),
|
|
156
|
-
/* @__PURE__ */
|
|
155
|
+
/* @__PURE__ */ y("span", {
|
|
157
156
|
className: "font-medium text-text-primary",
|
|
158
|
-
children:
|
|
157
|
+
children: j.averageRating.toFixed(1)
|
|
159
158
|
}),
|
|
160
|
-
/* @__PURE__ */
|
|
159
|
+
/* @__PURE__ */ b("span", { children: [
|
|
161
160
|
"(",
|
|
162
|
-
|
|
161
|
+
j.reviewCount ?? 0,
|
|
163
162
|
" ",
|
|
164
|
-
|
|
163
|
+
D("devportal.reviews", "reviews"),
|
|
165
164
|
")"
|
|
166
165
|
] })
|
|
167
166
|
]
|
|
168
167
|
}),
|
|
169
|
-
/* @__PURE__ */
|
|
168
|
+
/* @__PURE__ */ b("div", {
|
|
170
169
|
className: "flex items-center gap-1",
|
|
171
|
-
children: [/* @__PURE__ */
|
|
172
|
-
(
|
|
170
|
+
children: [/* @__PURE__ */ y(l, { size: 14 }), /* @__PURE__ */ b("span", { children: [
|
|
171
|
+
(j.installCount ?? 0).toLocaleString(),
|
|
173
172
|
" ",
|
|
174
|
-
|
|
173
|
+
D("devportal.installs", "installs")
|
|
175
174
|
] })]
|
|
176
175
|
}),
|
|
177
|
-
|
|
176
|
+
j.category && /* @__PURE__ */ y("span", {
|
|
178
177
|
className: "rounded-full border px-2 py-0.5 text-xs",
|
|
179
|
-
children:
|
|
178
|
+
children: j.category
|
|
180
179
|
}),
|
|
181
|
-
/* @__PURE__ */
|
|
180
|
+
/* @__PURE__ */ y("span", {
|
|
182
181
|
className: "rounded-full border px-2 py-0.5 text-xs",
|
|
183
|
-
children:
|
|
182
|
+
children: S[j.appType] ?? j.appType
|
|
184
183
|
})
|
|
185
184
|
]
|
|
186
185
|
})
|
|
187
186
|
]
|
|
188
187
|
}),
|
|
189
|
-
/* @__PURE__ */
|
|
188
|
+
/* @__PURE__ */ b("div", {
|
|
190
189
|
className: "flex-shrink-0 text-right space-y-2",
|
|
191
190
|
children: [
|
|
192
|
-
/* @__PURE__ */
|
|
191
|
+
/* @__PURE__ */ y("div", {
|
|
193
192
|
className: "text-lg font-semibold",
|
|
194
|
-
children:
|
|
193
|
+
children: x[j.pricingType ?? "FREE"] ?? "Free"
|
|
195
194
|
}),
|
|
196
|
-
/* @__PURE__ */
|
|
195
|
+
/* @__PURE__ */ y("button", {
|
|
197
196
|
disabled: !0,
|
|
198
197
|
className: "w-full rounded-lg bg-action-primary-bg px-6 py-2 text-sm font-semibold text-action-primary-text opacity-60 cursor-not-allowed",
|
|
199
|
-
title:
|
|
200
|
-
children:
|
|
198
|
+
title: D("devportal.previewOnly", "Preview only"),
|
|
199
|
+
children: D("devportal.install", "Install")
|
|
201
200
|
}),
|
|
202
|
-
/* @__PURE__ */
|
|
201
|
+
/* @__PURE__ */ y("p", {
|
|
203
202
|
className: "text-xs text-text-secondary",
|
|
204
|
-
children:
|
|
203
|
+
children: D("devportal.previewOnly", "Preview only")
|
|
205
204
|
})
|
|
206
205
|
]
|
|
207
206
|
})
|
|
208
207
|
]
|
|
209
208
|
})
|
|
210
209
|
}),
|
|
211
|
-
|
|
210
|
+
M.length > 0 && /* @__PURE__ */ b("div", {
|
|
212
211
|
className: "border-t px-6 py-5",
|
|
213
|
-
children: [/* @__PURE__ */
|
|
212
|
+
children: [/* @__PURE__ */ y("h2", {
|
|
214
213
|
className: "text-base font-semibold mb-3",
|
|
215
|
-
children:
|
|
216
|
-
}), /* @__PURE__ */
|
|
214
|
+
children: D("devportal.screenshots", "Screenshots")
|
|
215
|
+
}), /* @__PURE__ */ y("div", {
|
|
217
216
|
className: "flex gap-3 overflow-x-auto pb-2",
|
|
218
|
-
children:
|
|
217
|
+
children: M.map((e, t) => /* @__PURE__ */ y("img", {
|
|
219
218
|
src: e,
|
|
220
|
-
alt: `${
|
|
219
|
+
alt: `${D("devportal.screenshotAlt", "Screenshot")} ${t + 1}`,
|
|
221
220
|
className: "h-44 w-auto rounded-lg border object-cover flex-shrink-0"
|
|
222
221
|
}, t))
|
|
223
222
|
})]
|
|
224
223
|
}),
|
|
225
|
-
/* @__PURE__ */
|
|
224
|
+
/* @__PURE__ */ b("div", {
|
|
226
225
|
className: "border-t px-6 py-5",
|
|
227
|
-
children: [/* @__PURE__ */
|
|
226
|
+
children: [/* @__PURE__ */ y("h2", {
|
|
228
227
|
className: "text-base font-semibold mb-2",
|
|
229
|
-
children:
|
|
230
|
-
}), /* @__PURE__ */
|
|
228
|
+
children: D("devportal.about", "About")
|
|
229
|
+
}), /* @__PURE__ */ y("p", {
|
|
231
230
|
className: "text-sm text-text-secondary whitespace-pre-wrap",
|
|
232
|
-
children:
|
|
231
|
+
children: j.description ?? j.shortDescription ?? D("devportal.noDetailedDescription", "No detailed description provided.")
|
|
233
232
|
})]
|
|
234
233
|
}),
|
|
235
|
-
Array.isArray(
|
|
234
|
+
Array.isArray(j.tags) && j.tags.length > 0 && /* @__PURE__ */ y("div", {
|
|
236
235
|
className: "border-t px-6 py-4",
|
|
237
|
-
children: /* @__PURE__ */
|
|
236
|
+
children: /* @__PURE__ */ y("div", {
|
|
238
237
|
className: "flex flex-wrap gap-2",
|
|
239
|
-
children:
|
|
238
|
+
children: j.tags.map((e) => /* @__PURE__ */ b("span", {
|
|
240
239
|
className: "inline-flex items-center gap-1 rounded-full border px-3 py-1 text-xs text-text-secondary",
|
|
241
|
-
children: [/* @__PURE__ */
|
|
240
|
+
children: [/* @__PURE__ */ y(_, { size: 10 }), e]
|
|
242
241
|
}, e))
|
|
243
242
|
})
|
|
244
243
|
}),
|
|
245
|
-
/* @__PURE__ */
|
|
244
|
+
/* @__PURE__ */ b("div", {
|
|
246
245
|
className: "border-t px-6 py-5 grid grid-cols-1 sm:grid-cols-2 gap-4 text-sm",
|
|
247
246
|
children: [
|
|
248
|
-
|
|
249
|
-
href:
|
|
247
|
+
j.websiteUrl && /* @__PURE__ */ b("a", {
|
|
248
|
+
href: j.websiteUrl,
|
|
250
249
|
target: "_blank",
|
|
251
250
|
rel: "noopener noreferrer",
|
|
252
251
|
className: "flex items-center gap-2 text-primary hover:underline",
|
|
253
252
|
children: [
|
|
254
|
-
/* @__PURE__ */
|
|
255
|
-
|
|
256
|
-
/* @__PURE__ */
|
|
253
|
+
/* @__PURE__ */ y(p, { size: 14 }),
|
|
254
|
+
D("devportal.website", "Website"),
|
|
255
|
+
/* @__PURE__ */ y(u, { size: 12 })
|
|
257
256
|
]
|
|
258
257
|
}),
|
|
259
|
-
|
|
260
|
-
href:
|
|
258
|
+
j.documentationUrl && /* @__PURE__ */ b("a", {
|
|
259
|
+
href: j.documentationUrl,
|
|
261
260
|
target: "_blank",
|
|
262
261
|
rel: "noopener noreferrer",
|
|
263
262
|
className: "flex items-center gap-2 text-primary hover:underline",
|
|
264
263
|
children: [
|
|
265
|
-
/* @__PURE__ */
|
|
266
|
-
|
|
267
|
-
/* @__PURE__ */
|
|
264
|
+
/* @__PURE__ */ y(f, { size: 14 }),
|
|
265
|
+
D("devportal.documentation", "Documentation"),
|
|
266
|
+
/* @__PURE__ */ y(u, { size: 12 })
|
|
268
267
|
]
|
|
269
268
|
}),
|
|
270
|
-
|
|
271
|
-
href:
|
|
269
|
+
j.privacyPolicyUrl && /* @__PURE__ */ b("a", {
|
|
270
|
+
href: j.privacyPolicyUrl,
|
|
272
271
|
target: "_blank",
|
|
273
272
|
rel: "noopener noreferrer",
|
|
274
273
|
className: "flex items-center gap-2 text-primary hover:underline",
|
|
275
274
|
children: [
|
|
276
|
-
/* @__PURE__ */
|
|
277
|
-
|
|
278
|
-
/* @__PURE__ */
|
|
275
|
+
/* @__PURE__ */ y(h, { size: 14 }),
|
|
276
|
+
D("devportal.privacyPolicy", "Privacy Policy"),
|
|
277
|
+
/* @__PURE__ */ y(u, { size: 12 })
|
|
279
278
|
]
|
|
280
279
|
}),
|
|
281
|
-
|
|
282
|
-
href:
|
|
280
|
+
j.termsOfServiceUrl && /* @__PURE__ */ b("a", {
|
|
281
|
+
href: j.termsOfServiceUrl,
|
|
283
282
|
target: "_blank",
|
|
284
283
|
rel: "noopener noreferrer",
|
|
285
284
|
className: "flex items-center gap-2 text-primary hover:underline",
|
|
286
285
|
children: [
|
|
287
|
-
/* @__PURE__ */
|
|
288
|
-
|
|
289
|
-
/* @__PURE__ */
|
|
286
|
+
/* @__PURE__ */ y(f, { size: 14 }),
|
|
287
|
+
D("devportal.termsOfService", "Terms of Service"),
|
|
288
|
+
/* @__PURE__ */ y(u, { size: 12 })
|
|
290
289
|
]
|
|
291
290
|
})
|
|
292
291
|
]
|
|
293
292
|
})
|
|
294
293
|
]
|
|
295
294
|
}),
|
|
296
|
-
/* @__PURE__ */
|
|
297
|
-
title:
|
|
298
|
-
children: [/* @__PURE__ */
|
|
295
|
+
/* @__PURE__ */ b(r, {
|
|
296
|
+
title: D("devportal.listingCompleteness", "Listing Completeness"),
|
|
297
|
+
children: [/* @__PURE__ */ y("div", {
|
|
299
298
|
className: "space-y-2",
|
|
300
299
|
children: [
|
|
301
300
|
{
|
|
302
|
-
label:
|
|
303
|
-
ok: !!
|
|
301
|
+
label: D("devportal.completenessAppIcon", "App icon"),
|
|
302
|
+
ok: !!j.iconUrl
|
|
304
303
|
},
|
|
305
304
|
{
|
|
306
|
-
label:
|
|
307
|
-
ok: !!
|
|
305
|
+
label: D("devportal.completenessBannerImage", "Banner image"),
|
|
306
|
+
ok: !!j.bannerUrl
|
|
308
307
|
},
|
|
309
308
|
{
|
|
310
|
-
label:
|
|
311
|
-
ok: !!
|
|
309
|
+
label: D("devportal.completenessShortDescription", "Short description"),
|
|
310
|
+
ok: !!j.shortDescription
|
|
312
311
|
},
|
|
313
312
|
{
|
|
314
|
-
label:
|
|
315
|
-
ok: !!
|
|
313
|
+
label: D("devportal.completenessFullDescription", "Full description"),
|
|
314
|
+
ok: !!j.description
|
|
316
315
|
},
|
|
317
316
|
{
|
|
318
|
-
label:
|
|
319
|
-
ok:
|
|
317
|
+
label: D("devportal.completenessScreenshots", "Screenshots (3+)"),
|
|
318
|
+
ok: M.length >= 3
|
|
320
319
|
},
|
|
321
320
|
{
|
|
322
|
-
label:
|
|
323
|
-
ok: !!
|
|
321
|
+
label: D("devportal.completenessCategory", "Category"),
|
|
322
|
+
ok: !!j.category
|
|
324
323
|
},
|
|
325
324
|
{
|
|
326
|
-
label:
|
|
327
|
-
ok: Array.isArray(
|
|
325
|
+
label: D("devportal.completenessTags", "Tags"),
|
|
326
|
+
ok: Array.isArray(j.tags) && j.tags.length > 0
|
|
328
327
|
},
|
|
329
328
|
{
|
|
330
|
-
label:
|
|
331
|
-
ok: !!
|
|
329
|
+
label: D("devportal.completenessPrivacyPolicy", "Privacy policy URL"),
|
|
330
|
+
ok: !!j.privacyPolicyUrl
|
|
332
331
|
},
|
|
333
332
|
{
|
|
334
|
-
label:
|
|
335
|
-
ok: !!
|
|
333
|
+
label: D("devportal.completenessTermsOfService", "Terms of service URL"),
|
|
334
|
+
ok: !!j.termsOfServiceUrl
|
|
336
335
|
}
|
|
337
|
-
].map(({ label: e, ok: t }) => /* @__PURE__ */
|
|
336
|
+
].map(({ label: e, ok: t }) => /* @__PURE__ */ b("div", {
|
|
338
337
|
className: "flex items-center gap-3 text-sm",
|
|
339
|
-
children: [t ? /* @__PURE__ */
|
|
338
|
+
children: [t ? /* @__PURE__ */ y(c, {
|
|
340
339
|
size: 16,
|
|
341
340
|
className: "text-status-success-text flex-shrink-0"
|
|
342
|
-
}) : /* @__PURE__ */
|
|
341
|
+
}) : /* @__PURE__ */ y("div", { className: "h-4 w-4 rounded-full border-2 border-muted-foreground flex-shrink-0" }), /* @__PURE__ */ y("span", {
|
|
343
342
|
className: t ? "text-text-primary" : "text-text-secondary",
|
|
344
343
|
children: e
|
|
345
344
|
})]
|
|
346
345
|
}, e))
|
|
347
|
-
}), !
|
|
348
|
-
onClick: () =>
|
|
346
|
+
}), !N && /* @__PURE__ */ y("button", {
|
|
347
|
+
onClick: () => w?.(`${T}/apps/${C}/edit`),
|
|
349
348
|
className: "mt-4 rounded-md border px-3 py-1.5 text-sm hover:bg-bg-sunken",
|
|
350
|
-
children:
|
|
349
|
+
children: D("devportal.editToImproveListing", "Edit to improve listing →")
|
|
351
350
|
})]
|
|
352
351
|
})
|
|
353
352
|
]
|
|
@@ -355,6 +354,6 @@ var S = {
|
|
|
355
354
|
});
|
|
356
355
|
};
|
|
357
356
|
//#endregion
|
|
358
|
-
export {
|
|
357
|
+
export { C as ListingPreviewPage };
|
|
359
358
|
|
|
360
359
|
//# sourceMappingURL=ListingPreviewPage.js.map
|